diff --git a/admin/survey/classes/class.LibraryBranching.php b/admin/survey/classes/class.LibraryBranching.php index e04e367b3..092dc7caf 100644 --- a/admin/survey/classes/class.LibraryBranching.php +++ b/admin/survey/classes/class.LibraryBranching.php @@ -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 '
  • '; + echo '
  • '; // Ikoni puscice in mape @@ -365,15 +372,25 @@ class LibraryBranching { echo '
    ';*/ + $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 '
    '; echo ' '; echo '
    '; + echo ' '; echo ' '.substr(strip_tags($spremenljivka['naslov']), 0, 40).''; + + // Urejanje Vprasanja + if($this->tab == '0' && ($spremenljivka['folder_uid'] == $global_user_id || $admin_type == 0)){ + + // Tri pikice za prikaz urejanja vprasanja + echo ' '; + + // Skrit div za urejanje vprasanja + echo '
    '; + echo '
      '; + echo '
    • '.$lang['srv_library_delete_q'].'
    • '; + echo '
    '; + echo '
    '; + } + echo '
    '; echo '
    '; @@ -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 = '[LOOP]'; $icon = 'loop_32'; + $type = 'loop'; } elseif($if['tip'] == 1){ $type_string = '[BLOCK]'; $icon = 'block_32'; + $type = 'block'; } else{ $type_string = '[IF]'; $icon = 'if_32'; + $type = 'if'; } $type_string = ''; @@ -460,8 +498,24 @@ class LibraryBranching { echo ' '; echo '
    '; + echo ' '; echo ' '.$type_string.substr(strip_tags($if['label']), 0, 40).''; + + // Urejanje Vprasanja + if($this->tab == '0' && ($if['folder_uid'] == $global_user_id || $admin_type == 0)){ + + // Tri pikice za prikaz urejanja folderja + echo ' '; + + // Skrit div za urejanje folderja + echo '
    '; + echo '
      '; + echo '
    • '.$lang['srv_library_delete_'.$type].'
    • '; + echo '
    '; + echo '
    '; + } + echo '
    '; echo ''; @@ -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,9 +581,28 @@ class LibraryBranching { echo ''; echo ''; - /*echo ''; - echo '';*/ + // Izbira direktorija + echo ''; + $this->getFolderStructure($uid=$global_user_id); + if($admin_type == 0) + $this->getFolderStructure($uid='0'); + + echo ''; + echo ''; @@ -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 @@ -861,6 +964,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 @@ -878,8 +1000,10 @@ class LibraryBranching { $item_id = $_POST['item_id']; $type = $_POST['type']; $title = $_POST['title']; + $folder_id = $_POST['folder_id']; - $folder_id = $this->root_folder; + if($folder_id == '' || $folder_id == 0) + $folder_id = $this->root_folder; if ($item_id > 0) { diff --git a/admin/survey/script/library.js b/admin/survey/script/library.js index 4e0991bc7..86bf5956c 100644 --- a/admin/survey/script/library.js +++ b/admin/survey/script/library.js @@ -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}); } diff --git a/admin/survey/script/script.js b/admin/survey/script/script.js index 1d200dfa2..0f314a190 100644 --- a/admin/survey/script/script.js +++ b/admin/survey/script/script.js @@ -5517,6 +5517,6 @@ function toggleParapodatki(){ function popupClose(){ - $('#general_popup').fadeOut('slow').html(''); + $('#general_popup').fadeOut('slow').html('').attr('class', 'divPopUp'); $('#fade').fadeOut('slow'); } diff --git a/lang/1.php b/lang/1.php index 4cbbdbafb..baf1a2065 100644 --- a/lang/1.php +++ b/lang/1.php @@ -2374,7 +2374,11 @@ $lang = array ( "srv_library_folder_add" => "Dodaj podmapo", "srv_library_folder_delete" => "Odstrani podmapo", "srv_library_folder_rename" => "Preimenuj podmapo", - "srv_library_folder_name" => "Ime podmape", + "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", diff --git a/lang/2.php b/lang/2.php index 44f837ec2..ef5535580 100644 --- a/lang/2.php +++ b/lang/2.php @@ -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", diff --git a/public/css/admin_new.css b/public/css/admin_new.css index b9d35b994..088c8d7c5 100644 --- a/public/css/admin_new.css +++ b/public/css/admin_new.css @@ -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 diff --git a/resources/sass/admin_new/pages/survey_edit/library.scss b/resources/sass/admin_new/pages/survey_edit/library.scss index f59a8e6df..dac169423 100644 --- a/resources/sass/admin_new/pages/survey_edit/library.scss +++ b/resources/sass/admin_new/pages/survey_edit/library.scss @@ -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; } }