From a0a65a43237cfca613d7afe33e034e7839c64a6d Mon Sep 17 00:00:00 2001 From: patrik2020 Date: Sat, 6 Aug 2022 16:00:27 +0200 Subject: [PATCH 1/7] BUGS-714: Prikaz odgovorov na traku: resena tezava --- admin/survey/classes/class.Vprasanje.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/survey/classes/class.Vprasanje.php b/admin/survey/classes/class.Vprasanje.php index 8b4df1510..0818741d7 100644 --- a/admin/survey/classes/class.Vprasanje.php +++ b/admin/survey/classes/class.Vprasanje.php @@ -8368,7 +8368,7 @@ class Vprasanje { } //posodobi skrite vrednosti odgovorov za diferencial trak - function ajax_diferencial_trak_skrite_vrednosti($spr_id, $num_grids, $diferencial_trak_starting_num){ + function ajax_diferencial_trak_skrite_vrednosti($spr_id=null, $num_grids=null, $diferencial_trak_starting_num=null){ if(isset ($_POST['spr_id'])){ $spr_id = $_POST['spr_id']; } From d885d390cc8a96bd41a3e2fefde74bbd54229d29 Mon Sep 17 00:00:00 2001 From: patrik2020 Date: Sat, 6 Aug 2022 18:04:37 +0200 Subject: [PATCH 2/7] BUGS-714: Prikaz odgovorov na traku: resena tezava --- admin/survey/classes/class.Vprasanje.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/survey/classes/class.Vprasanje.php b/admin/survey/classes/class.Vprasanje.php index 0818741d7..f443dcfa2 100644 --- a/admin/survey/classes/class.Vprasanje.php +++ b/admin/survey/classes/class.Vprasanje.php @@ -8368,7 +8368,7 @@ class Vprasanje { } //posodobi skrite vrednosti odgovorov za diferencial trak - function ajax_diferencial_trak_skrite_vrednosti($spr_id=null, $num_grids=null, $diferencial_trak_starting_num=null){ + function ajax_diferencial_trak_skrite_vrednosti($spr_id=null, $num_grids=null, $diferencial_trak_starting_num=null ){ if(isset ($_POST['spr_id'])){ $spr_id = $_POST['spr_id']; } From 54de175cf2e20d39994abd6da4870c853631aa9a Mon Sep 17 00:00:00 2001 From: patrik2020 Date: Sun, 7 Aug 2022 21:33:03 +0200 Subject: [PATCH 3/7] Latex za izvoze: IZVOZ-99: Izvoz odgovorov v PDF bug - tabela besedilo z vnosom posebnega znaka --- .../survey/export/latexclasses/Vprasanja/MultiGridLatex.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/admin/survey/export/latexclasses/Vprasanja/MultiGridLatex.php b/admin/survey/export/latexclasses/Vprasanja/MultiGridLatex.php index b7b7e129b..76f08c1a8 100644 --- a/admin/survey/export/latexclasses/Vprasanja/MultiGridLatex.php +++ b/admin/survey/export/latexclasses/Vprasanja/MultiGridLatex.php @@ -215,7 +215,8 @@ class MultiGridLatex extends LatexSurveyElement //echo "userAnswer Missing je prisoten in njegov grd_id je: ".$userAnswerMissing['grd_id'].'
'; $okvirZOdgovori = $this->getAnswerSymbol($export_format, $fillablePdf, 6, $spremenljivke['grids'], count($missingOdgovori), $userAnswerMissing['grd_id']); }else{ - $okvirZOdgovori = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], count($missingOdgovori),$this->encodeText($userAnswer['text'])); + //$okvirZOdgovori = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], count($missingOdgovori),$this->encodeText($userAnswer['text'])); + $okvirZOdgovori = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], count($missingOdgovori),($userAnswer['text'])); } //$okvirZOdgovori = $this->getAnswerSymbol($export_format, $fillablePdf, $spremenljivke['tip'], $spremenljivke['grids'], count($missingOdgovori),$this->encodeText($userAnswer['text'])); @@ -887,7 +888,8 @@ class MultiGridLatex extends LatexSurveyElement $izpis .= '\\textcolor{crta}{'.$data[$j].'}'; }else{ if($spremenljivke['tip']==19){ //ce je tip vprasanja besedilo - $izpis .= '\\textcolor{crta}{'.$data[$j].'}'; + //$izpis .= '\\textcolor{crta}{'.$data[$j].'}'; + $izpis .= '\\textcolor{crta}{'.$this->encodeText($data[$j]).'}'; }else{ $izpis .= '\\textcolor{crta}{'.$vodoravniOdgovori[$i].'}'; } From dd0f48f2fd852ecf9ebc7d969c4116196904dab0 Mon Sep 17 00:00:00 2001 From: pero1203 Date: Mon, 8 Aug 2022 10:36:10 +0200 Subject: [PATCH 4/7] Brsanje vprasanj - sql in ustrezno kopiranje vprasanja pri brisanju --- admin/survey/Branching.php | 22 +++++-- admin/survey/SurveyAdmin.php | 4 ++ .../survey/classes/class.VprasanjeDeleted.php | 63 ++++++++++++++++--- lang/1.php | 3 + lang/2.php | 3 + sql/update2.sql | 3 +- 6 files changed, 84 insertions(+), 14 deletions(-) diff --git a/admin/survey/Branching.php b/admin/survey/Branching.php index 16095d52f..232370f24 100644 --- a/admin/survey/Branching.php +++ b/admin/survey/Branching.php @@ -329,7 +329,7 @@ class Branching { } // Knjiznica - echo '
'.$lang['srv_library'].'
'; + echo '
'.$lang['srv_library'].'
'; echo '
'; // normalna anketa @@ -342,8 +342,15 @@ class Branching { echo '
'; echo '
'.$lang['srv_block_random_blocks'].'
'; - //echo '
'; - } + } + + // Pobrisana vprasanja + $vd = new VprasanjeDeleted($this->anketa); + $deleted_vrasanja_count = $vd->countDeletedVprasanja(); + if($deleted_vrasanja_count > 0){ + echo '
'; + echo '
'.$lang['srv_deleted_vprasanja'].' ('.$deleted_vrasanja_count.')
'; + } } else { @@ -391,8 +398,15 @@ class Branching { echo '
'; echo '
'.$lang['srv_block_random_blocks'].'
'; - //echo '
'; } + + // Pobrisana vprasanja + $vd = new VprasanjeDeleted($this->anketa); + $deleted_vrasanja_count = $vd->countDeletedVprasanja(); + if($deleted_vrasanja_count > 0){ + echo '
'; + echo '
'.$lang['srv_deleted_vprasanja'].' ('.$deleted_vrasanja_count.')
'; + } } echo ''; diff --git a/admin/survey/SurveyAdmin.php b/admin/survey/SurveyAdmin.php index 0893767ee..8a62385f8 100644 --- a/admin/survey/SurveyAdmin.php +++ b/admin/survey/SurveyAdmin.php @@ -4830,6 +4830,10 @@ class SurveyAdmin $rowg = Cache::srv_spremenljivka($spremenljivka); + // Preden vprasanje zbrisemo po novem ustvarimo kopijo vprasanja med zbrisanimi (knjiznica zbrisanih vprasanj) + $vd = new VprasanjeDeleted($this->anketa); + $vd->createDeletedVprasanje($spremenljivka); + // pri brisanju multiple grid vprasanja, moramo pobrisate tudi vse child spremenljivke (ker kljuci niso nastavljeni) if ($rowg['tip'] == 24) { $sqld = sisplet_query("SELECT spr_id FROM srv_grid_multiple WHERE parent='$spremenljivka'"); diff --git a/admin/survey/classes/class.VprasanjeDeleted.php b/admin/survey/classes/class.VprasanjeDeleted.php index a73e7c2ef..fddd7f381 100644 --- a/admin/survey/classes/class.VprasanjeDeleted.php +++ b/admin/survey/classes/class.VprasanjeDeleted.php @@ -8,28 +8,73 @@ class VprasanjeDeleted { - var $anketa; // trenutna anketa - var $spremenljivka; // spremenljivka + var $ank_id; // trenutna anketa public function __construct ($anketa = 0) { if (isset ($_GET['anketa'])) - $this->anketa = $_GET['anketa']; + $this->ank_id = $_GET['anketa']; elseif (isset ($_POST['anketa'])) - $this->anketa = $_POST['anketa']; + $this->ank_id = $_POST['anketa']; elseif ($anketa != 0) - $this->anketa = $anketa; - - SurveyInfo::getInstance()->SurveyInit($this->anketa); + $this->ank_id = $anketa; } - // Prikazemo seznam pobrisanih vprasanj uporabnika - public function displayDeletedVprasanja(){ + private function displayDeletedVprasanja(){ + global $lang; + global $global_user_id; + global $admin_type; + + // Loop po vseh pobrisanih vprasanjih v anketi + $sql = sisplet_query("SELECT sd.*, s.naslov + FROM srv_spremenljivka_deleted sd, srv_spremenljivka s + WHERE sd.ank_id='".$this->ank_id."' AND sd.spr_id=s.id + ORDER BY sd.delete_time DESC + "); + if(mysqli_num_rows($sql) == 0){ + return; + } + + while($row = mysqli_fetch_array($sql)){ + + echo '
'; + + echo ' '; + + echo '
'; + + echo ' '; + echo ' '.substr(strip_tags($row['naslov']), 0, 40).''; + + echo '
'; + + echo '
'; + } + } + + + // Pri brisanju najprej skopiramo vprasanje ki ga brisemo + public function createDeletedVprasanje($spr_id){ global $global_user_id; + // Skopiramo spremenljivko + $b = new Branching($this->ank_id); + $new_spr_id = $b->nova_spremenljivka(-3, 0, 0, $spr_id); + + // Zabelezimo v bazi povezavo z anketo in cas brisanja + $sql1 = sisplet_query("INSERT INTO srv_spremenljivka_deleted (spr_id, ank_id, delete_time) VALUES ('".$new_spr_id."', '".$this->ank_id."', NOW())"); + } + + // Vrnemo stevilo pobrisanih vprasanj v anketi + public function countDeletedVprasanja(){ + + $sql = sisplet_query("SELECT COUNT(id) AS cnt FROM srv_spremenljivka_deleted WHERE ank_id='".$this->ank_id."'"); + $row = mysqli_fetch_array($sql); + + return $row['cnt']; } } diff --git a/lang/1.php b/lang/1.php index d90c7fba6..4ef88223f 100644 --- a/lang/1.php +++ b/lang/1.php @@ -2431,6 +2431,9 @@ $lang = array ( "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_deleted_vprasanja" => "Pobrisana vprašanja", + "srv_nadzor" => "Nadzor", "srv_knjiznica_add" => "Če želite dodati spremenljivko v knjižnico, jo povlecite v to polje", "srv_knjiznica_copy" => "Če želite kopirati vprašanje, ga označite z ikono COPY", diff --git a/lang/2.php b/lang/2.php index 0231af67b..b328d7172 100644 --- a/lang/2.php +++ b/lang/2.php @@ -2412,6 +2412,9 @@ $lang = array ( "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_deleted_vprasanja" => "Deleted questions", + "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", diff --git a/sql/update2.sql b/sql/update2.sql index bc13c40a4..baa0d9214 100644 --- a/sql/update2.sql +++ b/sql/update2.sql @@ -9646,12 +9646,13 @@ UPDATE misc SET value='22.07.13' WHERE what="version"; INSERT INTO srv_grupa (id, ank_id, naslov, vrstni_red) VALUES (-3, 0, 'system', 0); CREATE TABLE IF NOT EXISTS srv_spremenljivka_deleted ( + id INT(11) NOT NULL auto_increment, spr_id INT(11) NOT NULL, ank_id INT(11) NOT NULL, delete_time DATETIME(3) NOT NULL, CONSTRAINT fk_srv_spremenljivka_deleted_ank_id FOREIGN KEY (ank_id) REFERENCES srv_anketa (id) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT fk_srv_spremenljivka_deleted_spr_id FOREIGN KEY (spr_id) REFERENCES srv_spremenljivka (id) ON DELETE CASCADE ON UPDATE CASCADE, PRIMARY KEY (id) -) ENGINE=InnoDB DEFAULT CHARSET=utf8;; +) ENGINE=InnoDB DEFAULT CHARSET=utf8; UPDATE misc SET value='22.08.05' WHERE what="version"; From 04f7f29675a408b4749741ea49dc652a00e92c36 Mon Sep 17 00:00:00 2001 From: pero1203 Date: Mon, 8 Aug 2022 11:15:10 +0200 Subject: [PATCH 5/7] Podatki - obdobje - popravek preklopa radio gumbov --- .../classes/class.SurveyTimeProfiles.php | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/admin/survey/classes/class.SurveyTimeProfiles.php b/admin/survey/classes/class.SurveyTimeProfiles.php index e57a46775..a8936524d 100644 --- a/admin/survey/classes/class.SurveyTimeProfiles.php +++ b/admin/survey/classes/class.SurveyTimeProfiles.php @@ -532,22 +532,22 @@ class SurveyTimeProfiles { echo '

