diff --git a/application/helpers/qanda_helper.php b/application/helpers/qanda_helper.php index e4cac6f0815..95ad15b979e 100644 --- a/application/helpers/qanda_helper.php +++ b/application/helpers/qanda_helper.php @@ -633,11 +633,7 @@ function return_timer_script($aQuestionAttributes, $ia, $disable=null) { "; @@ -662,7 +658,8 @@ function countdown(questionid,timer,action,warning,warning2,warninghide,warning2 $qcount++; } } - //Override all other options and just allow freezing, survey is presented in group by group mode + // Override all other options and just allow freezing, survey is presented in group by group mode + // Why don't allow submit in Group by group mode, this surely broke 'mandatory' question, but this remove a great system for user (Denis 140224) if($qcount > 1) { $output .=" action = 3;"; @@ -684,90 +681,77 @@ function countdown(questionid,timer,action,warning,warning2,warninghide,warning2 var warning2display='LS_question'+questionid+'_warning_2'; var expireddisplay='question'+questionid+'_timer'; var timersessionname='timer_question_'+questionid; - document.getElementById(timersessionname).value=timeleft; + $('#'+timersessionname).val(timeleft); timeleft--; cookietimer=subcookiejar.fetch('limesurvey_timers',timersessionname); - if(cookietimer) { - if(cookietimer <= timeleft) { - timeleft=cookietimer; - } + if(cookietimer && cookietimer <= timeleft) { + timeleft=cookietimer; } var timeleftobject=new Object(); subcookiejar.crumble('limesurvey_timers', timersessionname); timeleftobject[timersessionname]=timeleft; subcookiejar.bake('limesurvey_timers', timeleftobject, 7)\n"; - if($disable_next > 0) { + if($disable_next > 0) {// $disable_next can be 1 or 0 (it's a select). $output .= " - if(document.getElementById('movenextbtn') !== null && timeleft > $disable_next) { - document.getElementById('movenextbtn').disabled=true; - } else if (document.getElementById('movenextbtn') !== null && $disable_next > 1 && timeleft <= $disable_next) { - document.getElementById('movenextbtn').disabled=false; + if(timeleft > $disable_next) { + $('#movenextbtn').prop('disabled',true);$('#movenextbtn.ui-button').button( 'option', 'disabled', true ); + } else if ($disable_next >= 1 && timeleft <= $disable_next) { + $('#movenextbtn').prop('disabled',false);$('#movenextbtn.ui-button').button( 'option', 'disabled', false ); }\n"; } if($disable_prev > 0) { $output .= " - if(document.getElementById('moveprevbtn') !== null && timeleft > $disable_prev) { - document.getElementById('moveprevbtn').disabled=true; - } else if (document.getElementById('moveprevbtn') !== null && $disable_prev > 1 && timeleft <= $disable_prev) { - document.getElementById('moveprevbtn').disabled=false; + if(timeleft > $disable_prev) { + $('#moveprevbtn').prop('disabled',true);$('#moveprevbtn.ui-button').button( 'option', 'disabled', true ); + } else if ($disable_prev >= 1 && timeleft <= $disable_prev) { + $('#moveprevbtn').prop('disabled',false);$('#moveprevbtn.ui-button').button( 'option', 'disabled', false ); }\n"; } - if(!is_numeric($disable_prev)) { + if(!is_numeric($disable_prev) && false) { $output .= " - if(document.getElementById('moveprevbtn') !== null) { - document.getElementById('moveprevbtn').disabled=true; - }\n"; + $('#moveprevbtn').prop('disabled',true);$('#moveprevbtn.ui-button').button( 'option', 'disabled', true ); + "; } $output .=" if(warning > 0 && timeleft<=warning) { - var wsecs=warning%60; - if(wsecs<10) wsecs='0' + wsecs; - var WT1 = (warning - wsecs) / 60; - var wmins = WT1 % 60; if (wmins < 10) wmins = '0' + wmins; - var whours = (WT1 - wmins) / 60; - var dmins='' - var dhours='' - var dsecs='' - if (whours < 10) whours = '0' + whours; - if (whours > 0) dhours = whours + ' ".$clang->gT('hours').", '; - if (wmins > 0) dmins = wmins + ' ".$clang->gT('mins').", '; - if (wsecs > 0) dsecs = wsecs + ' ".$clang->gT('seconds')."'; - if(document.getElementById(warningtimedisplay) !== null) { - document.getElementById(warningtimedisplay).innerHTML = dhours+dmins+dsecs; - } - document.getElementById(warningdisplay).style.display=''; + var wsecs=warning%60; + if(wsecs<10) wsecs='0' + wsecs; + var WT1 = (warning - wsecs) / 60; + var wmins = WT1 % 60; if (wmins < 10) wmins = '0' + wmins; + var whours = (WT1 - wmins) / 60; + var dmins=''; + var dhours=''; + var dsecs=''; + if (whours < 10) whours = '0' + whours; + if (whours > 0) dhours = whours + ' ".$clang->gT('hours').", '; + if (wmins > 0) dmins = wmins + ' ".$clang->gT('mins').", '; + if (wsecs > 0) dsecs = wsecs + ' ".$clang->gT('seconds')."'; + $('#'+warningtimedisplay).html(dhours+dmins+dsecs); + $('#'+warningdisplay).show(); + if(warninghide > 0 ) { + setTimeout(function(){ $('#'+warningdisplay).hide(); },warninghide*1000); + } + warning=0; } if(warning2 > 0 && timeleft<=warning2) { - var w2secs=warning2%60; - if(wsecs<10) w2secs='0' + wsecs; - var W2T1 = (warning2 - w2secs) / 60; - var w2mins = W2T1 % 60; if (w2mins < 10) w2mins = '0' + w2mins; - var w2hours = (W2T1 - w2mins) / 60; - var d2mins='' - var d2hours='' - var d2secs='' - if (w2hours < 10) w2hours = '0' + w2hours; - if (w2hours > 0) d2hours = w2hours + ' ".$clang->gT('hours').", '; - if (w2mins > 0) d2mins = w2mins + ' ".$clang->gT('mins').", '; - if (w2secs > 0) d2secs = w2secs + ' ".$clang->gT('seconds')."'; - if(document.getElementById(warning2timedisplay) !== null) { - document.getElementById(warning2timedisplay).innerHTML = dhours+dmins+dsecs; - } - document.getElementById(warning2display).style.display=''; - } - if(warning > 0 && warninghide > 0 && document.getElementById(warningdisplay).style.display != 'none') { - if(warninghide == 1) { - document.getElementById(warningdisplay).style.display='none'; - warning=0; - } - warninghide--; - } - if(warning2 > 0 && warning2hide > 0 && document.getElementById(warning2display).style.display != 'none') { - if(warning2hide == 1) { - document.getElementById(warning2display).style.display='none'; - warning2=0; - } - warning2hide--; + var w2secs=warning2%60; + if(wsecs<10) w2secs='0' + wsecs; + var W2T1 = (warning2 - w2secs) / 60; + var w2mins = W2T1 % 60; if (w2mins < 10) w2mins = '0' + w2mins; + var w2hours = (W2T1 - w2mins) / 60; + var d2mins=''; + var d2hours=''; + var d2secs=''; + if (w2hours < 10) w2hours = '0' + w2hours; + if (w2hours > 0) d2hours = w2hours + ' ".$clang->gT('hours').", '; + if (w2mins > 0) d2mins = w2mins + ' ".$clang->gT('mins').", '; + if (w2secs > 0) d2secs = w2secs + ' ".$clang->gT('seconds')."'; + $('#'+warning2timedisplay).html(dhours+dmins+dsecs); + $('#'+warning2display).show(); + if(warning2hide > 0 ) { + setTimeout(function(){ $('#'+warning2display).hide(); },warning2hide*1000); + } + warning2=0; } var secs = timeleft % 60; if (secs < 10) secs = '0'+secs; @@ -782,52 +766,36 @@ function countdown(questionid,timer,action,warning,warning2,warninghide,warning2 if (mins > 0) d2mins = mins+' ".$clang->gT('mins').": '; if (secs > 0) d2secs = secs+' ".$clang->gT('seconds')."'; if (secs < 1) d2secs = '0 ".$clang->gT('seconds')."'; - document.getElementById(timerdisplay).innerHTML = '".$time_limit_countdown_message."
'+d2hours + d2mins + d2secs; + $('#'+timerdisplay).html('".$time_limit_countdown_message."
'+d2hours + d2mins + d2secs); if (timeleft>0){ - var text='countdown('+questionid+', '+timeleft+', '+action+', '+warning+', '+warning2+', '+warninghide+', '+warning2hide+', \"'+disable+'\")'; - setTimeout(text,1000); + var text='countdown('+questionid+', '+timeleft+', '+action+', '+warning+', '+warning2+', '+warninghide+', '+warning2hide+', \"'+disable+'\")'; + setTimeout(text,1000); } else { - //Countdown is finished, now do action - switch(action) { - case 2: //Just move on, no warning - if(document.getElementById('movenextbtn') !== null) { - if(document.getElementById('movenextbtn').disabled==true) document.getElementById('movenextbtn').disabled=false; - } - if(document.getElementById('moveprevbtn') !== null) { - if(document.getElementById('moveprevbtn').disabled==true && '$disable_prev' > 0) document.getElementById('moveprevbtn').disabled=false; - } - freezeFrame(disable); - subcookiejar.crumble('limesurvey_timers', timersessionname); - if(document.getElementById('movenextbtn') != null) { - document.limesurvey.submit(); - } else { - setTimeout(\"document.limesurvey.submit();\", 1000); - } - break; - case 3: //Just warn, don't move on - document.getElementById(expireddisplay).style.display=''; - if(document.getElementById('movenextbtn') !== null) { - if(document.getElementById('movenextbtn').disabled==true) document.getElementById('movenextbtn').disabled=false; - } - if(document.getElementById('moveprevbtn') !== null) { - if(document.getElementById('moveprevbtn').disabled==true && '$disable_prev' > 0) document.getElementById('moveprevbtn').disabled=false; - } - freezeFrame(disable); - this.onsubmit=function() { subcookiejar.crumble('limesurvey_timers', timersessionname);}; - break; - default: //Warn and move on - document.getElementById(expireddisplay).style.display=''; - if(document.getElementById('movenextbtn') !== null) { - if(document.getElementById('movenextbtn').disabled==true) document.getElementById('movenextbtn').disabled=false; - } - if(document.getElementById('moveprevbtn') !== null) { - if(document.getElementById('moveprevbtn').disabled==true && '$disable_prev' > 0) document.getElementById('moveprevbtn').disabled=false; - } - freezeFrame(disable); - subcookiejar.crumble('limesurvey_timers', timersessionname); - setTimeout('document.limesurvey.submit()', ".$time_limit_message_delay."); - break; - } + //Countdown is finished, now do action + switch(action) { + case 2: //Just move on, no warning + $('#movenextbtn').prop('disabled',false);$('#movenextbtn.ui-button').button( 'option', 'disabled', false ); + $('#moveprevbtn').prop('disabled',false);$('#moveprevbtn.ui-button').button( 'option', 'disabled', false ); + freezeFrame(disable); + subcookiejar.crumble('limesurvey_timers', timersessionname); + $('#defaultbtn').click(); + break; + case 3: //Just warn, don't move on + $('#'+expireddisplay).show(); + $('#movenextbtn').prop('disabled',false);$('#movenextbtn.ui-button').button( 'option', 'disabled', false ); + $('#moveprevbtn').prop('disabled',false);$('#moveprevbtn.ui-button').button( 'option', 'disabled', false ); + freezeFrame(disable); + $('#limesurvey').submit(function(){ subcookiejar.crumble('limesurvey_timers', timersessionname); }); + break; + default: //Warn and move on + $('#'+expireddisplay).show(); + $('#movenextbtn').prop('disabled',false);$('#movenextbtn.ui-button').button( 'option', 'disabled', false ); + $('#moveprevbtn').prop('disabled',false);$('#moveprevbtn.ui-button').button( 'option', 'disabled', false ); + freezeFrame(disable); + subcookiejar.crumble('limesurvey_timers', timersessionname); + setTimeout($('#defaultbtn').click(), ".$time_limit_message_delay."); + break; + } } } //-->