Skip to content

Commit

Permalink
Dev Quick add feature now available for subquestions
Browse files Browse the repository at this point in the history
git-svn-id: file:///Users/Shitiz/Downloads/lssvn/source/limesurvey_dev_cs@8305 b72ed6b6-b9f8-46b5-92b4-906544132732
  • Loading branch information
c-schmitz committed Jan 26, 2010
1 parent 37f9f24 commit 5481d03
Show file tree
Hide file tree
Showing 10 changed files with 165 additions and 989 deletions.
13 changes: 3 additions & 10 deletions admin/conditionshandling.php
Original file line number Diff line number Diff line change
Expand Up @@ -1677,15 +1677,8 @@
$mytitle = $clang->gT("Add condition");
}

$conditionsoutput_main_content .= "\t<tr class='settingcaption'>\n"
."<td colspan='2' align='center'>\n"
."\t<strong>".$mytitle."</strong>\n"
."</td>\n"
."\t</tr>\n"
."\t<tr bgcolor='#EFEFEF'>\n"
."<th width='25%'></th>\n"
."<th width='75%'></th>\n"
."\t</tr>\n";
$conditionsoutput_main_content .= "\t<div class='header'>\n".$mytitle."</div>";
$conditionsoutput_main_content .= "<table width='100%' align='center' cellspacing='0' cellpadding='5'>\n";

if ( ( $subaction != "editthiscondition" && isset($scenariocount) && ($scenariocount == 1 || $scenariocount==0)) ||
( $subaction == "editthiscondition" && isset($scenario) && $scenario == 1) )
Expand Down Expand Up @@ -1889,7 +1882,7 @@
$js_adminheader_includes[]= $rooturl.'/scripts/jquery/lime-conditions-tabs.js';
$js_adminheader_includes[]= $rooturl.'/scripts/jquery/jquery-ui.js';

$css_adminheader_includes[]= $homeurl."/styles/default/jquery-ui-tibo.css";
// $css_adminheader_includes[]= $homeurl."/styles/default/jquery-ui-tibo.css";

if ($subaction == "editthiscondition" && isset($p_cid))
{
Expand Down
19 changes: 16 additions & 3 deletions admin/html.php
Original file line number Diff line number Diff line change
Expand Up @@ -1309,6 +1309,8 @@
var scalecount=".$scalecount.";
var assessmentvisible=".($assessmentvisible?'true':'false').";
var newansweroption_text='".$clang->gT('New answer option','js')."';
var strcode='".$clang->gT('Code','js')."';
var strlabel='".$clang->gT('Label','js')."';
var lsbrowsertitle='".$clang->gT('Label set browser','js')."';
var duplicateanswercode='".$clang->gT('Error: You are trying to use duplicate answer codes.','js')."';
var langs='".implode(';',$anslangs)."';</script>\n";
Expand Down Expand Up @@ -1432,7 +1434,7 @@
$vasummary .= "</div>";
}
// Label set browser
$vasummary .= "<div id='labelsetbrowser' style='display:none;'><div style='float:left;'>
$vasummary .= "<div id='labelsetbrowser' style='display:none;'><div style='float:left;width:260px;'>
<label for='labelsets'>".$clang->gT('Available label sets:')."</label>
<br /><select id='labelsets' size='10' style='width:250px;'><option>A label set</option></select>
<br/><input type='checkbox' checked='checked' id='languagefilter' /><label for='languagefilter'>".$clang->gT('Match language')."</label>
Expand Down Expand Up @@ -1490,7 +1492,10 @@
$vasummary = "\n<script type='text/javascript'>
var languagecount=".count($anslangs).";\n
var newansweroption_text='".$clang->gT('New answer option','js')."';
var strcode='".$clang->gT('Code','js')."';
var strlabel='".$clang->gT('Label','js')."';
var lsbrowsertitle='".$clang->gT('Label set browser','js')."';
var quickaddtitle='".$clang->gT('Quick-add subquestions','js')."';
var duplicateanswercode='".$clang->gT('Error: You are trying to use duplicate subquestion codes.','js')."';
var langs='".implode(';',$anslangs)."';</script>\n";

Expand Down Expand Up @@ -1637,17 +1642,25 @@
$vasummary .= "</tbody></table>\n";
$vasummary .= "</div>";
}
$vasummary .= "<button id='btnlsbrowser' class='btnlsbrowser' type='button'>".$clang->gT('Predefined label sets...')."</button>";
$vasummary .= "<button id='btnlsbrowser' type='button'>".$clang->gT('Predefined label sets...')."</button>";
$vasummary .= "<button id='btnquickadd' type='button'>".$clang->gT('Quick add...')."</button>";