' . $lang['srv_time_profile_time'] . '

'; echo '
'; - echo ''; - echo ' '; - echo ''; - echo ''; - echo ' '; - echo '' . "\n" ; + echo ' '; + echo '  '; + echo ' '; + echo ' '; + echo '  '; + echo ' ' . "\n" ; echo '
'; echo '
'; - echo ''; - echo ''; + echo ' '; + echo ' '; echo '
'; echo ''; From 7ee7626db42e7bb8ca70f15120e2f859bcb5e0b5 Mon Sep 17 00:00:00 2001 From: pero1203 Date: Mon, 8 Aug 2022 11:19:28 +0200 Subject: [PATCH 6/7] Zamenjan vrstni red sklopov tipov vprasanj pri dodajanju v anketo --- admin/survey/Branching.php | 50 +++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/admin/survey/Branching.php b/admin/survey/Branching.php index 232370f24..c64a5606d 100644 --- a/admin/survey/Branching.php +++ b/admin/survey/Branching.php @@ -439,9 +439,11 @@ class Branching { // Vsebina okna echo '
'; - echo '
'; + // Segment kategorije + echo '
'; echo '

'.$lang['srv_sklop_osnovna2'].'

'; + echo '

'.$lang['srv_vprasanje_tip_1'].'

'; echo '

