Redesign - knjiznica

This commit is contained in:
pero1203 2022-02-28 13:28:57 +01:00
parent d68255cafe
commit 79050e7d72
6 changed files with 251 additions and 46 deletions

View File

@ -7,6 +7,7 @@ class LibraryBranching {
var $tab = 0; // tip pove v bazi srv_library_folder za kater tip gre - 0->vprasanja, 1->ankete (vprasanja iz anket)
var $folder_id = 0; // Trenutno aktiven folder
var $expanded_folders = array(); // Razprti folderji
public function __construct ($ank_id=0) {
@ -15,8 +16,26 @@ class LibraryBranching {
die();
$this->ank_id = $ank_id;
// Nastavimo vse razprte folderje (vsi parenti ce je child aktiven)
$this->setExpandedFolders($this->folder_id);
}
// Loop cez folderje in rekurzivno nastavi razprte (parenti aktivnega)
private function setExpandedFolders($folder_id){
$this->expanded_folders[] = $folder_id;
if($folder_id == '0'){
return;
}
$sqlFolders = sisplet_query("SELECT parent FROM srv_library_folder WHERE id='".$folder_id."' AND tip='".$this->tab."'");
$rowFolders = mysqli_fetch_array($sqlFolders);
$this->setExpandedFolders($rowFolders['parent']);
}
/**
* @desc prikaze knjiznico znotraj ankete
@ -101,6 +120,20 @@ class LibraryBranching {
echo '<ul class="folder_list public">';
$this->displayFolderParent($parent=0, $uid=0);
echo '</ul>';
// Prikazemo se skrit div za dodaten popup (rename, add - title)
echo '<div id="lib_additional_popup" class="divPopUp"></div>';
// Klik izven "Vec" - zapremo okno
echo '<script>
$(document).mouseup(function(e){
var container = $(".folder_item_settings, .dots_ver");
if (!container.is(e.target) && container.has(e.target).length === 0){
$(".folder_item_settings").addClass("displayNone");
}
});
</script>';
}
private function displayFolderParent($parent, $uid) {
@ -157,7 +190,9 @@ class LibraryBranching {
$this->displayFolderItem($rowFolders['id'], $rowFolders['naslov'], $uid);
echo '<ul id="folder_list_'.$rowFolders['id'].'" class="folder_list" style="display:none;">';
$expanded = in_array($rowFolders['id'], $this->expanded_folders) ? true : false;
echo '<ul id="folder_list_'.$rowFolders['id'].'" class="folder_list" '.($expanded ? '' : 'style="display:none;"').'>';
// Rekurzivno izpisemo childe
$this->displayFolderParent($rowFolders['id'], $uid);
@ -186,12 +221,14 @@ class LibraryBranching {
global $lang;
global $admin_type;
echo '<li id="folder_item_'.$id.'" class="folder_item '.($this->folder_id == $id ? 'active' : '').'" onClick="openLibraryFolder(\''.$id.'\');">';
$expanded = in_array($id, $this->expanded_folders) ? true : false;
echo '<li id="folder_item_'.$id.'" class="folder_item '.($this->folder_id == $id ? 'active' : '').' '.($expanded ? 'open' : 'close').'" onClick="openLibraryFolder(\''.$id.'\');">';
// Ikoni puscice in mape
echo ' <span id="folder_arrow_'.$id.'" class="faicon arrow2_d" onClick="expandLibraryFolder(\''.$id.'\');"></span>';
echo ' <span class="faicon folder_empty"></span>';
echo ' <span id="folder_arrow_'.$id.'" class="faicon arrow2_'.($expanded ? 'u' : 'd').'" onClick="expandLibraryFolder(\''.$id.'\');"></span>';
echo ' <span id="folder_folder_'.$id.'" class="faicon '.($expanded ? 'folder' : 'folder_empty').'"></span>';
// Naslov folderja
echo ' <span class="folder_item_title">'.$title.'</span>';
@ -201,15 +238,17 @@ class LibraryBranching {
// Urejanje folderja
if($uid != 0 || $admin_type == 0){
if($uid != 0){
// Tri pikice za prikaz urejanja folderja
echo ' <span class="faicon dots_ver" onClick="showLibraryFolderEdit(this);"></span>';
// Skrit div za urejanje folderja
echo ' <div class="folder_item_settings displayNone">';
echo ' <span onClick="addLibraryFolder(\''.$id.'\');">'.$lang['srv_library_folder_add'].'</span>';
echo ' <span onClick="deleteLibraryFolder(\''.$id.'\');">'.$lang['srv_library_folder_delete'].'</span>';
echo ' <span onClick="renameLibraryFolder(\''.$id.'\');">'.$lang['srv_library_folder_rename'].'</span>';
echo ' <ul>';
echo ' <li onClick="displayAddFolderPopup(\''.$id.'\', \''.$uid.'\');">'.$lang['srv_library_folder_add'].'</li>';
echo ' <li onClick="displayRenameFolderPopup(\''.$id.'\', \''.$title.'\');">'.$lang['srv_library_folder_rename'].'</li>';
echo ' <li onClick="deleteLibraryFolder(\''.$id.'\');">'.$lang['srv_library_folder_delete'].'</li>';
echo ' </ul>';
echo ' </div>';
}
@ -234,6 +273,40 @@ class LibraryBranching {
echo '</li>';
}
// Dodaten popup za ime direktorija pri dodajanju
private function displayAddFolderPopup($folder_id, $uid){
global $lang;
echo '<h2>'.$lang['srv_library_folder_name'].'</h2>';
echo '<div>';
echo ' <input type="text" id="lib_folder_name" class="large">';
echo '</div>';
echo '<div class="button_holder">';
echo ' <button class="medium white-blue" onClick="closeAdditionalPopup();">'.$lang['edit1338'].'</button>';
echo ' <button class="medium blue" onClick="addLibraryFolder(\''.$folder_id.'\', \''.$uid.'\');">'.$lang['srv_library_folder_add'].'</button>';
echo '</div>';
}
// Dodaten popup za ime direktorija pri preimenovanju
private function displayRenameFolderPopup($folder_id, $folder_name){
global $lang;
echo '<h2>'.$lang['srv_library_folder_name'].'</h2>';
echo '<div>';
echo ' <input type="text" id="lib_folder_name" class="large" value="'.$folder_name.'">';
echo '</div>';
echo '<div class="button_holder">';
echo ' <button class="medium white-blue" onClick="closeAdditionalPopup();">'.$lang['edit1338'].'</button>';
echo ' <button class="medium blue" onClick="renameLibraryFolder(\''.$folder_id.'\');">'.$lang['srv_library_folder_rename'].'</button>';
echo '</div>';
}
// Prikazemo seznam vprasanj v folderju
private function displayQuestionList(){
global $global_user_id;
@ -303,14 +376,14 @@ class LibraryBranching {
}
// Prikazemo vrstico (item, folder) na desni
private function displayRightFolderItem($folder_id, $folder_title){
private function displayRightFolderItem($folder_id, $folder_name){
global $lang;
echo '<div id="folder_item_holder_'.$folder_id.'" class="folder_item_holder" onClick="openLibraryFolder(\''.$folder_id.'\');">';
echo ' <div class="folder_item_info">';
echo ' <span class="faicon folder_empty"></span>';
echo ' <span class="title">'.$folder_title.'</span>';
echo ' <span class="title">'.$folder_name.'</span>';
echo ' </div>';
echo '</div>';
@ -390,15 +463,44 @@ class LibraryBranching {
$folder_id = $_POST['folder_id'];
$uid = $_POST['uid'];
$folder_name = $_POST['folder_name'];
$s = sisplet_query("INSERT INTO srv_library_folder (uid, tip, naslov, parent) VALUES ('".$uid."', '".$this->tab."', '".$lang['srv_newfolder']."', '".$folder_id."')");
if (!$s) echo mysqli_error($GLOBALS['connect_db']);
if($folder_id != '' && $folder_id > 0){
$s = sisplet_query("INSERT INTO srv_library_folder (uid, tip, naslov, parent) VALUES ('".$uid."', '".$this->tab."', '".$folder_name."', '".$folder_id."')");
if (!$s) echo mysqli_error($GLOBALS['connect_db']);
$insert_id = mysqli_insert_id($GLOBALS['connect_db']);
// Nastavimo za aktivni folder in izrisemo na novo
$this->folder_id = $insert_id;
// Posodobimo vse razprte folderje (vsi parenti ce je child aktiven)
$this->setExpandedFolders($this->folder_id);
// Prikazemo folderje
$this->displayFolderList();
}
}
// Preimenujemo folder
elseif ($_GET['a'] == 'renameFolder') {
$insert_id = mysqli_insert_id($GLOBALS['connect_db']);
$folder_id = $_POST['folder_id'];
$folder_name = $_POST['folder_name'];
// Nastavimo za aktivni folder in izrisemo na novo
$this->folder_id = $insert_id;
$this->displayFolderList();
if($folder_id != '' && $folder_id > 0){
$s = sisplet_query("UPDATE srv_library_folder SET naslov='".$folder_name."' WHERE id='".$folder_id."'");
if (!$s) echo mysqli_error($GLOBALS['connect_db']);
// Nastavimo za aktivni folder in izrisemo na novo
$this->folder_id = $folder_id;
// Posodobimo vse razprte folderje (vsi parenti ce je child aktiven)
$this->setExpandedFolders($this->folder_id);
$this->displayFolderList();
}
}
// Brisemo folder
@ -406,29 +508,56 @@ class LibraryBranching {
$folder_id = $_POST['folder_id'];
$sql = sisplet_query("SELECT parent FROM srv_library_folder WHERE id = '$folder_id'");
$row = mysqli_fetch_array($sql);
if($folder_id != '' && $folder_id > 0){
// Prestavimo vse iteme v parent folder
if ($this->tab == 0) {
sisplet_query("UPDATE srv_spremenljivka SET folder='".$row['parent']."' WHERE folder='".$folder_id."'");
sisplet_query("UPDATE srv_if SET folder='".$row['parent']."' WHERE folder='".$folder_id."'");
}
else {
sisplet_query("UPDATE srv_library_anketa SET folder='".$row['parent']."' WHERE folder='".$folder_id."'");
$sql = sisplet_query("SELECT parent FROM srv_library_folder WHERE id = '".$folder_id."'");
$row = mysqli_fetch_array($sql);
// Prestavimo vse iteme v parent folder
if ($this->tab == 0) {
sisplet_query("UPDATE srv_spremenljivka SET folder='".$row['parent']."' WHERE folder='".$folder_id."'");
sisplet_query("UPDATE srv_if SET folder='".$row['parent']."' WHERE folder='".$folder_id."'");
}
else {
sisplet_query("UPDATE srv_library_anketa SET folder='".$row['parent']."' WHERE folder='".$folder_id."'");
}
// Prestavimo vse child folderje v parent folder
sisplet_query("UPDATE srv_library_folder SET parent='".$row['parent']."' WHERE parent='".$folder_id."'");
// Pobrisemo folder
sisplet_query("DELETE FROM srv_library_folder WHERE id='".$folder_id."'");
// Nastavimo parenta za aktivni folder in izrisemo na novo
$this->folder_id = $row['parent'];
// Posodobimo vse razprte folderje (vsi parenti ce je child aktiven)
$this->setExpandedFolders($this->folder_id);
// Prikazemo fodlderje
$this->displayFolderList();
}
// Prestavimo vse child folderje v parent folder
sisplet_query("UPDATE srv_library_folder SET parent='".$row['parent']."' WHERE parent='".$folder_id."'");
// Pobrisemo folder
sisplet_query("DELETE FROM srv_library_folder WHERE id='".$folder_id."'");
// Nastavimo parenta za aktivni folder in izrisemo na novo
$this->folder_id = $row['parent'];
$this->displayFolderList();
}
// Odpremo popup za poimenovanje novega folderja
elseif ($_GET['a'] == 'addFolderPopup') {
$folder_id = $_POST['folder_id'];
$uid = $_POST['uid'];
$this->displayAddFolderPopup($folder_id, $uid);
}
// Odpremo popup za poimenovanje folderja
elseif ($_GET['a'] == 'renameFolderPopup') {
$folder_id = $_POST['folder_id'];
$folder_name = $_POST['folder_name'];
$this->displayRenameFolderPopup($folder_id, $folder_name);
}
// Odpremo folder z vprasanji v knjiznici
elseif ($_GET['a'] == 'displayLibraryQuestionList') {

View File

@ -291,8 +291,8 @@ function openLibraryFolder(folder_id){
// Ce poddirektoriji niso vidni jih prikazemo
if(!$('#folder_list_'+folder_id).is(':visible')){
$('#folder_list_'+folder_id).slideDown();
$('#folder_arrow_'+folder_id).removeClass('arrow2_d');
$('#folder_arrow_'+folder_id).addClass('arrow2_u');
$('#folder_arrow_'+folder_id).removeClass('arrow2_d').addClass('arrow2_u');
$('#folder_folder_'+folder_id).removeClass('folder_empty').addClass('folder');
}
var tab = $('#active_tab').val();
@ -316,13 +316,13 @@ function expandLibraryFolder(folder_id){
if($('#folder_list_'+folder_id).is(':visible')){
$('#folder_list_'+folder_id).slideUp();
$('#folder_arrow_'+folder_id).removeClass('arrow2_u');
$('#folder_arrow_'+folder_id).addClass('arrow2_d');
$('#folder_arrow_'+folder_id).removeClass('arrow2_u').addClass('arrow2_d');
$('#folder_folder_'+folder_id).removeClass('folder').addClass('folder_empty');
}
else{
$('#folder_list_'+folder_id).slideDown();
$('#folder_arrow_'+folder_id).removeClass('arrow2_d');
$('#folder_arrow_'+folder_id).addClass('arrow2_u');
$('#folder_arrow_'+folder_id).removeClass('arrow2_d').addClass('arrow2_u');
$('#folder_folder_'+folder_id).removeClass('folder_empty').addClass('folder');
}
event.stopPropagation();
@ -343,12 +343,38 @@ function showLibraryFolderEdit(element){
event.stopPropagation();
}
// Zaprtje dodatnega popupa
function closeAdditionalPopup(){
$("#lib_additional_popup").fadeOut().html();
}
// Ime novega folderja
function displayAddFolderPopup(parent_folder_id, uid){
var tab = $('#active_tab').val();
$("#lib_additional_popup").fadeIn();
$("#lib_additional_popup").load('ajax.php?t=libraryBranching&a=addFolderPopup', {anketa: srv_meta_anketa_id, tab: tab, folder_id: parent_folder_id, uid: uid});
}
// Ime obstojecega folderja
function displayRenameFolderPopup(folder_id, folder_name){
var tab = $('#active_tab').val();
$("#lib_additional_popup").fadeIn();
$("#lib_additional_popup").load('ajax.php?t=libraryBranching&a=renameFolderPopup', {anketa: srv_meta_anketa_id, tab: tab, folder_id: folder_id, folder_name: folder_name});
}
// Dodamo nov folder
function addLibraryFolder(parent_folder_id, uid){
var tab = $('#active_tab').val();
var folder_name = $("#lib_folder_name").val();
$("#lib_folder_list").load('ajax.php?t=libraryBranching&a=addFolder', {anketa: srv_meta_anketa_id, tab: tab, folder_id: parent_folder_id, uid: uid});
$("#lib_folder_list").load('ajax.php?t=libraryBranching&a=addFolder', {anketa: srv_meta_anketa_id, tab: tab, folder_id: parent_folder_id, uid: uid, folder_name: folder_name});
}
// Pobrisemo obstojeci folder
@ -363,8 +389,9 @@ function deleteLibraryFolder(folder_id){
function renameLibraryFolder(folder_id){
var tab = $('#active_tab').val();
var folder_name = $("#lib_folder_name").val();
//$("#lib_folder_list").load('ajax.php?t=libraryBranching&a=deleteFolder', {anketa: srv_meta_anketa_id, tab: tab, folder_id: folder_id});
$("#lib_folder_list").load('ajax.php?t=libraryBranching&a=renameFolder', {anketa: srv_meta_anketa_id, tab: tab, folder_id: folder_id, folder_name: folder_name});
}

View File

@ -2372,6 +2372,7 @@ $lang = array (
"srv_library_folder_add" => "Dodaj direktorij",
"srv_library_folder_delete" => "Odstrani direktorij",
"srv_library_folder_rename" => "Preimenuj direktorij",
"srv_library_folder_name" => "Ime direktorija",
"srv_nadzor" => "Nadzor",
"srv_knjiznica_add" => "&#268;e &#382;elite dodati spremenljivko v knji&#382;nico, jo povlecite v to polje",
"srv_knjiznica_copy" => "&#268;e &#382;elite kopirati vpra&#154;anje, ga ozna&#269;ite z ikono COPY",

View File

@ -2354,9 +2354,10 @@ $lang = array (
"srv_library_survey_title" => "Questions library",
"srv_library_survey_add" => "Add to survey",
"srv_library_item_counter" => "No. of selected questions",
"srv_library_folder_add" => "Add direktorij",
"srv_library_folder_delete" => "Remove direktorij",
"srv_library_folder_rename" => "Rename direktorij",
"srv_library_folder_add" => "Add folder",
"srv_library_folder_delete" => "Remove folder",
"srv_library_folder_rename" => "Rename folder",
"srv_library_folder_name" => "Folder name",
"srv_nadzor" => "Supervise",
"srv_knjiznica_add" => "To add a question to a library, drag it to this field",
"srv_knjiznica_copy" => "To copy a question, click on COPY icon",

View File

@ -13319,6 +13319,13 @@ and open the template in the editor.
.tab_content .content_left ul li.folder_item .folder_item_settings ul li span:hover {
color: #1E88E5;
}
.tab_content .content_left ul li.folder_item .folder_item_settings ul li {
color: #1E88E5;
transition: 0.2s;
}
.tab_content .content_left ul li.folder_item .folder_item_settings ul li:hover {
color: #0059ab;
}
.tab_content .content_right {
display: flex;
flex-direction: column;
@ -13402,6 +13409,18 @@ and open the template in the editor.
margin-top: 0;
}
#lib_additional_popup {
position: absolute !important;
top: 40%;
left: calc(50% - 200px);
width: 400px;
border: 1px solid #C4C4C4;
box-shadow: 0px 4px 7px rgba(0, 0, 0, 0.07);
}
#lib_additional_popup input[type=text] {
width: 100%;
}
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates

View File

@ -69,6 +69,9 @@
border-color: $blue;
background-color: $light-gray;
}
&.open{
}
&:hover{
background-color: $light-gray;
@ -112,6 +115,16 @@
top: 38px;
border-radius: 2px;
ul li{
color: $blue;
transition: 0.2s;
&:hover{
color: $dark-blue;
}
}
}
}
}
@ -212,3 +225,18 @@
}
}
}
#lib_additional_popup{
position: absolute !important;
top: 40%;
left: calc(50% - 200px);
width: 400px;
border: 1px solid $dark-gray;
box-shadow: 0px 4px 7px rgba(0,0,0,.07);
input[type="text"]{
width: 100%;
}
}