Commit 0897f8c7 authored by FloBen's avatar FloBen
Browse files

cress form and config answer.new
parent 2ed25ccc
......@@ -19,7 +19,7 @@
"oneAnswerPerPers" : "true",
"canModify" : "true",
"showAnswers" : "true",
"updated" : NumberLong(1614504229),
"updated" : NumberLong(1614941408),
"subForms" : [
"cressReunion1622021_1332_0",
"cressReunion2222021_1032_1"
......@@ -27,7 +27,7 @@
"params" : {
"elementcressReunion1622021_1332_06" : {
"type" : "projects",
"limit" : "1"
"limit" : "0"
},
"multiRadiocressReunion1622021_1332_010" : {
"global" : {
......@@ -382,6 +382,133 @@
"msgbox" : "Réponse envoyée",
"notif" : "Votre réponse a bien été enregistrée",
"urlRedirect" : "https://www.aress-reunion.re"
},
"validateStepcressReunion1622021_1332_020" : {
"inputList" : [
"cressReunion2222021_1032_025",
"cressReunion1622021_1332_03",
"cressReunion2222021_1032_024",
"cressReunion1622021_1332_01",
"cressReunion1622021_1332_04"
],
"step" : "cressReunion2222021_1032_1",
"contact" : "",
"inputscontact" : "",
"object" : "",
"msg" : "",
"msgbox" : "1ère partie complétée",
"notif" : "1ère partie du formulaire complétée"
},
"elementcressReunion1622021_1332_01b" : {
"type" : "organizations",
"limit" : "1"
},
"multiRadiocressReunion2222021_1032_021" : {
"global" : {
"list" : [
"Oui",
"Non"
],
"width" : ""
},
"tofill" : {
"Oui" : "cplx",
"Non" : "simple"
},
"placeholdersradio" : {
"Oui" : "Si oui précisez : ….",
"Non" : ""
}
},
"multiRadiocressReunion2222021_1032_022" : {
"global" : {
"list" : [
"Oui",
"Non"
],
"width" : ""
},
"tofill" : {
"Oui" : "cplx",
"Non" : "simple"
},
"placeholdersradio" : {
"Oui" : "Si oui précisez : ….",
"Non" : ""
}
},
"multiRadiocressReunion2222021_1032_023" : {
"global" : {
"list" : [
"Oui",
"Non"
],
"width" : ""
},
"tofill" : {
"Oui" : "cplx",
"Non" : "simple"
},
"placeholdersradio" : {
"Oui" : "Si oui précisez : ….",
"Non" : ""
}
},
"multiCheckboxPluscressReunion2222021_1032_024" : {
"global" : {
"list" : [
"Agriculture - Alimentation",
"Sensibilisation - Education à l’environnement",
"Ecoconstruction ",
"Mobilité",
"Recyclage",
"Réemploi",
"Collecte",
"Initiatives pour une consommation responsable",
"Approvisionnement durable",
"Autre"
],
"width" : ""
},
"tofill" : {
"Agriculture - Alimentation" : "simple",
"Sensibilisation - Education à l’environnement" : "simple",
"Ecoconstruction" : "simple",
"Mobilité" : "simple",
"Recyclage" : "simple",
"Réemploi" : "simple",
"Collecte" : "simple",
"Initiatives pour une consommation responsable" : "simple",
"Approvisionnement durable" : "simple",
"Autre" : "cplx"
}
},
"multiCheckboxPluscressReunion2222021_1032_025" : {
"global" : {
"list" : [
"Ressourcerie",
"Recyclerie",
"Friperie",
"Magasin/boutique",
"Tiers-lieu",
"Réseau d’acteur",
"Ateliers de sensibilisation",
"Formation",
"Autre"
],
"width" : ""
},
"tofill" : {
"Ressourcerie" : "simple",
"Recyclerie" : "simple",
"Friperie" : "simple",
"Magasin/boutique" : "simple",
"Tiers-lieu" : "simple",
"Réseau d’acteur" : "simple",
"Ateliers de sensibilisation" : "simple",
"Formation" : "simple",
"Autre" : "cplx"
}
}
}
}
......@@ -395,13 +522,19 @@
"inputs" : {
"cressReunion1622021_1332_01" : {
"label" : "Siret de votre structure",
"placeholder" : "",
"info" : "Veuillez vérifier le format de votre réponse : 14 chiffres pour un numéro SIRET, sans espace",
"placeholder" : "14 chiffres pour un numéro SIRET, sans espace",
"info" : "Question obligatoire. Veuillez vérifier le format de votre réponse",
"type" : "tpls.forms.costum.cressReunion.multitextvalidation"
},
"cressReunion1622021_1332_01b" : {
"label" : "Votre structure",
"type" : "tpls.forms.costum.cressReunion.element",
"hide" : true
},
"cressReunion1622021_1332_02" : {
"label" : "Nom de la structure",
"type" : "text"
"type" : "text",
"hide" : true
},
"cressReunion1622021_1332_03" : {
"label" : "En cas d'activités multiples au sein de votre structure, préciser le nom de l'établissement portant une activité en lien avec l'économie circulaire si celui-ci diffère du nom générique de votre structure. ",
......@@ -410,14 +543,15 @@
},
"cressReunion1622021_1332_04" : {
"label" : "Statut juridique de la structure",
"type" : "text"
"type" : "text",
"hide" : true
},
"cressReunion1622021_1332_05" : {
"label" : "En quelle année avez-vous débuté votre activité ? ",
"type" : "text"
},
"cressReunion1622021_1332_06" : {
"label" : "Veuillez renseigner votre projet pour localiser votre activité",
"label" : "Veuillez renseigner votre (vos) projet(s) pour localiser votre activité",
"type" : "tpls.forms.cplx.element"
},
"cressReunion1622021_1332_07" : {
......@@ -432,10 +566,35 @@
"label" : "Page LinkedIn de la structure",
"type" : "url"
},
"cressReunion1622021_1332_010a" : {
"label" : "Si votre structure a des adhérent.e.s, combien en compte-t-elle ?",
"type" : "text",
"info" : "Indiquer 0 si aucun"
},
"cressReunion1622021_1332_010" : {
"label" : "Etes-vous une structure d'insertion ? ",
"type" : "tpls.forms.cplx.multiRadio"
},
"cressReunion2222021_1032_021" : {
"label" : "Êtes vous affilié à une union/réseau national sur l’économie circulaire ou la transition écologique ? ",
"type" : "tpls.forms.cplx.multiRadio"
},
"cressReunion2222021_1032_022" : {
"label" : "Êtes vous affilié à une union/réseau local sur l’économie circulaire ou la transition écologique ?",
"type" : "tpls.forms.cplx.multiRadio"
},
"cressReunion2222021_1032_023" : {
"label" : "Êtes vous affilié à une autre union ou réseau sur le territoire ?",
"type" : "tpls.forms.cplx.multiRadio"
},
"cressReunion2222021_1032_024" : {
"label" : "Quelles sont les thématiques de l’économie circulaire qui concerne votre activité/vos activités ?",
"type" : "tpls.forms.cplx.multiCheckboxPlus"
},
"cressReunion2222021_1032_025" : {
"label" : "Comment se caractérise votre ou vos activités ?",
"type" : "tpls.forms.cplx.multiCheckboxPlus"
},
"cressReunion1622021_1332_011" : {
"label" : "Coordonnées de la personne référente de votre structure",
"type" : "sectionTitle"
......@@ -477,9 +636,13 @@
"cressReunion1622021_1332_019" : {
"label" : "Votre structure est-elle ouverte au public ?",
"type" : "tpls.forms.cplx.multiRadio"
},
"cressReunion1622021_1332_020" : {
"label" : "Etape suivante",
"type" : "tpls.forms.cplx.validateStep"
}
},
"updated" : NumberLong(1613986231)
"updated" : NumberLong(1614942323)
}
{
......@@ -599,7 +762,7 @@
"cressReunion2222021_1032_125" : {
"label" : "Quels flux votre structure prend-elle en charge ?",
"type" : "tpls.forms.cplx.multiCheckboxPlus",
"info" : "Lorsque vous sélectionnez un flux, vous serez amené.e plus bas à renseigner les activités opérées sur ce flux dans votre structure (exemple : collecte, réemploi, etc.)."
"info" : "Précisez si la prise en charge comporte la collecte, le recyclage ou le réemploi). Lorsque vous sélectionnez un flux, vous serez amené.e plus bas à renseigner les activités opérées sur ce flux dans votre structure (exemple : collecte, réemploi, etc.)."
},
"cressReunion2222021_1032_126" : {
"label" : "Quels flux d'emballages et/ou de papiers-cartons prendrez-vous en charge ?",
......@@ -625,7 +788,17 @@
},
"cressReunion2222021_1032_129" : {
"label" : "Votre structure est-elle engagée dans un ou plusieurs projets avec une collectivité territoriale ?",
"type" : "tpls.forms.cplx.multiRadio"
"type" : "tpls.forms.cplx.multiRadio",
"conditional" : {
"0" : {
"input" : "cressReunion2222021_1032_131",
"value" : "multiRadiocressReunion2222021_1032_1290"
}
}
},
"cressReunion2222021_1032_131" : {
"label" : "Si oui, quelle(s) collectivités ?",
"type" : "textarea"
},
"cressReunion2222021_1032_130" : {
"label" : "Envoyer",
......
<?php if($answer){ ?>
<div class="form-group">
<table class="table table-bordered table-hover directoryTable" id="<?php echo $kunik?>">
<?php
$paramsData = [ "type" => [
Organization::COLLECTION => "Organization",
Person::COLLECTION => "Person",
Event::COLLECTION => "Event",
Project::COLLECTION => "Project",
News::COLLECTION => "News",
Need::COLLECTION => "Need",
City::COLLECTION => "City",
Thing::COLLECTION => "Thing",
Poi::COLLECTION => "Poi",
Classified::COLLECTION => "Classified",
Product::COLLECTION => "Product",
Service::COLLECTION => "Service",
Survey::COLLECTION => "Survey",
Bookmark::COLLECTION => "Bookmark",
Proposal::COLLECTION => "Proposal",
Room::COLLECTION => "Room",
Action::COLLECTION => "Action",
Network::COLLECTION => "Network",
Url::COLLECTION => "Url",
Place::COLLECTION => "Place",
Ressource::COLLECTION => "Ressource",
Circuit::COLLECTION => "Circuit",
Risk::COLLECTION => "Risk",
Badge::COLLECTION => "Badge",
],
"limit" => 0 ];
if( isset($parentForm["params"][$kunik]) ) {
if( isset($parentForm["params"][$kunik]["limit"]) )
$paramsData["limit"] = $parentForm["params"][$kunik]["limit"];
}
$properties = [
"qui" => [
"label" => "Nom de votre structure",
"placeholder" => "Qui...",
],
"type" => [
"label" => "Type",
"placeholder" => "...type...",
]
];
$editBtnL = ($canEdit === true
&& isset($parentForm["params"][$kunik])
&& ( $paramsData["limit"] == 0 ||
!isset($answers) ||
( isset($answers) && $paramsData["limit"] > count($answers) )))
? " <a href='javascript:;' data-id='".$answer["_id"]."' data-collection='".Form::ANSWER_COLLECTION."' data-path='".$answerPath."' class='add".$kunik." btn btn-default '><i class='fa fa-plus'></i> Ajouter un élément </a>"
: "";
$editParamsBtn = ($canEdit) ? " <a href='javascript:;' data-id='".$parentForm["_id"]."' data-collection='".Form::COLLECTION."' data-path='params.".$kunik."' class='previewTpl edit".$kunik."Params btn btn-xs btn-danger'><i class='fa fa-cog'></i> </a>" : "";
?>
<thead>
<tr>
<td colspan='<?php echo count( $properties)+2?>' ><h4 style="color:<?php echo ($titleColor) ? $titleColor : "black"; ?>"><?php echo $label.$editQuestionBtn.$editParamsBtn.$editBtnL?></h4>
<?php echo $info;
if( !isset($parentForm["params"][$kunik]['type']) )
echo "<br/><span class='text-red text-center'><i class='fa fa-warning fa-2x'></i> THIS FIELD HAS TO BE CONFIGURED FIRST ".$editParamsBtn."</span>";
?>
</td>
</tr>
<?php if(isset($answers) && count($answers)>0){ ?>
<tr>
</th>
<?php
foreach ($properties as $i => $inp) {
echo "<th>".$inp["placeholder"]."</th>";
} ?>
<th></th>
</tr>
<?php } ?>
</thead>
<tbody class="directoryLines">
<?php
$ct = 0;
if(isset($answers))
{
foreach ($answers as $q => $a)
{
if( $paramsData["limit"] == 0 || $paramsData["limit"] > $q )
{
if(isset($a["slug"]))
$el = Slug::getElementBySlug($a["slug"],["name","typeEtablissement"]);
echo "<tr id='".$kunik.$q."' class='".$kunik."Line'>";
foreach ($properties as $i => $inp)
{
if( $i == "qui" && isset($a["slug"])) {
echo "<td><a href='#page.type.".$el["type"].".id.".$el["id"]."' class='lbh-preview-element' >".$el["el"]["name"]."</a></td>";
}
else if($i == "type" && isset($a["slug"])){
echo "<td>".$el["el"]["typeEtablissement"]."</a></td>";
}
// else
// echo "<td>".$a[$i]."</td>";
}
?>
<td>
<?php
$this->renderPartial( "survey.views.tpls.forms.cplx.editDeleteLineBtn" , [
"canEdit"=>($canEdit||Yii::app()->session["userId"] == $answer["user"]),
"id" => $answer["_id"],
"collection" => Form::ANSWER_COLLECTION,
"q" => $q,
"path" => $answerPath.$q,
"kunik"=>$kunik ] );
?>
<!-- <a href="javascript:;" class="btn btn-xs btn-primary openAnswersComment" onclick="commentObj.openPreview('answers','<?php echo $answer["_id"]?>','<?php echo $answer["_id"].$key.$q ?>', '<?php echo @$a['step'] ?>')">
<?php
echo PHDB::count(Comment::COLLECTION, array("contextId"=>$answer["_id"],"contextType"=>"answers", "path"=>$answer["_id"].$key.$q)); ?>
<i class='fa fa-commenting'></i></a> -->
</td>
<?php
$ct++;
echo "</tr>";
}
}
}
?>
</tbody>
</table>
</div>
<script type="text/javascript">
var <?php echo $kunik ?>Data = <?php echo json_encode( (isset($answers)) ? $answers : null ); ?>;
sectionDyf.<?php echo $kunik ?>ParamsData = <?php echo json_encode( $paramsData ); ?>;
$(document).ready(function() {
mylog.log("render","/modules/costum/views/tpls/forms/element.php");
if(<?php echo $kunik ?>Data!=null && <?php echo $kunik ?>Data.length < 0){
$("#question<?php echo $key ?>").removeClass("hide");
}
//can be hacked to apply further costumization
//is used like a dynFormCostumIn in openForm
costum.<?php echo $kunik ?> = {
onload : {"actions" : { "setTitle" : "<?php echo $input["label"] ?>"}},
afterSave : function(data) {
mylog.log("element afterSave",data)
costum.<?php echo $kunik ?>.connectToAnswer(data);
},
connectToAnswer : function ( data ) {
mylog.log("costum.<?php echo $kunik ?>.connectToAnswer",data)
tplCtx.value = {
type : (data.type) ? data.type : "<?php echo (isset($parentForm["params"][$kunik]['type'])) ? $parentForm["params"][$kunik]['type'] : ''; ?>",
id : data.id,
slug : data.map.slug
};
mylog.log("save tplCtx",tplCtx);
;
if(typeof tplCtx.value == "undefined")
toastr.error('value cannot be empty!');
else {
dataHelper.path2Value ( tplCtx, function(params) {
$("#ajax-modal").modal('hide');
reloadInput("<?php echo $key ?>", "<?php echo (string)$form["_id"] ?>");
});
var form=$('#question<?php echo $key ?>').data("form");
answer.path = "answers."+form+".multitextvalidationcressReunion1622021_1332_01";
answer.collection = "answers" ;
answer.id = "<?php echo $answer["_id"]; ?>";
answer.value = data.map.siret;
dataHelper.path2Value(answer , function(params) {
toastr.success('saved');
reloadInput("cressReunion1622021_1332_01", "<?php echo (string)$form["_id"] ?>");
});
answer.path = "answers."+form+".cressReunion1622021_1332_02";
answer.value = data.map.name;
dataHelper.path2Value(answer , function(params) {
toastr.success('saved');
reloadInput("cressReunion1622021_1332_02", "<?php echo (string)$form["_id"] ?>");
});
$("#questioncressReunion1622021_1332_02").removeClass("hide");
answer.path = "answers."+form+".cressReunion1622021_1332_04";
answer.value = data.map.typeEtablissement;
dataHelper.path2Value(answer , function(params) {
toastr.success('saved');
reloadInput("cressReunion1622021_1332_04", "<?php echo (string)$form["_id"] ?>");
});
$("#questioncressReunion1622021_1332_04").removeClass("hide");
if (typeof data.map.url!="undefined" && data.map.url!=""){
answer.path = "answers."+form+".cressReunion1622021_1332_07";
answer.value = data.map.url;
dataHelper.path2Value(answer , function(params) {
toastr.success('saved');
reloadInput("cressReunion1622021_1332_07", "<?php echo (string)$form["_id"] ?>");
});
}
}
}
// onload : {
// "actions" : {
// "hide": {
// "parentfinder" : 1
// }
// }
// }
};
costum.searchExist = function (type,id,name,slug,email) {
mylog.log("costum searchExist : "+type+", "+id+", "+name+", "+slug+", "+email);
var data = {
type : type,
id : id,
map : { slug : slug }
}
costum.<?php echo $kunik ?>.connectToAnswer(data);
};
sectionDyf.<?php echo $kunik ?>Params = {
"jsonSchema" : {
"title" : "Element config",
"icon" : "fa-cog",
"properties" : {
type : {
inputType : "select",
label : "Définir un type d'élément",
options : sectionDyf.<?php echo $kunik ?>ParamsData.type,
value : "<?php echo (isset($parentForm["params"][$kunik]['type'])) ? $parentForm["params"][$kunik]['type'] : ''; ?>"
},
limit : {
label : "Combien d'éléments peuvent être ajoutés (0 si pas de limite)",
value : "<?php echo (isset($parentForm["params"][$kunik]['limit'])) ? $parentForm["params"][$kunik]['limit'] : ''; ?>"
}
},
save : function () {
tplCtx.value = {};
$.each( sectionDyf.<?php echo $kunik ?>Params.jsonSchema.properties , function(k,val) {
tplCtx.value[k] = $("#"+k).val();
});
mylog.log("save tplCtx",tplCtx);
if(typeof tplCtx.value == "undefined")
toastr.error('value cannot be empty!');
else {
dataHelper.path2Value( tplCtx, function(params) {
$("#ajax-modal").modal('hide');
urlCtrl.loadByHash(location.hash);
} );
}
}
}
};
var dynformCostumAnswer = costum.<?php echo $kunik ?>;
//adds a line into answer
<?php if(isset($parentForm["params"][$kunik]["type"])) { ?>
if(costum.typeObj.<?php echo $parentForm["params"][$kunik]["type"] ?>.dynFormCostum!="undefined"){
dynformCostumAnswer = $. extend({}, costum.typeObj.<?php echo $parentForm["params"][$kunik]["type"] ?>.dynFormCostum, dynformCostumAnswer);
}
<?php } ?>
<?php if( isset($parentForm["params"][$kunik]['type']) ) { ?>
$(".add<?php echo $kunik ?>").off().on("click",function() {
mylog.log("dynformCostumAnswer",dynformCostumAnswer);
tplCtx.id = $(this).data("id");
form= $(this).data("form");
tplCtx.collection = $(this).data("collection");
tplCtx.path = $(this).data("path")+((notNull(<?php echo $kunik ?>Data) ? <?php echo $kunik ?>Data.length : "0"));
dyFObj.openForm( "<?php echo Element::getControlerByCollection($parentForm["params"][$kunik]['type']); ?>",null,null,null,dynformCostumAnswer);
});
$(".edit<?php echo $kunik ?>").off().on("click",function() {
tplCtx.id = $(this).data("id");
tplCtx.collection = $(this).data("collection");
tplCtx.path = $(this).data("path");
dyFObj.editElement( <?php echo $kunik ?>Data[$(this).data("key")].type,<?php echo $kunik ?>Data[$(this).data("key")].id, null, dynformCostumAnswer);
});
<?php } ?>
$(".edit<?php echo $kunik ?>Params").off().on("click",function() {
tplCtx.id = $(this).data("id");
tplCtx.collection = $(this).data("collection");
tplCtx.path = $(this).data("path");
dyFObj.openForm( sectionDyf.<?php echo $kunik ?>Params,null, sectionDyf.<?php echo $kunik ?>ParamsData);
});
});
</script>
<?php } else {
//echo "<h4 class='text-red'>CALENDAR works with existing answers</h4>";
} ?>
\ No newline at end of file
......@@ -231,6 +231,11 @@ if($mode == "r"){ ?>
jQuery(document).ready(function() {
mylog.log("render form input","/modules/costum/views/tpls/forms/text.php");
if($('#question<?php echo $kunik ?> input').val() != ''){
$("#questioncressReunion1622021_1332_02").removeClass("hide");