'.$lang['srv_vprasanje_tip_1'].' - '.$lang['srv_dropdown'].'

'; echo '

'.$lang['srv_vprasanje_tip_2'].'

'; @@ -449,6 +451,18 @@ class Branching { echo '
'; + // Segment vnos + echo '
'; + echo '

'.$lang['srv_sklop_osnovna_vnos2'].'

'; + + echo '

'.$lang['srv_vprasanje_tip_7'].'

'; + echo '

'.$lang['srv_vprasanje_tip_21'].'

'; + echo '

'.$lang['srv_number_insert_1'].'

'; + + echo '
'; + + + // Segment tabele echo '
'; echo '

'.$lang['srv_vprasanje_tables'].'

'; @@ -460,6 +474,19 @@ class Branching { echo '
'; + // Segment ostale tabele + echo '
'; + echo '

'.$lang['srv_sklop_tabele_ostale'].'

'; + + echo '

'.$lang['srv_vprasanje_tip_16'].'

'; + echo '

'.$lang['srv_vprasanje_tip_20'].'

'; + echo '

'.$lang['srv_vprasanje_tip_19'].'

'; + echo '

'.$lang['srv_survey_table_multiple'].'

'; + + echo '
'; + + + // Segment posebna vprasanja echo '
'; echo '

