Skip to content

Commit

Permalink
dev Added label set browser dialog
Browse files Browse the repository at this point in the history
Updated jQuery UI colors

git-svn-id: file:///Users/Shitiz/Downloads/lssvn/source/limesurvey_dev_cs@8295 b72ed6b6-b9f8-46b5-92b4-906544132732
  • Loading branch information
c-schmitz committed Jan 24, 2010
1 parent d6bed16 commit e4fe0c1
Show file tree
Hide file tree
Showing 44 changed files with 276 additions and 78 deletions.
15 changes: 8 additions & 7 deletions admin/admin.php
Expand Up @@ -50,7 +50,7 @@

//var_dump(createFieldMap(29846)); die();

if ($action != 'showprintablesurvey' && $action != 'ajaxquestionattributes')
if ($action != 'showprintablesurvey' && substr($action,0,4)!= 'ajax')
{
$adminoutput="<div id='wrapper'>";
}
Expand Down Expand Up @@ -451,7 +451,7 @@

if (!isset($assessmentsoutput) && !isset($statisticsoutput) && !isset($browseoutput) && !isset($savedsurveyoutput) && !isset( $listcolumnoutput ) &&
!isset($dataentryoutput) && !isset($conditionsoutput) && !isset($importoldresponsesoutput) && !isset($exportspssoutput) && !isset($exportroutput) &&
!isset($vvoutput) && !isset($tokenoutput) && !isset($exportoutput) && !isset($templatesoutput) && !isset($iteratesurveyoutput) && ($action!='ajaxquestionattributes') && ($action!='update') &&
!isset($vvoutput) && !isset($tokenoutput) && !isset($exportoutput) && !isset($templatesoutput) && !isset($iteratesurveyoutput) && (substr($action,0,4)!= 'ajax') && ($action!='update') &&
(isset($surveyid) || $action=='listurveys' || $action=='personalsettings' || //Still to check
$action=='editsurvey' || $action=='updatesurvey' || $action=='ordergroups' ||
$action=='newsurvey' || $action=='listsurveys' ||
Expand All @@ -464,12 +464,13 @@
include('html.php');
}

if ($action=='addquestion' || $action=='copyquestion' || $action=='editquestion' ||
$action=='orderquestions' || $action=='ajaxquestionattributes')
if ($action=='addquestion' || $action=='copyquestion' || $action=='editquestion' ||
$action=='orderquestions' || $action=='ajaxquestionattributes' || $action=='ajaxlabelsetpicker' || $action=='ajaxlabelsetdetails')
{
if(hasRight($surveyid,'define_questions'))
{
$_SESSION['FileManagerContext']="edit:question:$surveyid";include('questionhandling.php');
$_SESSION['FileManagerContext']="edit:question:$surveyid";
include('questionhandling.php');
}
else
{
Expand All @@ -495,7 +496,7 @@
!isset($dataentryoutput) && !isset($statisticsoutput)&& !isset($savedsurveyoutput) &&
!isset($exportoutput) && !isset($importoldresponsesoutput) && !isset($conditionsoutput) &&
!isset($vvoutput) && !isset($listcolumnoutput) && !isset($importlabelresources) && !isset($iteratesurveyoutput) &&
$action!='ajaxquestionattributes' && $action!='update')
(substr($action,0,4)!= 'ajax') && $action!='update')
{
$adminoutput.= showadminmenu();
}
Expand Down Expand Up @@ -559,7 +560,7 @@
if (isset($exportroutput)) {$adminoutput.= $exportroutput;}


if (!isset($printablesurveyoutput) && $subaction!='export' && $action!='ajaxquestionattributes')
if (!isset($printablesurveyoutput) && $subaction!='export' && (substr($action,0,4)!= 'ajax'))
{
if (!isset($_SESSION['metaHeader'])) {$_SESSION['metaHeader']='';}

Expand Down
5 changes: 0 additions & 5 deletions admin/dataentry.php
Expand Up @@ -594,11 +594,6 @@

if (!isset($_GET['language'])) $_GET['language'] = GetBaseLanguageFromSurveyID($surveyid);






//FIRST LETS GET THE NAMES OF THE QUESTIONS AND MATCH THEM TO THE FIELD NAMES FOR THE DATABASE
$fnquery = "SELECT * FROM ".db_table_name("questions").", ".db_table_name("groups").", ".db_table_name("surveys")." WHERE
".db_table_name("questions").".gid=".db_table_name("groups").".gid AND
Expand Down
52 changes: 30 additions & 22 deletions admin/html.php
Expand Up @@ -1209,14 +1209,16 @@
{
$js_adminheader_includes[]='scripts/answers.js';
$js_adminheader_includes[]='../scripts/jquery/jquery.blockUI.js';
$js_adminheader_includes[]='../scripts/jquery/jquery.selectboxes.min.js';

$_SESSION['FileManagerContext']="edit:answer:$surveyid";
// Get languages select on survey.
$anslangs = GetAdditionalLanguagesFromSurveyID($surveyid);
$baselang = GetBaseLanguageFromSurveyID($surveyid);

$qquery = "SELECT type FROM ".db_table_name('questions')." WHERE qid=$qid AND language='".$baselang."'";
$qtype = $connect->GetOne($qquery);
$qquery = "SELECT type,lid,lid1 FROM ".db_table_name('questions')." WHERE qid=$qid AND language='".$baselang."'";
$qrow = $connect->GetRow($qquery);
$qtype = $qrow['type'];
$scalecount=$qtypes[$qtype]['answerscales'];
//Check if there is at least one answer
for ($i = 0; $i < $scalecount; $i++)
Expand Down Expand Up @@ -1303,6 +1305,7 @@
var scalecount=".$scalecount.";
var assessmentvisible=".($assessmentvisible?'true':'false').";
var newansweroption_text='".$clang->gT('New answer option','js')."';
var lsbrowsertitle='".$clang->gT('Label set browser','js')."';
var langs='".implode(';',$anslangs)."';</script>\n";

foreach ($anslangs as $anslang)
Expand All @@ -1323,12 +1326,10 @@


$vasummary .= "<table class='answertable' id='answers_{$anslang}_$scale_id' align='center' >\n"
."<thead>"
."<tr>\n"
."<th align='right'>&nbsp;</th>\n"
."<th align='center'>\n"
.$clang->gT("Code")
."</th>\n";
."<thead>"
."<tr>\n"
."<th align='right'>&nbsp;</th>\n"
."<th align='center'>".$clang->gT("Code")."</th>\n";
if ($assessmentvisible)
{
$vasummary .="<th align='center'>".$clang->gT("Assessment value");
Expand All @@ -1338,14 +1339,11 @@
$vasummary .="<th style='display:none;'>&nbsp;";
}

$vasummary .="</th><th align='center'>\n"
.$clang->gT("Answer option")
."</th>\n"
."<th align='center'>\n"
.$clang->gT("Actions")
."</th>\n"
."</tr></thead>"
."<tbody align='center'>";
$vasummary .="</th>\n"
."<th align='center'>".$clang->gT("Answer option")."</th>\n"
."<th align='center'>".$clang->gT("Actions")."</th>\n"
."</tr></thead>"
."<tbody align='center'>";
$alternate=true;

$query = "SELECT * FROM ".db_table_name('answers')." WHERE qid='{$qid}' AND language='{$anslang}' and scale_id=$scale_id ORDER BY sortorder, code";
Expand Down Expand Up @@ -1402,7 +1400,7 @@
}

$vasummary .= "</td><td>\n"
."<input type='text' class='answer' id='answer_{$row['language']}_{$row['sortorder']}_{$scale_id}' ' name='answer_{$row['language']}_{$row['sortorder']}_{$scale_id}' size='80' value=\"{$row['answer']}\" />\n"
."<input type='text' class='answer' id='answer_{$row['language']}_{$row['sortorder']}_{$scale_id}' name='answer_{$row['language']}_{$row['sortorder']}_{$scale_id}' size='80' value=\"{$row['answer']}\" />\n"
. getEditor("editanswer","answer_".$row['language']."_{$row['sortorder']}_{$scale_id}", "[".$clang->gT("Answer:", "js")."](".$row['language'].")",$surveyid,$gid,$qid,'editanswer');

// Deactivate delete button for active surveys
Expand All @@ -1416,21 +1414,31 @@
if ($first)
{
$vasummary .= "<input type='hidden' id='answercount_{$scale_id}' name='answercount_{$scale_id}' value='$anscount' />\n";
$vasummary .= "<input type='hidden' id='lid0' name='lid0' value='{$qrow['lid']}' />\n";
$vasummary .= "<input type='hidden' id='lid1' name='lid1' value='{$qrow['lid1']}' />\n";
}

}
if ($anscount > 0)
{
$vasummary .= "<p><input type='submit' id='saveallbtn_$anslang' name='method' value='".$clang->gT("Save Changes")."' />\n";
}


$position=sprintf("%05d", $position);

$first=false;
$vasummary .= "</tbody></table>\n";
$vasummary .= "</div>";
}
// Label set browser
$vasummary .= "<button id='btnlsbrowser' type='button'>".$clang->gT('Browse label sets...')."</button>";
$vasummary .= "<div id='labelsetbrowser' style='display:none;'><div style='float:left;'>
<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> ";
// Save button
$vasummary .= "<p><input type='submit' id='saveallbtn_$anslang' name='method' value='".$clang->gT("Save changes")."' />\n";
$vasummary .= "</div></form></td></tr></table>";


