Skip to content

Commit

Permalink
Commit for GCI task #7123239
Browse files Browse the repository at this point in the history
Ported Assessments action

git-svn-id: file:///Users/Shitiz/Downloads/lssvn/source/limesurvey_yii@11431 b72ed6b6-b9f8-46b5-92b4-906544132732
  • Loading branch information
Shitiz Garg committed Nov 22, 2011
1 parent 504ba07 commit 5f5aab3
Show file tree
Hide file tree
Showing 9 changed files with 202 additions and 141 deletions.
11 changes: 10 additions & 1 deletion application/controllers/AdminController.php
Expand Up @@ -112,6 +112,8 @@ public function actions()
'globalsettings' => 'application.controllers.admin.globalsettings',
'quotas' => 'application.controllers.admin.quotas',
'export' => 'application.controllers.admin.export',
'survey' => 'application.controllers.admin.surveyaction',
'assessments' =>'application.controllers.admin.assessments',
);
}

Expand Down Expand Up @@ -263,8 +265,11 @@ public function _getAdminFooter($url, $explanation, $return = false)
{
$data['js_admin_includes'] = array_unique(Yii::app()->getConfig("js_admin_includes"));
}
if (Yii::app()->getConfig("css_admin_includes"))
$data['css_admin_includes'] = array_unique(Yii::app()->getConfig("css_admin_includes"));

return $this->render("/admin/super/footer", $data, $return);

}

