Prilagoditev tabel - dokoncane individualne nastavitve

This commit is contained in:
pero1203 2022-08-30 11:24:54 +02:00
parent ded3b951ba
commit 51644d60c1
4 changed files with 378 additions and 73 deletions

View File

@ -1247,7 +1247,7 @@ class Vprasanje {
if($row['tip'] <= 3) if($row['tip'] <= 3)
$this->edit_stat(); $this->edit_stat();
if ($row['tip'] == 6) if ($row['tip'] == 6 || $row['tip'] == 16 || $row['tip'] == 19 || $row['tip'] == 20)
$this->edit_grid_dynamic(); $this->edit_grid_dynamic();
if ($row['tip'] == 1 || $row['tip'] == 6) { if ($row['tip'] == 1 || $row['tip'] == 6) {
@ -3327,32 +3327,52 @@ class Vprasanje {
echo '</div>'; echo '</div>';
} }
// dinamicen multigrid // Prilagojen multigrid
function edit_grid_dynamic () { function edit_grid_dynamic () {
global $lang; global $lang;
$row = Cache::srv_spremenljivka($this->spremenljivka); $row = Cache::srv_spremenljivka($this->spremenljivka);
$spremenljivkaParams = new enkaParameters($row['params']);
echo '<div class="vprasanje_setting_holder">'; echo '<div class="vprasanje_setting_holder">';
echo ' <div class="vprasanje_setting_line half-half">'; echo ' <div class="vprasanje_setting_line half-half">';
echo ' <label>'.$lang['srv_dynamic_multigrid'].Help::display('srv_tabela_postopno').':</label>'; echo ' <label>Prilagoditev tabele na računalniku:</label>';
echo ' <span class="content"><input type="hidden" name="dynamic_mg" value="0" />'; $pc_tables = $spremenljivkaParams->get('pc_tables');
echo ' <select id="dynamic_mg" name="dynamic_mg" onChange="onchange_submit_show(this.value);">';
echo ' <option value="0" '.(($row['dynamic_mg'] == 0) ? ' selected="true" ' : '').'>'.$lang['no'].'</option>'; echo ' <span class="content">';
echo ' <option value="1" '.(($row['dynamic_mg'] == 1) ? ' selected="true" ' : '').'>'.$lang['srv_orientacija_horizontalna_3'].'</option>'; echo ' <select id="pc_tables" name="pc_tables" onChange="onchange_submit_show(this.value);">';
echo ' <option value="3" '.(($row['dynamic_mg'] == 3) ? ' selected="true" ' : '').'>'.$lang['srv_orientacija_horizontalna_3'].'_2</option>'; echo ' <option value="0" '.(($pc_tables == 0) ? ' selected="true" ' : '').'>'.$lang['no'].'</option>';
echo ' <option value="5" '.(($row['dynamic_mg'] == 5) ? ' selected="true" ' : '').'>'.$lang['srv_orientacija_horizontalna_3'].'_3</option>'; echo ' <option value="1" '.(($pc_tables == 1) ? ' selected="true" ' : '').'>'.$lang['yes'].'</option>';
echo ' <option value="2" '.(($row['dynamic_mg'] == 2) ? ' selected="true" ' : '').'>'.$lang['srv_orientacija_vertikalna'].'</option>'; echo ' <option value="2" '.(($pc_tables == 2) ? ' selected="true" ' : '').'>'.$lang['srv_settings_mobile_tables_slide'].'</option>';
echo ' <option value="4" '.(($row['dynamic_mg'] == 4) ? ' selected="true" ' : '').'>'.$lang['srv_orientacija_vertikalna'].'_2</option>'; echo ' <option value="3" '.(($pc_tables == 3) ? ' selected="true" ' : '').'>'.$lang['srv_settings_mobile_tables_hor'].'</option>';
echo ' <option value="6" '.(($row['dynamic_mg'] == 6) ? ' selected="true" ' : '').'>'.$lang['srv_orientacija_vertikalna'].'_3</option>';
echo ' </select>'; echo ' </select>';
echo ' </span>'; echo ' </span>';
echo ' </div>'; echo ' </div>';
echo ' <div class="vprasanje_setting_line half-half">';
echo ' <label>Prilagoditev tabele na mobilni napravi:</label>';
$mobile_tables = $spremenljivkaParams->get('mobile_tables');
echo ' <span class="content">';
echo ' <select id="mobile_tables" name="mobile_tables" onChange="onchange_submit_show(this.value);">';
echo ' <option value="0" '.(($mobile_tables == 0) ? ' selected="true" ' : '').'>'.$lang['no'].'</option>';
echo ' <option value="1" '.(($mobile_tables == 1) ? ' selected="true" ' : '').'>'.$lang['yes'].'</option>';
echo ' <option value="2" '.(($mobile_tables == 2) ? ' selected="true" ' : '').'>'.$lang['srv_settings_mobile_tables_slide'].'</option>';
echo ' <option value="3" '.(($mobile_tables == 3) ? ' selected="true" ' : '').'>'.$lang['srv_settings_mobile_tables_hor'].'</option>';
echo ' </select>';
echo ' </span>';
echo ' </div>';
echo '</div>'; echo '</div>';
} }
@ -6603,6 +6623,8 @@ class Vprasanje {
|| isset($_POST['sbSizeVse']) || isset($_POST['sbSizeVse'])
|| isset($_POST['prevAnswers']) || isset($_POST['prevAnswers'])
|| isset($_POST['disabled_vprasanje']) || isset($_POST['disabled_vprasanje'])
|| isset($_POST['mobile_tables'])
|| isset($_POST['pc_tables'])
|| isset($_POST['slider_handle']) || isset($_POST['slider_handle'])
|| isset($_POST['slider_MinMaxNumLabel']) || isset($_POST['slider_MinMaxNumLabel'])
|| isset($_POST['slider_MinMaxLabel']) || isset($_POST['slider_MinMaxLabel'])
@ -6735,6 +6757,10 @@ class Vprasanje {
$newParams->set('prevAnswers', $_POST['prevAnswers']); $newParams->set('prevAnswers', $_POST['prevAnswers']);
if (isset($_POST['disabled_vprasanje'])) if (isset($_POST['disabled_vprasanje']))
$newParams->set('disabled_vprasanje', $_POST['disabled_vprasanje']); $newParams->set('disabled_vprasanje', $_POST['disabled_vprasanje']);
if (isset($_POST['mobile_tables']))
$newParams->set('mobile_tables', $_POST['mobile_tables']);
if (isset($_POST['pc_tables']))
$newParams->set('pc_tables', $_POST['pc_tables']);
if ( isset($_POST['slider_handle']) ) if ( isset($_POST['slider_handle']) )
$newParams->set('slider_handle', $_POST['slider_handle']); $newParams->set('slider_handle', $_POST['slider_handle']);
if (isset($_POST['slider_MinMaxNumLabel'])) if (isset($_POST['slider_MinMaxNumLabel']))

View File

@ -61,7 +61,9 @@ class MultigridMobileController extends Controller{
// Nastavitev za prilagoditev mobilnih tabel (z razpiranjem ali brez) // Nastavitev za prilagoditev mobilnih tabel (z razpiranjem ali brez)
SurveySetting::getInstance()->Init(get('anketa')); SurveySetting::getInstance()->Init(get('anketa'));
$tables_setting = (get('mobile') == 1) ? SurveySetting::getInstance()->getSurveyMiscSetting('mobile_tables') : SurveySetting::getInstance()->getSurveyMiscSetting('pc_tables');
// Pridobimo nastavitve za prikaz tabele
$tables_setting = self::getInstance()->getTableSettings($spremenljivkaParams);
$gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0); $gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0);
@ -386,7 +388,9 @@ class MultigridMobileController extends Controller{
// Nastavitev za prilagoditev mobilnih tabel (z razpiranjem ali brez) // Nastavitev za prilagoditev mobilnih tabel (z razpiranjem ali brez)
SurveySetting::getInstance()->Init(get('anketa')); SurveySetting::getInstance()->Init(get('anketa'));
$tables_setting = (get('mobile') == 1) ? SurveySetting::getInstance()->getSurveyMiscSetting('mobile_tables') : SurveySetting::getInstance()->getSurveyMiscSetting('pc_tables');
// Pridobimo nastavitve za prikaz tabele
$tables_setting = self::getInstance()->getTableSettings($spremenljivkaParams);
$gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0); $gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0);
@ -511,10 +515,6 @@ class MultigridMobileController extends Controller{
echo ' </div>'; echo ' </div>';
// Puscica za razpiranje ce imamo vklopljene mobilne tabele z razpiranjem
/*if($tables_setting == 2)
echo '<span class="faicon arrow_up mobile_expanding_arrow"></span>';*/
echo '</div>'; echo '</div>';
@ -699,6 +699,217 @@ class MultigridMobileController extends Controller{
echo '</div>'; echo '</div>';
} }
/**
* @desc prikaze vnosno polje za dinamicen multigrid (vcash postopno resevanje)
*/
public function radioHorizontalDynamicMultigrid($spremenljivka){
$loop_id = get('loop_id') == null ? " IS NULL" : " = '" . get('loop_id') . "'";
$row = Model::select_from_srv_spremenljivka($spremenljivka);
$spremenljivkaParams = new enkaParameters($row['params']);
$gridWidth = (($spremenljivkaParams->get('gridWidth') > 0) ? $spremenljivkaParams->get('gridWidth') : 30);
$diferencial_trak = ($spremenljivkaParams->get('diferencial_trak') ? $spremenljivkaParams->get('diferencial_trak') : 0); //za checkbox trak
// izracuni za sirino celic
$size = $row['grids'];
# polovimo vrednosti gridov, prevedmo naslove in hkrati preverimo ali imamo missinge
$srv_grids = array();
$mv_count = 0; # koliko je stolpcev z manjkajočimi vrednostmi
# če polje other != 0 je grid kot missing
$sql_grid = sisplet_query("SELECT * FROM srv_grid WHERE spr_id='$row[id]' ORDER BY vrstni_red");
while ($row_grid = mysqli_fetch_assoc($sql_grid)) {
# priredimo naslov če prevajamo anketo
$naslov = Language::srv_language_grid($row['id'], $row_grid['id']);
if ($naslov != '') {
$row_grid['naslov'] = $naslov;
}
$srv_grids[$row_grid['id']] = $row_grid;
# če je označena kot manjkajoča jo prištejemo k manjkajočim
if ($row_grid['other'] != 0) {
$mv_count++;
}
}
# če imamo mankajoče potem dodamo še en prazen stolpec za razmak
if ($mv_count > 0) {
$size += 1 + $mv_count;
}
if ($row['enota'] == 1) {
$size += 2;
}
$size += 1;
$orderby = Model::generate_order_by_field($spremenljivka, get('usr_id'));
# cache tabele srv_data_grid, da se ne dela vsakic posebej nov query (preberemo enkrat vse odgovore userja)
$srv_data_grid = array();
$sql_grid = sisplet_query("SELECT * FROM srv_data_grid" . get('db_table') . " WHERE spr_id='$row[id]' AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id");
while ($row_grid = mysqli_fetch_array($sql_grid)) {
$srv_data_grid[$row_grid['vre_id']] = $row_grid;
}
# loop skozi srv_vrednost, da izpišemo vrstice z vrednostmi
$gridRow = 1;
$hide = false;
$sql1 = sisplet_query("SELECT * FROM srv_vrednost WHERE spr_id='$row[id]' ORDER BY FIELD(vrstni_red, $orderby)");
$countVar = mysqli_num_rows($sql1);
// Stevilo vseh vrednosti
echo '<input type="hidden" id="dynamic_multigrid_' . $spremenljivka . '" value="' . $countVar . '" />';
// Indikator da v js vemo ali smo ravnokar naloudali stran ali pa smo samo premaknili vrstico (potrebno zaradi prikazovanja glede na ife v dolocenih primerih)
echo '<input type="hidden" id="dynamic_multigrid_' . $spremenljivka . '_load" value="1" />';
while ($row1 = mysqli_fetch_array($sql1)) {
# po potrebi prevedemo naslov
$naslov = Language::getInstance()->srv_language_vrednost($row1['id']);
if ($naslov != '') {
$row1['naslov'] = $naslov;
}
# preverimo izbrano vrednost
$grid_id = $srv_data_grid[$row1['id']]['grd_id'];
# ugotovimo ali je na katerem gridu predhodno izbran missing
$is_missing = false;
if (count($srv_grids) > 0) {
foreach ($srv_grids AS $i => $srv_grid) {
if ($srv_grid['other'] != 0 && $srv_grids[$i]['id'] == $grid_id) {
$is_missing = true;
}
}
}
// Datapiping
$row1['naslov'] = Helper::dataPiping($row1['naslov']);
$ifDisplay = ($row1['if_id'] > 0 ? ' if_hide' : '');
// Ce lahko prikazemo vrstico (se ni nobena izrisana in ni skrita z ifom) -> naslednjih ne izrisujemo vec
if ($hide == false && $row1['hidden'] == 0 && $row1['if_id'] == 0) {
$gridRowDisplay = '';
$hide = true;
} else
$gridRowDisplay = ' style="display:none;"';
echo ' <div id="vrednost_if_'.$row1['id'].'" seq="'.$gridRow.'" class="'.$spremenljivka.'_gridRow '.$spremenljivka.'_gridRow_'.$gridRow.' '.$ifDisplay.'" '.$gridRowDisplay.'>' . "\n";
echo '<div>';
echo '<div class="dynamic_mg_vrednost">';
echo $row1['naslov'];
if ($row1['other'] == 1) {
$sql3 = sisplet_query("SELECT text FROM srv_data_text" . get('db_table') . " WHERE spr_id='$spremenljivka' AND vre_id='$row1[id]' AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id");
$row3 = mysqli_fetch_array($sql3);
$otherWidth = ($spremenljivkaParams->get('otherWidth') ? $spremenljivkaParams->get('otherWidth') : -1);
$otherHeight = ($spremenljivkaParams->get('otherHeight') ? $spremenljivkaParams->get('otherHeight') : 1);
if ($otherHeight > 1)
echo ' <textarea name="textfield_' . $row1['id'] . '" rows="' . $otherHeight . '" style="' . ($otherWidth != -1 ? ' width:' . $otherWidth . '%;' : '') . '" ' . ($is_missing ? ' disabled' : '') . '>' . ($is_missing ? '' : $row3['text']) . '</textarea>';
else
echo ' <input type="text" name="textfield_' . $row1['id'] . '" value="' . ($is_missing ? '' : $row3['text']) . '" style="' . ($otherWidth != -1 ? ' width:' . $otherWidth . '%;' : '') . '" ' . ($is_missing ? ' disabled' : '') . ' />';
//echo ' <input type="text" name="textfield_'.$row1['id'].'" value="'.($is_missing ? '' : $row3['text']).'" '.($is_missing ? ' disabled' :'').'>';
}
echo '</div>';
if (count($srv_grids) > 0) {
$first_missing_value = true;
foreach ($srv_grids AS $i => $srv_grid) {
if ((string)$srv_grid['other'] != '0' && $first_missing_value == true) {
# dodamo spejs pred manjkajočimi vrednostmi
$first_missing_value = false;
}
$value = $srv_grids[$i]['id'];
$grid_title = $srv_grids[$i]['naslov'];
// Datapiping
$grid_title = Helper::dataPiping($grid_title);
$smeski ='';
if(in_array($row['enota'], [11,12])){
$smeski = 'visual-radio-scale visual-radio-block';
}
# izpišemo radio grida
echo '<div class="variabla '.$smeski.'">';
if ($srv_grid['other'] != 0) {
# imamo missing vrednost
echo '<label for="grid_missing_value_' . $row1['id'] . '_grid_' . $value . '">';
if ($gridRow < $countVar)
echo '<input type="radio" name="vrednost_' . $row1['id'] . '" id="grid_missing_value_' . $row1['id'] . '_grid_' . $value . '" value="' . $value . '"' . (($grid_id == $value && $grid_id != '') ? ' checked' : '') . ' data-calculation="0" onclick="checkChecked(this); checkTableMissing(this); checkBranching(); setCheckedClass(this, \'mm\', ' . $row1['id'] . '); rowSlide(\'' . $spremenljivka . '\', \'' . $gridRow . '\', \'' . ($gridRow + 1) . '\');">';
else
echo '<input type="radio" name="vrednost_' . $row1['id'] . '" id="grid_missing_value_' . $row1['id'] . '_grid_' . $value . '" value="' . $value . '"' . (($grid_id == $value && $grid_id != '') ? ' checked' : '') . ' data-calculation="0" onclick="checkChecked(this); checkTableMissing(this); checkBranching(); setCheckedClass(this, \'mm\', ' . $row1['id'] . ');' . ($row['onchange_submit'] == 1 ? ' submitForm();' : '') . '">';
// Font awesome
echo '<span class="enka-checkbox-radio ' . (($row1['hidden'] == 2) ? ' answer-disabled' : '') .'"'.
((Helper::getCustomCheckbox() != 0) ? (' style="font-size:' . Helper::getCustomCheckbox().'px;"') : '').
'></span>';
echo ' ' . $grid_title . '</label>';
} else {
# ni missing vrednost
echo '<label for="vrednost_' . $row1['id'] . '_grid_' . $value . '">';
if ($gridRow < $countVar)
echo '<input type="radio" name="vrednost_' . $row1['id'] . '" id="vrednost_' . $row1['id'] . '_grid_' . $value . '" value="' . $value . '"' . (($grid_id == $value && $grid_id != '' && !$is_missing) ? ' checked' : '') . ($is_missing ? ' disabled' : '') . ' data-calculation="' . $srv_grids[$i]['variable'] . '" onclick="checkChecked(this); checkBranching(); setCheckedClass(this, \'mm\', ' . $row1['id'] . '); rowSlide(\'' . $spremenljivka . '\', \'' . $gridRow . '\', \'' . ($gridRow + 1) . '\');">';
else
echo '<input type="radio" name="vrednost_' . $row1['id'] . '" id="vrednost_' . $row1['id'] . '_grid_' . $value . '" value="' . $value . '"' . (($grid_id == $value && $grid_id != '' && !$is_missing) ? ' checked' : '') . ($is_missing ? ' disabled' : '') . ' data-calculation="' . $srv_grids[$i]['variable'] . '" onclick="checkChecked(this); checkBranching(); setCheckedClass(this, \'mm\', ' . $row1['id'] . '); ' . ($row['onchange_submit'] == 1 ? ' submitForm();' : '') . '">';
// Font awesome
if($row['enota'] == 11){
echo '<span class="enka-vizualna-skala siv-'.$row['grids'].$value.'"></span>';
}elseif($row['enota'] == 12){
echo '<span class="enka-custom-radio '.$spremenljivkaParams->get('customRadio').'"></span>';
}else {
echo '<span class="enka-checkbox-radio ' . (($row1['hidden'] == 2) ? ' answer-disabled' : '') . '"' .
((Helper::getCustomCheckbox() != 0) ? (' style="font-size:' . Helper::getCustomCheckbox() . 'px;"') : '') .
'></span>';
}
echo ' ' . $grid_title . '</label>';
}
echo '</div>';
}
}
// Dodamo se drug naslov ce imamo semanticni diferencial
if ($row['enota'] == 1) {
// Datapiping
$row1['naslov2'] = Helper::dataPiping($row1['naslov2']);
echo '<div class="dynamic_mg_vrednost">';
echo $row1['naslov2'];
echo '</div>';
}
echo '</div>';
echo '</tr><tr class="gridRowArrows ' . $spremenljivka . '_gridRowArrows_' . $gridRow . ' ' . $ifDisplay . '" ' . $gridRowDisplay . '><td colspan="' . $colspan . '">';
echo ' <table class="dynamic_mg_orientation"><tr>' . "\n";
for ($i = 1; $i <= $countVar; $i++) {
echo ' <td><div title="' . $i . '" id="sequence_number_' . $i . '" class="sequence_number sequence_number_'.$i.' ' . ($i == $gridRow ? ' active' : '') . '" onClick="rowSlide(\'' . $spremenljivka . '\', \'' . $gridRow . '\', \'' . $i . '\');">' . $i . '</div></td>';
}
echo ' </tr></table>' . "\n";
echo '</td>';
echo ' </div>' . "\n";
$bg++;
$gridRow++;
}
}
/** /**
* @desc prikaze vnosno polje za tabelo checkbox * @desc prikaze vnosno polje za tabelo checkbox
@ -714,7 +925,9 @@ class MultigridMobileController extends Controller{
// Nastavitev za prilagoditev mobilnih tabel (z razpiranjem ali brez) // Nastavitev za prilagoditev mobilnih tabel (z razpiranjem ali brez)
SurveySetting::getInstance()->Init(get('anketa')); SurveySetting::getInstance()->Init(get('anketa'));
$tables_setting = (get('mobile') == 1) ? SurveySetting::getInstance()->getSurveyMiscSetting('mobile_tables') : SurveySetting::getInstance()->getSurveyMiscSetting('pc_tables');
// Pridobimo nastavitve za prikaz tabele
$tables_setting = self::getInstance()->getTableSettings($spremenljivkaParams);
$gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0); $gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0);
@ -931,7 +1144,9 @@ class MultigridMobileController extends Controller{
// Nastavitev za prilagoditev mobilnih tabel (z razpiranjem ali brez) // Nastavitev za prilagoditev mobilnih tabel (z razpiranjem ali brez)
SurveySetting::getInstance()->Init(get('anketa')); SurveySetting::getInstance()->Init(get('anketa'));
$tables_setting = (get('mobile') == 1) ? SurveySetting::getInstance()->getSurveyMiscSetting('mobile_tables') : SurveySetting::getInstance()->getSurveyMiscSetting('pc_tables');
// Pridobimo nastavitve za prikaz tabele
$tables_setting = self::getInstance()->getTableSettings($spremenljivkaParams);
$gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0); $gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0);
@ -1265,7 +1480,9 @@ class MultigridMobileController extends Controller{
// Nastavitev za prilagoditev mobilnih tabel (z razpiranjem ali brez) // Nastavitev za prilagoditev mobilnih tabel (z razpiranjem ali brez)
SurveySetting::getInstance()->Init(get('anketa')); SurveySetting::getInstance()->Init(get('anketa'));
$tables_setting = (get('mobile') == 1) ? SurveySetting::getInstance()->getSurveyMiscSetting('mobile_tables') : SurveySetting::getInstance()->getSurveyMiscSetting('pc_tables');
// Pridobimo nastavitve za prikaz tabele
$tables_setting = self::getInstance()->getTableSettings($spremenljivkaParams);
$gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0); $gridAlign = (($spremenljivkaParams->get('gridAlign') > 0) ? $spremenljivkaParams->get('gridAlign') : 0);
@ -1614,4 +1831,29 @@ class MultigridMobileController extends Controller{
// END grid_mobile // END grid_mobile
echo '</div>'; echo '</div>';
} }
// Pridobimo nastavitve tabele (prikaz na mobile ali pc)
public function getTableSettings($spremenljivkaParams){
// Pridobimo nastavitve za mobile tabele
if(get('mobile') == 1){
$tables_setting = $spremenljivkaParams->get('mobile_tables');
// Ce nimamo individualnih nastavitev pridobimo splosne nastavitve tabel
if($tables_setting == 0)
$tables_setting = SurveySetting::getInstance()->getSurveyMiscSetting('mobile_tables');
}
// Pridobimo nastavitve za pc tabele
else{
$tables_setting = $spremenljivkaParams->get('pc_tables');
// Ce nimamo individualnih nastavitev pridobimo splosne nastavitve tabel
if($tables_setting == 0)
$tables_setting = SurveySetting::getInstance()->getSurveyMiscSetting('pc_tables');
}
return $tables_setting;
}
} }

View File

@ -229,20 +229,14 @@ class VprasanjaController extends Controller
// JS za mobilno razpiranje tabel // JS za mobilno razpiranje tabel
SurveySetting::getInstance()->Init(get('anketa')); echo '<script>
$mobile_tables = SurveySetting::getInstance()->getSurveyMiscSetting('mobile_tables'); $(document).ready(
$pc_tables = SurveySetting::getInstance()->getSurveyMiscSetting('pc_tables'); function(){
mobileMultigridExpandable();
}
);
</script>';
if(($mobile_tables == 2 && get('mobile') == 1) || ($pc_tables == 2 && get('mobile') != 1)){
echo '<script>
$(document).ready(
function(){
mobileMultigridExpandable();
}
);
</script>';
}
// JS za razpiranje tabel znotraj bloka s to nastavitvijo // JS za razpiranje tabel znotraj bloka s to nastavitvijo
echo '<script> echo '<script>
@ -704,11 +698,10 @@ class VprasanjaController extends Controller
// Tabela - radio // Tabela - radio
case 6: case 6:
SurveySetting::getInstance()->Init(get('anketa')); // Pridobimo nastavitve za prikaz tabele
$mobile_tables = SurveySetting::getInstance()->getSurveyMiscSetting('mobile_tables'); $tables_setting = MultigridMobile::getInstance()->getTableSettings($spremenljivkaParams);
$pc_tables = SurveySetting::getInstance()->getSurveyMiscSetting('pc_tables');
// Izris multigrida s postopnim resevanjem // Izris multigrida s postopnim resevanjem - ostanek za stare ankete
if($row['dynamic_mg'] > 0 && !get('printPreview')){ if($row['dynamic_mg'] > 0 && !get('printPreview')){
if ($row['dynamic_mg'] == 1 || $row['dynamic_mg'] == 3 || $row['dynamic_mg'] == 5) if ($row['dynamic_mg'] == 1 || $row['dynamic_mg'] == 3 || $row['dynamic_mg'] == 5)
@ -716,16 +709,23 @@ class VprasanjaController extends Controller
else else
Dynamic::getInstance()->verticalMultigrid($spremenljivka); Dynamic::getInstance()->verticalMultigrid($spremenljivka);
} }
// Izris radio multigrida na mobitelu // Izris multigrida na mobitelu
elseif ((get('mobile') == 1 && $mobile_tables > 0) || (get('mobile') != 1 && $pc_tables > 0)) { elseif (get('mobile') == 1 && $tables_setting > 0) {
// Dvojni multigrid // Prilagojena tabela s horizontalnim pomikanjem
if($row['enota'] == 3) if ($tables_setting == 3) {
MultigridMobile::getInstance()->radioDoubleMultigrid($spremenljivka); MultigridMobile::getInstance()->radioHorizontalDynamicMultigrid($spremenljivka);
else }
MultigridMobile::getInstance()->radioMultigrid($spremenljivka); else{
// Dvojni multigrid
if($row['enota'] == 3)
MultigridMobile::getInstance()->radioDoubleMultigrid($spremenljivka);
else
MultigridMobile::getInstance()->radioMultigrid($spremenljivka);
}
} }
// Ostali podtipi tabel // Podtipi tabel
else{ else{
// Izris glede na podtip // Izris glede na podtip
@ -738,7 +738,19 @@ class VprasanjaController extends Controller
// Dvojni multigrid // Dvojni multigrid
case 3: case 3:
Double::getInstance()->grid($spremenljivka);
// Prilagojena tabela
if ($tables_setting == 1 || $tables_setting == 2) {
MultigridMobile::getInstance()->radioDoubleMultigrid($spremenljivka);
}
// Prilagojena tabela s horizontalnim pomikanjem
elseif ($tables_setting == 3) {
MultigridMobile::getInstance()->radioHorizontalDynamicMultigrid($spremenljivka);
}
else{
Double::getInstance()->grid($spremenljivka);
}
break; break;
// OneAgainstAnother // OneAgainstAnother
@ -768,7 +780,19 @@ class VprasanjaController extends Controller
// Navaden multigrid // Navaden multigrid
default: default:
Multigrid::getInstance()->display($spremenljivka);
// Prilagojena tabela
if ($tables_setting == 1 || $tables_setting == 2) {
MultigridMobile::getInstance()->radioMultigrid($spremenljivka);
}
// Prilagojena tabela s horizontalnim pomikanjem
elseif ($tables_setting == 3) {
MultigridMobile::getInstance()->radioHorizontalDynamicMultigrid($spremenljivka);
}
else{
Multigrid::getInstance()->display($spremenljivka);
}
break; break;
} }
} }
@ -779,12 +803,11 @@ class VprasanjaController extends Controller
// Tabela - checkbox // Tabela - checkbox
case 16: case 16:
SurveySetting::getInstance()->Init(get('anketa')); // Pridobimo nastavitve za prikaz tabele
$mobile_tables = SurveySetting::getInstance()->getSurveyMiscSetting('mobile_tables'); $tables_setting = MultigridMobile::getInstance()->getTableSettings($spremenljivkaParams);
$pc_tables = SurveySetting::getInstance()->getSurveyMiscSetting('pc_tables');
// Izris checkbox multigrida na mobitelu // Izris checkbox multigrida na mobitelu
if ((get('mobile') == 1 && $mobile_tables > 0) || (get('mobile') != 1 && $pc_tables > 0)) { if (get('mobile') == 1 && $tables_setting > 0) {
// Dvojni multigrid // Dvojni multigrid
if($row['enota'] == 3) if($row['enota'] == 3)
@ -798,7 +821,15 @@ class VprasanjaController extends Controller
// Dvojni multicheckboxa // Dvojni multicheckboxa
case 3: case 3:
Double::getInstance()->checkGrid($spremenljivka);
// Prilagojena tabela
if ($tables_setting > 0) {
MultigridMobile::getInstance()->checkboxDoubleMultigrid($spremenljivka);
}
else{
Double::getInstance()->checkGrid($spremenljivka);
}
break; break;
// SelectBox // SelectBox
@ -808,7 +839,15 @@ class VprasanjaController extends Controller
// Navaden checkbox // Navaden checkbox
case 0: case 0:
Multigrid::getInstance()->checkbox($spremenljivka);
// Prilagojena tabela
if ($tables_setting > 0) {
MultigridMobile::getInstance()->checkboxDoubleMultigrid($spremenljivka);
}
else{
Multigrid::getInstance()->checkbox($spremenljivka);
}
break; break;
// Grid drag and drop // Grid drag and drop
@ -825,15 +864,13 @@ class VprasanjaController extends Controller
case 19: case 19:
case 20: case 20:
SurveySetting::getInstance()->Init(get('anketa')); // Pridobimo nastavitve za prikaz tabele
$mobile_tables = SurveySetting::getInstance()->getSurveyMiscSetting('mobile_tables'); $tables_setting = MultigridMobile::getInstance()->getTableSettings($spremenljivkaParams);
$pc_tables = SurveySetting::getInstance()->getSurveyMiscSetting('pc_tables');
// Izris text in number multigrida na mobitelu // Prilagojena tabela
if ((get('mobile') == 1 && $mobile_tables > 0) || (get('mobile') != 1 && $pc_tables > 0)) { if ($tables_setting > 0) {
MultigridMobile::getInstance()->textMultigrid($spremenljivka); MultigridMobile::getInstance()->textMultigrid($spremenljivka);
} }
// Izris navadnega text in number multigrida
else{ else{
Text::getInstance()->multitext($spremenljivka); Text::getInstance()->multitext($spremenljivka);
} }

View File

@ -1013,7 +1013,7 @@ function dynamicMultigridFixAllArrows(spremenljivka){
function mobileMultigridExpandable(){ function mobileMultigridExpandable(){
// Pri kliku na naslov podvprasanja razpremo/zapremo podvprasanje // Pri kliku na naslov podvprasanja razpremo/zapremo podvprasanje
$(".grid_mobile_title").click(function(){ $(".grid_mobile.mobile_expanding .grid_mobile_title").click(function(){
// Double gridi imajo zaenkrat to izklopljeno // Double gridi imajo zaenkrat to izklopljeno
if(!$(this).parent().parent().hasClass("double")){ if(!$(this).parent().parent().hasClass("double")){
@ -1032,21 +1032,21 @@ function mobileMultigridExpandable(){
function mobileMultigridExpandableRadio(){ function mobileMultigridExpandableRadio(){
// Na zacetku skrijemo vedno vse razen prvega // Na zacetku skrijemo vedno vse razen prvega
$(".grid_mobile.radio:not(.double)").find("div.grid_mobile_variables:not(:first)").hide(function(){ $(".grid_mobile.mobile_expanding.radio:not(.double)").find("div.grid_mobile_variables:not(:first)").hide(function(){
mobileMultigridExpandableArrow(this); mobileMultigridExpandableArrow(this);
}); });
// Obrnemo puscico za razpiranje // Obrnemo puscico za razpiranje
$(".grid_mobile.radio:not(.double)").find("div.grid_mobile_variables:not(:first)").parent().find(".mobile_expanding_arrow").toggleClass("arrow_down").toggleClass("arrow_up"); $(".grid_mobile.mobile_expanding.radio:not(.double)").find("div.grid_mobile_variables:not(:first)").parent().find(".mobile_expanding_arrow").toggleClass("arrow_down").toggleClass("arrow_up");
// Pokazemo div z rezultatom // Pokazemo div z rezultatom
$(".grid_mobile.radio:not(.double)").find("div.grid_mobile_variables:not(:first)").parent().find(".grid_mobile_result").show(); $(".grid_mobile.mobile_expanding.radio:not(.double)").find("div.grid_mobile_variables:not(:first)").parent().find(".grid_mobile_result").show();
// Pri kliku na radio zapremo in razpremo naslednji segment // Pri kliku na radio zapremo in razpremo naslednji segment
$("input[type=\"radio\"]").click(function(){ $("input[type=\"radio\"]").click(function(){
// Ce gre za radio znotraj tabele // Ce gre za radio znotraj tabele
if($(this).closest(".grid_mobile_variables").length > 0 && !$(this).closest(".grid_mobile_variables").parent().parent().hasClass("double")){ if($(this).closest(".grid_mobile.mobile_expanding .grid_mobile_variables").length > 0 && !$(this).closest(".grid_mobile_variables").parent().parent().hasClass("double")){
var podvprasanje_current = $(this).closest(".grid_mobile_variables"); var podvprasanje_current = $(this).closest(".grid_mobile_variables");
var podvprasanje_next = $(podvprasanje_current).parent().next().find(".grid_mobile_variables"); var podvprasanje_next = $(podvprasanje_current).parent().next().find(".grid_mobile_variables");