Expand Down
2 changes: 1 addition & 1 deletion admin/labels.php
Expand Up @@ -82,7 +82,7 @@
{
$labelsoutput.="<option value='admin.php?action=labels&amp;lid={$lb[0]}'";
if ($lb[0] == $lid) {$labelsoutput.= " selected='selected'";}
$labelsoutput.= ">{$lb[1]}</option>\n";
$labelsoutput.= ">{$lb[0]}: {$lb[1]}</option>\n";
}
}

Expand Down
33 changes: 33 additions & 0 deletions admin/questionhandling.php
Expand Up @@ -675,6 +675,39 @@ function questionjavascript($type)
return $newquestionoutput;
}


if ($action == "ajaxlabelsetdetails")
{
$lid=returnglobal('lid');
$query='select * from '.db_table_name('labelsets').' where lid='.$lid;
$labelsetdata=$connect->GetArray($query);
$labelsetlanguages=explode(' ',$labelsetdata[0]['languages']);
foreach ($labelsetlanguages as $language){
$query='select * from '.db_table_name('labels').' where lid='.$lid." and language='{$language}'";
$labels=$connect->GetArray($query);
$resultdata[]=array($language=>array($labels,getLanguageNameFromCode($language,false)));
}
echo json_encode($resultdata);
}


