Knjiznica - dokoncani popravki (brisanje vprasanj, dodajanje v folder, admin pravice...)

This commit is contained in:
pero1203 2022-03-09 10:38:45 +01:00
parent 5db2702289
commit 0dbc419bbd
7 changed files with 347 additions and 26 deletions

View File

@ -10,6 +10,7 @@ class LibraryBranching {
var $expanded_folders = array(); // Razprti folderji
var $root_folder;
var $folder_structure = array(); // Struktura direktorijev uporabnika
public function __construct ($ank_id=0) {
@ -135,6 +136,12 @@ class LibraryBranching {
if (!container.is(e.target) && container.has(e.target).length === 0){
$(".folder_item_settings").addClass("displayNone");
}
var container2 = $(".item_settings, .dots_ver");
if (!container.is(e.target) && container.has(e.target).length === 0){
$(".item_settings").addClass("displayNone");
}
});
initHideLibraryArrows();
@ -229,7 +236,7 @@ class LibraryBranching {
$expanded = in_array($id, $this->expanded_folders) ? true : false;
$active = ($this->folder_id == $id) ? true : false;
echo '<li id="folder_item_'.$id.'" class="folder_item '.($active ? 'active' : '').' '.($expanded ? 'open' : '').' '.($uid != 0 ? 'droppable_folder' : '').'" folder-id="'.$id.'" onClick="openLibraryFolder(\''.$id.'\');">';
echo '<li id="folder_item_'.$id.'" class="folder_item '.($active ? 'active' : '').' '.($expanded ? 'open' : '').' '.(($uid != 0 || $admin_type == 0) ? 'droppable_folder' : '').'" folder-id="'.$id.'" onClick="openLibraryFolder(\''.$id.'\');">';
// Ikoni puscice in mape
@ -365,15 +372,25 @@ class LibraryBranching {
echo '<div class="survey_title"></div>';*/
$allow_edit = true;
// Loop po vseh vprasanjih v folderju
$sqlFolderQuestions = sisplet_query("SELECT * FROM srv_spremenljivka WHERE folder='".$this->folder_id."' AND gru_id='-1' ORDER BY naslov ASC");
$sqlFolderQuestions = sisplet_query("SELECT s.id, s.naslov, s.tip, f.uid AS folder_uid
FROM srv_spremenljivka s, srv_library_folder f
WHERE s.folder='".$this->folder_id."' AND s.gru_id='-1' AND f.id=s.folder
ORDER BY s.naslov ASC
");
while ($rowFolderQuestions = mysqli_fetch_array($sqlFolderQuestions)) {
$this->displayRightQuestionItem($rowFolderQuestions);
}
// Loop po vseh if-ih/blokih v folderju
$sqlFolderIfs = sisplet_query("SELECT * FROM srv_if WHERE folder='".$this->folder_id."' ORDER BY label ASC, id ASC");
$sqlFolderIfs = sisplet_query("SELECT i.id, i.label, i.tip, f.uid AS folder_uid
FROM srv_if i, srv_library_folder f
WHERE i.folder='".$this->folder_id."' AND f.id=i.folder
ORDER BY i.label ASC, i.id ASC
");
while ($rowFolderIfs = mysqli_fetch_array($sqlFolderIfs)) {
$this->displayRightIfItem($rowFolderIfs);
@ -423,14 +440,31 @@ class LibraryBranching {
// Prikazemo 1 vrstico (item, vprasanje) na desni
private function displayRightQuestionItem($spremenljivka){
global $lang;
global $global_user_id;
echo '<div id="question_item_holder_'.$spremenljivka['id'].'" class="question_item_holder" onClick="selectLibraryItem(\''.$spremenljivka['id'].'\');">';
echo ' <input type="checkbox" id="question_item_check_'.$spremenljivka['id'].'" item-type="1" class="question_item_check" onClick="selectLibraryItem(\''.$spremenljivka['id'].'\');"><label for="question_item_check_'.$spremenljivka['id'].'"></label>';
echo ' <div id="question_item_info_'.$spremenljivka['id'].'" item-type="1" item-id="'.$spremenljivka['id'].'" class="question_item_info">';
echo ' <span class="faicon list"></span>';
echo ' <span class="title">'.substr(strip_tags($spremenljivka['naslov']), 0, 40).'</span>';
// Urejanje Vprasanja
if($this->tab == '0' && ($spremenljivka['folder_uid'] == $global_user_id || $admin_type == 0)){
// Tri pikice za prikaz urejanja vprasanja
echo ' <span class="faicon dots_ver" onClick="showLibraryItemEdit(this);"></span>';
// Skrit div za urejanje vprasanja
echo ' <div class="item_settings displayNone">';
echo ' <ul>';
echo ' <li onClick="deleteLibraryItem(\''.$spremenljivka['id'].'\', \'1\');">'.$lang['srv_library_delete_q'].'</li>';
echo ' </ul>';
echo ' </div>';
}
echo ' </div>';
echo '</div>';
@ -439,18 +473,22 @@ class LibraryBranching {
// Prikazemo 1 vrstico (item, if) na desni
private function displayRightIfItem($if){
global $lang;
global $global_user_id;
if($if['tip'] == 2){
$type_string = '<span class="item_type">[LOOP]</span>';
$icon = 'loop_32';
$type = 'loop';
}
elseif($if['tip'] == 1){
$type_string = '<span class="item_type">[BLOCK]</span>';
$icon = 'block_32';
$type = 'block';
}
else{
$type_string = '<span class="item_type">[IF]</span>';
$icon = 'if_32';
$type = 'if';
}
$type_string = '';
@ -460,8 +498,24 @@ class LibraryBranching {
echo ' <input type="checkbox" id="question_item_check_'.$if['id'].'" item-type="2" class="question_item_check" onClick="selectLibraryItem(\''.$if['id'].'\');"><label for="question_item_check_'.$spremenljivka['id'].'"></label>';
echo ' <div id="question_item_info_'.$if['id'].'" item-type="2" item-id="'.$if['id'].'" class="question_item_info">';
echo ' <span class="faicon '.$icon.'"></span>';
echo ' <span class="title">'.$type_string.substr(strip_tags($if['label']), 0, 40).'</span>';
// Urejanje Vprasanja
if($this->tab == '0' && ($if['folder_uid'] == $global_user_id || $admin_type == 0)){
// Tri pikice za prikaz urejanja folderja
echo ' <span class="faicon dots_ver" onClick="showLibraryItemEdit(this);"></span>';
// Skrit div za urejanje folderja
echo ' <div class="item_settings displayNone">';
echo ' <ul>';
echo ' <li onClick="deleteLibraryItem(\''.$if['id'].'\', \'2\');">'.$lang['srv_library_delete_'.$type].'</li>';
echo ' </ul>';
echo ' </div>';
}
echo ' </div>';
echo '</div>';
@ -487,6 +541,8 @@ class LibraryBranching {
*/
private function displayAddIntoLibrary($item_id, $type){
global $lang;
global $admin_type;
global $global_user_id;
// Podtip elementa (vprasanje, blok, if...)
if($type == '2'){
@ -525,8 +581,27 @@ class LibraryBranching {
echo '<label>'.$lang['srv_library_add_to_lib_name_'.$subtype].':</label>';
echo '<input id="lib_item_title" type="text" value="'.$naslov.'">';
/*echo '<label>'.$lang['srv_library_add_to_lib_folder'].':</label>';
echo '<input type="text">';*/
// Izbira direktorija
echo '<label>'.$lang['srv_library_add_to_lib_folder'].':</label>';
$this->getFolderStructure($uid=$global_user_id);
if($admin_type == 0)
$this->getFolderStructure($uid='0');
echo '<select id="lib_item_folder" class="dropdown">';
foreach($this->folder_structure as $folder){
echo '<option value="'.$folder['id'].'">';
for($i=0; $i<$folder['indent']; $i++){
echo '&nbsp;';
}
echo $folder['title'];
echo '</option>';
}
echo '</select>';
echo '</div>';
@ -619,6 +694,34 @@ class LibraryBranching {
return $root_folder_id;
}
// Seznam folderjev uporabnika
private function getFolderStructure($uid, $parent=0, $indent=0){
global $global_user_id;
global $admin_type;
global $lang;
$sqlFolder = sisplet_query("SELECT id, naslov FROM srv_library_folder WHERE uid='".$uid."' AND parent='".$parent."' AND tip='0' AND lang='".$lang['id']."'");
if(mysqli_num_rows($sqlFolder) == 0){
return;
}
while($rowFolder = mysqli_fetch_array($sqlFolder)){
$this->folder_structure[] = array(
'id' => $rowFolder['id'],
'title' => $rowFolder['naslov'],
'indent' => $indent
);
$indent_new = $indent+1;
$this->getFolderStructure($uid, $rowFolder['id'], $indent_new);
}
return;
}
/**
* @desc pohendla ajax klice
@ -862,6 +965,25 @@ class LibraryBranching {
}
}
// Izbris itema iz knjiznice
elseif ($_GET['a'] == 'deleteItem') {
$item_id = $_POST['item_id'];
$item_type = $_POST['item_type'];
if($item_id != '' && $item_id > 0){
// if/blok
if ($item_type == '2') {
sisplet_query("DELETE FROM srv_if WHERE id='".$item_id."' AND folder!='0'");
}
// spremenljivka
else {
sisplet_query("DELETE FROM srv_spremenljivka WHERE id='".$item_id."'AND folder!='0'");
}
}
}
// Odpremo popup za dodajanje itema v knjiznico
elseif ($_GET['a'] == 'displayAddIntoLibraryPopup') {
@ -878,7 +1000,9 @@ class LibraryBranching {
$item_id = $_POST['item_id'];
$type = $_POST['type'];
$title = $_POST['title'];
$folder_id = $_POST['folder_id'];
if($folder_id == '' || $folder_id == 0)
$folder_id = $this->root_folder;
if ($item_id > 0) {

View File

@ -260,7 +260,7 @@ function check_library () {
function displayLibraryPopup(){
$('#fade').fadeTo('slow', 1);
$('#general_popup').html('').fadeIn('slow');
$('#general_popup').html('').addClass('library_popup').fadeIn('slow');
$("#general_popup").load('ajax.php?t=libraryBranching&a=displayLibraryPopup', {anketa: srv_meta_anketa_id});
}
@ -408,6 +408,28 @@ function selectLibraryItem(item_id){
$('#selected_item_counter').html(count);
}
// Prikaz urejanja posameznega itema na desni
function showLibraryItemEdit(element){
if($(element).parent().find('.item_settings').hasClass('displayNone')){
$('.item_settings').addClass('displayNone');
$(element).parent().find('.item_settings').removeClass('displayNone');
}
else{
$('.item_settings').addClass('displayNone');
$(element).parent().find('.item_settings').addClass('displayNone');
}
event.stopPropagation();
}
function deleteLibraryItem(item_id, item_type){
$.post('ajax.php?t=libraryBranching&a=deleteItem', {anketa: srv_meta_anketa_id, item_id: item_id, item_type: item_type}, function(){
$('#question_item_holder_'+item_id).remove();
});
}
// Funkcija za init drag drop vprasanj v knjiznici
function dropLibraryItem(item_id, item_type, folder_id){
@ -488,8 +510,7 @@ function displayAddIntoLibraryPopup(item_id, type){
function addIntoLibrary(item_id, type){
var title = $('#lib_item_title').val();
var folder_id = $('#lib_item_folder').val();
//popupClose();
$("#general_popup").load('ajax.php?t=libraryBranching&a=addIntoLibrary', {anketa: srv_meta_anketa_id, item_id:item_id, type:type, title:title});
$("#general_popup").load('ajax.php?t=libraryBranching&a=addIntoLibrary', {anketa: srv_meta_anketa_id, item_id:item_id, type:type, title:title, folder_id:folder_id});
}

View File

@ -5517,6 +5517,6 @@ function toggleParapodatki(){
function popupClose(){
$('#general_popup').fadeOut('slow').html('');
$('#general_popup').fadeOut('slow').html('').attr('class', 'divPopUp');
$('#fade').fadeOut('slow');
}

View File

@ -2375,6 +2375,10 @@ $lang = array (
"srv_library_folder_delete" => "Odstrani podmapo",
"srv_library_folder_rename" => "Preimenuj podmapo",
"srv_library_folder_name" => "Ime podmape",
"srv_library_delete_q" => "Odstrani vprašanje",
"srv_library_delete_if" => "Odstrani pogoj",
"srv_library_delete_block" => "Odstrani blok",
"srv_library_delete_loop" => "Odstrani zanko",
"srv_library_add_to_lib_title_q" => "Dodaj vprašanje v knjižnico",
"srv_library_add_to_lib_title_if" => "Dodaj pogoj v knjižnico",
"srv_library_add_to_lib_title_block" => "Dodaj blok v knjižnico",

View File

@ -2360,6 +2360,10 @@ $lang = array (
"srv_library_folder_delete" => "Remove folder",
"srv_library_folder_rename" => "Rename folder",
"srv_library_folder_name" => "Folder name",
"srv_library_delete_q" => "Remove question",
"srv_library_delete_if" => "Remove condition",
"srv_library_delete_block" => "Remove block",
"srv_library_delete_loop" => "Remove loop",
"srv_library_add_to_lib_title" => "Add to library",
"srv_library_add_to_lib_title_q" => "Add question to library",
"srv_library_add_to_lib_title_if" => "Add condition to library",

View File

@ -13317,6 +13317,16 @@ and open the template in the editor.
/*
Knjiznica v urejanju ankete
*/
.library_popup {
padding: 0;
}
.library_popup h2 {
padding: 16px 0 8px 0;
}
.library_popup h2 .faicon {
padding-left: 16px;
}
.lib_tabs {
display: flex;
}
@ -13327,7 +13337,6 @@ and open the template in the editor.
justify-content: center;
width: 50%;
height: 40px;
margin-bottom: 16px;
margin-top: -16px;
background-color: #F8F8F8;
}
@ -13344,7 +13353,8 @@ and open the template in the editor.
height: 540px;
max-height: 540px;
overflow-y: auto;
padding: 16px 16px 16px 0;
padding: 16px;
border-right: 1px #E5E5E5 solid;
}
.tab_content .content_left > ul {
margin-left: 0 !important;
@ -13502,6 +13512,7 @@ and open the template in the editor.
.tab_content .content_right .question_list .folder_item_holder .folder_item_info {
display: flex;
align-items: center;
position: relative;
box-sizing: border-box;
height: 36px;
max-width: 100%;
@ -13510,12 +13521,24 @@ and open the template in the editor.
border: 1px #E5E5E5 solid;
border-radius: 2px;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info.folder_item_info,
.tab_content .content_right .question_list .question_item_holder .folder_item_info.folder_item_info,
.tab_content .content_right .question_list .folder_item_holder .question_item_info.folder_item_info,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info.folder_item_info {
width: 710px;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info:hover,
.tab_content .content_right .question_list .question_item_holder .folder_item_info:hover,
.tab_content .content_right .question_list .folder_item_holder .question_item_info:hover,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info:hover {
background-color: #F8F8F8;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info:hover .dots_ver,
.tab_content .content_right .question_list .question_item_holder .folder_item_info:hover .dots_ver,
.tab_content .content_right .question_list .folder_item_holder .question_item_info:hover .dots_ver,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info:hover .dots_ver {
display: block;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info span,
.tab_content .content_right .question_list .question_item_holder .folder_item_info span,
.tab_content .content_right .question_list .folder_item_holder .question_item_info span,
@ -13535,13 +13558,98 @@ and open the template in the editor.
.tab_content .content_right .question_list .folder_item_holder .folder_item_info .item_type {
text-transform: uppercase;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info .dots_ver,
.tab_content .content_right .question_list .question_item_holder .folder_item_info .dots_ver,
.tab_content .content_right .question_list .folder_item_holder .question_item_info .dots_ver,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info .dots_ver {
display: none;
position: absolute;
right: 0;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info .dots_ver:before,
.tab_content .content_right .question_list .question_item_holder .folder_item_info .dots_ver:before,
.tab_content .content_right .question_list .folder_item_holder .question_item_info .dots_ver:before,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info .dots_ver:before {
color: #333333;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info .item_settings,
.tab_content .content_right .question_list .question_item_holder .folder_item_info .item_settings,
.tab_content .content_right .question_list .folder_item_holder .question_item_info .item_settings,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info .item_settings {
padding: 16px;
color: #333333;
font-weight: 400;
font-size: 16px;
line-height: 20px;
text-align: left;
background: #FFFFFF;
border: 1px solid #C4C4C4;
box-shadow: 0px 4px 7px rgba(0, 0, 0, 0.07);
position: absolute;
z-index: 9999;
right: 0;
top: 35px;
border-radius: 2px;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info .item_settings a,
.tab_content .content_right .question_list .question_item_holder .folder_item_info .item_settings a,
.tab_content .content_right .question_list .folder_item_holder .question_item_info .item_settings a,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info .item_settings a {
text-decoration: none;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info .item_settings ul,
.tab_content .content_right .question_list .question_item_holder .folder_item_info .item_settings ul,
.tab_content .content_right .question_list .folder_item_holder .question_item_info .item_settings ul,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info .item_settings ul {
margin: 0;
padding: 0;
list-style-type: none;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info .item_settings ul li,
.tab_content .content_right .question_list .question_item_holder .folder_item_info .item_settings ul li,
.tab_content .content_right .question_list .folder_item_holder .question_item_info .item_settings ul li,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info .item_settings ul li {
margin-bottom: 16px;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info .item_settings ul li:last-of-type,
.tab_content .content_right .question_list .question_item_holder .folder_item_info .item_settings ul li:last-of-type,
.tab_content .content_right .question_list .folder_item_holder .question_item_info .item_settings ul li:last-of-type,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info .item_settings ul li:last-of-type {
margin-bottom: 0;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info .item_settings ul li span,
.tab_content .content_right .question_list .question_item_holder .folder_item_info .item_settings ul li span,
.tab_content .content_right .question_list .folder_item_holder .question_item_info .item_settings ul li span,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info .item_settings ul li span {
cursor: pointer;
color: #333333;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info .item_settings ul li span:hover,
.tab_content .content_right .question_list .question_item_holder .folder_item_info .item_settings ul li span:hover,
.tab_content .content_right .question_list .folder_item_holder .question_item_info .item_settings ul li span:hover,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info .item_settings ul li span:hover {
color: #1E88E5;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info .item_settings ul li,
.tab_content .content_right .question_list .question_item_holder .folder_item_info .item_settings ul li,
.tab_content .content_right .question_list .folder_item_holder .question_item_info .item_settings ul li,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info .item_settings ul li {
color: #1E88E5;
transition: 0.2s;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info .item_settings ul li:hover,
.tab_content .content_right .question_list .question_item_holder .folder_item_info .item_settings ul li:hover,
.tab_content .content_right .question_list .folder_item_holder .question_item_info .item_settings ul li:hover,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info .item_settings ul li:hover {
color: #0059ab;
}
.tab_content .content_right .selected_items {
align-self: flex-end;
margin: 16px 0 8px 0;
margin: 16px 16px 8px 0;
color: #1E88E5;
}
.tab_content .content_right .button_holder {
margin-top: 0;
margin: 0 16px 16px 0;
}
#lib_additional_popup {
@ -13566,9 +13674,13 @@ and open the template in the editor.
margin: 4px 0 16px 0;
padding: 10px;
}
.add_to_lib_content input:last-child {
margin-bottom: 0;
.add_to_lib_content select {
height: 40px;
width: 100%;
margin: 4px 0 0 0;
padding: 10px;
}
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates

View File

@ -2,6 +2,19 @@
Knjiznica v urejanju ankete
*/
// Popup ima nestandarden padding
.library_popup{
padding: 0;
h2{
padding: 16px 0 8px 0;
.faicon{
padding-left: 16px;
}
}
}
// Popup knjiznica v urejanju ankete - tabi
.lib_tabs{
display: flex;
@ -15,7 +28,7 @@
width: 50%;
height: 40px;
margin-bottom: 16px;
//margin-bottom: 16px;
margin-top: -16px;
background-color: $light-gray;
@ -36,7 +49,9 @@
height: 540px;
max-height: 540px;
overflow-y: auto;
padding: 16px 16px 16px 0;
padding: 16px;
border-right: 1px $gray solid;
> ul {
margin-left: 0 !important;
@ -201,6 +216,7 @@
.folder_item_info{
display: flex;
align-items: center;
position: relative;
box-sizing: border-box;
height: 36px;
@ -211,8 +227,16 @@
border: 1px $gray solid;
border-radius: 2px;
&.folder_item_info{
width: 710px;
}
&:hover{
background-color: $light-gray;
.dots_ver{
display: block;
}
}
&.ui-draggable-dragging{
@ -231,19 +255,51 @@
.item_type{
text-transform: uppercase;
}
.dots_ver{
display: none;
position: absolute;
right: 0;
&:before{
color: $black;
}
}
.item_settings{
@include hover_basic();
position: absolute;
z-index: 9999;
right: 0;
top: 35px;
border-radius: 2px;
ul li{
color: $blue;
transition: 0.2s;
&:hover{
color: $dark-blue;
}
}
}
}
}
}
.selected_items{
align-self: flex-end;
margin: 16px 0 8px 0;
margin: 16px 16px 8px 0;
color: $blue;
}
.button_holder{
margin-top: 0;
margin: 0 16px 16px 0;
}
}
}
@ -278,14 +334,14 @@
margin: 4px 0 16px 0;
padding: 10px;
&:last-child{
margin-bottom: 0;
}
}
select{
height: 40px;
width: 100%;
margin: 4px 0 0 0;
padding: 10px;
}
}