// $Id: answers.js 12442 2012-02-11 00:07:00Z shnoulle $ var labelcache=[]; $(document).ready(function(){ $('.tab-page:first .answertable tbody').sortable({ containment:'parent', update:aftermove, distance:3}); $('.btnaddanswer').click(addinput); $('.btndelanswer').click(deleteinput); $('#editanswersform').submit(code_duplicates_check) $('#labelsetbrowser').dialog({ autoOpen: false, modal: true, width:800, title: lsbrowsertitle}); $('#quickadd').dialog({ autoOpen: false, modal: true, width:600, title: quickaddtitle}); $('.btnlsbrowser').click(lsbrowser); $('#btncancel').click(function(){ $('#labelsetbrowser').dialog('close'); }); $('#btnlsreplace').click(transferlabels); $('#btnlsinsert').click(transferlabels); $('#labelsets').click(lspreview); $('#languagefilter').click(lsbrowser); $('#btnqacancel').click(function(){ $('#quickadd').dialog('close'); }); $('#btnqareplace').click(quickaddlabels); $('#btnqainsert').click(quickaddlabels); $('.btnquickadd').click(quickadddialog); updaterowproperties(); }); function deleteinput() { // 1.) Check if there is at least one answe countanswers=$(this).parent().parent().parent().children().length; if (countanswers>1) { // 2.) Remove the table row var x; classes=$(this).closest('tr').attr('class').split(' '); for (x in classes) { if (classes[x].substr(0,3)=='row'){ position=classes[x].substr(4); } } info=$(this).closest('table').attr('id').split("_"); language=info[1]; scale_id=info[2]; languages=langs.split(';'); var x; for (x in languages) { tablerow=$('#tabpage_'+languages[x]).find('#answers_'+languages[x]+'_'+scale_id+' .row_'+position); if (x==0) { tablerow.fadeTo(400, 0, function(){ $(this).remove(); updaterowproperties(); }); } else { tablerow.remove(); } } } else { $.blockUI({message:"


"+strCantDeleteLastAnswer+"

"}); setTimeout(jQuery.unblockUI,1000); } updaterowproperties(); } function addinput() { var x; classes=$(this).closest('tr').attr('class').split(' '); for (x in classes) { if (classes[x].substr(0,3)=='row'){ position=classes[x].substr(4); } } info=$(this).closest('table').attr('id').split("_"); language=info[1]; scale_id=info[2]; newposition=Number(position)+1; languages=langs.split(';'); sNextCode=getNextCode($(this).parent().parent().find('.code').val()); while ($(this).parent().parent().parent().find('input[value="'+sNextCode+'"]').length>0 && sNextCode!=$(this).parent().parent().find('.code').val()) { sNextCode=getNextCode(sNextCode); } for (x in languages) { tablerow=$('#tabpage_'+languages[x]).find('#answers_'+languages[x]+'_'+scale_id+' .row_'+position); if (assessmentvisible) { assessment_style=''; assessment_type='text'; } else { assessment_style='style="display:none;"'; assessment_type='hidden'; } if (x==0) { inserthtml='' } else { inserthtml=' '+htmlspecialchars(sNextCode)+'' } tablerow.after(inserthtml); tablerow.next().find('.btnaddanswer').click(addinput); tablerow.next().find('.btndelanswer').click(deleteinput); tablerow.next().find('.answer').focus(function(){ if ($(this).val()==newansweroption_text) { $(this).val(''); } }); tablerow.next().find('.code').blur(updatecodes); } $('.row_'+newposition).fadeIn('slow'); $('.row_'+newposition).show(); //Workaround : IE does not show with fadeIn only if(languagecount>1) { } $('.tab-page:first .answertable tbody').sortable('refresh'); updaterowproperties(); } function aftermove(event,ui) { // But first we have change the sortorder in translations, too var x; classes=ui.item.attr('class').split(' '); for (x in classes) { if (classes[x].substr(0,3)=='row'){ oldindex=classes[x].substr(4); } } var newindex = Number($(ui.item[0]).parent().children().index(ui.item[0]))+1; info=$(ui.item[0]).closest('table').attr('id').split("_"); language=info[1]; scale_id=info[2]; languages=langs.split(';'); var x; for (x in languages) { if (x>0) { tablebody=$('#tabpage_'+languages[x]).find('#answers_'+languages[x]+'_'+scale_id+' tbody'); if (newindex option').size()>0) { $('#labelsets').selectOptions(remind); lspreview(); } else { $("#labelsetpreview").html("

"+strNoLabelSet+"