if ($action == "ajaxlabelsetpicker")
{
$match=(int)returnglobal('match');
$surveyid=returnglobal('sid');
if ($match==1)
{
$language=GetBaseLanguageFromSurveyID($surveyid);
}
else
{
$language=null;
}
$resultdata=getlabelsets($language);
echo json_encode($resultdata);
}


if ($action == "ajaxquestionattributes")
{
$type=returnglobal('question_type');
Expand Down
5 changes: 5 additions & 0 deletions admin/scripts/admin_core.js
Expand Up @@ -355,3 +355,8 @@ function checklangs(mylangs)
}
return true;
}

function isset( variable )
{
return( typeof( variable ) != 'undefined' );
}
110 changes: 109 additions & 1 deletion admin/scripts/answers.js
Expand Up @@ -8,6 +8,16 @@ $(document).ready(function(){
$('.btndelanswer').click(deleteinput);
$('.btneditanswer').click(popupeditor);
$('#editanswersform').submit(code_duplicates_check)
$('#labelsetbrowser').dialog({ autoOpen: false,
modal: true,
width:800,
title: lsbrowsertitle});
$('#btnlsbrowser').click(lsbrowser);
$('#btncancel').click(function(){
$('#labelsetbrowser').dialog('close');
});
$('#labelsets').click(lspreview);
$('#languagefilter').click(lsbrowser);
});


Expand Down Expand Up @@ -152,7 +162,7 @@ function aftermove(event,ui)
updaterowproperties();
}

// This function adjust the alternating table rows and renames IDs and names
// This function adjust the alternating table rows and renames/renumbers IDs and names
// if the list has really changed
function updaterowproperties()
{
Expand Down Expand Up @@ -235,4 +245,102 @@ function popupeditor()
function code_duplicates_check()
{
//return false;
}

function lsbrowser()
{

$('#labelsetbrowser').dialog( 'open' );
surveyid=$('input[name=sid]').val();
match=0;
if ($('#languagefilter').attr('checked')==true)
{
match=1;
}
$.getJSON('admin.php?action=ajaxlabelsetpicker',{sid:surveyid, match:match},function(json){
var x=0;
$("#labelsets").removeOption(/.*/);
for (x in json)
{
$('#labelsets').addOption(json[x][0],json[x][1]);
if (x==0){
remind=json[x][0];
}
}
$('#labelsets').selectOptions(remind);
lspreview();
});
}


function lspreview()
{
var lsid=$('#labelsets').selectedValues();
$.ajax({
url: 'admin.php?action=ajaxlabelsetdetails',
dataType: 'json',
data: {lid:lsid},
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+'<li><a href="#language_'+y+'">'+language[y][1]+'</a></li>';
tabbody=tabbody+"<div id='language_'+y+'><table>";
lsrows=language[y][0];
tablerows='';
for (z in lsrows)
{
tabbody=tabbody+'<tbody><tr><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>';
}
}
$("#labelsetpreview").append('<ul>'+tabindex+'</ul>'+tabbody);
$("#labelsetpreview").tabs();
}}
);

}


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<level+1;j++) level_padding += " ";

if(typeof(arr) == 'object') { //Array/Hashes/Objects
for(var item in arr) {
var value = arr[item];

if(typeof(value) == 'object') { //If it is an array,
dumped_text += level_padding + "'" + item + "' ...\n";
dumped_text += dump(value,level+1);
} else {
dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
}
}
} else { //Stings/Chars/Numbers etc.
dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
return dumped_text;
}

function addlabels()
{
languages=langs.split(';');

for (x in languages)
{
}
}
9 changes: 9 additions & 0 deletions classes/core/startup.php
Expand Up @@ -78,6 +78,15 @@ function json_decode($content, $assoc=false){
return $json->decode($content);
}
}

if ( !function_exists('json_encode') ){
function json_decode($content){
global $homedir;
require_once($homedir."/classes/json/JSON.php");
$json = new Services_JSON;
return $json->encode($content);
}
}


?>

0 comments on commit e4fe0c1

Please sign in to comment.