'.$lang['srv_sklop_posebna'].'

'; @@ -473,27 +500,6 @@ class Branching { echo '
'; - echo '
'; - echo '

'.$lang['srv_sklop_osnovna_vnos2'].'

'; - - echo '

'.$lang['srv_vprasanje_tip_7'].'

'; - echo '

'.$lang['srv_vprasanje_tip_21'].'

'; - echo '

'.$lang['srv_number_insert_1'].'

'; - - echo '
'; - - - echo '
'; - echo '

'.$lang['srv_sklop_tabele_ostale'].'

'; - - echo '

'.$lang['srv_vprasanje_tip_16'].'

'; - echo '

'.$lang['srv_vprasanje_tip_20'].'

'; - echo '

'.$lang['srv_vprasanje_tip_19'].'

'; - echo '

'.$lang['srv_survey_table_multiple'].'

'; - - echo '
'; - - echo '
'; echo '

'.$lang['srv_standardni_vnosi'].'

'; From fab1f7f38aab661a8273841d3f1ee4e38ff9884b Mon Sep 17 00:00:00 2001 From: patrik2020 Date: Mon, 8 Aug 2022 16:30:51 +0200 Subject: [PATCH 7/7] Latex za izvoze: Analize - Sumarnik: ureditev tezave s posebnimi znaki --- .../export/latexclasses/class.LatexAnalysisElement.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/admin/survey/export/latexclasses/class.LatexAnalysisElement.php b/admin/survey/export/latexclasses/class.LatexAnalysisElement.php index a5b57be12..87047e273 100644 --- a/admin/survey/export/latexclasses/class.LatexAnalysisElement.php +++ b/admin/survey/export/latexclasses/class.LatexAnalysisElement.php @@ -933,12 +933,12 @@ class LatexAnalysisElement{ $text = str_replace('>','\textgreater',$text); $text = str_replace(' ',' ',$text); if(strpos($text, '&')){ //ce je prisotno v besedilu &' - $text = str_replace('&','\& ',$text); + $text = str_replace('&','\&',$text); }else{ - $text = str_replace('&','\& ',$text); + $text = str_replace('&','\&',$text); } - $andSymbolPresent = 0; +/* $andSymbolPresent = 0; $posAndSymbolPresent = strpos($text,'&'); if($posAndSymbolPresent !== false){ //ce je v besedilu prisoten '&' zapisan kot '&' $text = str_replace('&','\&',$text); @@ -946,7 +946,7 @@ class LatexAnalysisElement{ } if($andSymbolPresent == 0){ $text = str_replace('&','\&',$text); - } + } */ /* //$text = str_replace('<','\textless ',$text); $text = str_replace('<','\textless',$text); @@ -1074,7 +1074,7 @@ class LatexAnalysisElement{ $text = "\seqsplit{".$text."}"; //ni v redu seqsplit, ker ne dela, če so posebni znaki } //priprava izpisa zelo dolgega besedila brez presledkov - konec - + //echo "Encoding ".$text."
"; return strip_tags($text); //vrni tekst brez html tag-ov }