"); $('#btnlsreplace').addClass('ui-state-disabled'); $('#btnlsinsert').addClass('ui-state-disabled'); $('#btnlsreplace').attr('disabled','disabled'); $('#btnlsinsert').attr('disabled','disabled'); } }); } // previews the labels in a label set after selecting it in the select box function lspreview() { if ($('#labelsets > option').size()==0) { return; } var lsid=$('#labelsets').val(); surveyid=$('input[name=sid]').val(); // check if this label set is already cached if (!isset(labelcache[lsid])) { $.ajax({ url: 'admin.php?action=ajaxlabelsetdetails', dataType: 'json', data: {lid:lsid, sid:surveyid}, cache: true, success: function(json){ $("#labelsetpreview").tabs('destroy'); $("#labelsetpreview").empty(); var tabindex=''; var tabbody=''; for ( x in json) { language=json[x]; for (y in language) { tabindex=tabindex+'
  • '+language[y][1]+'
  • '; tabbody=tabbody+"
    "; lsrows=language[y][0]; tablerows=''; var highlight=true; for (z in lsrows) { highlight=!highlight; tabbody=tabbody+''; if (assessmentvisible) { tabbody=tabbody+''; } tabbody=tabbody+''; } tabbody=tabbody+''; if (assessmentvisible) { tabbody=tabbody+''; } tabbody=tabbody+'
    '+lsrows[z].code+''+lsrows[z].assessment_value+''+lsrows[z].title+'
    '+strcode+''+sAssessmentValue+''+strlabel+'
    '; } } $("#labelsetpreview").append(''+tabbody); labelcache[lsid]=''+tabbody; $("#labelsetpreview").tabs(); }} ); } else { $("#labelsetpreview").tabs('destroy'); $("#labelsetpreview").empty(); $("#labelsetpreview").append(labelcache[lsid]); $("#labelsetpreview").tabs(); } } /** * This is a debug function * similar to var_dump in PHP */ function dump(arr,level) { var dumped_text = ""; if(!level) level = 0; //The padding given at the beginning of the line. var level_padding = ""; for(var j=0;j \"" + value + "\"\n"; } } } else { //Stings/Chars/Numbers etc. dumped_text = "===>"+arr+"<===("+typeof(arr)+")"; } return dumped_text; } function transferlabels() { surveyid=$('input[name=sid]').val(); if ($(this).attr('id')=='btnlsreplace') { var lsreplace=true; } else { var lsreplace=false; } var lsid=$('#labelsets').val(); $.ajax({ url: 'admin.php?action=ajaxlabelsetdetails', dataType: 'json', data: {lid:lsid, sid:surveyid}, cache: true, success: function(json){ languages=langs.split(';'); var x; var defaultdata_labels = null; for (x in languages) { lang_x_found_in_label=false; if (assessmentvisible) { assessment_style=''; assessment_type='text'; } else { assessment_style='style="display:none;"'; assessment_type='hidden'; } var tablerows=''; var y; for (y in json) { language=json[y]; var lsrows = new Array(); for (z in language) { if (z == languages[0]) { defaultdata_labels=language[languages[0]]; } if (z==languages[x]) { lang_x_found_in_label = true; lsrows=language[z][0]; } var k; for (k in lsrows) { if (x==0) { tablerows=tablerows+'' } else { tablerows=tablerows+' '+htmlspecialchars(lsrows[k].code)+'' } } } } if (lang_x_found_in_label === false) { lsrows=defaultdata_labels[0]; var k=0; for (k in lsrows) { tablerows=tablerows+' '+htmlspecialchars(lsrows[k].code)+'' } } if (lsreplace) { $('#answers_'+languages[x]+'_'+scale_id+' tbody').empty(); } $('#answers_'+languages[x]+'_'+scale_id+' tbody').append(tablerows); // Unbind any previous events $('#answers_'+languages[x]+'_'+scale_id+' .btnaddanswer').unbind('click'); $('#answers_'+languages[x]+'_'+scale_id+' .btndelanswer').unbind('click'); $('#answers_'+languages[x]+'_'+scale_id+' .answer').unbind('focus'); // Bind events again $('#answers_'+languages[x]+'_'+scale_id+' .btnaddanswer').click(addinput); $('#answers_'+languages[x]+'_'+scale_id+' .btndelanswer').click(deleteinput); $('#answers_'+languages[x]+'_'+scale_id+' .answer').focus(function(){ if ($(this).val()==newansweroption_text) { $(this).val(''); } }); } $('#labelsetbrowser').dialog('close'); $('.tab-page:first .answertable tbody').sortable('refresh'); updaterowproperties(); }} ); } function quickaddlabels() { if ($(this).attr('id')=='btnqareplace') { var lsreplace=true; } else { var lsreplace=false; } languages=langs.split(';'); for (x in languages) { if (assessmentvisible) { assessment_style=''; assessment_type='text'; } else { assessment_style='style="display:none;"'; assessment_type='hidden'; } lsrows=$('#quickaddarea').val().split("\n"); if (lsrows[0].indexOf("\t")==-1) { separatorchar=';' } else { separatorchar="\t"; } tablerows=''; for (k in lsrows) { thisrow=lsrows[k].splitCSV(separatorchar); if (thisrow.length<=languages.length) { thisrow.unshift(parseInt(k)+1); } else { thisrow[0]=thisrow[0].replace(/[^A-Za-z0-9]/g, ""); } if (typeof thisrow[parseInt(x)+1]=='undefined') { thisrow[parseInt(x)+1]=thisrow[1]; } if (x==0) { tablerows=tablerows+'' } else { tablerows=tablerows+'  ' } } if (lsreplace) { $('#answers_'+languages[x]+'_'+scale_id+' tbody').empty(); } $('#answers_'+languages[x]+'_'+scale_id+' tbody').append(tablerows); // Unbind any previous events $('#answers_'+languages[x]+'_'+scale_id+' .btnaddanswer').unbind('click'); $('#answers_'+languages[x]+'_'+scale_id+' .btndelanswer').unbind('click'); $('#answers_'+languages[x]+'_'+scale_id+' .answer').unbind('focus'); $('#answers_'+languages[x]+'_'+scale_id+' .btnaddanswer').click(addinput); $('#answers_'+languages[x]+'_'+scale_id+' .btndelanswer').click(deleteinput); $('#answers_'+languages[x]+'_'+scale_id+' .answer').focus(function(){ if ($(this).val()==newansweroption_text) { $(this).val(''); } }); } $('#quickadd').dialog('close'); $('#quickaddarea').val(''); $('.tab-page:first .answertable tbody').sortable('refresh'); updaterowproperties(); } function quickadddialog() { scale_id=removechars($(this).attr('id')); $('#quickadd').dialog('open'); }