From ac6fe78a5d99c5c9692eacf5524f258d60a062b8 Mon Sep 17 00:00:00 2001 From: pero1203 Date: Thu, 6 Oct 2022 11:23:59 +0200 Subject: [PATCH] Mape v mojih anketah - prenova - V DELU --- admin/survey/SurveyAdmin.php | 7 +- admin/survey/SurveyAdminAjax.php | 36 +- admin/survey/ajax.php | 2 +- admin/survey/classes/class.SurveyList.php | 107 +- .../classes/class.SurveyListFolders.php | 1921 ++--------------- admin/survey/script/surveyList.js | 165 +- public/css/admin_new.css | 35 +- .../pages/my_surveys/survey_list_folders.scss | 22 +- .../pages/my_surveys/top_buttons.scss | 6 +- 9 files changed, 444 insertions(+), 1857 deletions(-) diff --git a/admin/survey/SurveyAdmin.php b/admin/survey/SurveyAdmin.php index 3835a53a2..09d6c5ac9 100644 --- a/admin/survey/SurveyAdmin.php +++ b/admin/survey/SurveyAdmin.php @@ -3541,14 +3541,17 @@ class SurveyAdmin private function displaySeznamAnket(){ global $lang, $site_url, $global_user_id, $admin_type, $site_domain; + # naložimo razred z seznamom anket - $SL = new SurveyList(); + $SL = ($has_folders = SurveyList::hasFolders()) ? new SurveyListFolders() : new SurveyList(); + + $SLCount = $SL->countSurveys(); $SLCountPhone = $SL->countPhoneSurveys(); // VSEBINA POSAMEZNEGA TABA PRI MOJIH ANKETAH - echo '
'; + echo '
'; // izpis pregledovanja if ((!isset($_GET['a']) && !isset($_GET['anketa'])) || ($_GET['a'] == 'pregledovanje')) { diff --git a/admin/survey/SurveyAdminAjax.php b/admin/survey/SurveyAdminAjax.php index 50a3cf07d..d89a2816a 100644 --- a/admin/survey/SurveyAdminAjax.php +++ b/admin/survey/SurveyAdminAjax.php @@ -4087,13 +4087,17 @@ class SurveyAdminAjax { // shranimo nastavitve UserSetting::getInstance()->saveUserSetting(); - $SL = new SurveyList(); + $SL = (SurveyList::hasFolders()) ? new SurveyListFolders() : new SurveyList(); + $SL->getSurveys(); } elseif ($_GET['a'] == 'surveyListFilter') { - // setiramo nastavitve v UserSetting - $SL = new SurveyList(); - $SL -> setFilter(); + + // setiramo nastavitve v UserSetting + $SL = (SurveyList::hasFolders()) ? new SurveyListFolders() : new SurveyList(); + + $SL->setFilter(); + $SL->getSurveys(); } elseif ($_GET['a'] == 'default_surveyListSettings') { @@ -4120,8 +4124,10 @@ class SurveyAdminAjax { if ($_POST['sortby'] != "" ) UserSetting::getInstance()->setUserSetting('survey_list_order_by', $_POST['sortby']. ",".$_POST['sorttype']); - $SL = new SurveyList(); + $SL = (SurveyList::hasFolders()) ? new SurveyListFolders() : new SurveyList(); + $SL->saveCssSettings($_POST['data']); + $SL->getSurveys(); } elseif ($_GET['a'] == 'surveyList_goTo') { @@ -4130,7 +4136,7 @@ class SurveyAdminAjax { UserSetting::getInstance()->setUserSetting('survey_list_order_by', $_POST['sortby']. ",".$_POST['sorttype']); UserSetting::getInstance()->saveUserSetting(); - $SL = new SurveyList(); + $SL = (SurveyList::hasFolders()) ? new SurveyListFolders() : new SurveyList(); $SL->getSurveys(); } @@ -4141,37 +4147,37 @@ class SurveyAdminAjax { UserSetting::getInstance()->setUserSetting('survey_list_folders', $val); UserSetting::getInstance()->saveUserSetting(); - $SL = new SurveyList(); + $SL = (SurveyList::hasFolders()) ? new SurveyListFolders() : new SurveyList(); $SL->getSurveys(); } elseif ($_GET['a'] == 'surveyList_user') { - $SL = new SurveyList(); + $SL = (SurveyList::hasFolders()) ? new SurveyListFolders() : new SurveyList(); + $SL -> setUserId(); $SL->getSurveys(); - } elseif ($_GET['a'] == 'surveyList_language') { - $SL = new SurveyList(); + $SL = (SurveyList::hasFolders()) ? new SurveyListFolders() : new SurveyList(); + $SL -> setUserLanguage(); $SL->getSurveys(); - } elseif ($_GET['a'] == 'surveyList_gdpr') { - $SL = new SurveyList(); + $SL = (SurveyList::hasFolders()) ? new SurveyListFolders() : new SurveyList(); + $SL -> setUserGDPR(); $SL->getSurveys(); - } elseif ($_GET['a'] == 'surveyList_library') { - $SL = new SurveyList(); + $SL = (SurveyList::hasFolders()) ? new SurveyListFolders() : new SurveyList(); + $SL -> setUserLibrary(); $SL->getSurveys(); - } elseif ($_GET['a'] == 'survey_chaneg_type') { global $site_url; diff --git a/admin/survey/ajax.php b/admin/survey/ajax.php index a181afd8d..f0ad1cd3a 100644 --- a/admin/survey/ajax.php +++ b/admin/survey/ajax.php @@ -510,7 +510,7 @@ elseif ($_GET['t'] == 'surveyList') { } elseif ($_GET['t'] == 'surveyListFolders') { $SL = new SurveyListFolders(); - $SL->Ajax(); + $SL->ajax(); } elseif ($_GET['t'] == 'library') { $l = new Library(); diff --git a/admin/survey/classes/class.SurveyList.php b/admin/survey/classes/class.SurveyList.php index 3d06bafde..ba025639f 100644 --- a/admin/survey/classes/class.SurveyList.php +++ b/admin/survey/classes/class.SurveyList.php @@ -21,55 +21,55 @@ if(session_id() == '') {session_start();} class SurveyList { - private $surveys_ids = array(); # array z id-ji anket - private $settingsArray = array(); # array z nastavitvami + protected $surveys_ids = array(); # array z id-ji anket + protected $settingsArray = array(); # array z nastavitvami - private $parentFolder; # osnovni direktorij - private $currentFolder; # trenutni direktorij - private $folders = array(); # array z direktoriji + protected $parentFolder; # osnovni direktorij + protected $currentFolder; # trenutni direktorij + protected $folders = array(); # array z direktoriji - private $user_id = null; # ali filtriramo po userju - private $g_uid = null; # globalna nastavitev user_id - private $g_adminType = null; # globalna nastavitev adminType + protected $user_id = null; # ali filtriramo po userju + protected $g_uid = null; # globalna nastavitev user_id + protected $g_adminType = null; # globalna nastavitev adminType - private $onlyPhone = false; # Ali prikazujemo samo telefonske ankete + protected $onlyPhone = false; # Ali prikazujemo samo telefonske ankete - private $lang_id = 0; # nastavitev languageType + protected $lang_id = 0; # nastavitev languageType - private $gdpr = 0; # nastavitev gdpr filter za ankete + protected $gdpr = 0; # nastavitev gdpr filter za ankete - private $dostopCondition = null; # shranimo omejitve dostopa (glede na tip uporabnika in uporabniški uid) - private $folderCondition = null; # shranimo omejevanja folderjev + protected $dostopCondition = null; # shranimo omejitve dostopa (glede na tip uporabnika in uporabniški uid) + protected $folderCondition = null; # shranimo omejevanja folderjev - private $libraryCondition = null; # shranimo novo omejevanje folderjev (moja knjiznica) - private $currentLibrary; # trenutni direktorij moje knjiznice + protected $libraryCondition = null; # shranimo novo omejevanje folderjev (moja knjiznica) + protected $currentLibrary; # trenutni direktorij moje knjiznice - private $filter = null; # filter za ime ankete + protected $filter = null; # filter za ime ankete - private $show_folders = 0; # ali prikazujemo mape ali ne (default zaenkrat da) + protected $show_folders = 0; # ali prikazujemo mape ali ne (default zaenkrat da) - private $isSearch = 0; # ali izvajamo search po anektah - private $searchString = ''; # geslo po katerem iscemo po anketah - private $searchStringProcessed = array(); # geslo po katerem iscemo po anketah, obdelano (skrajsano da isce tudi po drugih sklanjatvah) - private $searchSettings = array(); # nastavitve searcha + protected $isSearch = 0; # ali izvajamo search po anektah + protected $searchString = ''; # geslo po katerem iscemo po anketah + protected $searchStringProcessed = array(); # geslo po katerem iscemo po anketah, obdelano (skrajsano da isce tudi po drugih sklanjatvah) + protected $searchSettings = array(); # nastavitve searcha # privzete nastavitve - private $pageno = 1; # na kateri strani navigacije smo - private $max_pages = 1; # koliko strani imamo - private $sortby = SRV_LIST_ORDER_BY; # id polja po katerem sortiramo - private $sorttype = SRV_LIST_ORDER_TYPE; # tip sortiranja 1= deac, 0 = asc - private $rec_per_page = SRV_LIST_REC_PER_PAGE; # število zapisov na stran - private $orderByText = false; # ali sortiramo po tekstovnem polju (takrat uporabimo upper) + protected $pageno = 1; # na kateri strani navigacije smo + protected $max_pages = 1; # koliko strani imamo + protected $sortby = SRV_LIST_ORDER_BY; # id polja po katerem sortiramo + protected $sorttype = SRV_LIST_ORDER_TYPE; # tip sortiranja 1= deac, 0 = asc + protected $rec_per_page = SRV_LIST_REC_PER_PAGE; # število zapisov na stran + protected $orderByText = false; # ali sortiramo po tekstovnem polju (takrat uporabimo upper) # privzete možnosti - private $sort_types_options = array(1=>'DESC',2=>'ASC'); # možni načini sortiranja - private $appropriateStatus = '5,6'; # statusi ki veljajo kot ustrezni + protected $sort_types_options = array(1=>'DESC',2=>'ASC'); # možni načini sortiranja + protected $appropriateStatus = '5,6'; # statusi ki veljajo kot ustrezni # možni načini sortiranja - private $order_by_options = array( + protected $order_by_options = array( 1=>'naslov', 2=>'active', 3=>'lib_glb', @@ -95,7 +95,7 @@ class SurveyList { ); # polja za prikaz - private $dataFields = array( + protected $dataFields = array( 1=>array('id'=>1,'visible'=>1,'order_by'=>'naslov','header_field'=>'sl_naslov','alsoResize'=>'.sl_naslov','minWidth'=>100,'data_field'=>'naslov','data_type'=>'naslov', 'data_css'=>'sl_naslov_padding', 'order_text'=>true), 2=>array('id'=>2,'visible'=>1,'order_by'=>'active','header_field'=>'sl_active','lang_label'=>'sl_active_1','alsoResize'=>'.sl_active','minWidth'=>20,'maxWidth'=>30,'data_field'=>'active','data_type'=>'active','data_css'=>'anl_ac'), 3=>array('id'=>3,'visible'=>0,'order_by'=>'lib_glb','header_field'=>'sl_lib_glb','lang_label'=>'sl_lib_glb_1','alsoResize'=>'.sl_lib_glb','minWidth'=>20,'maxWidth'=>30,'data_field'=>'lib_glb','data_type'=>'lib_glb','data_css'=>'anl_ac'), @@ -229,9 +229,18 @@ class SurveyList { // Vrnemo, ce imamo vklopljene folderje ali ne - public function hasFolders(){ + public static function hasFolders(){ + global $global_user_id; - if($this->show_folders == '1') + $show_folders = 0; + + $userAccess = UserAccess::getInstance($global_user_id); + $detect = New Mobile_Detect(); + + if($userAccess->checkUserAccess('my_survey_folders') && !$detect->isMobile() && !$detect->isTablet()) + $show_folders = UserSetting::getInstance()->getUserSetting('survey_list_folders'); + + if($show_folders == '1') return true; else return false; @@ -889,16 +898,6 @@ class SurveyList { global $global_user_id; global $lang; - - // Prikaz novih folderjev - V DELU - /*if($this->show_folders == 1){ - - $surveyFolders = new SurveyListFolders(); - $surveyFolders->display(); - - return; - }*/ - // Gumba za ustvarjanje ankete - nekatere niso prikazane pri searchu if($this->isSearch != 1){ @@ -1506,7 +1505,7 @@ class SurveyList { } // Prikazemo gumb za sortiranje seznama anket - private function displaySortButton(){ + protected function displaySortButton(){ global $lang, $site_url; echo $lang['orderby']; @@ -1539,7 +1538,7 @@ class SurveyList { } // Prikazemo gumb za filtriranje seznama anket - private function displayFilterButton(){ + protected function displayFilterButton(){ global $lang, $site_url, $admin_languages; echo '
user_id || $this->lang_id != 0 || $this->gdpr != 0) ? 'class="active"' : '').'>'; @@ -1593,7 +1592,7 @@ class SurveyList { } // Prikazemo preklop med navadnim pogledom in pogledom s folderji - private function displayFolderSwitch(){ + protected function displayFolderSwitch(){ global $lang, $global_user_id; // Preverimo, ce je funkcionalnost v paketu, ki ga ima uporabnik @@ -1628,7 +1627,7 @@ class SurveyList { } // Prikazemo nastavitve za napredno iskanje ce iscemo po anketah - private function displaySearchSettings(){ + protected function displaySearchSettings(){ global $lang; global $site_url; @@ -2092,7 +2091,7 @@ class SurveyList { return $result; } - private function createOrderUrlNew($id=null, $txt) { + protected function createOrderUrlNew($id=null, $txt) { global $site_url; if (!isset($id) || $id == null || $id == "") { @@ -2441,7 +2440,7 @@ class SurveyList { } /** vrne sql string za omejevanje dostopa uporabniku */ - function getLanguageLimit() { + protected function getLanguageLimit() { global $global_admin_type; if ((int)$this->lang_id > 0) { @@ -2450,7 +2449,7 @@ class SurveyList { } /** vrne sql string za omejevanje dostopa uporabniku */ - function getDostopAnketa() { + protected function getDostopAnketa() { global $global_admin_type; global $global_user_id; @@ -2503,7 +2502,7 @@ class SurveyList { } /** vrne order string za SQL s katerim sortiramo */ - private function getOrderString() { + protected function getOrderString() { if (!isset($this->sortby) || (int)$this->sortby == 0) { $this->sortby = SRV_LIST_ORDER_BY; @@ -2536,13 +2535,13 @@ class SurveyList { } /** vrne Limit string za SQL s katerim prika?emo posamezno stran */ - private function getLimitString() { + protected function getLimitString() { $result = " LIMIT " . ($this->pageno * $this->rec_per_page - $this->rec_per_page) . ", " . $this->rec_per_page; return $result; } // vrne sql string za search po anketah glede na nastavitve searcha - private function getSearchString(){ + protected function getSearchString(){ $search_text = mysqli_real_escape_string($GLOBALS['connect_db'], $this->searchString); $search_text = stripslashes(stripslashes($search_text)); @@ -2641,7 +2640,7 @@ class SurveyList { } // Dobimo vse parametri searcha - private function getSearchParams(){ + protected function getSearchParams(){ global $site_url; $params = ''; diff --git a/admin/survey/classes/class.SurveyListFolders.php b/admin/survey/classes/class.SurveyListFolders.php index b20547be3..fd9412b2b 100644 --- a/admin/survey/classes/class.SurveyListFolders.php +++ b/admin/survey/classes/class.SurveyListFolders.php @@ -5,34 +5,34 @@ */ -class SurveyListFolders { +class SurveyListFolders extends SurveyList{ - - private $current_folder = 0; // Trenutni odprt folder - private $pageno = 1; // Trenutna stran (paginacija) - - - public function __construct() { - global $admin_type, $global_user_id, $site_path; - - - } + + private $current_folder = array(); // Prikazemo pogled s folderji - public function display() { + public function getSurveys() { global $global_user_id; global $lang; + + // Nastavimo trenutni folder na root + $this->current_folder = array( + 'id' => 0, + 'naslov' => $lang['srv_mySurvey_all_surveys'] + ); + + echo '
'; // Levi meni s folderji - echo '
'; + echo '
'; $this->displayLeftContent(); echo '
'; // Desna vsebina - echo '
'; + echo '
'; $this->displayRightContent(); echo '
'; @@ -95,12 +95,12 @@ class SurveyListFolders { // Nastavimo, ce je to trenutno odprt folder if($row['active'] == '1') - $this->current_folder = $row['id']; + $this->current_folder = $row; } // Izrisemo folder box - echo '
'; + echo '
'; echo ''; echo ''; @@ -124,20 +124,42 @@ class SurveyListFolders { private function displayRightContent(){ // Naslov trenutnega folderja - echo '
'; + echo '
'; $this->displayFolderTitle(); - echo '
'; + echo '
'; - // Vrstica z gumbi, filtri - echo '
'; - $this->displayButtonsRow(); - echo '
'; + + // Vrstica z gumbi, filtri - niso prikazane pri searchu + echo '
'; + + if($this->isSearch != 1){ + $this->displayButtonsRow(); + } + else{ + // Okno z nastavitvami searcha + echo '
'; + $this->displaySearchSettings(); + echo '
'; + } + + echo '
'; + // Izris seznama anket echo '
'; - $this->displaySurveyTable(); + $this->displayNewSurveyList(); echo '
'; + // Paginacija - se na dnu - ni prikazana pri searchu + if($this->isSearch != 1){ + echo '
'; + echo ' '; + echo '
'; + } + + // Footer echo '