// Label set browser
$vasummary .= "<div id='labelsetbrowser' style='display:none;'><div style='float:left;'>
$vasummary .= "<div id='labelsetbrowser' style='display:none;'><div style='float:left; width:260px;'>
<label for='labelsets'>".$clang->gT('Available label sets:')."</label>
<br /><select id='labelsets' size='10' style='width:250px;'><option>A label set</option></select>
<br/><input type='checkbox' checked='checked' id='languagefilter' /><label for='languagefilter'>".$clang->gT('Match language')."</label>
<br /><button id='btnlsreplace' type='button'>".$clang->gT('Replace')."</button>
<button id='btnlsinsert' type='button'>".$clang->gT('Add')."</button>
<button id='btncancel' type='button'>".$clang->gT('Cancel')."</button></div>
<div id='labelsetpreview' style='float:right;width:500px;'></div></div> ";
$vasummary .= "<div id='quickadd' style='display:none;'><div style='float:left;'>
<label for='quickadd'>".$clang->gT('Enter your subquestions:')."</label>
<br /><textarea id='quickaddarea' class='tipme' title='Enter one subquestion per line. You can provide a code by separating code and subquestion text with a semikolon or tab.' rows='30' style='width:570px;'></textarea>
<br /><button id='btnqareplace' type='button'>".$clang->gT('Replace')."</button>
<button id='btnqainsert' type='button'>".$clang->gT('Add')."</button>
<button id='btnqacancel' type='button'>".$clang->gT('Cancel')."</button></div>
</div> ";
$vasummary .= "<p>"
."<input type='submit' id='saveallbtn_$anslang' name='method' value='".$clang->gT("Save changes")."' />\n";
$position=sprintf("%05d", $position);
Expand Down
45 changes: 41 additions & 4 deletions admin/scripts/admin_core.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ $(document).ready(function(){

$('.header').addClass("ui-widget-header");
$('.menubar-title').addClass("ui-widget-header");
$('button,input[type=submit]').addClass("limebutton ui-state-default ui-corner-all");
$('button,input[type=submit]').hover(
$('button,input[type=submit],input[type=button],input[type=reset]').addClass("limebutton ui-state-default ui-corner-all");
$('button,input[type=submit],input[type=button],input[type=reset]').hover(
function(){
$(this).addClass("ui-state-hover");
},
Expand Down Expand Up @@ -49,10 +49,35 @@ $(document).ready(function(){
},
show: {effect: { length:50}}

});
});
}
});

$('.tipme').each(function() {
if($(this).attr('alt') != '')
{
$(this).qtip({
style: { name: 'cream',
tip:true,
color:'#111111',
border: {
width: 1,
radius: 5,
color: '#EADF95'}
},
position: { adjust: {
screen: true, scroll:true },
corner: {
target: 'topRight',
tooltip: 'bottomLeft'
}
},
show: {effect: { length:100}}

});
}
});


if ($('#showadvancedattributes').length>0) updatequestionattributes();

Expand Down Expand Up @@ -371,4 +396,16 @@ function checklangs(mylangs)
function isset( variable )
{
return( typeof( variable ) != 'undefined' );
}
}

String.prototype.splitCSV = function(sep) {
for (var foo = this.split(sep = sep || ","), x = foo.length - 1, tl; x >= 0; x--) {
if (foo[x].replace(/"\s+$/, '"').charAt(foo[x].length - 1) == '"') {
if ((tl = foo[x].replace(/^\s+"/, '"')).length > 1 && tl.charAt(0) == '"') {
foo[x] = foo[x].replace(/^\s*"|"\s*$/g, '').replace(/""/g, '"');
} else if (x) {
foo.splice(x - 1, 2, [foo[x - 1], foo[x]].join(sep));
} else foo = foo.shift().split(sep).concat(foo);
} else foo[x].replace(/""/g, '"');
} return foo;
};
4 changes: 2 additions & 2 deletions admin/scripts/answers.js
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ function lspreview()
for (y in language)
{
tabindex=tabindex+'<li><a href="#language_'+y+'">'+language[y][1]+'</a></li>';
tabbody=tabbody+"<div id='language_'+y+'><table class='limetable'>";
tabbody=tabbody+"<div id='language_"+y+"'><table class='limetable'>";
lsrows=language[y][0];
tablerows='';
var highlight=true;
Expand All @@ -329,7 +329,7 @@ function lspreview()
}
tabbody=tabbody+'><td>'+lsrows[z].code+'</td><td>'+lsrows[z].title+'</td></tr><tbody>';
}
tabbody=tabbody+'<thead><tr><th>Code</th><th>Label</th></tr></thead><div>';
tabbody=tabbody+'<thead><tr><th>'+strcode+'</th><th>'+strlabel+'</th></tr></thead></table></div>';
}
}
$("#labelsetpreview").append('<ul>'+tabindex+'</ul>'+tabbody);
Expand Down
138 changes: 95 additions & 43 deletions admin/scripts/subquestions.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,30 @@ $(document).ready(function(){
$('#labelsetbrowser').dialog({ autoOpen: false,
modal: true,
width:800,
title: lsbrowsertitle});
$('.btnlsbrowser').click(lsbrowser);
title: lsbrowsertitle});
$('#quickadd').dialog({ autoOpen: false,
modal: true,
width:600,
title: quickaddtitle});