/**
Expand Down Expand Up @@ -334,6 +339,10 @@ public function _js_admin_includes($include)

public function _loadEndScripts()
{
static $out = false;
if ($out)
return true;
$out = true;
if (empty(Yii::app()->session['metaHeader']))
Yii::app()->session['metaHeader'] = '';

Expand All @@ -344,6 +353,6 @@ public function _loadEndScripts()

$data['checksessionpost'] = Yii::app()->session['checksessionpost'];

return $this->render('//views/admin/endScripts_view', $data);
return $this->render('/admin/endScripts_view', $data);
}
}
118 changes: 61 additions & 57 deletions application/controllers/admin/assessments.php
Expand Up @@ -22,52 +22,49 @@
* @package LimeSurvey
* @subpackage Backend
*/
class assessments extends Survey_Common_Controller {
class Assessments extends Survey_Common_Action {

/**
* Constructor
*/
function __construct()
{
parent::__construct();
}

/**
* Shows Assessment Controller page
*/
function index($surveyid)
{
* Routes to the correct sub-action
*
* @access public
* @param int $surveyid
* @return void
*/
public function run($surveyid)
{
$surveyid = sanitize_int($surveyid);
$action=$this->input->post("action");
$_POST=$this->input->post();
$action=!empty($_POST['action']) ? $_POST['action'] : '';

$assessmentlangs = GetAdditionalLanguagesFromSurveyID($surveyid);
$baselang = GetBaseLanguageFromSurveyID($surveyid);

array_unshift($assessmentlangs,$baselang); // makes an array with ALL the languages supported by the survey -> $assessmentlangs
$this->config->set_item("baselang",$baselang);
$this->config->set_item("assessmentlangs", $assessmentlangs);
if($this->input->post('action')=="assessmentadd")
Yii::app()->setConfig("baselang",$baselang);
Yii::app()->setConfig("assessmentlangs", $assessmentlangs);
if($action=="assessmentadd")
self::_add($surveyid);
if($this->input->post('action')=="assessmentupdate")
if($action=="assessmentupdate")
self::_update($surveyid);
if($this->input->post('action')=="assessmentdelete")
if($action=="assessmentdelete")
self::_delete($surveyid, $_POST['id']);
$this->load->model("assessments_model");
$this->load->model("groups_model");

if (bHasSurveyPermission($surveyid, 'assessments','read'))
{
$clang=$this->limesurvey_lang;
$clang=$this->getController()->lang;


if ($surveyid == "") {
show_error($clang->gT("No SID Provided"));
exit;
}

$assessments=$this->assessments_model->getAssessments($surveyid);
$assessments=Assessment::model()->findAllByAttributes(array('sid' => $surveyid));
//$assessmentsoutput.= "<pre>";print_r($assessments);echo "</pre>";
$groups=$this->groups_model->getGroups($surveyid);
$groups=Groups::model()->findAllByAttributes(array('sid' => $surveyid));
$groupselect="<select name='gid' id='gid'>\n";
foreach($groups as $group) {
$group = $group->attributes;
$groupselect.="<option value='".$group['gid']."'>".$group['group_name']."</option>\n";
}
$groupselect .="</select>\n";
Expand All @@ -77,11 +74,10 @@ function index($surveyid)
$thisid="";

if ($action == "assessmentedit" && bHasSurveyPermission($surveyid, 'assessments','update')) {
$this->load->helper("database");
$query = "SELECT * FROM ".$this->db->dbprefix('assessments')." WHERE id=".sanitize_int($_POST['id'])." and language='$baselang'";
$results = db_execute_assoc($query);
foreach ($results->result_array() as $row) {
$editdata=$row;
$results = Assessment::model()->findAllByAttributes(array('id' => $_POST['id'], 'language' => $baselang));

foreach ($results as $row) {
$editdata=$row->attributes;
}
$groupselect=str_replace("'".$editdata['gid']."'", "'".$editdata['gid']."' selected", $groupselect);
$actiontitle=$clang->gT("Edit");
Expand All @@ -93,29 +89,30 @@ function index($surveyid)

$surveyinfo=getSurveyInfo($surveyid);

self::_js_admin_includes($this->config->item("adminscripts").'assessments.js');
self::_js_admin_includes($this->config->item("generalscripts").'jquery/jquery.tablesorter.min.js');
$this->getController()->_js_admin_includes(Yii::app()->getConfig("adminscripts").'assessments.js');
$this->getController()->_js_admin_includes(Yii::app()->getConfig("generalscripts").'jquery/jquery.tablesorter.min.js');

$data['clang']=$clang;
$data['surveyinfo']=$surveyinfo;
$data['imageurl'] = $this->config->item('imageurl');
$data['imageurl'] = Yii::app()->getConfig('imageurl');
$data['surveyid']=$surveyid;
$data['headings']=$headings;
$data['assessments']=$assessments;
$data['actionvalue']=$actionvalue;
$data['actiontitle']=$actiontitle;
$data['groupselect']=$groupselect;
$data['assessmentlangs']=$this->config->item("assessmentlangs");
$data['baselang']=$this->config->item("baselang");
$data['assessmentlangs']=Yii::app()->getConfig("assessmentlangs");
$data['baselang']=Yii::app()->getConfig("baselang");
$data['action']=$action;
$data['gid']=$this->input->post("gid");
$data['gid']=empty($_POST['gid']) ? '' : $_POST['gid'];
if(isset($editdata)) $data['editdata']=$editdata;
$data['thisid']=$thisid;
$data['groups']=$groups;

self::_getAdminHeader();
$this->load->view("admin/assessments_view",$data);
self::_getAdminFooter("http://docs.limesurvey.org", $this->limesurvey_lang->gT("LimeSurvey online manual"));
Yii::app()->loadHelper('admin/htmleditor');
$this->getController()->_getAdminHeader();
$this->getController()->render("/admin/assessments_view",$data);
$this->getController()->_getAdminFooter("http://docs.limesurvey.org", $clang->gT("LimeSurvey online manual"));


}
Expand All @@ -127,17 +124,14 @@ function index($surveyid)
*/
function _add($surveyid)
{
$_POST = $this->input->post();
$this->load->model("assessments_model");
if (bHasSurveyPermission($surveyid, 'assessments','create')) {
$inserttable=$this->db->dbprefix("assessments");
$first=true;
$assessmentlangs=$this->config->item("assessmentlangs");
$assessmentlangs=Yii::app()->getConfig("assessmentlangs");
foreach ($assessmentlangs as $assessmentlang)
{
if (!isset($_POST['gid'])) $_POST['gid']=0;

$datarray=array(
$dataarray=array(
'sid' => $surveyid,
'scope' => $_POST['scope'],
'gid' => $_POST['gid'],
Expand All @@ -149,16 +143,18 @@ function _add($surveyid)

if ($first==false)
{
$datarray['id']=$aid;
$dataarray['id']=$aid;
}

$this->assessments_model->insertRecords($datarray);
$assessment = new Assessment;
foreach ($dataarray as $k => $v)
$assessment->$k = $v;
$assessment->save();
//$query = $connect->GetInsertSQL($inserttable, $datarray, get_magic_quotes_gpc());
//$result=$connect->Execute($query) or safe_die("Error inserting<br />$query<br />".$connect->ErrorMsg());
if ($first==true)
{
$first=false;
$aid=$this->db->insert_id();
$aid=$assessment->id;
//$connect->Insert_ID(db_table_name_nq('assessments'),"id");
}
}
Expand All @@ -170,21 +166,30 @@ function _add($surveyid)
*/
function _update($surveyid)
{
$_POST = $this->input->post();
$this->load->model("assessments_model");
if (bHasSurveyPermission($surveyid, 'assessments','update')) {

$assessmentlangs=$this->config->item("assessmentlangs");
$assessmentlangs=Yii::app()->getConfig("assessmentlangs");
foreach ($assessmentlangs as $assessmentlang)
{

if (!isset($_POST['gid'])) $_POST['gid']=0;
if ($this->config->item('filterxsshtml'))
if (Yii::app()->getConfig('filterxsshtml'))
{
$_POST['name_'.$assessmentlang]=$this->security->xss_clean($_POST['name_'.$assessmentlang]);
$_POST['assessmentmessage_'.$assessmentlang]=$this->security->xss_clean($_POST['assessmentmessage_'.$assessmentlang]);
$_POST['name_'.$assessmentlang]=htmlspecialchars($_POST['name_'.$assessmentlang]);
$_POST['assessmentmessage_'.$assessmentlang]=htmlspecialchars($_POST['assessmentmessage_'.$assessmentlang]);
}
$this->assessments_model->updateRecord($_POST, $assessmentlang);

$assessment = Assessment::model()->findByAttributes(array('id' => $_POST['id'], 'language' => $assessmentlang));
if (!is_null($assessment))
{
$assessment->scope = $_POST['scope'];
$assessment->gid = $_POST['gid'];
$assessment->minimum = $_POST['minimum'];
$assessment->maximum = $_POST['maximum'];
$assessment->name = $_POST['name_' . $assessmentlang];
$assessment->message = $_POST['assessmentmessage_' . $assessmentlang];
$assessment->save();
}
}
}
}
Expand All @@ -196,8 +201,7 @@ function _delete($surveyid, $id)
{
if (bHasSurveyPermission($surveyid, 'assessments','delete'))
{
$this->load->model("assessments_model");
$this->assessments_model->dropRecord($id);
Assessment::model()->deleteAllByAttributes(array('id' => $id));
}
}

Expand Down
47 changes: 22 additions & 25 deletions application/helpers/admin/htmleditor_helper.php
Expand Up @@ -33,47 +33,45 @@ function sTranslateLangCode2CK($sLanguageCode){
}


function PrepareEditorScript($load=false)
function PrepareEditorScript($load=false, $controller)
{
$CI =& get_instance();
$js_admin_includes = $CI->config->item("js_admin_includes");
$clang = $CI->limesurvey_lang;
$js_admin_includes = Yii::app()->getConfig("js_admin_includes");
$clang = Yii::app()->lang;
$data['clang'] = $clang;
$js_admin_includes[]=$CI->config->item('sCKEditorURL').'/ckeditor.js';
$CI->config->set_item("js_admin_includes", $js_admin_includes);
$js_admin_includes[]=Yii::app()->getConfig('sCKEditorURL').'/ckeditor.js';
Yii::app()->setConfig("js_admin_includes", $js_admin_includes);

if ($load == false)
{
return $CI->load->view('admin/survey/prepareEditorScript_view',$data,true);

return $controller->render('/admin/survey/prepareEditorScript_view',$data,true);
}
else
{
$CI->load->view('admin/survey/prepareEditorScript_view',$data);
$controller->render('/admin/survey/prepareEditorScript_view',$data);
}
}

function getEditor($fieldtype,$fieldname,$fieldtext, $surveyID=null,$gID=null,$qID=null,$action=null)
{
//error_log("TIBO fieldtype=$fieldtype,fieldname=$fieldname,fieldtext=$fieldtext,surveyID=$surveyID,gID=$gID,qID=$qID,action=$action");
$CI =& get_instance();
$CI->load->helper('common');
if ($CI->session->userdata('htmleditormode') &&
$CI->session->userdata('htmleditormode') == 'none')
$session = &Yii::app()->session;
if ($session['htmleditormode'] &&
$session['htmleditormode'] == 'none')
{
return '';
}


if (!$CI->session->userdata('htmleditormode') ||
($CI->session->userdata('htmleditormode') != 'inline' &&
$CI->session->userdata('htmleditormode') != 'popup') )
if (!$session['htmleditormode'] ||
($session['htmleditormode'] != 'inline' &&
$session['htmleditormode'] != 'popup') )
{
$htmleditormode = $CI->config->item('defaulthtmleditormode');
$htmleditormode = Yii::app()->getConfig('defaulthtmleditormode');
}
else
{
$htmleditormode = $CI->session->userdata('htmleditormode');
$htmleditormode = $session['htmleditormode'];
}

if ( ($fieldtype == 'email-inv' ||
Expand Down Expand Up @@ -130,7 +128,6 @@ function getPopupEditor($fieldtype,$fieldname,$fieldtext, $surveyID=null,$gID=nu

function getInlineEditor($fieldtype,$fieldname,$fieldtext, $surveyID=null,$gID=null,$qID=null,$action=null)
{
$CI =& get_instance();
$htmlcode = '';
$imgopts = '';
$toolbarname = 'inline';
Expand All @@ -149,7 +146,7 @@ function getInlineEditor($fieldtype,$fieldname,$fieldtext, $surveyID=null,$gID=n
}
else
{
$ckeditexpandtoolbar = $CI->config->item('ckeditexpandtoolbar');
$ckeditexpandtoolbar = Yii::app()->getConfig('ckeditexpandtoolbar');
if (!isset($ckeditexpandtoolbar) || $ckeditexpandtoolbar == true)
{
$toolbaroption = ",toolbarStartupExpanded:true\n"
Expand All @@ -171,17 +168,17 @@ function getInlineEditor($fieldtype,$fieldname,$fieldtext, $surveyID=null,$gID=n
$htmlcode .= ""
. "<script type=\"text/javascript\">\n"
. "$(document).ready(function(){ var $oCKeditorVarName = CKEDITOR.replace('$fieldname', {
customConfig : \"".$CI->config->item('sCKEditorURL')."/limesurvey-config.js\"
customConfig : \"".Yii::app()->getConfig('sCKEditorURL')."/limesurvey-config.js\"
,LimeReplacementFieldsType : \"".$fieldtype."\"
,LimeReplacementFieldsSID : \"".$surveyID."\"
,LimeReplacementFieldsGID : \"".$gID."\"
,LimeReplacementFieldsQID : \"".$qID."\"
,LimeReplacementFieldsType : \"".$fieldtype."\"
,LimeReplacementFieldsAction : \"".$action."\"
,LimeReplacementFieldsPath : \"".site_url("admin/fck_LimeReplacementFields/index/")."\"
,LimeReplacementFieldsPath : \"".Yii::app()->createUrl("admin/fck_LimeReplacementFields/index/")."\"
,width:'660'
,language:'".sTranslateLangCode2CK($CI->session->userdata('adminlang'))."'
,smiley_path : \"".$CI->config->item('uploadurl')."/images/smiley/msn/\"\n"
,language:'".sTranslateLangCode2CK(Yii::app()->getConfig('adminlang'))."'
,smiley_path : \"".Yii::app()->getConfig('uploadurl')."/images/smiley/msn/\"\n"
. $htmlformatoption
. $toolbaroption
."});
Expand Down

0 comments on commit 5f5aab3

Please sign in to comment.