Knjiznica - popravki dodajanja pogojev, obvestilo o uspesnem dodajanju...

This commit is contained in:
pero1203 2022-03-08 11:57:51 +01:00
parent 52026fddb3
commit 5db2702289
6 changed files with 261 additions and 14 deletions

View File

@ -353,6 +353,18 @@ class LibraryBranching {
// Seznam vprasanj iz knjiznice
else{
// Najprej zlistamo vse child folderje
/*$sqlFolders = sisplet_query("SELECT id, naslov FROM srv_library_folder WHERE parent='".$this->folder_id."' AND tip='".$this->tab."' ORDER BY naslov");
if (mysqli_num_rows($sqlFolders) > 0){
// Loop po vseh mapah znotraj parenta
while ($rowFolders = mysqli_fetch_array($sqlFolders)) {
$this->displayRightFolderItem($rowFolders['id'], $rowFolders['naslov']);
}
}
echo '<div class="survey_title"></div>';*/
// 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");
while ($rowFolderQuestions = mysqli_fetch_array($sqlFolderQuestions)) {
@ -428,13 +440,28 @@ class LibraryBranching {
private function displayRightIfItem($if){
global $lang;
if($if['tip'] == 2){
$type_string = '<span class="item_type">[LOOP]</span>';
$icon = 'loop_32';
}
elseif($if['tip'] == 1){
$type_string = '<span class="item_type">[BLOCK]</span>';
$icon = 'block_32';
}
else{
$type_string = '<span class="item_type">[IF]</span>';
$icon = 'if_32';
}
$type_string = '';
echo '<div id="question_item_holder_'.$if['id'].'" class="question_item_holder" onClick="selectLibraryItem(\''.$if['id'].'\');">';
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 list"></span>';
echo ' <span class="title">'.substr(strip_tags($if['label']), 0, 40).'</span>';
echo ' <span class="faicon '.$icon.'"></span>';
echo ' <span class="title">'.$type_string.substr(strip_tags($if['label']), 0, 40).'</span>';
echo ' </div>';
echo '</div>';
@ -461,20 +488,108 @@ class LibraryBranching {
private function displayAddIntoLibrary($item_id, $type){
global $lang;
// Naslov v oknu
echo '<h2>'.$lang['srv_library_add_to_lib_title'].'</h2>';
// Podtip elementa (vprasanje, blok, if...)
if($type == '2'){
// Dobimo tip (if ali blok) in naslov
$sql = sisplet_query("SELECT tip, label FROM srv_if WHERE id='".$item_id."'");
$row = mysqli_fetch_array($sql);
$tip = $row['tip'];
$naslov = $row['label'];
if($tip == '2')
$subtype = 'loop';
elseif($tip == '1')
$subtype = 'block';
else
$subtype = 'if';
}
else{
// Dobimo naslov
$sql = sisplet_query("SELECT naslov FROM srv_spremenljivka WHERE id='".$item_id."'");
$row = mysqli_fetch_array($sql);
$naslov = strip_tags($row['naslov']);
$subtype = 'q';
}
// Naslov okna glede na tip elementa (vprasanje, blok, if...)
echo '<h2>'.$lang['srv_library_add_to_lib_title_'.$subtype].'</h2>';
// Vsebina
echo '<div class="content">';
echo 'Dodajanje...';
echo '<div class="content add_to_lib_content">';
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">';*/
echo '</div>';
echo '<div class="button_holder">';
echo ' <button class="medium white-blue" onClick="popupClose();">'.$lang['edit1338'].'</button>';
echo ' <button class="medium blue" onClick="addIntoLibrary(\''.$item_id.'\', \''.$type.'\');">'.$lang['srv_library_add_to_lib'].'</button>';
echo '</div>';
}
private function displayAddIntoLibrarySuccess($item_id, $type, $success){
global $lang;
// Podtip elementa (vprasanje, blok, if...)
if($type == '2'){
// Dobimo tip (if ali blok) in naslov
$sql = sisplet_query("SELECT tip, label FROM srv_if WHERE id='".$item_id."'");
$row = mysqli_fetch_array($sql);
$tip = $row['tip'];
$naslov = $row['label'];
if($tip == '2')
$subtype = 'loop';
elseif($tip == '1')
$subtype = 'block';
else
$subtype = 'if';
}
else{
// Dobimo naslov
$sql = sisplet_query("SELECT naslov FROM srv_spremenljivka WHERE id='".$item_id."'");
$row = mysqli_fetch_array($sql);
$naslov = strip_tags($row['naslov']);
$subtype = 'q';
}
// Naslov okna glede na tip elementa (vprasanje, blok, if...)
echo '<h2>'.$lang['srv_library_add_to_lib_title_'.$subtype].'</h2>';
// Vsebina
echo '<div class="content add_to_lib_content">';
if($success){
echo $lang['srv_library_add_to_lib_success_'.$subtype];
}
else{
echo $lang['srv_library_add_to_lib_success_err'];
}
echo '</div>';
echo '<div class="button_holder">';
echo ' <button class="medium blue" onClick="popupClose();">'.$lang['srv_zapri'].'</button>';
echo '</div>';
}
// Dobimo root folder uporabnika
private function getRootFolder(){
global $global_user_id;
@ -663,7 +778,57 @@ class LibraryBranching {
// Dodamo if/blok v anketo
if($item_type == '2'){
$b->if_new($endif, $parent, $if_id=$item_id, $vrstni_red, $spremenljivka, $if, $copy=$item_id, $no_content=0, $include_element=true);
$spremenljivka = $last_spr;
$copy = $item_id;
$sqln = sisplet_query("SELECT MAX(i.number) AS number FROM srv_if i, srv_branching b WHERE b.ank_id='$this->ank_id' AND b.element_if=i.id");
$rown = mysqli_fetch_array($sqln);
$number = $rown['number'] + 1;
// Dobimo tip (if ali blok)
$sqlt = sisplet_query("SELECT tip FROM srv_if WHERE id='".$item_id."'");
$rowt = mysqli_fetch_array($sqlt);
$tip = $rowt['tip'];
$sql = sisplet_query("INSERT INTO srv_if (id, number, tip) VALUES ('', '$number', '$tip')");
if (!$sql) echo mysqli_error($GLOBALS['connect_db']);
$if_id = mysqli_insert_id($GLOBALS['connect_db']);
$sql = sisplet_query("SELECT parent, vrstni_red, element_spr, element_if FROM srv_branching WHERE element_spr = '$spremenljivka' AND element_if='0'");
$row = mysqli_fetch_array($sql);
if ($spremenljivka == 0 ) {
$row['parent'] = 0;
$row['vrstni_red'] = 0;
}
$next_element = $b->find_next_element($row['parent'], $row['vrstni_red']);
if ($next_element == null) { // next_element je prazen na koncu ifa, takrat je tudi nov if prazen
$next_element['parent'] = $row['parent'];
$next_element['vrstni_red'] = $row['vrstni_red'] + 1;
$next_element['element_spr'] = 0;
$next_element['element_if'] = 0;
}
// dodajamo loop - preverimo da ga ne zelimo vgnezditi v drug loop
if ($tip == 2) {
// preverimo, da ga ne dodamo v ze obstojec loop
if ($b->find_loop_parent($next_element['parent']) > 0)
$add = false;
// preverimo, da ge ne dodamo direktno pred obstojec loop (ker potem objame obstojec loop in dobimo vgnezdenje)
if ($next_element['element_if'] > 0)
if ($b->find_loop_child($next_element['element_if']) > 0)
$add = false;
}
$b->if_new($endif=0, $next_element['parent'], $if_id, $next_element['vrstni_red'], $next_element['element_spr'], $next_element['element_if'], $copy, $no_content=false, $include_element=false);
$ba->check_loop();
$b->repare_vrstni_red();
}
// Dodamo vprasanje v anketo
else{
@ -712,6 +877,7 @@ class LibraryBranching {
$item_id = $_POST['item_id'];
$type = $_POST['type'];
$title = $_POST['title'];
$folder_id = $this->root_folder;
@ -722,14 +888,19 @@ class LibraryBranching {
// v knjiznico dodamo spremenljivko
if($type == 1) {
$id = $b->nova_spremenljivka(-1, 0, 0, $item_id);
sisplet_query("UPDATE srv_spremenljivka SET folder='".$folder_id."' WHERE id='".$id."'");
sisplet_query("UPDATE srv_spremenljivka SET folder='".$folder_id."', naslov='".$title."' WHERE id='".$id."'");
}
// v knjiznico dodamo if/blok
elseif($type == 2) {
$id = $b->if_copy(0, $item_id, true);
sisplet_query("UPDATE srv_if SET folder='".$folder_id."' WHERE id='".$id."'");
sisplet_query("UPDATE srv_if SET folder='".$folder_id."', label='".$title."' WHERE id='".$id."'");
}
$this->displayAddIntoLibrarySuccess($item_id, $type, $success=true);
}
else{
$this->displayAddIntoLibrarySuccess($item_id, $type, $success=false);
}
}
}

View File

@ -277,6 +277,8 @@ function displayLibraryTab(tab){
$('#tab_0').addClass('active');
}
$('#active_tab').val(tab);
$("#tab_content").load('ajax.php?t=libraryBranching&a=displayLibraryTabContent', {anketa: srv_meta_anketa_id, tab: tab});
}
@ -485,7 +487,9 @@ function displayAddIntoLibraryPopup(item_id, type){
// Dodamo element v knjiznico
function addIntoLibrary(item_id, type){
popupClose();
var title = $('#lib_item_title').val();
$("#general_popup").load('ajax.php?t=libraryBranching&a=addIntoLibrary', {anketa: srv_meta_anketa_id, item_id:item_id, type:type});
//popupClose();
$("#general_popup").load('ajax.php?t=libraryBranching&a=addIntoLibrary', {anketa: srv_meta_anketa_id, item_id:item_id, type:type, title:title});
}

View File

@ -2375,8 +2375,21 @@ $lang = array (
"srv_library_folder_delete" => "Odstrani podmapo",
"srv_library_folder_rename" => "Preimenuj podmapo",
"srv_library_folder_name" => "Ime podmape",
"srv_library_add_to_lib_title" => "Dodaj element v knjižnico",
"srv_library_add_to_lib" => "Dodaj v knjižnico",
"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",
"srv_library_add_to_lib_title_loop" => "Dodaj zanko v knjižnico",
"srv_library_add_to_lib" => "Dodaj v knjižnico",
"srv_library_add_to_lib_name_q" => "Ime vprašanja",
"srv_library_add_to_lib_name_if" => "Ime pogoja",
"srv_library_add_to_lib_name_block" => "Ime bloka",
"srv_library_add_to_lib_name_loop" => "Ime zanke",
"srv_library_add_to_lib_folder" => "Dodaj v mapo",
"srv_library_add_to_lib_success_q" => "Vprašanje je bilo uspešno dodano v knjižnico.",
"srv_library_add_to_lib_success_if" => "Pogoj je bil uspešno dodan v knjižnico.",
"srv_library_add_to_lib_success_block" => "Blok je bil uspešno dodan v knjižnico.",
"srv_library_add_to_lib_success_loop" => "Zanka je bila uspešno dodana v knjižnico.",
"srv_library_add_to_lib_success_err" => "Prišlo je do napake pri dodajanju v knjižnico!",
"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

@ -2360,7 +2360,16 @@ $lang = array (
"srv_library_folder_delete" => "Remove folder",
"srv_library_folder_rename" => "Rename folder",
"srv_library_folder_name" => "Folder name",
"srv_library_add_to_lib_title" => "Add element to library",
"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",
"srv_library_add_to_lib_title_block" => "Add block to library",
"srv_library_add_to_lib_title_loop" => "Add loop to library",
"srv_library_add_to_lib_name_q" => "Question name",
"srv_library_add_to_lib_name_if" => "Condition name",
"srv_library_add_to_lib_name_block" => "Block name",
"srv_library_add_to_lib_name_loop" => "Loop name",
"srv_library_add_to_lib_folder" => "Add to folder",
"srv_library_add_to_lib" => "Add to library",
"srv_nadzor" => "Supervise",
"srv_knjiznica_add" => "To add a question to a library, drag it to this field",

View File

@ -13529,6 +13529,12 @@ and open the template in the editor.
.tab_content .content_right .question_list .folder_item_holder .folder_item_info span.faicon {
color: #1E88E5;
}
.tab_content .content_right .question_list .question_item_holder .question_item_info .item_type,
.tab_content .content_right .question_list .question_item_holder .folder_item_info .item_type,
.tab_content .content_right .question_list .folder_item_holder .question_item_info .item_type,
.tab_content .content_right .question_list .folder_item_holder .folder_item_info .item_type {
text-transform: uppercase;
}
.tab_content .content_right .selected_items {
align-self: flex-end;
margin: 16px 0 8px 0;
@ -13550,6 +13556,19 @@ and open the template in the editor.
width: 100%;
}
.add_to_lib_content {
display: flex;
flex-direction: column;
}
.add_to_lib_content input {
height: 40px;
width: 100%;
margin: 4px 0 16px 0;
padding: 10px;
}
.add_to_lib_content input:last-child {
margin-bottom: 0;
}
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates

View File

@ -227,6 +227,10 @@
color: $blue;
}
}
.item_type{
text-transform: uppercase;
}
}
}
}
@ -258,3 +262,30 @@
width: 100%;
}
}
// Popup vsebina pri dodajanju v knjiznico
.add_to_lib_content{
display: flex;
flex-direction: column;
label{
}
input{
height: 40px;
width: 100%;
margin: 4px 0 16px 0;
padding: 10px;
&:last-child{
margin-bottom: 0;
}
}
select{
}
}