$('#btnlsbrowser').click(lsbrowser);
$('#btncancel').click(function(){
$('#labelsetbrowser').dialog('close');
});
$('#btnqacancel').click(function(){
$('#quickadd').dialog('close');
});
$('#btnlsreplace').click(transferlabels);
$('#btnlsinsert').click(transferlabels);
$('#btnqareplace').click(quickaddlabels);
$('#btnqainsert').click(quickaddlabels);
$('#labelsets').click(lspreview);
$('#languagefilter').click(lsbrowser);
$('#btnquickadd').click(quickadddialog);

updaterowproperties();
});


function deleteinput()
{

Expand Down Expand Up @@ -223,7 +234,6 @@ function code_duplicates_check()

function lsbrowser()
{
scale_id=removechars($(this).attr('id'));
$('#labelsetbrowser').dialog( 'open' );
surveyid=$('input[name=sid]').val();
match=0;
Expand Down Expand Up @@ -270,7 +280,7 @@ function lspreview()
for (y in language)
{
tabindex=tabindex+'<li><a href="#language_'+y+'">'+language[y][1]+'</a></li>';
tabbody=tabbody+"<div id='language_'+y+'><table class='limetable'>";
tabbody=tabbody+"<div id='language_"+y+"'><table class='limetable'>";
lsrows=language[y][0];
tablerows='';
var highlight=true;
Expand All @@ -281,9 +291,13 @@ function lspreview()
if (highlight==true) {
tabbody=tabbody+" class='highlight' ";
}
if (lsrows[z].title==null)
{
lsrows[z].title='';
}
tabbody=tabbody+'><td>'+lsrows[z].code+'</td><td>'+lsrows[z].title+'</td></tr><tbody>';
}
tabbody=tabbody+'<thead><tr><th>Code</th><th>Label</th></tr></thead><div>';
tabbody=tabbody+'<thead><tr><th>'+strcode+'</th><th>'+strlabel+'</th></tr></thead></table></div>';
}
}
$("#labelsetpreview").append('<ul>'+tabindex+'</ul>'+tabbody);
Expand Down Expand Up @@ -399,14 +413,14 @@ function transferlabels()
}
$('#tabpage_'+languages[x]+' tbody').append(tablerows);
// Unbind any previous events
$('#tabpage_'+languages[x]+'_'+scale_id+' .btnaddanswer').unbind('click');
$('#tabpage_'+languages[x]+'_'+scale_id+' .btneditanswer').unbind('click');
$('#tabpage_'+languages[x]+'_'+scale_id+' .btndelanswer').unbind('click');
$('#tabpage_'+languages[x]+'_'+scale_id+' .answer').unbind('focus');
$('#tabpage_'+languages[x]+'_'+scale_id+' .btnaddanswer').click(addinput);
$('#tabpage_'+languages[x]+'_'+scale_id+' .btneditanswer').click(popupeditor);
$('#tabpage_'+languages[x]+'_'+scale_id+' .btndelanswer').click(deleteinput);
$('#tabpage_'+languages[x]+'_'+scale_id+' .answer').focus(function(){
$('#tabpage_'+languages[x]+' .btnaddanswer').unbind('click');
$('#tabpage_'+languages[x]+' .btneditanswer').unbind('click');
$('#tabpage_'+languages[x]+' .btndelanswer').unbind('click');
$('#tabpage_'+languages[x]+' .answer').unbind('focus');
$('#tabpage_'+languages[x]+' .btnaddanswer').click(addinput);
$('#tabpage_'+languages[x]+' .btneditanswer').click(popupeditor);
$('#tabpage_'+languages[x]+' .btndelanswer').click(deleteinput);
$('#tabpage_'+languages[x]+' .answer').focus(function(){
if ($(this).val()==newansweroption_text)
{
$(this).val('');
Expand All @@ -423,38 +437,76 @@ function transferlabels()

}

function in_array (needle, haystack, argStrict) {
// http://kevin.vanzonneveld.net
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + improved by: vlado houba
// + input by: Billy
// + bugfixed by: Brett Zamir (http://brett-zamir.me)
// * example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
// * returns 1: true
// * example 2: in_array('vlado', {0: 'Kevin', vlado: 'van', 1: 'Zonneveld'});
// * returns 2: false
// * example 3: in_array(1, ['1', '2', '3']);
// * returns 3: true
// * example 3: in_array(1, ['1', '2', '3'], false);
// * returns 3: true
// * example 4: in_array(1, ['1', '2', '3'], true);
// * returns 4: false

var key = '', strict = !!argStrict;

if (strict) {
for (key in haystack) {
if (haystack[key] === needle) {
return true;
}
function quickaddlabels()
{
if ($(this).attr('id')=='btnqareplace')
{
var lsreplace=true;
}
else
{
var lsreplace=false;
}

languages=langs.split(';');
for (x in languages)
{
lsrows=$('#quickaddarea').val().split("\n");

if (lsrows[0].indexOf("\t")==-1)
{
separatorchar=';'
}
else
{
separatorchar="\t";
}
} else {
for (key in haystack) {
if (haystack[key] == needle) {
return true;
tablerows='';
for (k in lsrows)
{
thisrow=lsrows[k].splitCSV(separatorchar);
if (thisrow.length==1)
{
thisrow[1]=thisrow[0];
thisrow[0]=k+1;
}
var randomid='new'+Math.floor(Math.random()*111111)

if (x==0) {
tablerows=tablerows+'<tr class="row_'+k+'" ><td><img class="handle" src="../images/handle.png" /></td><td><input class="code" id="code_'+randomid+'" name="code_'+randomid+'" type="text" maxlength="5" size="5" value="'+thisrow[0]+'" /></td><td><input type="text" size="100" id="answer_'+languages[x]+'_'+randomid+'" name="answer_'+languages[x]+'_'+randomid+'" class="answer" value="'+thisrow[1]+'"></input><img src="../images/edithtmlpopup.png" class="btneditanswer" /></td><td><img src="../images/addanswer.png" class="btnaddanswer" /><img src="../images/deleteanswer.png" class="btndelanswer" /></td></tr>'
}
else
{
tablerows=tablerows+'<tr class="row_'+k+'" ><td>&nbsp;</td><td>&nbsp;</td><td><input type="text" size="100" id="answer_'+languages[x]+'_'+randomid+'" name="answer_'+languages[x]+'_'+randomid+'" class="answer" value="'+thisrow[1]+'"></input><img src="../images/edithtmlpopup.png" class="btnaddanswer" /></td><td><img src="../images/addanswer.png" class="btnaddanswer" /><img src="../images/deleteanswer.png" class="btndelanswer" /></td></tr>'
}
}
if (lsreplace) {
$('#tabpage_'+languages[x]+' tbody').empty();
}
$('#tabpage_'+languages[x]+' tbody').append(tablerows);
// Unbind any previous events
$('#tabpage_'+languages[x]+' .btnaddanswer').unbind('click');
$('#tabpage_'+languages[x]+' .btneditanswer').unbind('click');
$('#tabpage_'+languages[x]+' .btndelanswer').unbind('click');
$('#tabpage_'+languages[x]+' .answer').unbind('focus');
$('#tabpage_'+languages[x]+' .btnaddanswer').click(addinput);
$('#tabpage_'+languages[x]+' .btneditanswer').click(popupeditor);
$('#tabpage_'+languages[x]+' .btndelanswer').click(deleteinput);
$('#tabpage_'+languages[x]+' .answer').focus(function(){
if ($(this).val()==newansweroption_text)
{
$(this).val('');
}
});
}
$('#quickadd').dialog('close');
$('#quickaddarea').val('');
$('.answertable tbody').sortable('refresh');
updaterowproperties();
}

return false;

function quickadddialog()
{
$('#quickadd').dialog('open');
}
8 changes: 8 additions & 0 deletions admin/styles/default/adminstyle.css
Original file line number Diff line number Diff line change
Expand Up @@ -907,6 +907,14 @@ div.messagebox .warningheader {
text-align:right;
}

#conditionsource, #conditiontarget{
width: 630px;
}

#editconditions select{
font-size:10px;
}

/*controls the width of select boxes in group order dialog*/
.movableNode select {
max-width:200px;
Expand Down

0 comments on commit 5481d03

Please sign in to comment.