Commit b1d0a9da authored by Raph El's avatar Raph El
Browse files

Merge branch 'development' of https://gitlab.adullact.net/pixelhumain/survey into development

parents 3107435a 92bddda6
......@@ -9,9 +9,10 @@
public function actions()
{
return array(
'create' => 'survey.controllers.openForm.CreateAction',
'edit'=> 'survey.controllers.openForm.EditAction',
'get' => 'survey.controllers.openForm.GetAction',
'create' => 'survey.controllers.form.CreateAction',
'edit' => 'survey.controllers.form.EditAction',
'get' => 'survey.controllers.form.GetAction',
'delete' => 'survey.controllers.form.DeleteAction',
);
}
}
......@@ -36,7 +36,7 @@ class IndexAction extends CAction
$params["answer"] = $answer;
// TODO améliorer getdataForAnser pour soit viré la création de lanswers soit charger la bonne answer
//Rest::json($params); exit;
//$parentForm = Slug::getElementBySlug($form["id"]);
......@@ -71,7 +71,7 @@ class IndexAction extends CAction
$params["canSee"] = $canSeeAnswer;
$params["mode"] = (!empty($mode) ? $mode : "r");
//$tpl=(!empty($tpl)) ? $tpl : "survey.views.tpls.forms.formWizard";
$tpl=(!empty($form["tpl"])) ? $form["tpl"] : "survey.views.tpls.forms.formWizard";
$tpl=(!empty($this->getController()->costum["form"]["tpl"])) ? $this->getController()->costum["form"]["tpl"] : "survey.views.tpls.forms.formWizard";
echo $this->getController()->renderPartial($tpl,$params );
} else {
if(Yii::app()->request->isAjaxRequest)
......
<?php
class DeleteAction extends CAction
{
public function run($id) {
$ctrl=$this->getController();
if ( ! Person::logguedAndValid() )
echo Rest::json(['result' => false, "msg"=>Yii::t("common","Please Login First"),"icon"=>"fa-sign-in"]);
//check form et session exist
if($form = PHDB::findOne( Form::COLLECTION , array("_id"=>new MongoId(($id)))) )
{
// if( Authorisation::isElementAdmin($id, Form::ANSWER_COLLECTION, Yii::app()->session["userId"], false)) {
if(isset($form["ids"])){
$formId = implode("|", $form["ids"]);
PHDB::remove( Form::ANSWER_COLLECTION, ["formId" => $formId]);
}
PHDB::remove( Form::COLLECTION, ["_id" => new MongoId($id)] );
echo Rest::json(['result' => true ]);
// } else
// echo Rest::json(['result' => false, "msg"=>Yii::t("project", "Unauthorized Access."),"icon"=>"fa-lock"]);
} else
echo Rest::json(['result' => false, "msg"=>"Formulaire introuvable","icon"=>"fa-search"]);
}
}
\ No newline at end of file
......@@ -2,6 +2,7 @@
class GetAction extends CTKAction
{
//if $slug : getd all the forms for an element.slug
//http://127.0.0.1/survey/form/get/slug/dealAH
//if $id : opens the forms
public function run($slug = null,$form=null)
{
......
......@@ -50,24 +50,5 @@ class Answer{
}
public static function csv($elements, $idElt, $valElt, $forms ){
$elements[$idElt]["id"] = $idElt;
$elements[$idElt]["user"] = $valElt["user"];
$elements[$idElt]["created"] = $valElt["created"];
if(!empty($valElt["answers"])){
foreach ($forms as $keyF => $valF) {
if(!empty($valF["id"]) && !empty($valElt["answers"][$valF["id"]])){
foreach ($valElt["answers"][$valF["id"]] as $keyAns => $valAns) {
if(!empty($valF["inputs"]) && !empty($valF["inputs"][$keyAns]) && !empty($valF["inputs"][$keyAns]["label"])){
$elements[$idElt][$valF["inputs"][$keyAns]["label"]] = $valAns;
}
}
}
}
}
return $elements;
}
}
?>
\ No newline at end of file
......@@ -13,7 +13,7 @@ if($saveOneByOne)
}
?>
<div class="form-check">
<label class="form-check-label" for="<?php echo $key ?>"><h4 style="color:<?php echo ($titleColor) ? $titleColor : "black"; ?>"><?php echo $label.$editQuestionBtn ?></h4></label>
<label class="form-check-label" for="<?php echo $key ?>"><h4 style="color:<?php echo ($titleColor) ? $titleColor : "black"; ?>"><?php echo $label.$editQuestionBtn ?></h4></label><br/>
<?php
if( !isset($parentForm["params"][$kunik]['list']) ) {
......
......@@ -10,9 +10,13 @@ foreach ($forms as $fix => $f) {
if($ct == 0)
echo '<div class="row ">';
?>
<div class="liForm col-md-4 col-sm-3 col-xs-12 " style="padding:5px;">
<div id="formline<?php echo $fix ?>" class="liForm col-md-4 col-sm-3 col-xs-12 " style="padding:5px;">
<div class="col-xs-12 " style="padding:10px;border:1px solid grey">
<h4 class="letter-turq"><?php echo (isset($f['name'])) ? $f['name'] : "Formulaire ".$el["slug"] ?></h4>
<h4 class="letter-turq ">
<span class="col-xs-10"><?php echo (isset($f['name'])) ? $f['name'] : "Formulaire ".$el["slug"] ?></span>
<span class="col-xs-2">
<a href="javascript:;" class="editFormBtn" data-id="<?php echo $fix ?>"><i class="fa fa-pencil text-dark"></i></a>
<a href="javascript:;" class="deleteFormBtn" data-id="<?php echo $fix ?>"><i class="fa fa-trash text-red"></i></a> </span></h4>
steps : <br/>
<?php
if(isset($f['ids'])){
......@@ -26,7 +30,7 @@ foreach ($forms as $fix => $f) {
<a href='javascript:;' data-id='<?php echo $fix ?>' class="configBtn btn btn-xs btn-danger col-sm-4 col-sm-12 bold">
<i class='fa fa-cogs'></i> CONFIG
</a>
<a href='costum/co/index/slug/<?php echo $el["slug"] ?>/form/<?php echo $fix ?>' class="btn btn-xs btn-primary col-sm-4 col-xs-12 bold">
<a href='costum/co/index/slug/<?php echo $el["slug"] ?>/form/<?php echo $fix ?>#answer.id.new' class="btn btn-xs btn-primary col-sm-4 col-xs-12 bold">
<i class='fa fa-file-text-o'></i> RÉPONDRE
</a>
</div>
......@@ -42,6 +46,7 @@ foreach ($forms as $fix => $f) {
<script type="text/javascript">
var tplCtx = {};
var formsData = <?php echo (!empty($forms)) ? json_encode( $forms ) : "null"; ?>;
jQuery(document).ready(function() {
mylog.log("render","/modules/costum/views/tpls/forms/cplx/answers.php");
......@@ -52,8 +57,40 @@ jQuery(document).ready(function() {
});
$('.configBtn').off().on("click",function() {
tplCtx.id = $(this).data("id");
dyFObj.openForm(oformParams)
mylog.log( "configBtn", tplCtx.id );
dyFObj.openForm( oformParams, null, formsData[$(this).data("id")] )
});
$('.editFormBtn').off().click( function(){
tplCtx.id = $(this).data("id");
dyFObj.openForm( oformParams, null, formsData[$(this).data("id")] )
});
$('.deleteFormBtn').off().click( function(){
tplCtx.id = $(this).data("id");
bootbox.dialog({
title: "Confirmez la suppression",
message: "<span class='text-red bold'><i class='fa fa-warning'></i> Cette action sera irréversible</span>",
buttons: [
{
label: "Ok",
className: "btn btn-primary pull-left",
callback: function() {
getAjax("",baseUrl+"/survey/form/delete/id/"+tplCtx.id,function(res){
if(res.result)
toastr.success("Le form été supprimée avec succès");
else
toastr.error(res.msg);
urlCtrl.loadByHash(location.hash);
},"html");
}
},
{
label: "Annuler",
className: "btn btn-default pull-left",
callback: function() {}
}
]
});
});
});
var oform = {
......@@ -64,12 +101,6 @@ var oform = {
properties : {
name : { label : "Nom du formulaire"},
what : { label : "Nom d'une Réponse, à quoi correspondent les réponses ?", placeholder:"Proposition, Dossiers, Projets..."},
// sections : {
// inputType : "array",
// label : "Nommé chaque étape de votre questionnaire",
// subLabel : "Vous remplirez les question de chaques étapes par la suite",
// values : []
// },
image : dyFInputs.image(),
formid : { inputType : "hidden",value:"<?php echo $el["slug"].count($forms) ?>"},
parent : {
......@@ -122,20 +153,26 @@ var oformParams = {
description : "lisez bien les options",
icon : "fa-question",
properties : {
private : { inputType : "checkboxSimple",
label : "Privé",
subLabel : "Seul la communauté peut éditer ce questionnaire",
params : { onText : "Oui", offText : "Non", onLabel : "Oui", offLabel : "Non",
labelText : "Privé"
},
checked : false },
canReadOtherAnswers: { inputType : "checkboxSimple",
label : "Réponses Ouvertes à la lecture",
subLabel : "Les réponses sont elles ouverte à la lecture public",
params : { onText : "Oui",offText : "Non",onLabel : "Oui",offLabel : "Non",
labelText : "Réponses Ouvertes"
},
checked : true },
ids : {
inputType : "array",
label : "Nommé chaque étape de votre questionnaire",
//subLabel : "Vous remplirez les question de chaques étapes par la suite",
value : []
},
private : {
inputType : "checkboxSimple",
label : "Privé",
subLabel : "Seul la communauté peut éditer ce questionnaire",
params : { onText : "Oui", offText : "Non", onLabel : "Oui", offLabel : "Non",
labelText : "Privé"},
checked : false },
canReadOtherAnswers: {
inputType : "checkboxSimple",
label : "Réponses Ouvertes à la lecture",
subLabel : "Les réponses sont elles ouverte à la lecture public",
params : { onText : "Oui",offText : "Non",onLabel : "Oui",offLabel : "Non",
labelText : "Réponses Ouvertes"},
checked : true },
startDate: {
inputType : "date",
label : "Date de début",
......@@ -144,44 +181,68 @@ var oformParams = {
inputType : "date",
label : "Date de fin"
},
oneAnswerPerPers: {inputType : "checkboxSimple",
label : "Bloquer à une réponse par personne",
subLabel : "Une personne ne pourra répondre qu'une seule fois",
params : { onText : "Oui",offText : "Non",onLabel : "Oui",offLabel : "Non",
labelText : "Réponse unique"
},
checked : true },
canModify : { inputType : "checkboxSimple",
label : "Réponse Modifiable",
subLabel : "une fois soumise les réponses sont elles modifiables",
params : { onText : "Oui",offText : "Non",onLabel : "Oui",offLabel : "Non",
labelText : "Réponse Modifiable"
},
checked : true },
showAnswers: {inputType : "checkboxSimple",
label : "Réponse Affichés",
subLabel : "Les réponses sont elles affichés publiquement",
params : { onText : "Oui",offText : "Non",onLabel : "Oui",offLabel : "Non",
labelText : "Réponse Affichés"
},
checked : true },
oneAnswerPerPers: {
inputType : "checkboxSimple",
label : "Bloquer à une réponse par personne",
subLabel : "Une personne ne pourra répondre qu'une seule fois",
params : { onText : "Oui",offText : "Non",onLabel : "Oui",offLabel : "Non",
labelText : "Réponse unique"},
checked : true },
canModify : {
inputType : "checkboxSimple",
label : "Réponse Modifiable",
subLabel : "une fois soumise les réponses sont elles modifiables",
params : { onText : "Oui",offText : "Non",onLabel : "Oui",offLabel : "Non",
labelText : "Réponse Modifiable"},
checked : true },
showAnswers: {
inputType : "checkboxSimple",
label : "Réponse Affichés",
subLabel : "Les réponses sont elles affichés publiquement",
params : { onText : "Oui",offText : "Non",onLabel : "Oui",offLabel : "Non",
labelText : "Réponse Affichés"},
checked : true },
},
save : function () {
tplCtx.collection = "forms";
beforeBuild : function(){
dyFObj.setMongoId('forms',function(){
uploadObj.gotoUrl = '#page.type.forms.id.'+uploadObj.id;
});
},
save : function (formData) {
//mylog.log('save tplCtx formData', formData)
tplCtx.collection = "forms";
tplCtx.path = "allToRoot";
tplCtx.value = {};
$.each( oformParams.jsonSchema.properties , function(k,val) {
if(val.inputType == "properties")
tplCtx.value[k] = getPairsObj('.'+k+val.inputType);
else if(val.inputType == "array")
else if(val.inputType == "array"){
tplCtx.value[k] = getArray('.'+k+val.inputType);
if(k=="ids"){
$.each(tplCtx.value[k],function(ix,fName) {
var newFormId = "<?php echo $el["slug"] ?>"+slugify(fName);
tplCtx.value[k][ix] = newFormId;
var newForm ={
collection : "forms",
value : {
id : newFormId,
name : fName,
type : "openForm",
}
};
dataHelper.path2Value( newForm, function() { } );
})
}
}
else
tplCtx.value[k] = $("#"+k).val();
mylog.log("value",'.'+k+val.inputType,tplCtx.value[k]);
});
mylog.log("oformParams save tplCtx",tplCtx);
if(typeof tplCtx.value == "undefined")
toastr.error('value cannot be empty!');
else {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment