Merge remote-tracking branch 'origin/master'

This commit is contained in:
Robert 2020-09-18 13:58:07 +02:00
commit 43997f948c
23 changed files with 427 additions and 12831 deletions

1
.gitignore vendored
View File

@ -49,5 +49,6 @@ docker
/.htaccess
/composer.bat
/composer.phar
/composer.lock
/.favorites.json

View File

@ -44,23 +44,13 @@ class Vprasanje {
*/
function display () {
//echo '<div id="vprasanje_fullscreen">';
$this->tabs();
echo '<div id="vprasanje_edit">';
$this->vprasanje_edit();
echo '</div>';
//echo '<div id="vprasanje_preview">';
//$b = new Branching($this->anketa);
//$b->vprasanje($this->spremenljivka);
//echo '</div>';
$this->edit_buttons();
//echo '</div>';
}
/**
@ -75,7 +65,6 @@ class Vprasanje {
$rows = SurveyInfo::getInstance()->getSurveyRow();
echo '<div id="vprasanje_tabs">';
//echo '<a href="#" class="tab_link" id="tab_linker">&nbsp;</a>';
echo '<a href="#" class="tab_link active" id="tab_link_0" onclick="vprasanje_tab(\''.$this->spremenljivka.'\', \'0\'); return false;">'.$lang['srv_osnovno'].'</a>';
@ -90,20 +79,9 @@ class Vprasanje {
// Tab validacija
echo '<a href="#" class="tab_link" id="tab_link_7" onclick="vprasanje_tab(\''.$this->spremenljivka.'\', \'7\'); return false;">'.$lang['srv_validation'].'</a>';
//SurveySetting::getInstance()->Init($this->anketa);
//$question_comment = SurveySetting::getInstance()->getSurveyMiscSetting('question_comment');
//$question_resp_comment = SurveySetting::getInstance()->getSurveyMiscSetting('question_resp_comment');
//if ($question_comment==1 || $question_resp_comment==1)
// Tab opomba
echo '<a href="#" class="tab_link" id="tab_link_3" onclick="vprasanje_tab(\''.$this->spremenljivka.'\', \'3\'); return false;">'.$lang['srv_note'].($row['note']!=''?'*':'').'</a>';
// urejanje label za grafe
//echo '<a href="#" class="tab_link" id="tab_link_4" onclick="vprasanje_tab(\''.$this->spremenljivka.'\', \'4\'); return false;" title="'.$lang['srv_analiza_charts'].'"><span class="sprites chart_bar"></span></a>';
# tabulator za manjkajoče vrednosti za posamezno vprašanje
#echo '<a href="#" class="tab_link" id="tab_link_5" onclick="vprasanje_tab(\''.$this->spremenljivka.'\', \'5\'); return false;" title="'.$lang['srv_missing_values_questions'].'"><span class="sprites arrow_switch"></span></a>';
// Tab tracking sprememb na vprašanju
if (($admin_type == 0 || $admin_type == 1) && $rows['vprasanje_tracking'] > 0){
echo '<div class="tab_link_tracking">';
@ -157,32 +135,18 @@ class Vprasanje {
$this->vprasanje_validation();
echo '</div>';
/*echo '<div id="tab_4" class="tab" style="display:none">';
$this->vprasanje_grafi();
echo '</div>';*/
# rekodiranje - je premaknjeno k podatkom -> izračuni -> rekodiranje
#echo '<div id="tab_5" class="tab" style="display:none">';
#$this->vprasanje_manjkajoce();
#echo '</div>';
echo '<div id="tab_6" class="tab" style="display:none">';
$this->vprasanje_display_tracking();
echo '</div>';
}
echo '<div id="tab_3" class="tab" style="display:none">';
$this->vprasanje_komentarji();
echo '</div>';
//$this->edit_buttons();
echo '</form>';
echo '<span id="vprasanje_edit_bottom_placeholder"></span>';
}
/**
@ -336,7 +300,7 @@ class Vprasanje {
if ( in_array($row['tip'], array(1, 2, 3, 6, 16, 17, 18, 19, 20, 24)) ) {
if ( in_array($row['tip'], array(1, 2, 3, 17, 18)) ){
echo '<fieldset id="kategorije_odgovorov_'.$row['id'].'"><legend>'.$lang['srv_kategorije_odgovorov'].'</legend>';
echo '<fieldset class="kategorije_odgovorov" id="kategorije_odgovorov_'.$row['id'].'"><legend>'.$lang['srv_kategorije_odgovorov'].'</legend>';
}
else{
echo '<fieldset><legend>'.$lang['srv_podvprasanja'].'</legend>';
@ -411,13 +375,18 @@ class Vprasanje {
if ( in_array($row['tip'], array(7, 19, 20, 21)) ) {
if($row['signature'] != 1){ //ce ni elektronski podpis
$captcha = ($spremenljivkaParams->get('captcha') ? $spremenljivkaParams->get('captcha') : 0);
//ce ni elektronski podpis, upload ali captcha
if($row['signature'] != 1 && $row['upload'] < 1 && $captcha != 1){
$displayFieldset = 'display: block';
}else{
}
else{
$displayFieldset = 'display: none';
}
//echo '<fieldset><legend>'.$lang['srv_kategorije_odgovorov'].'</legend>';
echo '<fieldset style="'.$displayFieldset.' " id="kategorijeOdgovorov_'.$this->spremenljivka.'"><legend>'.$lang['srv_kategorije_odgovorov'].'</legend>';
echo '<fieldset style="'.$displayFieldset.'" class="kategorije_odgovorov" id="kategorijeOdgovorov_'.$this->spremenljivka.'"><legend>'.$lang['srv_kategorije_odgovorov'].'</legend>';
if ( in_array($row['tip'], array(21)) ) {
$this->edit_textboxes();
@ -435,6 +404,20 @@ class Vprasanje {
}
echo '</fieldset>';
// Poseben segment za upload datoteke
if($row['upload'] == 1){
$displayFieldset = 'display: block';
}
else{
$displayFieldset = 'display: none';
}
echo '<fieldset style="'.$displayFieldset.'" class="upload_info"><legend>'.$lang['srv_vprasanje_upload_limit_title'].' '.Help::display('srv_upload_limit').'</legend>';
echo '<p>'.$lang['srv_vprasanje_upload_limit'].'</p>';
echo '<p>'.$lang['srv_vprasanje_upload_limit_type'].'</p>';
echo '</fieldset>';
}
// manjkajoce vrednosti - besedilo
@ -754,46 +737,24 @@ class Vprasanje {
$spr_id = $row['id'];
//prikazovanje/skrivanje nastavitev za osvetljevanje
if($hotspot_region_visibility_option)
{
if($hotspot_region_visibility_option){
$hotspot_visibility_display = 'style=""';
}else
{
}
else{
$hotspot_visibility_display = 'style="display:none"';
}
//prikazovanje/skrivanje nastavitev za osvetljevanje - konec
//preveri, ce je kaksno obmocje shranjeno v bazi
//$sqlR = sisplet_query("SELECT * FROM srv_hotspot_regions WHERE spr_id = $spr_id");
$sqlR = sisplet_query("SELECT region_index, vre_id, region_name FROM srv_hotspot_regions WHERE spr_id = $spr_id");
//$rowR = mysqli_fetch_array($sql);
/* //*********************************************************
//ce se je uredilo obmocja, presaltalo na drugo postavitev in tam brisalo vrednosti (srv_vrednost), je potrebno restorat izbrisane odgovore iz srv_hotspot_regions v srv_vrednost
//prestej koliko je v bazi vrednosti in obmocij
$sqlc = sisplet_query("SELECT COUNT(*) AS count FROM srv_vrednost WHERE spr_id=$spr_id");
$rowc = mysqli_fetch_assoc($sqlc);
$vre_num = $rowc['count']; //stevilo vrednosti
$sqlcr = sisplet_query("SELECT COUNT(*) AS count FROM srv_hotspot_regions WHERE spr_id=$spr_id");
$rowcr = mysqli_fetch_assoc($sqlcr);
$reg_num = $rowcr['count']; //stevilo obmocij
if ( mysqli_num_rows($sqlR) != 0 && ($reg_num != $vre_num) ){ //ce imamo nekaj obmocij in ce je stevilo vrednosti razlicno od stevila obmocij
//$i = sisplet_query("INSERT INTO srv_vrednost (id, spr_id, naslov, size, vrstni_red) VALUES ('', '$this->spremenljivka', '$naslov', '$size', '$vrstni_red')");
echo '
<script>
console.log("Stevilo vnosov ni enako!");
</script>
';
}
//********************************************************* */
if($row['tip'] == 1 || $row['tip'] == 2){
$enota_orientation = $row['orientation'];
}else if($row['tip'] == 6){
}
else if($row['tip'] == 6){
$enota_orientation = $row['enota'];
}else if($row['tip'] == 17){
}
else if($row['tip'] == 17){
$enota_orientation = $row['design'];
}
?>
@ -813,21 +774,14 @@ class Vprasanje {
if($row['tip'] == 6 || $row['tip'] == 17){ //ce je radio grid ali razvrscanje, pokazi naslov kot "Obmocja"
echo '<fieldset id="hot_spot_fieldset_'.$row['id'].'" '.$display_regions_menu.'><legend>'.$lang['srv_hot_spot_regions_menu'].'</legend>';
}elseif($row['tip'] == 1 || $row['tip'] == 2){ //ce je radio ali checkbox, pokazi naslov kot "Obmocja - Kategorije odgovorov"
}
elseif($row['tip'] == 1 || $row['tip'] == 2){ //ce je radio ali checkbox, pokazi naslov kot "Obmocja - Kategorije odgovorov"
echo '<fieldset id="hot_spot_fieldset_'.$row['id'].'" '.$display_regions_menu.'><legend>'.$lang['srv_hot_spot_regions_menu'].' - '.$lang['srv_kategorije_odgovorov'].'</legend>';
}
//Sporocilo ob odsotnosti slike
echo '<p id="hotspot_message"><span class="title" >'.$lang['srv_hotspot_message'].'</span></p>';
/* //Dodajanje območja - gumb
//echo '<p id="hot_spot_regions"><span class="title" >'.$lang['srv_hot_spot_regions'].'</span></p>';
//echo '<p><span class="title" ><button id="hot_spot_regions_add_button" type="button" onclick=" hotspot_edit_regions('.$row['id'].')">'.$lang['srv_hot_spot_regions'].'</button></span></p>';
echo '<p><span class="title" ><button id="hot_spot_regions_add_button" type="button" onclick=" hotspot_edit_regions('.$row['id'].', 0)">'.$lang['srv_hot_spot_regions'].'</button></span></p>'; */
if (mysqli_num_rows($sqlR) != 0){
//pokazi shranjena obmocja
while ($rowR = mysqli_fetch_array($sqlR)) {
@ -860,7 +814,6 @@ class Vprasanje {
//Izbira barve izbranega obmocja - konec
//Regions visibility options **********************************************
//echo '<br /><legend>'.$lang['srv_hotspot_visibility_options_title'].'</legend>';
//checkbox za "Osvetljevanje"
echo '<label for="hotspot_region_visibility_options_' . $row['id'] . '"><div class="hotspot_region_visibility_option_class">';
@ -897,19 +850,17 @@ class Vprasanje {
//Izbira barve osvetljevanja obmocja - konec
echo '</p>';
//echo '</fieldset>';
//Regions visibility options - konec ****************************************************************
//Tooltips options
if($row['tip'] == 1 || $row['tip'] == 2){ //ce je radio ali checkbox
$srv_hotspot_tooltip = 'srv_hotspot_tooltip';
//}else if($row['tip'] == 6){
}else if($row['tip'] == 6 ||$row['tip'] == 17){
}
else if($row['tip'] == 6 ||$row['tip'] == 17){
$srv_hotspot_tooltip = 'srv_hotspot_tooltip_grid';
}
//echo '<p><span class="title">'.$lang['srv_hotspot_tooltips_options_title'].': </span>';
//echo '<p><span class="title">'.$lang['srv_hotspot_tooltips_options_title'].':<span id="help_hotspot_namig" class="spaceLeft">'.Help::display('srv_hotspot_tooltip').' </span></span>';
echo '<p><span class="title">'.$lang['srv_hotspot_tooltips_options_title'].':<span id="help_hotspot_namig" class="spaceLeft">'.Help::display($srv_hotspot_tooltip).' </span></span>';
echo '<span class="title"><select id="hotspot_tooltips_options_' . $row['id'] . '" spr_id="'.$row['id'].'" name="hotspot_tooltips_option" onChange="">';
echo '<option value="0" '.(($hotspot_tooltips_option == 0) ? ' selected="true" ' : '').'>'.$lang['srv_hotspot_tooltips_options_0'].'</option>';
@ -924,20 +875,6 @@ class Vprasanje {
echo '</select>';
echo '</span></p>';
/* //checkbox za "Komentar"
echo '<label for="hotspot_region_visibility_options_' . $row['id'] . '"><div class="hotspot_region_visibility_option_class">';
//echo '<p><span class="title" >'.$lang['srv_hotspot_visibility_options_komentar'].':<span id="help_hotspot_visibility" class="spaceLeft">'.Help::display('srv_hotspot_visibility').' </span></span>'; //vprasajcek za help ob nastavitvi za komentar
echo '<p><span class="title" >'.$lang['srv_hotspot_visibility_options_komentar'].':</span>';
echo '<span class="content">';
echo '<input type="checkbox" value="1" name="hotspot_comment_option" '.( $hotspot_region_visibility_option == 1 ? ' checked="checked"' : '') .' onChange="hotspot_comment_option_checkbox_prop('.$row['id'].');" id="hotspot_comment_options_' . $row['id'] . '">';
echo '<input '.$disable_hotspot_comment_option_hidden.' type="hidden" value="0" name="hotspot_comment_option" id="hotspot_comment_option_'.$row['id'].'">';
echo '</span></p>';
echo '</div></label>';
//echo '</div>';
//checkbox za "Komentar" - konec */
echo '</fieldset>';
}
@ -1023,6 +960,7 @@ class Vprasanje {
$row = Cache::srv_spremenljivka($this->spremenljivka);
$newParams = new enkaParameters($row['params']);
//$min = $newParams->get('date_range_min');
$max = $newParams->get('max_markers') ? $newParams->get('max_markers') : 1;
$input = $newParams->get('multi_input_type') ? $newParams->get('multi_input_type') : 'marker';
@ -1031,13 +969,6 @@ class Vprasanje {
echo '<span class="title">'.$lang['srv_vprasanje_max_marker_map'].': '.Help::display('srv_vprasanje_max_marker_map').'</span>';
echo '<span class="content">';
//ce je moja lokacija, je disablan, ker je lahko samo 1 odgovor
//number
/*echo '<input type="number" min="1" max="10" value="'.$max.'" name="max_markers" id="max_markers_' . $row['id']
. '" spr_id="'.$row['id'].'" style="width: 5em" />';
echo '</span>';*/
//roleta
echo '<select name="max_markers" id="max_markers_' . $row['id'] . '" spr_id="'.$row['id'].'">';
echo '<option value="1" '.(($max == 1) ? ' selected="true" ' : '').'>1</option>';
@ -1081,6 +1012,7 @@ class Vprasanje {
$row = Cache::srv_spremenljivka($this->spremenljivka);
$newParams = new enkaParameters($row['params']);
$naslov = $newParams->get('naslov_podvprasanja_map'); //dobi naslov podvprasanja mape
$marpod = $newParams->get('marker_podvprasanje'); //ali dodam podvprasanje v infowindow
@ -1124,6 +1056,7 @@ class Vprasanje {
echo '<p id="marker_podvprasanje" '. ((($row['enota'] == 3) || $input !== 'marker') ? 'style="display: none;"' : '').' >';
echo '<label for="marker_podvprasanje_' . $row['id'] . '" class="title">'.$lang['srv_vprasanje_marker_podvpr_map'].': '.Help::display('marker_podvprasanje').'</label>';
echo '<span class="content"><input type="hidden" name="marker_podvprasanje" value="0">';
echo '<input type="checkbox" value="1" '.(($marpod == 1) ? 'checked' : '' ). ' onChange="show_infowindow_map();"'.
' name="marker_podvprasanje" id="marker_podvprasanje_' . $row['id'] . '" spr_id="'.$row['id'].'" />';
@ -1852,13 +1785,11 @@ class Vprasanje {
//editiranje podtipa pri radio (hor., ver., dropdown)
//if($row['tip'] == 1 || $row['tip'] == 3){
if($row['tip'] == 1 || ($row['tip'] == 3 && !$row['info'])){
$this->edit_radio_subtype();
}
//editiranje orientacije pri checkboxu (hor., ver.)
//if($row['tip'] == 2 ){
if($row['tip'] == 2 || ($row['tip'] == 3 && $row['info'])){
$this->edit_checkbox_subtype();
}
@ -1899,15 +1830,9 @@ class Vprasanje {
echo '<script type="text/javascript">';
echo ' $(document).ready(function() {';
//echo '$("#spremenljivka_tip_' . $row['id'] . '").selectbox();'; // kreira custom dropdown z možnostjo predogleda vprašanja
echo ' $("#spremenljivka_podtip_' . $row['id'] . '").selectbox();'; // kreira custom dropdown z možnostjo predogleda vprašanja
# skalo prikazujemo kot radio gumb (po novem) => Izračunaj povprečje
# echo '$("#spremenljivka_skala_' . $row['id'] . '").selectbox();'; // kreira custom dropdown z možnostjo predogleda vprašanja
echo ' });';
echo '</script>';
//echo '<div class="clr"></div>';
}
/**
@ -3484,8 +3409,7 @@ class Vprasanje {
echo '<option value="10"' . ($row['orientation'] == 10 ? ' selected="true"' : '') . '>'.$lang['srv_hot_spot'].'</option>'; //image hotspot
if ($admin_type == 0){
//echo '<option value="6"' . ($row['orientation'] == 6 ? ' selected="true"' : '') . '>'.$lang['srv_select-box_check'].'</option>';
/* echo '<option value="8"' . ($row['orientation'] == 8 ? ' selected="true"' : '') . '>'.$lang['srv_drag_drop'].'</option>';
echo '<option value="10"' . ($row['orientation'] == 10 ? ' selected="true"' : '') . '>'.$lang['srv_hot_spot'].'</option>'; //image hotspot */
}
//echo '<option value="6"' . ($row['orientation'] == 6 ? ' selected="true"' : '') . '>'.$lang['srv_mutliselect-box'].'</option>';
echo '</select>';
@ -3569,10 +3493,6 @@ class Vprasanje {
echo '<p>';
echo '<span class="title">'.$lang['srv_vprasanje_upload_type'].':</span>';
//staro, radibo buttni da in ne
//echo '<span class="content"><input type="radio" name="upload" value="0" '.(($row['upload'] == 0) ? ' checked="checked" ' : '').' />'.$lang['no1'];
//echo '<input type="radio" name="upload" value="1" '.(($row['upload'] == 1) ? ' checked="checked" ' : '').' />'.$lang['yes'].'</span>';
//novo, dropdown s fotografijami onChange="change_upload(\'' . $row['id'] . '\', this.value);"
echo '<span class="content"><select name="upload" id="spremenljivka_upload_' . $row['id'] . '" spr_id="'.$row['id'].'" '.$disabled.' onChange="textSubtypeToggle(\'upload\', this.value);">';
echo ' <option value="0" '.(($row['upload'] == 0) ? ' selected="true" ' : '').'>'.$lang['srv_vprasanje_upload_no'].'</option>';
@ -4480,21 +4400,19 @@ class Vprasanje {
$sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$this->spremenljivka'");
$row = Cache::srv_spremenljivka($this->spremenljivka);
$spremenljivkaParams = new enkaParameters($row['params']);
//$sbSize = ($spremenljivkaParams->get('sbSize') ? $spremenljivkaParams->get('sbSize') : 3);
$prvaVrstica = ($spremenljivkaParams->get('prvaVrstica') ? $spremenljivkaParams->get('prvaVrstica') : 1);
$prvaVrstica_roleta = ($spremenljivkaParams->get('prvaVrstica_roleta') ? $spremenljivkaParams->get('prvaVrstica_roleta') : 1);
$sbSizeVse = mysqli_num_rows($sql1); //stevilo vnesenih moznih odgovorov
// $sbSize = ($spremenljivkaParams->get('sbSize') ? $spremenljivkaParams->get('sbSize') : $sbSizeVse);
echo '<span class="content"><select name="sbSizeVse" id="selectboxSizeVse'.$this->spremenljivka.'" style="display:none;">';
echo '<option>'.$sbSizeVse.'</option>';
echo '</select>';
// Nastavimo prikaz nastavitve za stevilo vidnih moznosti v select box - ce imamo selectbox je ta moznost vidna, drugace ni
//if ($row['tip'] == 6 || $row['tip'] == 16){
if (($row['tip'] == 6 || $row['tip'] == 16) && $row['enota'] != 2){
$display = (($row['tip'] == 6 || $row['tip'] == 16) && $row['enota'] != 6 && $row['enota'] != 8) ? ' style="display:none;"' : '';
$displayprvavrstica_roleta =' style="display:none;"';
//$display = (($row['tip'] == 6 || $row['tip'] == 16 || $row['tip'] == 24) && $row['enota'] != 6) ? ' style="display:none;"' : '';
$sbSizeVse = $row['grids'];
}
elseif($row['tip'] == 1 || $row['tip'] == 2){
@ -6410,18 +6328,10 @@ class Vprasanje {
$implodednaslov = implode(";", $naslov); //zdruzi elemente array v string
$newParams->set('slider_DescriptiveLabel_defaults_naslov1', $implodednaslov);
/* echo '
<script>
console.log("tip labele: ");
</script>
'; */
}else{ //ce so custom opisne labele
//$_POST['tiplabele'] //console.log("tip labele tukaj: "+'.$_POST['tiplabele'].');
/* echo '
<script>
console.log("tip labele tukaj: ");
</script>
'; */
}
else{ //ce so custom opisne labele
}
}
else if($slider_VmesneDescrLabel != 1){
@ -6940,16 +6850,11 @@ class Vprasanje {
$naslov = $_POST['hotspot_image'];
$row = Cache::srv_spremenljivka($spr_id);
//$row = Cache::srv_spremenljivka(4407);
$newParams = new enkaParameters($row['params']);
//$sql = sisplet_query("SELECT * FROM srv_vrednost WHERE id = '$vrednost'");
//$row = mysqli_fetch_array($sql);
if (strtolower(substr($naslov, 0, 3)) == '<p>' && strtolower(substr($naslov, -4)) == '</p>') {
//$naslov = '<p>'.nl2br($naslov).'</p>';
$tmp = substr(substr($naslov, 0, -4), 3);
if (strpos($tmp, "<p>") === false)
$naslov = $tmp;
}
@ -6957,48 +6862,36 @@ class Vprasanje {
$purifier = New Purifier();
$naslov = $purifier->purify_DB($naslov);
//$sql = sisplet_query("UPDATE srv_vrednost SET naslov='$naslov', variable='$variable', variable_custom='$variable_custom', random='$random' WHERE id = '$vrednost'");
//$sql = sisplet_query("UPDATE srv_spremenljivka SET image_hotspot='$naslov' WHERE id='$spr_id'");
//$slider_MinNumLabel = $newParams->get('slider_MinNumLabel');
if (isset($_POST['hotspot_image'])){
if ($_POST['hotspot_image'] == ""){
$hotspot_image = "";
}else{
}
else{
$hotspot_image = $_POST['hotspot_image'];
$dimensions_present = strpos($hotspot_image,'style=');
//ce slika nima dimenzij
//if($dimensions_present == "" || $_POST['height'] == ""){
if($dimensions_present == ""){
//pobrisi obstojeci parameter hotspot_image
$newParams->set('hotspot_image', "");
//$newParams->set('hotspot_image', $hotspot_image);
$params = $newParams->getString();
//$sql = sisplet_query("UPDATE srv_spremenljivka SET params='$params' WHERE id='$spr_id'");
$sql = sisplet_query("UPDATE srv_spremenljivka SET params='$params' WHERE id='$spr_id'");
$length = strlen($hotspot_image); //dobi dolzino celotne html kode za sliko
$hotspot_image = substr($hotspot_image, 0, ($length-2)); //izlusci vse razen zadnjih dveh znakov, kjer se zakljuci html koda za sliko
//$hotspot_image = $hotspot_image . ' width="'.$_POST['width'].'px" heigth="'.$_POST['height'].'px" />';
$hotspot_image = $hotspot_image . 'style="height:'.$_POST['height'].'px; width:'.$_POST['width'].'px;" />';
}
}
/* //pobrisi obstojeci parameter hotspot_image
$newParams->set('hotspot_image', "");
//$newParams->set('hotspot_image', $hotspot_image);
$params = $newParams->getString();
//$sql = sisplet_query("UPDATE srv_spremenljivka SET params='$params' WHERE id='$spr_id'");
$sql = sisplet_query("UPDATE srv_spremenljivka SET params='$params' WHERE id='$spr_id'"); */
//vnesi parameter hotspot_image
$newParams->set('hotspot_image', $hotspot_image);
$params = $newParams->getString();
$sql = sisplet_query("UPDATE srv_spremenljivka SET params='$params' WHERE id='$spr_id'");
}
if (!$sql) echo mysqli_error($GLOBALS['connect_db']);
echo mysql_real_unescape_string($naslov);
@ -7834,7 +7727,6 @@ class Vprasanje {
}
//posodobi skrite vrednosti odgovorov za diferencial trak
//function ajax_diferencial_trak_skrite_vrednosti(){
function ajax_diferencial_trak_skrite_vrednosti($spr_id, $num_grids, $diferencial_trak_starting_num){
if(isset ($_POST['spr_id'])){
$spr_id = $_POST['spr_id'];

View File

@ -156,8 +156,10 @@ class SurveyDataDisplay{
# nastavimo limite
self::setVars();
# podakcija
self::$subAction = isset($_GET['m']) && $_GET['m'] != '' ? $_GET['m'] : M_COLLECT_DATA_VIEW;
# informacije ankete
SurveyInfo::getInstance()->SurveyInit($sid);
self::$survey = SurveyInfo::getInstance()->getSurveyRow();
@ -169,6 +171,11 @@ class SurveyDataDisplay{
# ali je anketa tipa SN - social network
self::$is_social_network = (SurveyInfo::getInstance()->checkSurveyModule('social_network')) ? true : false;
# Ce imamo vklopljeno povezovanje z identifikatorji, potem prikaz identifikatorjev izklopimo
if(self::$survey['show_email'] == '1'){
self::$_VARS[VAR_SHOW_SYSTEM] = false;
}
# ali prikazujemo datum na začetku ankete (Če smo v identifikatorjih ne smemo zaradi povezovanja)
if ( (self::$_VARS[VAR_SHOW_DATE] == true || (int)SurveyInfo :: getInstance()->getSurveyColumn('showItime') == 1) && self::$_VARS[VAR_SHOW_SYSTEM] == false ) {
//if (self::$_VARS[VAR_SHOW_DATE] == true && self::$_VARS[VAR_SHOW_SYSTEM] == false) {
@ -1072,7 +1079,7 @@ class SurveyDataDisplay{
echo '<label for="var_relevance"><input type="checkbox" onchange="setDataView(\''. VAR_RELEVANCE.'\',$(this).is(\':checked\'))" '.( self::$_VARS[VAR_RELEVANCE] ? ' checked="checked"' : '').' id="var_relevance" />'.$lang['srv_displaydata_relevance'].'</label>';
}
else {
echo '<label for="var_relevance"><input type="checkbox" disabled="disabled" />'.$lang['srv_displaydata_relevance'].'</label>';
echo '<label for="var_relevance" class="gray"><input type="checkbox" disabled="disabled" />'.$lang['srv_displaydata_relevance'].'</label>';
}
echo '</li>';
@ -1087,7 +1094,7 @@ class SurveyDataDisplay{
echo '<label for="var_email"><input type="checkbox" onchange="setDataView(\''. VAR_EMAIL.'\',$(this).is(\':checked\'))" '.( self::$_VARS[VAR_EMAIL] ? ' checked="checked"' : '').' id="var_email" />'.$lang['srv_displaydata_invitation'].'</label>';
}
else {
echo '<label for="var_email"><input type="checkbox" disabled="disabled" id="var_email" />'.$lang['srv_displaydata_invitation'].'</label>';
echo '<label for="var_email" class="gray"><input type="checkbox" disabled="disabled" id="var_email" />'.$lang['srv_displaydata_invitation'].'</label>';
}
echo '</li>';
@ -1095,12 +1102,12 @@ class SurveyDataDisplay{
// podatki
echo '<li>';
echo ' <input type="checkbox" onclick="setDataView(\''.VAR_DATA.'\',$(this).is(\':checked\'))" '.( self::$_VARS[VAR_DATA] ? ' checked="checked"' : '').(self::$_VARS[VAR_SHOW_SYSTEM] ? ' disabled' : '').' id="data" /><label for="data">'.$lang['srv_displaydata_data'].'</label>';
echo ' <input type="checkbox" onclick="setDataView(\''.VAR_DATA.'\',$(this).is(\':checked\'))" '.( self::$_VARS[VAR_DATA] ? ' checked="checked"' : '').(self::$_VARS[VAR_SHOW_SYSTEM] ? ' disabled' : '').' id="data" /><label for="data" '.(self::$_VARS[VAR_SHOW_SYSTEM] ? ' class="gray"' : '').'>'.$lang['srv_displaydata_data'].'</label>';
echo '</li>';
// meta
echo '<li>';
echo ' <input type="checkbox" onclick="setDataView(\''.VAR_METAFULL.'\',$(this).is(\':checked\'))" '.( self::$_VARS[VAR_METAFULL] ? ' checked="checked"' : '').(self::$_VARS[VAR_SHOW_SYSTEM] ? ' disabled' : '').' id="fullmeta" /><label for="fullmeta">'.$lang['srv_displaydata_meta'].'</label>';
echo ' <input type="checkbox" onclick="setDataView(\''.VAR_METAFULL.'\',$(this).is(\':checked\'))" '.( self::$_VARS[VAR_METAFULL] ? ' checked="checked"' : '').(self::$_VARS[VAR_SHOW_SYSTEM] ? ' disabled' : '').' id="fullmeta" /><label for="fullmeta" '.(self::$_VARS[VAR_SHOW_SYSTEM] ? ' class="gray"' : '').'>'.$lang['srv_displaydata_meta'].'</label>';
echo '</li>';
// če imamo sistemske podatke katere moramo prikazovati ločeno - IDENTIFIKATORJI
@ -1113,18 +1120,18 @@ class SurveyDataDisplay{
// Po novem vedno prikazemo checkbox identifikatorji - samo je odkljukan in disablan
else{
echo '<li>';
echo ' <label><input type="checkbox" checked="checked" disabled="disabled" id="showsystem" />'.$lang['srv_displaydata_system_data'].'</label>';
echo ' <label class="gray"><input type="checkbox" checked="checked" disabled="disabled" id="showsystem" />'.$lang['srv_displaydata_system_data'].'</label>';
echo '</li>';
}
// datum
echo '<li>';
echo '<label><input type="checkbox" onclick="setDataView(\''.VAR_SHOW_DATE.'\',$(this).is(\':checked\'))" '.( self::$_VARS[VAR_SHOW_DATE] ? ' checked="checked"' : '').(self::$_VARS[VAR_SHOW_SYSTEM] ? ' disabled' : '').' id="showdate" />'.$lang['srv_data_date'].'</label>';
echo '<label '.(self::$_VARS[VAR_SHOW_SYSTEM] ? ' class="gray"' : '').'><input type="checkbox" onclick="setDataView(\''.VAR_SHOW_DATE.'\',$(this).is(\':checked\'))" '.( self::$_VARS[VAR_SHOW_DATE] ? ' checked="checked"' : '').(self::$_VARS[VAR_SHOW_SYSTEM] ? ' disabled' : '').' id="showdate" />'.$lang['srv_data_date'].'</label>';
echo '</li>';
// zaporedna številka
echo '<li>';
echo '<label><input type="checkbox" onclick="setDataView(\''.VAR_SHOW_NO.'\',$(this).is(\':checked\'))" '.( self::$_VARS[VAR_SHOW_NO] ? ' checked="checked"' : '').' id="showno" />'.$lang['srv_recnum'].'</label>';
echo '<label '.(self::$_VARS[VAR_SHOW_SYSTEM] ? ' class="gray"' : '').'><input type="checkbox" onclick="setDataView(\''.VAR_SHOW_NO.'\',$(this).is(\':checked\'))" '.( self::$_VARS[VAR_SHOW_NO] ? ' checked="checked"' : '').(self::$_VARS[VAR_SHOW_SYSTEM] ? ' disabled' : '').' id="showno" />'.$lang['srv_recnum'].'</label>';
echo '</li>';
// pomoč - ?
@ -1226,7 +1233,10 @@ class SurveyDataDisplay{
}
echo '<br class="clr" />';
echo '<div id="displayFilterNotes">';
# če ne uporabljamo privzetega časovnega profila izpišemo opozorilo
SurveyTimeProfiles :: printIsDefaultProfile();
@ -1241,13 +1251,21 @@ class SurveyDataDisplay{
# če imamo filter spremenljivk ga izpišemo
SurveyVariablesProfiles:: getProfileString();
}
else{
echo '<p>'.$lang['srv_data_settings_identifier_notice'].'</p>';
}
# če imamo rekodiranje
$SR = new SurveyRecoding(self::$sid);
$SR -> getProfileString();
echo '</div>';
$folder = $site_path . EXPORT_FOLDER.'/';
echo '<div id="div_vnosi_data">';

File diff suppressed because it is too large Load Diff

View File

@ -1,610 +0,0 @@
<?php
/**
* Created on Dec.2010
*
* @author: Gorazd Vesleič
*
* @desc: za kreacijo datoteke s podatki za SN (Alterji)
* Datoteko z alterji skreira iz obstoječe datoteke s podatki
*
* funkcije:
* - Init() - inicializacija
*
* CHANGELOG:
* - 9.12.2011
* Po novem bo potrebno ločit tabele za vsak SN loop. Zato se bo kreiralo tudi več datotek (koliko je pač glavnih loopov)
* Hkrati je potrebno navest za kateri krog atunučuja gre :)
* zato je na začetek dodana funkcija ki prešteje loope
*/
#KONSTANTE
define(EXPORT_FOLDER, "admin/survey/SurveyData", true);
DEFINE (STR_DLMT, "|", true);
class SurveySNDataFile {
private $surveyId = null; # Id ankete
private $folder = null; # pot do datotek s podatki
private $_HEADERS = null; # Header podatki
private $headFileName = null; # pot do header fajla
private $dataFileName = null; # pot do data fajla
private $dataFileStatus = null; # status data datoteke
private $SDF = null; # class za inkrementalno dodajanje fajlov
private $sn_loop_parents = null; #glavni loopi
private $sn_loop_spremenljivke = null; # loopi po spremenljivkah
private $sn_loop_data = null; # ime loop variable, antonucci...
private $snCreateFullTable = true; # Ali prikazujemo celotno tabelo
private $_VARS = array();
function __construct ($sid) {
# nastavimo privzeto pot do folderjev
global $site_path, $global_user_id;
$this->surveyId = $sid;
$this->folder = $site_path . EXPORT_FOLDER.'/';
#inicializiramo class za datoteke
$this->SDF = SurveyDataFile::get_instance();
$this->SDF->init($sid);
$this->headFileName = $this->SDF->getHeaderFileName();
$this->dataFileName = $this->SDF->getDataFileName();
$this->dataFileStatus = $this->SDF->getStatus();
session_start();
$this->snCreateFullTable = $_SESSION['sid_'.$sid]['snCreateFullTable'];
if ( $this->dataFileStatus == FILE_STATUS_NO_DATA
|| $this->dataFileStatus == FILE_STATUS_SRV_DELETED) {
Common::noDataAlert();
return false;
}
}
public function setVars($_VARS) {
$this->_VARS = $_VARS;
}
public function setParameter($parameter,$value) {
$this->{$parameter} = $value;
}
/** Preštejemo loope
*
*/
function countLoops() {
if ($this->dataFileStatus >= 0 && $this->headFileName != '') {
$this -> _HEADERS = unserialize(file_get_contents($this->headFileName)) ;
# poiščemo skevence za vse variable loopa
#$_headers = $this -> _HEADERS;
$_headers = $this->getCleanHeader();
#preštejemo koliko loopov imamo
$this->sn_loop_parents = array();
$this->sn_loop_spremenljivke = array();
if (count($_headers) > 0) {
foreach ($_headers as $spr => $spremenljivka) {
if ($spremenljivka['loop_parent'] > 0) {
$this->sn_loop_data[$spremenljivka['loop_parent']]['antonucci'] = $spremenljivka['antonucci'];
$this->sn_loop_data[$spremenljivka['loop_parent']]['spr'] = $spr;
$this->sn_loop_data[$spremenljivka['loop_parent']]['variable'] = $spremenljivka['variable'];
$this->sn_loop_data[$spremenljivka['loop_parent']]['naslov'] = $spremenljivka['naslov'];
}
# spremenljivka je parent za loop, preštejemo variable
if (count($spremenljivka['grids']) > 0) {
foreach($spremenljivka['grids'] AS $gid => $grid) {
if (count($grid['variables']) > 0) {
foreach($grid['variables'] AS $vid => $variable) {
# če smo v loop parent
if ($spremenljivka['loop_parent'] > 0) {
$this->sn_loop_parents[$spremenljivka['loop_parent']][$variable['sequence']] = $variable['sequence'];
}
# če smo v loop spremenljivki
if ($spremenljivka['parent_loop_id'] > 0) {
$this->sn_loop_spremenljivke[$spremenljivka['parent_loop_id']][$spremenljivka['loop_id']][$variable['sequence']] = $variable['sequence'];
}
}
}
}
}
}
}
}
}
/** Skreira datoteko z alterji iz obstoječe datoteke s podatki
*
*/
function createSNDataFile($lpid, $sn_loop_parent,$_SN_head_file_name,$_sn_filename) {
if ($this->dataFileStatus >= 0 && $this->headFileName != '') {
# če kreiramo nove, pobrišemo morebitne obstoječe datoteke
$this->deleteOldSnFiles();
#popucamo headers
$_headers = $this->getCleanHeader();
$sn_loop_spremenljivke = $this->sn_loop_spremenljivke;
# resetiramo array za SN_HEADER
$_empty_name_filter = array();
$SN_HEADER = array();
$sequences = array(); # kam shranimo sequence
$loop_header_cnt = 0;
if (count($sn_loop_parent) > 0 ) {
foreach ($sn_loop_parent as $lsid => $loop_sequence) {
$loop_header_cnt ++;
$_new_sequence = 1;
# poiščemo variable loopa
if (isset($sn_loop_spremenljivke[$lpid]) && count($sn_loop_spremenljivke[$lpid]) > 0) {
$_loop_cnt = array_shift($sn_loop_spremenljivke[$lpid]);
} else {
$_loop_cnt = array();
}
$sequences[$lpid.'_'.$lsid] = array();
# Zloopamo skozi vse spremenljivke in dodamo v primerno skupino
if (count($_headers) > 0) {
foreach ($_headers as $spr => $spremenljivka) {
if ($loop_header_cnt === 1 ) {
$tmp_spremenljivka = $spremenljivka;
}
# odvisno ali smo v loopu ali ne dodamo primerne spremnljivke
if ((int)$spremenljivka['loop_parent'] > 0 || (int)$spremenljivka['parent_loop_id']) {
# ali smo v parent spremenljivki ali v loop spremenljivkah
if ((int)$spremenljivka['loop_parent'] > 0 && $lpid == (int)$spremenljivka['loop_parent']){
$_first_parent_variable = 0;
#smo v parent splemenljivki, dodamo samo variablo z primerno sekvenco
if (count($spremenljivka['grids']) > 0) {
foreach($spremenljivka['grids'] AS $gid => $grid) {
if (count($grid['variables']) > 0) {
foreach($grid['variables'] AS $vid => $variable) {
if ($variable['sequence'] == $loop_sequence) {
#$sequences[$lpid.'_'.$lsid][$spr] = $variable['sequence'];
$sequences[$lpid.'_'.$lsid][] = $variable['sequence'];
# v sn imenih imamo samo 1 variablo
if ($loop_header_cnt === 1 && $_first_parent_variable === 0) {
$_empty_name_filter[] = '($'.$_new_sequence .' != -1 && $'.$_new_sequence .' != -2 && $'.$_new_sequence .' != -3 && $'.$_new_sequence .' != -4 && $'.$_new_sequence .' != -5)';
$tmp_spremenljivka['grids'][$gid]['variables'][$vid]['sequence'] = $_new_sequence;
$tmp_spremenljivka['sequences'] = $_new_sequence;
$tmp_spremenljivka['cnt_grids'] = 1;
$tmp_spremenljivka['cnt_all'] = 1;
$tmp_spremenljivka['grids']['0']['cnt_vars'] = 1;
$_new_sequence++;
$_first_parent_variable ++;
}
}
# odstranimo ostale variable
if ( $gid == 0 && $vid > 0) {
unset($tmp_spremenljivka['grids'][$gid]['variables'][$vid]);
} else if ( $gid > 0) {
unset($tmp_spremenljivka['grids'][$gid]);
}
}
}
}
}
# dodamo spremenljivko v nov header
if ($loop_header_cnt === 1) {
$SN_HEADER[$spr] = $tmp_spremenljivka;
}
}
# ali smo v spremenljivki v loopu
if ((int)$spremenljivka['parent_loop_id'] > 0) {
$add_this_spr = false;
$sequenceses = array();
# smo v loop spremenljivkah, dodamo variable s pravo frekvenco
if (count($spremenljivka['grids']) > 0) {
foreach($spremenljivka['grids'] AS $gid => $grid) {
if (count($grid['variables']) > 0) {
foreach($grid['variables'] AS $vid => $variable) {
if (isset($_loop_cnt[$variable['sequence']])) {
$add_this_spr = true;
#$sequences[$lpid.'_'.$lsid][$spr] = $variable['sequence'];
$sequences[$lpid.'_'.$lsid][] = $variable['sequence'];
if ($loop_header_cnt === 1) {
$tmp_spremenljivka['grids'][$gid]['variables'][$vid]['sequence'] = $_new_sequence;
$sequenceses[] = $_new_sequence;
$_new_sequence++;
}
}
}
}
}
}
# dodamo spremenljivko v nov header
if ($loop_header_cnt === 1 && $add_this_spr == true) {
$SN_HEADER[$spr] = $tmp_spremenljivka;
$SN_HEADER[$spr]['sequences'] = implode('_',$sequenceses);
}
}
} else {
if (true) {
# nismo v loopu
$sequenceses = array();
if (count($spremenljivka['grids']) > 0) {
foreach($spremenljivka['grids'] AS $gid => $grid) {
if (count($grid['variables']) > 0) {
foreach($grid['variables'] AS $vid => $variable) {
#$sequences[$lpid.'_'.$lsid][$spr] = $variable['sequence'];
$sequences[$lpid.'_'.$lsid][] = $variable['sequence'];
if ($loop_header_cnt === 1) {
$tmp_spremenljivka['grids'][$gid]['variables'][$vid]['sequence'] = $_new_sequence;
$sequenceses[] = $_new_sequence;
$_new_sequence++;
}
}
}
}
}
# dodamo spremenljivko v nov header
if ($loop_header_cnt === 1) {
$SN_HEADER[$spr] = $tmp_spremenljivka;
$SN_HEADER[$spr]['sequences'] = implode('_',$sequenceses);
}
}
}
}
}
}
}
# zapišemo header za SN datoteko
if (is_array($SN_HEADER) && count($SN_HEADER) > 0) {
#zapišemo SN header datoteko
file_put_contents($_SN_head_file_name, serialize($SN_HEADER));
}
# KREACIJA DATA DATOTEKE
# skreiramo fajle z potrebnimi skevencami
if (count($sequences) > 0) {
$_original_data_file = $this->dataFileName;
$_paste_files = '';
foreach ($sequences AS $skey => $sequence) {
if (is_array($sequence) && count($sequence)>0) {
$_sequence = implode(",",$sequence);
if (IS_WINDOWS) {
$cmdLn1 = 'cut -d "|" -f '.$_sequence.' '.$_original_data_file.' > '.$this->folder.'export_sn_data_'.$this->surveyId.'_'.$lpid.'_'.$skey.'.dat';
} else {
$cmdLn1 = 'cut -d \'|\' -f '.$_sequence.' '.$_original_data_file.' > '.$this->folder.'export_sn_data_'.$this->surveyId.'_'.$lpid.'_'.$skey.'.dat';
}
$out1 = shell_exec($cmdLn1);
$_paste_files .= $this->folder.'export_sn_data_'.$this->surveyId.'_'.$lpid.'_'.$skey.'.dat ';
}
}
# združimo datoteke v eno
$_orig_date = explode("_",$_original_data_file);
$_orig_date = explode(".",$_orig_date[3]);
#$_merged_file_name = $this->folder.'export_sn_data_'.$this->surveyId.'_'.$_orig_date[0].'.dat';
$_merged_file_name = $_sn_filename;
$tmp_merged_file_name = $this->folder.'tmp_export_sn_data_'.$this->surveyId.'_'.$lpid.'_'.$_orig_date[0].'.dat';
if (IS_WINDOWS) {
$cmdLn2 = 'paste -d "\n" '.$_paste_files .'> '.$tmp_merged_file_name;
} else {
$cmdLn2 = 'paste -d \'\n\' '.$_paste_files. '>' .$tmp_merged_file_name;
}
$out2 = shell_exec($cmdLn2);
# pripravimo filtre, za data datoteko, da odstranimo zapise ki nimajo imen ( če je nekdo dodal samo 2 imena nekdo pa 5)
$_empty_name_filter = implode(' && ',$_empty_name_filter);
# sfiltriramo zapise ki nimajo imen
if (IS_WINDOWS) {
$cmdLn3 = 'awk -F"'.STR_DLMT.'" "BEGIN {OFS=\"\x7C\"} '.$_empty_name_filter.' { print $0 }" ' . $tmp_merged_file_name .' > ' . $_merged_file_name;
} else {
$cmdLn3 = 'awk -F"'.STR_DLMT.'" \'BEGIN {OFS="\x7C"} '.$_empty_name_filter.' { print $0 }\' ' . $tmp_merged_file_name . ' > ' . $_merged_file_name;
}
$out3 = shell_exec($cmdLn3);
# pobrišemo odvečne datoteke
foreach (explode(" ",$_paste_files) as $filename_to_delete) {
if (trim($filename_to_delete) != '') {
$this->SDF->deleteFile($filename_to_delete);
}
}
if (trim($tmp_merged_file_name) != '') {
$this->SDF->deleteFile($tmp_merged_file_name);
}
}
}
}
function displayFullTableCheckbox() {
global $lang;
session_start();
echo '<label><input id="snCreateFullTable" name="snCreateFullTable" onclick="setSnDisplayFullTableCheckbox();" type="checkbox"'.($this->snCreateFullTable==true?' checked="checked"':'').'>Prikaži razširjeno tabelo</label>';
}
function outputSNDataFile() {
global $lang;
$this->countLoops();
# forsamo novo kreiranje! malo slaba rešitev - mogoče dodat enako kontrolao na zadnjega userja v SN fajlih
$this->deleteOldSnFiles();
$_original_head_file = $this->headFileName;
$_original_data_file = $this->dataFileName;
# timestam head datoteke
$_orig_date_h = explode("_",$_original_head_file);
$_orig_date_h = explode(".",$_orig_date_h[3]);
# združimo datoteke v eno
$_orig_date_d = explode("_",$_original_data_file);
$_orig_date_d = explode(".",$_orig_date_d[3]);
$this-> displayFullTableCheckbox();
# Tukaj začnemo loopat po glavnih loopih in nardimo ločene tabele za vsak loop
# zloopamo tolikokrat koliko imamo variabel za loop ( v loop_parent)
if (count($this->sn_loop_parents) > 0) {
foreach ($this->sn_loop_parents as $lpid => $sn_loop_parent) {
# head ime datoteke za loop
$_SN_head_file_name = $this->folder.'export_sn_header_'.$this->surveyId.'_'.$lpid.'_'.$_orig_date_h[0].'.dat';
# data ime datoteke za loop
$_sn_filename = $this->folder.'export_sn_data_'.$this->surveyId.'_'.$lpid.'_'.$_orig_date_d[0].'.dat';
# začasno ime datoteke za loop
$_sn_tmp1 = $this->folder.'tmp_1_export_sn_data_'.$this->surveyId.'_'.$lpid.'_'.$_orig_date_d[0].'.dat';
# če SN header in SN data datoteka obstaja
if (!file_exists($_SN_head_file_name) || !file_exists($_sn_filename)) {
$this->createSNDataFile($lpid, $sn_loop_parent,$_SN_head_file_name,$_sn_filename);
}
# če SN header in SN data datoteka obstaja
if (file_exists($_SN_head_file_name) && file_exists($_sn_filename)) {
# naložimo header
$SN_HEADER = unserialize(file_get_contents($_SN_head_file_name));
echo '<div id="tableContainer" class="tableContainer">';
echo '<h3>'.$lang['srv_loop_for_variable'].' <b>['. $this->sn_loop_data[$lpid]['variable']. '] - '. $this->sn_loop_data[$lpid]['naslov']. '</b> ('.$lang['srv_loop_antonucci_circle'].' '.$this->sn_loop_data[$lpid]['antonucci'].')</h3>';
echo '<table id="dataTable" border="0" cellpadding="0" cellspacing="0" width="100%" class="scrollTable no_wrap_td social_network">';
echo '<thead class="fixedHeader">';
echo '<tr>';
# dodamo skrit stolpec uid
echo '<th class="data_uid">&nbsp;</th>';
$spr_cont = 0;
foreach ($SN_HEADER AS $spid => $spremenljivka) {
# if (isset(self::$_SVP_PV[$spid]) ) {
## paginacija spremenljivk
# if (self::$_VARS['spr_limit'] == 'all' || ($spr_cont >= $_spr_on_pages_start && $spr_cont < $_spr_on_pages_stop)) {
if ($spr_cont > 0 && $spid != 'uid') {
echo '<th colspan="'.$spremenljivka['cnt_all'].'" title="'.$spremenljivka['naslov'].'">';
echo '<div class="headerCell">'.$spremenljivka['naslov'].'</div>';
echo '</th>';
#}
}
$spr_cont++;
#}
} #end foreach $SN_HEADER AS $spid => $spremenljivka
# nova vrstica
echo '</tr><tr>';
# dodamo skrit stolpec uid
echo '<th class="data_uid">&nbsp;</th>';
$spr_cont = 0;
foreach ($SN_HEADER AS $spid => $spremenljivka) {
if ($spr_cont > 0 && $spid != 'uid') {
# if (isset(self::$_SVP_PV[$spid]) && (count($spremenljivka['grids']) > 0 )) {
## paginacija spremenljivk
# if (self::$_VARS['spr_limit'] == 'all' || ($spr_cont >= $_spr_on_pages_start && $spr_cont < $_spr_on_pages_stop)) {
if (count($spremenljivka['grids']) > 0) {
foreach ($spremenljivka['grids'] AS $gid => $grid) {
echo '<th colspan="'.$grid['cnt_vars'].'" title="'.$grid['naslov'].'">';
echo '<div class="headerCell">'.$grid['naslov'].'</div>';
echo '</th>';
}
}
#}
}
$spr_cont++;
#}
}
# nova vrstica
echo '</tr><tr>';
## dodamo skrit stolpec uid
echo '<th class="data_uid">&nbsp;</th>';
$spr_cont = 0;
foreach ($SN_HEADER AS $spid => $spremenljivka) {
if ($spr_cont > 0 && $spid != 'uid') {
# if (isset(self::$_SVP_PV[$spid]) && count($spremenljivka['grids']) > 0) {
## paginacija spremenljivk
# if (self::$_VARS['spr_limit'] == 'all' || ($spr_cont >= $_spr_on_pages_start && $spr_cont < $_spr_on_pages_stop)) {
if (count($spremenljivka['grids']) > 0){
foreach ($spremenljivka['grids'] AS $gid => $grid) {
if (count ($grid['variables']) > 0) {
foreach ($grid['variables'] AS $vid => $variable ){
echo '<th title="'.$variable['naslov'].($variable['other'] ? '&nbsp;(text)' : '').'">';
echo '<div class="dataCell">'.$variable['naslov'];
if ($variable['other'] == 1) {
echo '&nbsp;(text)';
}
/*// urejanje kalkulacije -- izracunane vrednosti v podatkih
if ($spremenljivka['tip'] == 22) {
echo ' <a href="" onclick="calculation_editing(\'-'.substr($spid, 0, strpos($spid, '_')).'\'); return false;">('.$lang['edit3'].')</a>';
}*/
echo '</div>';
echo '</th>';
}
}
} # end foreach
} #end if
# }
}
$spr_cont++;
#}
}
echo'</tr>';
echo '</thead>';
echo '</div>';
# dodamo podatke
if (file_exists($_sn_filename)) {
// zamenjamo | z </td><td>
if (IS_WINDOWS) {
$cmdLn3 = 'sed "s*'.STR_DLMT.'*</td><td>*g" '.$_sn_filename.' > '.$_sn_tmp1;
} else {
$cmdLn3 = 'sed \'s*'.STR_DLMT.'*</td><td>*g\' '.$_sn_filename.' > '.$_sn_tmp1;
}
$out3 = shell_exec($cmdLn3);
echo '<tbody class="scrollContent">';
$file_handler = fopen ($_sn_tmp1, 'r');
while ($line= fgets ($file_handler)) {
echo '<tr>';
echo '<td class="data_uid">'.$line.'</td></tr>';
}
echo '</tbody>';
echo '</table>';
echo '</div>';
if ($file_handler) {
fclose($file_handler);
}
# pobrišemo tmp falj
if (trim($_sn_tmp1) != '') {
$this->SDF->deleteFile($_sn_tmp1);
}
}
}
}
}
}
/** Pobriše morebitne stare SN daoteke
*
*/
function deleteOldSnFiles() {
if ($this->surveyId > 0) {
# odstranimo morebitne SN datoteke - header
$files = glob($this->folder.'export_sn_header_'.$this->surveyId.'_*.dat');
if(count($files ) > 0) {
foreach ($files AS $file) {
unlink($file);
}
}
# odstranimo morebitne SN datoteke - data
$files = glob($this->folder.'export_sn_data_'.$this->surveyId.'_*.dat');
if(count($files ) > 0) {
foreach ($files AS $file) {
unlink($file);
}
}
}
}
/* Tukaj pripravimo redosled in prikaz glavnih spremenljivk
*
*/
function getCleanHeader() {
# poiščemo skevence za vse variable loopa
$header = $this -> _HEADERS;
$cleanHeader = array();
if (count($header) > 0) {
foreach ($header AS $spr_id => $spremenljivka) {
if ($this->_VARS[VAR_DATA] == '1') {
$add_data = true;
} else {
$add_data = false;
}
# preverimo ali delamo kompleksno tabelo al samo simpl
if ($this->snCreateFullTable == false) {
$add_data = $add_data && ((int)$spremenljivka['loop_parent'] > 0 || (int)$spremenljivka['parent_loop_id'] > 0);
}
if ( $spremenljivka['tip'] == 'm' || $spremenljivka['tip'] == 'sm') {
$add_data = false;
switch ($spremenljivka['variable']) {
case 'uid':
case 'recnum':
$add_data = true;
break;
case 'code':
# ce prikazujemo sistemske ne prikazujemo recnumber
if (!$this->_VARS[VAR_SHOW_SYSTEM] && $this->_VARS[VAR_META] && $this->_VARS[VAR_METAFULL]) {
$add_data = true;
}
break;
case 'status':
case 'lurker':
if ($this->_VARS[VAR_META] && $this->_VARS[VAR_METAFULL]) {
$add_data = true;
}
break;
case 'relevance':
if ($this->_VARS[VAR_RELEVANCE] && $this->canDisplayRelevance) {
$add_data = true;
}
break;
case 'invitation':
if ($this->_VARS[VAR_EMAIL]) {
$add_data = true;
}
break;
case 'testdata':
$header = $this->SDF->getHeader();
if (isset($header['testdata'])) {
$add_data = true;
}
break;
case 'smeta':
case 'meta':
if ($this->_VARS[VAR_METAFULL]) {
$add_data = true;
}
break;
case 'itime':
if ($this->showItime == true) {
$add_data = true;
}
break;
}
}
if ($spremenljivka['hide_system'] == '1') {
$add_data = false;
}
if ($add_data == true ) {
$cleanHeader[$spr_id] = $spremenljivka;
}
}
}
return $cleanHeader;
}
}
?>

View File

@ -1,13 +0,0 @@
<?php
class SurveyTrackIncremental {
static public function write($anketa, $msg) {
if(!empty($msg)){
$date = date("Y-m-d h:m:s");
$s = sisplet_query("INSERT INTO srv_tracking_incremental (anketa, datetime, message) "
." VALUES ('$anketa', NOW(), '$msg')");
if (!$s) echo mysqli_error($GLOBALS['connect_db']);
}
}
}

View File

@ -1,24 +0,0 @@
<?php
ob_start();
header('Cache-Control: no-cache');
header('Pragma: no-cache');
include_once($_SERVER['DOCUMENT_ROOT'].'/function.php');
include_once($_SERVER['DOCUMENT_ROOT'].'/admin/survey/definition.php');
include_once($_SERVER['DOCUMENT_ROOT'].'/vendor/autoload.php');
$action = $_GET['action'];
$anketa = (int)$_GET['anketa'];
if($action == 'doIncremental' && (int)$anketa > 0) {
# pokličemo inkrementalno dodajanje za anketo
$CID = new CollectIncrementalData($anketa);
}
print_r($_POST);
print_r($_GET);
ob_flush();

View File

@ -1,110 +0,0 @@
<?php
// nov, poenoten nacin progress bara
if (isset($_GET['getProgress']) && $_GET['getProgress'] == 'true') {
$anketa = $_REQUEST['anketa'];
$return = array();
session_start();
if (isset($_SESSION['progressBar'][$anketa])) {
$return['status'] = $_SESSION['progressBar'][$anketa]['status'];
$return['total'] = $_SESSION['progressBar'][$anketa]['total'];
$return['current'] = $_SESSION['progressBar'][$anketa]['current'];
if ($_SESSION['progressBar'][$anketa]['status'] == 'end') {
unset($_SESSION['progressBar'][$anketa]);
}
} else {
$return['status'] = 'null';
}
session_commit();
echo json_encode($return);
// star nacin progresbara v podatkih in analizah
} else {
# izrisujemo progress bar z ajax-om
if (isset($_GET['ajaxTimer']) && $_GET['ajaxTimer'] == 'true') {
/*
$actions = array(
1=>'Inicializacija...',
2=>'Obdelujem datoteke s strukturo...',
3=>'Obdelujem datoteke s podatki...',
9=>'Končano...',
-1=>'Napaka...',
);
*/
session_start();
#time
$return['t'] = ($_SESSION['PMD']['start_time'] != null && (strtotime("now") - $_SESSION['PMD']['start_time']) > 0 )
? date('i:s', (strtotime("now") - $_SESSION['PMD']['start_time']))
: '00:00' ;
#id
$return['id'] = $_SESSION['PMD']['actID'];
# skupni procenti
$return['pa'] = ($_SESSION['PMD']['all'] == 0)
? number_format(100, 0, '', '')
: number_format((($_SESSION['PMD']['current'] / $_SESSION['PMD']['all']) * 100), 0, '', '');
# procenti headerja
if ($_SESSION['PMD']['actID'] == 2) {
$return['ph'] = ($_SESSION['PMD']['allHead'] == 0 || $_SESSION['PMD']['current'] >= $_SESSION['PMD']['allHead'])
? number_format(100, 0, '', '')
: number_format((($_SESSION['PMD']['current'] / $_SESSION['PMD']['allHead']) * 100), 0, '', '');
# trenutni zapis
$return['nr'] = $_SESSION['PMD']['nrRow'];
$return['cr'] = $_SESSION['PMD']['current'] .'/'. $_SESSION['PMD']['allHead'];
}
if ($_SESSION['PMD']['actID'] == 3) {
$curent_data = $_SESSION['PMD']['current']-$_SESSION['PMD']['allHead'] < 0 ? 0 : $_SESSION['PMD']['current']-$_SESSION['PMD']['allHead'];
# procenti data
$return['pd'] = ($_SESSION['PMD']['all'] == 0)
? number_format(100, 0, '', '')
: number_format((($_SESSION['PMD']['all'] > 0) ? ( $curent_data / $_SESSION['PMD']['all']) * 100 : 100), 0, '', '');
$return['cd'] = $curent_data .' / ' .$_SESSION['PMD']['all'];
}
# procent trenutnega zapisa
if ($_SESSION['PMD']['actID'] == 3) {
# prikazuejemo samo za status 3
$return['pr'] = number_format($_SESSION['PMD']['percentRow'], 0, '', ''); # procent trenutnega zapisa
$return['nr'] = $_SESSION['PMD']['nrRow']; # trenutni zapis
}
echo json_encode($return);
} else { # star način za podatke
define('EXPORT_FOLDER', 'tmp', true);
include($_SERVER['DOCUMENT_ROOT'].'/function.php');
include_once $_SERVER['DOCUMENT_ROOT'].'/admin/survey/definition.php';
$folder = $site_path . EXPORT_FOLDER.'/';
$anketa = $_POST['anketa'];
$_qry_all = sisplet_query('SELECT count(*) FROM srv_user AS u WHERE u.ank_id = \''.$anketa.'\'');
$_allCount = mysqli_fetch_row($_qry_all);
$allCount = $_allCount[0];
$str_qry_users = 'SELECT IF(UNIX_TIMESTAMP(MAX(time_edit)) = 0,UNIX_TIMESTAMP(MAX(time_insert)),UNIX_TIMESTAMP(MAX(time_edit))) AS DATE FROM srv_user WHERE ank_id = \''.$anketa.'\'';
$qry_users = sisplet_query($str_qry_users) or die(mysqli_error($GLOBALS['connect_db']));
if (mysqli_num_rows($qry_users)) {
$row_users = mysqli_fetch_row($qry_users);
$timestamp = $row_users[0];
}
$_dataFileName = $folder.'export_data_'.$anketa.'_'.$timestamp.'.dat';
#preberemo št vrstic v fajlu
$recCount = exec('wc -l '.$_dataFileName)+1;
echo '<div class="anl_red_ba body_anketa anl_ac"><br/>Obdelujemo zapis '.(int)$recCount.' od '.(int)$allCount.'!<br/><br/></div>';
}
}
?>

View File

@ -1,19 +0,0 @@
<?php
session_start();
# statusi
# 0 : končano
# 1 : teče inkrementalno kreiranje
$anketa = $_REQUEST['anketa'];
$return = array();
if (isset($_SESSION['incrementalProgressBar'][$anketa])) {
$return = $_SESSION['incrementalProgressBar'][$anketa];
} else {
$return['status'] = -1;
}
session_commit();
echo json_encode($return);
?>

View File

@ -1,101 +0,0 @@
<?php
ob_start();
session_start();
set_time_limit(2400); # 30 minut
header('Cache-Control: no-cache');
header('Pragma: no-cache');
# očitno ta klic ne deluje vredu
include_once($_SERVER['DOCUMENT_ROOT'].'/function.php');
include_once($_SERVER['DOCUMENT_ROOT'].'/admin/survey/definition.php');
include_once($_SERVER['DOCUMENT_ROOT'].'/vendor/autoload.php');
$anketa = (int)$_REQUEST['anketa'];
if ($_GET['action'] == 'createSingle') {
if ($anketa > 0) {
session_start();
// nastavimo jezik
$lang_admin = (isset($_REQUEST['lang_admin'])) ? $_REQUEST['lang_admin'] : 1;
$file = $site_path.'/lang/'.$lang_admin.'.php';
include($file);
unset($_SESSION['incrementalProgressBar'][$anketa]);
list($usec, $sec) = explode(" ", microtime());
# če
if ($_SESSION['incrementalProgressBar'][$anketa]['status'] != 1
# ali smo začeli pred 30 min ali več, potem dovolimo ponoven start
# || ($_SESSION['incrementalProgressBar'][$anketa]['status'] == 1
# && isset($_SESSION['incrementalProgressBar'][$anketa]['started'])
# && ($sec - (int)$_SESSION['incrementalProgressBar'][$anketa]['started']) > 1800
# )
){
SurveyTrackIncremental::write($anketa,'Progress bar -> Ajax started for survey: '.$anketa);
# pobrišemo staro sejo
unset($_SESSION['incrementalProgressBar'][$anketa]);
# nastavimo čas kdaj smo startali
$_SESSION['incrementalProgressBar'][$anketa]['started'] = $sec;
# nastavimo status da smo štartali
$_SESSION['incrementalProgressBar'][$anketa]['status'] = 1;
$_SESSION['incrementalProgressBar'][$anketa]['current'] = 0;
session_commit();
// Get the start time in microseconds, as a float value
$starttime = microtime(true);
$lock = new ExclusiveLock( "survey_lock_".$anketa, FALSE);
if( $lock->lock( ) == FALSE ) {
SurveyTrackIncremental::write($anketa,'LOCK: alreadyLocked for survey: '.$anketa);
#error("Locking failed");
} else {
# pozenemo generiranje datoteke
$CID = new CollectIncrementalData($anketa);
$CH = (int)$CID->createHeadFile();
// Get the difference between start and end in microseconds, as a float value
$diff = microtime(true) - $starttime;
// Break the difference into seconds and microseconds
$sec = intval($diff);
$micro = $diff - $sec;
// Format the result as you want it
// $final will contain something like "00:00:02.452"
$final = strftime('%T', mktime(0, 0, $sec)) . str_replace('0.', '.', sprintf('%.3f', $micro));
echo '<hr>1:'.$final;
$CD = (int)$CID->createDataFile();
}
$lock->unlock();
// Get the difference between start and end in microseconds, as a float value
$diff = microtime(true) - $starttime;
// Break the difference into seconds and microseconds
$sec = intval($diff);
$micro = $diff - $sec;
// Format the result as you want it
// $final will contain something like "00:00:02.452"
$final = strftime('%T', mktime(0, 0, $sec)) . str_replace('0.', '.', sprintf('%.3f', $micro));
echo '<hr>2:'.$final;
} else {
SurveyTrackIncremental::write($anketa,'Progress bar -> Ajax skiped for survey: '.$anketa);
}
}
} else if ($_GET['action'] == 'clear') {
if ($anketa > 0) {
session_start();
unset($_SESSION['incrementalProgressBar'][$anketa]);
session_commit();
}
}
ob_flush();
?>

View File

@ -600,6 +600,11 @@ class LatexSurveyElement{
}
if( ($export_format=='pdf'&&$fillablePdf==0)||$export_format=='rtf'){//ce je navaden pdf ali rtf dokument (brez moznosti izbire ali vnosa v polja)
if($data){
$data = $this->encodeText($data);
}
if($tip==1||$tip==6){ //radio ali multigrid z radio
if($data){ //ce je odgovor respondenta
if($enota!=11&&$enota!=12){ //ce ni VAS ali slikovni tip
@ -738,6 +743,7 @@ class LatexSurveyElement{
if($export_format == 'pdf'){
if($data!=''){
$TextBoxWithText = ' \\textcolor{crta}{\footnotesize{'.$data.'}} ';
//$TextBoxWithText = ' \\textcolor{crta}{\footnotesize{'.$this->encodeText($data).'}} ';
$emptyTextBox = $TextBoxWithText;
}else{
if($this->export_subtype == 'q_empty' || $this->export_subtype == 'q_comments'){
@ -910,6 +916,7 @@ class LatexSurveyElement{
//if($numOfUl!=0){
if($numOfUl!=0 && $posLi !== false){ //ce imamo ul in li
$text = str_replace('<ul>','\begin{itemize} ', $text);
$text = str_replace('<ul','\begin{itemize} ', $text);
$text = str_replace('<li>','\item ', $text);
$text = str_replace('</ul>','\end{itemize} \ ', $text);
}
@ -1556,6 +1563,7 @@ class LatexSurveyElement{
if($spremenljivke['tip']==24){ //ce je kombinirana tabela
//echo "stevilo stolpcev za izpis kombinirane podan: ".$numColSql."</br>";
//print_r($data);
//if($presirokaKombo == 1 && count($data) != 0 && ($enota == 2 || $enota == 6)){
if($presirokaKombo == 1 && count($data) != 0 && (($enota == 2 || $enota == 6) || $export_data_type == 2 && $vodoravniOdgovoriTip[0] == 6)){
$numColSql = 1 + 1;
@ -1755,7 +1763,7 @@ class LatexSurveyElement{
if($export_data_type==0 || $export_data_type==1 || ($export_data_type==2 && $vodoravniOdgovoriTip[$j-1] != 6)){ //ce je razsirjen izvoz ALI je skrcen izvoz IN ni klasicna tabela
$tex .= "& ".$this->getAnswerSymbol($export_format, $fillablePdf, $vodoravniOdgovoriTip[$j-1], $numColSql, 0, $data[$userAnswerIndex[$spremenljivke['id']]]);
$test = "& ".$this->getAnswerSymbol($export_format, $fillablePdf, $vodoravniOdgovoriTip[$j-1], $numColSql, 0, $data[$userAnswerIndex[$spremenljivke['id']]]);
//$test = "& ".$this->getAnswerSymbol($export_format, $fillablePdf, $vodoravniOdgovoriTip[$j-1], $numColSql, 0, $data[$userAnswerIndex[$spremenljivke['id']]]);
//echo "testna koda $test z enoto $enota</br>";
//echo "tip exp: ".$export_data_type."</br>";
//echo $vodoravniOdgovoriTip[$j-1]."</br>";

View File

@ -1606,6 +1606,9 @@ function textSubtypeToggle (what, value){
$('input[name=signature]').prop('disabled', false);
$('input[name=captcha]').prop('disabled', false);
$('input[name=emailVerify]').prop('disabled', false);
$('.kategorije_odgovorov').show();
$('.upload_info').hide();
}
// Disable
else{
@ -1617,6 +1620,12 @@ function textSubtypeToggle (what, value){
$('input[name=captcha]').prop('disabled', true);
if(what != 'emailVerify')
$('input[name=emailVerify]').prop('disabled', true);
if(what == 'upload' || what == 'signature' || what == 'captcha')
$('.kategorije_odgovorov').hide();
if(what == 'upload')
$('.upload_info').show();
}
}

2318
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -333,12 +333,15 @@ class UserAccess{
$package_required = (isset($this->functionality_package[$what])) ? $this->functionality_package[$what] : 3;
$package_required_name = $this->packages[$package_required]['name'];
$drupal_url = ($lang['id'] == '2') ? $site_url.'d/en/' : $site_url.'d/';
if($lang['id'] == '2')
$drupal_url = $site_url.'d/en/purchase/'.$package_required.'/package';
else
$drupal_url = $site_url.'d/izvedi-nakup/'.$package_required.'/podatki';
echo '<div class="user_access_warning">';
echo '<p>'.$lang['srv_access_no_access'].' "'.$package_required_name.'".</p>';
echo '<span class="floatLeft"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_blue" href="'.$drupal_url.'izvedi-nakup/'.$package_required.'/podatki" target="_blank">'.$lang['srv_narocila_buy'].'</a></div></span>';
echo '<span class="floatLeft"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_blue" href="'.$drupal_url.'" target="_blank">'.$lang['srv_narocila_buy'].'</a></div></span>';
echo '</div>';
}
@ -352,10 +355,13 @@ class UserAccess{
$package_required = (isset($this->functionality_package[$what])) ? $this->functionality_package[$what] : 3;
$package_required_name = $this->packages[$package_required]['name'];
$drupal_url = ($lang['id'] == '2') ? $site_url.'d/en/' : $site_url.'d/';
if($lang['id'] == '2')
$drupal_url = $site_url.'d/en/purchase/'.$package_required.'/package';
else
$drupal_url = $site_url.'d/izvedi-nakup/'.$package_required.'/podatki';
echo '<p>'.$lang['srv_access_no_access'].' "'.$package_required_name.'".</p>';
echo '<span class="floatRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_blue" href="'.$drupal_url.'izvedi-nakup/'.$package_required.'/podatki" target="_blank">'.$lang['srv_narocila_buy'].'</a></div></span>';
echo '<span class="floatRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_blue" href="'.$drupal_url.'" target="_blank">'.$lang['srv_narocila_buy'].'</a></div></span>';
echo '<span class="floatRight spaceRight"><div class="buttonwrapper"><a class="ovalbutton ovalbutton_gray" href="#" onClick="popupUserAccess_close();">'.$lang['srv_zapri'].'</a></div></span>';
}

View File

@ -328,6 +328,7 @@ class UserNarocila{
echo ' <th>'.$lang['srv_narocilo_ddv'].'</th>';
echo ' <th>'.$lang['srv_narocilo_cena'].'</th>';
echo ' <th>'.$lang['srv_narocilo_status'].'</th>';
echo ' <th>'.$lang['srv_narocilo_podjetje_eracun'].'</th>';
echo ' <th>'.$lang['srv_narocilo_pdf'].'</th>';
echo ' <th>'.$lang['edit2'].'</th>';
echo ' </tr>';
@ -378,6 +379,8 @@ class UserNarocila{
echo '</td>';
// Eračun
echo '<td>'.($data_row['podjetje_eracun'] == '1' ? $lang['yes'] : $lang['no']).'</td>';
echo '<td>';
// Ce je bila cena 0 je bil avtomatsko "placan" in nima racuna oz. predracuna
@ -598,6 +601,14 @@ class UserNarocila{
echo '</select>';
echo '</div>';
echo '<div class="edit_narocilo_line">';
echo '<span class="nastavitveSpan5">'.$lang['srv_narocilo_podjetje_eracun'].':</span> ';
echo '<select name="podjetje_eracun">';
echo '<option value="0" '.($rowNarocilo['podjetje_eracun'] == '0' ? 'selected="selected"' : '').'>'.$lang['no'].'</option>';
echo '<option value="1" '.($rowNarocilo['podjetje_eracun'] == '1' ? 'selected="selected"' : '').'>'.$lang['yes'].'</option>';
echo '</select>';
echo '</div>';
echo '</div>';
}
@ -642,6 +653,7 @@ class UserNarocila{
$podjetje_drzava = isset($narocilo_data['podjetje_drzava']) ? $narocilo_data['podjetje_drzava'] : '';
$podjetje_davcna = isset($narocilo_data['podjetje_davcna']) ? $narocilo_data['podjetje_davcna'] : '';
$podjetje_zavezanec = isset($narocilo_data['podjetje_ddv']) ? $narocilo_data['podjetje_ddv'] : '';
$podjetje_eracun = isset($narocilo_data['podjetje_eracun']) ? $narocilo_data['podjetje_eracun'] : '0';
$language = isset($narocilo_data['lang']) ? $narocilo_data['lang'] : 'sl';
@ -678,9 +690,9 @@ class UserNarocila{
}
$sqlNarocilo = sisplet_query("INSERT INTO user_access_narocilo
(usr_id, status, time, package_id, ime, payment_method, discount, trajanje, phone, podjetje_ime, podjetje_naslov, podjetje_postna, podjetje_posta, podjetje_drzava, podjetje_davcna, podjetje_zavezanec, language)
(usr_id, status, time, package_id, ime, payment_method, discount, trajanje, phone, podjetje_ime, podjetje_naslov, podjetje_postna, podjetje_posta, podjetje_drzava, podjetje_davcna, podjetje_zavezanec, podjetje_eracun, language)
VALUES
('".$usr_id."', '".$status."', NOW(), '".$package_id."', '".$ime_na_racunu."', '".$payment_method."', '".$discount."', '".$trajanje."', '".$phone."', '".$podjetje_ime."', '".$podjetje_naslov."', '".$podjetje_postna."', '".$podjetje_posta."', '".$podjetje_drzava."', '".$podjetje_davcna."', '".$podjetje_zavezanec."', '".$language."')
('".$usr_id."', '".$status."', NOW(), '".$package_id."', '".$ime_na_racunu."', '".$payment_method."', '".$discount."', '".$trajanje."', '".$phone."', '".$podjetje_ime."', '".$podjetje_naslov."', '".$podjetje_postna."', '".$podjetje_posta."', '".$podjetje_drzava."', '".$podjetje_davcna."', '".$podjetje_zavezanec."', '".$podjetje_eracun."', '".$language."')
");
if (!$sqlNarocilo){
$response['error'] = 'ERROR! '.mysqli_error($GLOBALS['connect_db']);
@ -843,6 +855,7 @@ class UserNarocila{
$update .= isset($narocilo_data['podjetje_drzava']) ? ', podjetje_drzava='.$narocilo_data['podjetje_drzava'] : '';
$update .= isset($narocilo_data['podjetje_davcna']) ? ', podjetje_davcna='.$narocilo_data['podjetje_davcna'] : '';
$update .= isset($narocilo_data['podjetje_ddv']) ? ', podjetje_zavezanec='.$narocilo_data['podjetje_ddv'] : '';
$update .= isset($narocilo_data['podjetje_eracun']) ? ', podjetje_eracun='.$narocilo_data['podjetje_eracun'] : '';
$update = substr($update, 1);
@ -1173,6 +1186,7 @@ class UserNarocila{
$update .= (isset($_POST['podjetje_drzava'])) ? " podjetje_drzava='".$_POST['podjetje_drzava']."'," : "";
$update .= (isset($_POST['podjetje_davcna'])) ? " podjetje_davcna='".$_POST['podjetje_davcna']."'," : "";
$update .= (isset($_POST['podjetje_zavezanec'])) ? " podjetje_zavezanec='".$_POST['podjetje_zavezanec']."'," : "";
$update .= (isset($_POST['podjetje_eracun'])) ? " podjetje_eracun='".$_POST['podjetje_eracun']."'," : "";
if($update != ''){

View File

@ -2026,6 +2026,7 @@ $lang = array (
"srv_alert_show_missing_97" => "Prikaži opcijo \"Neustrezno\" ob opozorilu",
"srv_alert_upload_size" => "Naložena datoteka je prevelika! Največja dovoljena velikost je 16 MB.",
"srv_alert_upload_ext" => "Naložen tip datoteke ni dovoljen!",
"srv_alert_upload_remove" => "Odstrani datoteko",
"srv_dostop" => "Anketo lahko ureja avtor in vsi",
"srv_izpolnjujejo" => "Anketo lahko izpolnjujejo",
"srv_dostop_users" => "Uporabniki, ki lahko urejajo anketo",
@ -6253,6 +6254,9 @@ $lang = array (
'srv_vprasanje_upload_no' => 'Brez',
'srv_vprasanje_upload_yes' => 'Upload',
'srv_vprasanje_upload_fotografija' => 'Fotografiranje',
'srv_vprasanje_upload_limit_title' => 'Omejitve uploada datoteke',
'srv_vprasanje_upload_limit' => 'Omejitev velikosti datoteke je <b>16 MB</b>',
'srv_vprasanje_upload_limit_type' => 'Uporabnik lahko naloži datoteke tipa:<br />"jpeg", "jpg", "png", "gif", "pdf", "doc", "docx", "xls", "xlsx"',
'srv_vprasanje_delete_line_map' => 'Izbriši linijo',
'srv_vprasanje_delete_point_map' => 'Izbriši',
'srv_vprasanje_delete_line_confirm_map' => 'Ste prepričani, da želite izbrisati to linijo?',
@ -6504,6 +6508,7 @@ $lang = array (
'srv_export_hover_comments' => 'Dodaj komentarje',
'srv_data_settings_checkboxes' => 'Nastavitve prikaza podatkov',
'srv_data_settings_checkboxes2' => 'Zapri nastavitve prikaza podatkov',
'srv_data_settings_identifier_notice' => 'Respondenti z identifikatorji so prikazani v naključnem vrstnem redu (ki je različen od vrstnega reda v prikazu podatkov).',
'srv_status_settings' => 'Nastavitve statusov',
'srv_spremenljivke_settings' => 'Nastavitve spremenljivk',
'srv_condition_settings' => 'Nastavitve pogojev',
@ -7395,6 +7400,7 @@ $lang = array (
'srv_narocilo_podjetje_postna' => "Poštna št.",
'srv_narocilo_podjetje_drzava' => "Država",
'srv_narocilo_podjetje_zavezanec' => "Zavezanec za DDV",
'srv_narocilo_podjetje_eracun' => "E-račun",
'srv_narocilo_placaj' => "Plačaj",
'srv_narocilo_status_0' => "Neplačano",

View File

@ -2013,6 +2013,7 @@ $lang = array (
"srv_alert_show_missing_97" => "Show option \"Invalid\" on alert",
"srv_alert_upload_size" => "Uploaded file is too large! Maximum file size is 16 MB.",
"srv_alert_upload_ext" => "Uploaded file type is not allowed!",
"srv_alert_upload_remove" => "Remove file",
"srv_dostop" => "Survey can be edited by",
"srv_izpolnjujejo" => "Survey can be answered by",
"srv_dostop_users" => "Users who can edit survey",
@ -6136,6 +6137,9 @@ $lang = array (
'srv_vprasanje_upload_no' => 'Without',
'srv_vprasanje_upload_yes' => 'Upload',
'srv_vprasanje_upload_fotografija' => 'Take a picture',
'srv_vprasanje_upload_limit_title' => 'File upload limits',
'srv_vprasanje_upload_limit' => 'Filesize limit is 16 MB',
'srv_vprasanje_upload_limit_type' => 'Respondent can upload file types: "jpeg", "jpg", "png", "gif", "pdf", "doc", "docx", "xls", "xlsx"',
'srv_vprasanje_delete_line_map' => 'Delete line',
'srv_vprasanje_delete_point_map' => 'Delete',
'srv_vprasanje_delete_line_confirm_map' => 'Are you sure you want to delete this line?',
@ -6387,6 +6391,7 @@ $lang = array (
'srv_export_hover_comments' => 'Add comments',
'srv_data_settings_checkboxes' => 'Data table settings',
'srv_data_settings_checkboxes2' => 'Close data table settings',
'srv_data_settings_identifier_notice' => 'Respondents with identifiers are displayed in a random order (which is different from the order in the data display).',
'srv_status_settings' => 'Status settings',
'srv_spremenljivke_settings' => 'Variable settings',
'srv_condition_settings' => 'Condition settings',
@ -7278,6 +7283,7 @@ $lang = array (
'srv_narocilo_podjetje_postna' => "Postcode",
'srv_narocilo_podjetje_drzava' => "Country",
'srv_narocilo_podjetje_zavezanec' => "VAT",
'srv_narocilo_podjetje_eracun' => "E-invoice",
'srv_narocilo_placaj' => "Pay",
'srv_narocilo_status_0' => "Unpaid",

View File

@ -780,13 +780,22 @@ class TextController extends Controller
type="file"
id="spremenljivka_' . $spremenljivka . '_vrednost_' . $i . '"
' . (!$missing ? '' : ' disabled') . '
onChange="checkUpload(this);"
class="pointer"
onChange="checkUpload(this, \''.$spremenljivka.'_vrednost_'.$i.'\');"
>';
// Remove file button
echo '<div class="remove_file pointer"
id="remove_file_'.$spremenljivka.'_vrednost_'.$i.'"
style="display:none;"
onClick="removeUpload(\'spremenljivka_'.$spremenljivka.'_vrednost_'.$i.'\')"
>';
echo self::$lang['srv_alert_upload_remove'];
echo '</div>';
}
//Fotografiranje
elseif ($row['upload'] == 2) {
//$imginput = ' <input name="vrednost_' . $spremenljivka . '_kos_' . $row1['id'] . '" type="file" accept="image/*" id="spremenljivka_' . $spremenljivka . '_vrednost_' . $i . '"> ';
$inpname = 'vrednost_' . $spremenljivka . '_kos_' . $row1['id'];
$inpid = 'spremenljivka_' . $spremenljivka . '_vrednost_' . $i;

View File

@ -1896,7 +1896,7 @@ function gridRepeatHeader(repeat_every, spr_id){
// Preverimo upload file omejitve
function checkUpload(upload){
function checkUpload(upload, id){
// Max file size (mb)
let maxSize = 16;
@ -1908,6 +1908,8 @@ function checkUpload(upload){
if(fileSize > maxSize){
$(upload).val(null);
alert(lang["srv_alert_upload_size"]);
return;
}
@ -1925,5 +1927,15 @@ function checkUpload(upload){
if(!extAllowed.includes(fileExt)){
$(upload).val(null);
alert(lang["srv_alert_upload_ext"]);
return;
}
// Add/remove "remove file" button
$('#remove_file_' + id).show();
}
function removeUpload(id){
$('#' + id).val(null);
}

View File

@ -5257,6 +5257,19 @@ input[type=radio]:checked + span.enka-checkbox-radio:before {
content: "";
}
/* File upload */
.remove_file {
margin: 10px 0 0 0;
width: 150px;
color: #1e88e5;
text-decoration: none;
cursor: pointer;
}
.remove_file:hover {
color: #ffa608;
text-decoration: none;
}
/******* CUSTOM IKONE ZA SLIKOVNI TIP **********/
input[type=radio] + span.enka-custom-radio {
font-size: 20px;
@ -5483,29 +5496,6 @@ span.enka-custom-radio:before,
color: #ffa608;
}
div.qtip-content {
font-size: 9px;
}
.qtip-wrapper, .qtip-contentWrapper {
border: 0 !important;
}
.qtip-borderTop, .qtip-borderBottom {
display: none !important;
}
.qtip-title {
color: #0C377A !important;
background-color: #D8DFEA !important;
}
.qtip-content {
padding: 12px 9px !important;
background-color: #EFF2F7 !important;
border: 1px #D8DFEA solid;
}
#cookie_alert, #test_alert {
display: none;
position: fixed;

View File

@ -95,6 +95,21 @@ input[type="radio"]:checked + span.enka-checkbox-radio:before {
}
/* File upload */
.remove_file{
margin: 10px 0 0 0;
width: 150px;
color: #1e88e5;
text-decoration: none;
cursor: pointer;
&:hover {
color: #ffa608;
text-decoration: none;
}
}
/******* CUSTOM IKONE ZA SLIKOVNI TIP **********/
input[type="radio"] + span.enka-custom-radio{

View File

@ -9286,3 +9286,11 @@ UPDATE misc SET value='20.08.10' WHERE what="version";
ALTER TABLE user_access_placilo ADD COLUMN canceled ENUM('0', '1') NOT NULL DEFAULT '0';
UPDATE misc SET value='20.09.11' WHERE what="version";
ALTER TABLE user_access_narocilo ADD COLUMN podjetje_eracun ENUM('0', '1') NOT NULL DEFAULT '0' AFTER podjetje_zavezanec;
UPDATE misc SET value='20.09.16' WHERE what="version";
INSERT INTO srv_help (help, what) VALUES ('Upload omejitev', 'srv_upload_limit');
UPDATE misc SET value='20.09.18' WHERE what="version";