/[openfoncier]/trunk/app/js/script.js
ViewVC logotype

Annotation of /trunk/app/js/script.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3179 - (hide annotations)
Thu Oct 16 13:24:00 2014 UTC (10 years, 3 months ago) by fmichon
File MIME type: application/javascript
File size: 99367 byte(s)
* Suppression d'un fichier inutile et de la fonction javascript associée.

1 fmichon 1515 /**
2 fmichon 1525 * Script JS spécifique à l'applicatif, ce script est destiné à être
3 fmichon 1515 * appelé en dernier dans la pile des fichiers JS.
4     *
5     * @package openfoncier
6     * @version SVN : $Id$
7     */
8 fmichon 784
9     // Document is ready
10 nhaye 585 $(function(){
11 fmichon 784
12 fmichon 1470 /**
13 fmichon 1471 * Ajout du focus sur le champ login au chargement de la page.
14     */
15     $('#login_form #login').focus();
16    
17     /**
18 fmichon 1470 * Spécifique app/affichage_reglementaire_attestation.php pour donner le
19     * focus sur le champ de recherche au chargement de la page.
20     */
21     $('#affichage_reglementaire_attestation_form #dossier').focus();
22    
23 fmichon 1473 /**
24     * Spécifique app/widget_recherche_dossier.php pour donner le
25     * focus sur le champ de recherche au chargement de la page.
26     */
27     $('#widget_recherche_dossier_form #dossier').focus();
28    
29 fmichon 784 /**
30 fmichon 1666 * Spécifique app/suivi_retours_de_consultation.php pour donner le focus sur le champ de
31 fmichon 784 * recherche au chargement de la page.
32     */
33 vpihour 1824 $('#suivi_retours_de_consultation_form #code_barres').focus();
34 nhaye 1210
35     /**
36 fmichon 1667 * Spécifique app/suivi_mise_a_jour_des_dates.php pour donner le focus sur le champ
37 nhaye 1210 * instruction au chargement de la page si la date n'est pas vide.
38     */
39 fmichon 1667 if($('#suivi_mise_a_jour_des_dates_form #date').val()!="") {
40 vpihour 1824 $('#suivi_mise_a_jour_des_dates_form #code_barres').focus();
41 nhaye 1210 }
42 vpihour 1824
43     /**
44     * Spécifique app/suivi_envoi_lettre_rar.php pour donner le focus sur le champ
45     * liste des codes barres d'instructions scannés au chargement de la page.
46     */
47     $('#suivi_envoi_lettre_rar_form #liste_code_barres_instruction').focus();
48    
49 vpihour 2089 /**
50     * Affichage d'un dialog pour les règles de calcul associés à l'action
51     */
52     $('.regle_action').dialog({
53     autoOpen: false,
54     show: "fade",
55     hide: "fade",
56     dialogClass: "alert",
57     minHeight: 30,
58 vpihour 2091 minWidth: 400
59 vpihour 2089 });
60    
61     $('.wf_evenement_action').mouseover(
62     function(){
63     var id = $(this).attr("id");
64     $( "#regle_action"+ id ).dialog({ position: { my: "left top", at: "left bottom", of: $(this) } });
65     $( "#regle_action"+ id ).dialog("open");
66     $(".ui-dialog-titlebar").hide();
67     }
68     );
69    
70     $('.wf_evenement_action').mouseleave(
71     function(){
72     var id = $(this).attr("id");
73     $( "#regle_action"+ id ).dialog( "close" );
74     }
75     );
76 nhaye 585 });
77 fraynaud 88
78 nhaye 585
79 fmichon 784 /**
80     * WIDGET liés au formulaire et sousformulaire
81     *
82     * Ces fonctions javascript sont appelées depuis les méthodes setOnChange,
83     * setOnClick, ...
84     */
85 fmichon 1524 //
86     // Cette fonction permet de retourner les informations sur le fichier téléchargé
87     // du formulaire d'upload vers le formulaire d'origine
88     function bible_return(form, champ) {
89     // Initialisation de la variable contenant les valeurs sélectionnées
90     var listeElement = '';
91     // Récupération du contenu de chacun des éléments cochés
92     $("span.content").each(function( index ) {
93     if (document.getElementById('checkbox'+index).checked == true) {
94 nhaye 2657 listeElement += $(this).attr('title').replace(/\r\n|\n|\r/g, '<br />')+'<br />';
95 fmichon 1524 }
96     });
97 nhaye 2651 obj = tinyMCE.get(champ);
98 fmichon 1524 // Remplissage du textarea et déclenchement du trigger autosize
99 nhaye 2888 if(listeElement != '') {
100     obj.setContent(obj.getContent()+"<br/>"+listeElement+"<br/>");
101     }
102 fmichon 1524 // Fermeture de la boite de dialog
103     $('#upload-container').dialog('close').remove();
104     }
105     //
106 fmichon 784 function bible() {
107 fmichon 1524 //
108     var ev = document.f2.evenement.value;
109     //
110 fmichon 1484 if (ev == "") {
111     window.alert("Vous devez d'abord sélectionner un événement.");
112     return false;
113     }
114 fmichon 1524 //
115     var idx = document.f2.dossier.value;
116     //
117     var link = "../app/bible.php?complement=1&ev="+ev+"&idx="+idx;
118     load_form_in_modal(link);
119     //
120     return false;
121 fraynaud 88 }
122 fmichon 1524 //
123     function bible2() {
124 fraynaud 88 var ev=document.f2.evenement.value;
125 fmichon 1484 if (ev == "") {
126     window.alert("Vous devez d'abord sélectionner un événement.");
127     return false;
128     }
129 fraynaud 88 var idx=document.f2.dossier.value;
130 fmichon 1524 var link = "../app/bible.php?complement=2&ev="+ev+"&idx="+idx;
131     load_form_in_modal(link);
132     return false;
133 fraynaud 88 }
134 fmichon 784 // bible_auto - type httpclick
135 fraynaud 88 function bible_auto(){
136 nhaye 2834 // Récupération de l'identifiant de l'événement
137 fraynaud 88 var ev=document.f2.evenement.value;
138 nhaye 2834 // Si pas d'événement on affiche un message d'erreur
139 fmichon 1484 if (ev == "") {
140     window.alert("Vous devez d'abord sélectionner un événement.");
141     return false;
142     }
143 nhaye 2834 // Récupération de l'identifiant du dossier
144 fraynaud 88 var idx=document.f2.dossier.value;
145 nhaye 2834 // Récupération des retours de consultation et de la bible
146     $.ajax({
147     type: "GET",
148     url: "../app/bible_auto.php?idx="+idx+"&ev="+ev,
149     cache: false,
150     dataType: "json",
151     success: function(data){
152    
153     var obj = tinyMCE.get('complement_om_html');
154     // Remplissage du textarea complement_om_html
155 nhaye 2888 if(data.complement_om_html != '') {
156     obj.setContent(obj.getContent()+"<br/>"+data.complement_om_html+"<br/>");
157     }
158 nhaye 2925 var obj2 = tinyMCE.get('complement2_om_html');
159 nhaye 2834 // Remplissage du textarea complement2_om_html
160 nhaye 2888 if(data.complement2_om_html != '') {
161     obj2.setContent(obj2.getContent()+"<br/>"+data.complement2_om_html+"<br/>");
162     }
163 nhaye 2834
164     }
165     });
166    
167 fmichon 1524 return false;
168 fraynaud 88 }
169 fmichon 784 // VerifNumdec - type text
170     function VerifNumdec(champ) {
171     champ.value = champ.value.replace(",", "."); // remplacement de la virgule
172     //if (champ.value.lastIndexOf(".") == -1){ // champ decimal
173     if (isNaN(champ.value)) {
174     alert(msg_alert_error_verifnum);
175     champ.value = "";
176     return;
177     }
178     //}
179    
180     }
181 softime 2271
182     /**
183     * Cette fonction permet de compléter le champ par des zéro par la gauche
184     * @param string champ Champ concerné
185     * @param integer length Taille du champ retourné
186     */
187     function str_pad_js(champ, length) {
188    
189     // Initialisation de la variable str
190     var str = '' + champ.value;
191    
192     // Si le champ n'est pas vide
193     if (str != '') {
194     // Tant que la taille n'est pas atteint,
195     // on ajoute des 0
196     while (str.length < length) {
197     str = '0' + str;
198     }
199     // Modifie le champ
200     champ.value = str;
201     }
202     }
203    
204 fmichon 784 // Ce widget permet de charger les données d'un select en ajax
205 nhaye 1062 function changeDataSelect(tableName, linkedField, joker){
206     var id_dossierAutorisation = $("#dossier_autorisation").val();
207     var id = $("#"+linkedField).val();
208     link = "../app/listData.php?idx=" + id + "&tableName=" + tableName +
209     "&linkedField=" + linkedField ;
210     if(id_dossierAutorisation != "") {
211     link += "&nature=EXIST";
212     }
213     var val_tableName = $('#'+tableName).val();
214 fmichon 784 $.ajax({
215     type: "GET",
216     url: link,
217     cache: false,
218     dataType: "json",
219     success: function(html){
220    
221 nhaye 1062 $('#'+tableName).empty();
222 fmichon 1005 var selected = "";
223 nhaye 1062 if(val_tableName == "") {
224 fmichon 1005 selected=' selected="selected"';
225     }
226 fmichon 784 if ( joker == true )
227 nhaye 1062 $('#'+tableName).append(
228 fmichon 1005 '<option value=""'+selected+'>*</option>'
229 fmichon 784 );
230 fmichon 1005 else {
231 nhaye 1062 $('#'+tableName).append(
232     '<option value=""'+selected+'>Choisir ' + tableName + '</option>'
233 fmichon 784 );
234 fmichon 1005 }
235 fmichon 784 if ( html !== '' ){
236    
237     html = html.split(';');
238     for ( i = 0 ; i < html.length - 1 ; i++ ){
239    
240     html_temp = html[i].split('_');
241 fmichon 1005 selected = "";
242 nhaye 1062 if(val_tableName == html_temp[0]) {
243 fmichon 1005 selected=' selected="selected"';
244     }
245 nhaye 1062 $('#'+tableName).append(
246 fmichon 1005 '<option value="'+html_temp[0]+'"'+selected+' >'+html_temp[1]+'</option>'
247 fmichon 784 );
248 fmichon 1005
249 fmichon 784 }
250     }
251     },
252     async: false
253     });
254     }
255 nhaye 1333
256     /**
257     * Fonction de récupération des paramètres GET de la page
258     * @return Array Tableau associatif contenant les paramètres GET
259     */
260     function extractUrlParams(){
261     var t = location.search.substring(1).split('&');
262     var f = [];
263     for (var i=0; i<t.length; i++){
264     var x = t[ i ].split('=');
265     f[x[0]]=x[1];
266     }
267     return f;
268     }
269    
270 fmichon 784 // vuploadMulti - XXX
271     function vuploadMulti(champ) {
272     //
273     if (fenetreouverte == true) {
274     pfenetre.close();
275     }
276     //
277     pfenetre = window.open("../spg/upload.php?origine="+champ+"&form="+$('input[name='+champ+']').closest('form').attr('name'),"upload","width=400,height=300,top=120,left=120");
278     //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");
279     //
280     fenetreouverte = true;
281     }
282 fraynaud 88
283 fmichon 784 /**
284     * POPUP pour le téléchargement de fichier
285     *
286     * Ces fonctions javascript sont appelées depuis des onClick sur des
287     * formulaires spécifiques pour permettre de transmettre des paramètres aux
288     * éditions pdf ainsi appelées.
289     */
290     //
291 fraynaud 88 function dossierads_d(debut)
292     {
293     //if(fenetreouverte==true)
294 fmichon 1360 window.location="../pdf/pdfetat.php?obj=registre_dossiers_decisions_par_type_par_date&nature="
295 fraynaud 88 +document.f1.nature.value+"&idx=demo&datedebut="
296     +document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
297     }
298 fmichon 1467
299     // Cette fonction permet de gérer la validation du formulaire du script :
300     // app/affichage_reglementaire_registre.php
301     function affichage_reglementaire_registre(button) {
302     // Popup de confirmation du traitement par l'utilisateur
303     if (trt_confirm() == false) {
304     return false;
305     }
306     // Suppression du bouton pour que l'utilisateur ne puisse pas cliquer une
307     // deuxième fois
308     $(button).remove();
309     // Affichage du spinner
310 vpihour 1072 $("#msg").html(msg_loading);
311 fmichon 1467 // Requête AJAX vers le fichier app/affichage_reglementaire_registre.php
312     // pour mettre à jour les dossiers
313     // XXX layout
314 vpihour 1072 $.ajax({
315     type: "GET",
316 fmichon 1463 url: "../app/affichage_reglementaire_registre.php?update",
317 vpihour 1072 cache: false,
318     success: function(html){
319 fmichon 1467 // Ajout d'un bloc de message vide
320 vpihour 1072 $('#msg').html(
321     '<div class="message ui-widget ui-corner-all ui-state-highlight">'+
322     '<p>'+
323     '<span class="ui-icon ui-icon-info"></span>'+
324     '<span class="text">'+
325     '</span>'+
326     '</p>'+
327     '</div>'
328     );
329 fmichon 1467 // Si le retour de l'appel Ajax n'est pas vide, alors il y a eu une
330     // lors du traitement
331     if ( html.length > 2 ) {
332 vpihour 1072 $("#msg .message").addClass("ui-state-error");
333     $("#msg .text").html(html);
334 fmichon 1467 } else {
335     // Sinon message de succès et appel de l'édition
336 vpihour 1072 $("#msg .message").addClass("ui-state-valid");
337 fmichon 1467 $("#msg .text").html("Traitement terminé. Le registre a été téléchargé.");
338 fmichon 1360 window.open("../pdf/pdfetat.php?obj=registre_dossiers_affichage_reglementaire&idx=demo");
339 vpihour 1072 }
340     },
341     async: false
342     });
343 fmichon 1467 //
344     return false;
345 vpihour 833 }
346 fmichon 1467
347 vpihour 1146 //Fonction de redirection pour le widget de recherche de dossier
348     function widget_recherche_dossier(data,nbRes){
349     /*$('#msg').show();
350     $('#msg').html(msg_loading);*/
351    
352     // S'il n'y a qu'un seul résultat, afficher un résumé
353     if ( nbRes == 1 ){
354    
355     window.location = "../scr/form.php?obj=dossier_instruction&action=3&" +
356     "idx=" + data + "&premier=0&advs_id=&recherche=&tricol=&" +
357     "selectioncol=&valide=&retour=tab";
358     }
359     // S'il y a une liste de dossier, redirection vers le tableau
360     else {
361    
362 vpihour 1207 window.location = "../scr/tab.php?obj=recherche_direct&selectioncol=0&recherche=" + data;
363 vpihour 1146 }
364     }
365 vpihour 833 //
366 fraynaud 88 function dossierdepot()
367     {
368     //if(fenetreouverte==true)
369 fmichon 1360 window.location="../pdf/pdfetat.php?obj=registre_dossiers_depots_par_type_par_date&nature="+
370 fraynaud 88 document.f1.nature.value+"&idx=demo&datedebut="+
371     document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
372     }
373 fmichon 784 //
374 fraynaud 88 function dossierads()
375     {
376     //if(fenetreouverte==true)
377 fmichon 1360 window.location="../pdf/pdfetat.php?obj=registre_dossiers_par_type_par_date&nature="+
378 fraynaud 88 document.f1.nature.value+"&idx=demo&datedebut="+
379     document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
380     }
381    
382 fmichon 784 /**
383     * Retour spécifique de l'écran de consultation multiple - surcharge de ajaxIt
384     * @todo XXX voir les différences avec ajaxIt et si il n'est pas possible
385     * d'effectuer la modification dans le core
386     */
387 vpihour 534 function messageIt(objsf, link, empty) {
388     // recuperation du terme recherche
389     var recherche = document.getElementById("recherchedyn");
390     if (recherche != null) {
391     link += "&recherche="+recherche.value;
392     }else {
393     link += "&recherche=";
394     }
395 vpihour 558 // execution de la requete en GET
396 vpihour 534 $.ajax({
397     type: "GET",
398     url: link,
399     cache: false,
400     success: function(html){
401     (empty == true )?$("#sousform-"+objsf).empty():'';
402     $("#sousform-"+objsf).append(html);
403     om_initialize_content();
404     },
405     async: false
406     });
407     }
408 vpihour 536
409 fmichon 784 /**
410     * TTélécharegement de fichier pdf en ajax
411     * spécifique de l'écran de consultation multiple
412     */
413 vpihour 536 /* Plugin jQuery qui lance un espèce d'appel AJAX vers un script PHP de téléchargement de fichier*/
414     jQuery.download = function(url, data, method){
415     //url and data options required
416     if( url && data ){
417     //data can be string of parameters or array/object
418     data = typeof data == 'string' ? data : jQuery.param(data);
419     //split params into form inputs
420     var inputs = '';
421     jQuery.each(data.split('&'), function(){
422     var pair = this.split('=');
423     inputs+='<input type="hidden" name="'+ pair[0] +'" value="'+ pair[1] +'" />';
424     });
425     //send request
426     jQuery('<form action="'+ url +'" method="'+ (method||'post') +'">'+inputs+'</form>')
427     .prependTo('body').submit().remove();
428     };
429     };
430    
431 fmichon 784 /**
432     * Cette fonction permet de charger dans un dialog jqueryui un formulaire tel
433     * qu'il aurait été chargé avec ajaxIt
434 nhaye 800 *
435     * @param objsf string : objet de sousformulaire
436     * @param link string : lien vers un sousformulaire (../scr/sousform.php...)
437 nhaye 801 * @param width integer: width en px
438     * @param height integer: height en px
439 nhaye 800 * @param callback function (optionel) : nom de la méthode à appeler
440     * à la fermeture du dialog
441     * @param callbackParams mixed (optionel) : paramètre à traiter dans la function
442     * callback
443 fmichon 784 *
444 nhaye 800 **/
445 nhaye 801 function popupIt(objsf, link, width, height, callback, callbackParams) {
446 nhaye 544 // Insertion du conteneur du dialog
447 nhaye 1270 var dialog = $('<div id=\"sousform-'+objsf+'\"></div>').insertAfter('#tabs-1 .formControls');
448 nhaye 544 $('<input type=\"text\" name=\"recherchedyn\" id=\"recherchedyn\" value=\"\" class=\"champFormulaire\" style=\"display:none\" />').insertAfter('#sousform-'+objsf);
449     // execution de la requete passee en parametre
450     // (idem ajaxIt + callback)
451     $.ajax({
452     type: "GET",
453     url: link,
454     cache: false,
455     success: function(html){
456     //Suppression d'un precedent dialog
457     dialog.empty();
458     //Ajout du contenu recupere
459     dialog.append(html);
460     //Initialisation du theme OM
461     om_initialize_content();
462     //Creation du dialog
463     $(dialog).dialog({
464     //OnClose suppression du contenu
465     close: function(ev, ui) {
466 nhaye 800 // Si le formulaire est submit et valide on execute la méthode
467     // passée en paramètre
468     if (typeof(callback) === "function") {
469     callback(callbackParams);
470 nhaye 557 }
471 nhaye 544 $(this).remove();
472     },
473 fmichon 1483 resizable: true,
474 nhaye 544 modal: true,
475 vpihour 3119 width: width,
476     height: height,
477 fmichon 1483 position: 'left top',
478 nhaye 544 });
479     },
480     async : false
481     });
482 nhaye 802 //Fermeture du dialog lors d'un clic sur le bouton retour
483 nhaye 544 $('#sousform-'+objsf).on("click",'a.retour',function() {
484     $(dialog).dialog('close').remove();
485 nhaye 838 return false;
486 nhaye 544 });
487     }
488 nhaye 557
489 fmichon 784 /***
490 nhaye 800 * Fonction getter des paramètres de l'url courante
491 fmichon 784 */
492 nhaye 557 // Parse URL Queries Method
493     (function($){
494 nhaye 800 $.getQuery = function( query ) {
495     query = query.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
496     var expr = "[\\?&]"+query+"=([^&#]*)";
497     var regex = new RegExp( expr );
498     var results = regex.exec( window.location.href );
499     if( results !== null ) {
500     return results[1];
501     return decodeURIComponent(results[1].replace(/\+/g, " "));
502     } else {
503     return false;
504     }
505     };
506 nhaye 557 })(jQuery);
507 vpihour 558
508 vpihour 641
509 vpihour 793 /*
510 nhaye 800 * Javascript concernant la demande d'avis
511     *
512     *
513     */
514    
515 nhaye 802 /**
516     * Fonction de callback appellée lors de la fermeture du dialog (popupit)
517     * du retour d'avis d'un service
518     **/
519 nhaye 800 function returnToTab(objsf) {
520     var valid=$('#sousform-'+objsf+' div.ui-state-valid');
521     if(valid.length > 0) {
522     document.location.href="../scr/tab.php?obj="+$.getQuery('obj')+"&premier="+$.getQuery('premier')
523     +"&advs_id="+$.getQuery('advs_id')+"&recherche="+$.getQuery('recherche')+"&tricol="+$.getQuery('tricol')
524     +"&selectioncol="+$.getQuery('selectioncol');
525     }
526     };
527    
528    
529     /*
530 vpihour 793 * Javascript concernant la demande
531     *
532     *
533     */
534 fmichon 784
535 nhaye 807 /**
536 vpihour 1060 * Fonction permettant de mettre à jour les infos du demandeur
537 nhaye 807 **/
538     function getDemandeurId(type) {
539     var id_demandeur=$('#id_retour').val();
540 nhaye 828 if($.isNumeric(id_demandeur)) {
541     afficherDemandeur(id_demandeur,type);
542     om_initialize_content();
543     }
544 nhaye 807 }
545    
546 nhaye 828 /**
547     * Fonction permettant d'afficher la synthèse d'un demandeur
548     */
549     function afficherDemandeur(id,type) {
550     $.ajax({
551     type: "GET",
552     url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+id+'&type='+type,
553     cache: false,
554     success: function(html){
555 fmichon 1005 $(html).insertBefore('#add_'+type).fadeIn(500);
556    
557     },
558     async:false
559 nhaye 828 });
560 fmichon 1005 affichageBoutonsDemandeurs();
561 nhaye 828 }
562    
563 nhaye 838 /**
564 vpihour 1060 * Fonction permettant de modifier un demandeur
565 vpihour 793 */
566 nhaye 931 function editDemandeur(obj,id,type,id_css) {
567 nhaye 1048 var url = '../scr/sousform.php?obj='+obj+'&retourformulaire=demande';
568 nhaye 1561 //Vérification des contraintes de récupération des demandeurs
569     if(getDemandeInfo('contraintes') == 'avec_recup') {
570 nhaye 1048 url += '&action=0&idx_demandeur='+id;
571     } else {
572     url += '&action=1&idx='+id;
573     }
574 nhaye 1103 popupIt(obj, url, 860, 'auto',
575 nhaye 1048 replaceDemandeur, {'type':type,'id': id, 'id_css':id_css});
576 fmichon 1005 affichageBoutonsDemandeurs();
577 nhaye 838 }
578 vpihour 793
579 nhaye 838 /**
580     * Function permettant de remplacer un contenu déjà existant
581     **/
582     function replaceDemandeur(obj) {
583 nhaye 1050 var new_demandeur=$('#id_retour').val();
584 nhaye 1064 if($.isNumeric(new_demandeur)) {
585     $.ajax({
586     type: "GET",
587     url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+new_demandeur+'&type='+obj.type,
588     cache: false,
589     success: function(html){
590     $(obj.id_css).replaceWith(html);
591     }
592     });
593     }
594 nhaye 838 }
595     /**
596     * Function permettant de remplacer un contenu déjà existant
597     **/
598     function removeDemandeur(id) {
599     var div_class=$('#'+id).attr("class");
600     $('#'+id).remove();
601     if(div_class == "delegataire") {
602     $('#add_delegataire').fadeIn(500);
603     }
604 fmichon 1005 affichageBoutonsDemandeurs();
605     }
606    
607     /**
608     * Fonction permettant d'afficher et cacher les boutons d'ajout de demandeurs
609     */
610     function affichageBoutonsDemandeurs(){
611 nhaye 1090
612     // Si formulaire après validation on cache les boutons d'ajout de demandeurs
613     url = document.location + "" ;
614    
615 nhaye 1100 if ((url.indexOf("form.php?obj=demande&") != -1
616     || url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
617 nhaye 2402 || url.indexOf("form.php?obj=demande_dossier_encours&") != -1
618     || url.indexOf("form.php?obj=demande_autre_dossier&") != -1)
619 nhaye 1100 && $("form[name=f1] .form-is-valid").size() > 0 ) {
620 nhaye 1090
621 fmichon 1005 $('#add_petitionnaire_principal').hide();
622 nhaye 1090 $('#add_delegataire').hide();
623 fmichon 1005 if($('input[name=delegataire][type=hidden]').size() == 0) {
624 nhaye 1090 $('#delegataire').hide();
625 fmichon 1005 }
626     $('#add_petitionnaire').hide();
627 nhaye 1090
628 fmichon 1005 } else {
629 nhaye 1090
630     // Affichage du bouton d'ajout du petitionnaire principal
631     if($('input[name=petitionnaire_principal][type=hidden]').size() == 1) {
632     $('#add_petitionnaire_principal').hide();
633     } else {
634     $('#add_petitionnaire_principal').fadeIn(500);
635     }
636    
637     // Affichage du bouton d'ajout du delegataire
638     if($('input[name=petitionnaire_principal][type=hidden]').size() == 1
639     || $('input[name=delegataire][type=hidden]').size() == 1) {
640     $('#delegataire').fadeIn(500);
641     if($('input[name=delegataire][type=hidden]').size() == 0) {
642     $('#add_delegataire').fadeIn(500);
643     } else {
644     $('#add_delegataire').hide();
645     }
646     } else {
647     $('#delegataire').hide();
648     }
649    
650     // Affichage du bouton d'ajout de petitionnaires
651     if($('input[name=petitionnaire_principal][type=hidden]').size() == 0) {
652     $('#add_petitionnaire').hide();
653     } else {
654     $('#add_petitionnaire').fadeIn(500);
655     }
656 fmichon 1005 }
657 nhaye 838 }
658 vpihour 793
659 nhaye 838 /**
660     * Appel au chargement de la page
661     **/
662 vpihour 664 $(function() {
663 vpihour 805 changeDemandeurType('qualite');
664 vpihour 823 if ( $('#type_demandeur') == 'petitionnaire' ){
665    
666     addSearchIcon();
667     addDivDialog('.bloc_demandeur');
668     }
669 fmichon 1005 affichageBoutonsDemandeurs();
670 nhaye 828 // Bind de la fonction permettant l'ajout du pétitionnaire principal
671 nhaye 838 $("#formulaire").on("click","#add_petitionnaire_principal", function() {
672 nhaye 828 popupIt('petitionnaire',
673     '../scr/sousform.php?obj=petitionnaire&action=0'+
674 nhaye 1103 '&retourformulaire=demande&principal=true', 860, 'auto',
675 nhaye 828 getDemandeurId, 'petitionnaire_principal');
676     });
677     // Bind de la fonction permettant l'ajout du délégataire
678     $("#formulaire").on("click","#add_delegataire", function(event) {
679     popupIt('delegataire',
680     '../scr/sousform.php?obj=delegataire&action=0'+
681 nhaye 1103 '&retourformulaire=demande', 860, 'auto',
682 nhaye 828 getDemandeurId, 'delegataire');
683     });
684     // Bind de la fonction permettant l'ajout des pétitionnaires
685     $("#formulaire").on("click","#add_petitionnaire", function(event) {
686     popupIt('petitionnaire',
687     '../scr/sousform.php?obj=petitionnaire&action=0'+
688 nhaye 1103 '&retourformulaire=demande', 860, 'auto',
689 nhaye 828 getDemandeurId, 'petitionnaire');
690     });
691    
692 vpihour 664 url = document.location + "" ;
693 vpihour 1369 if ((
694     url.indexOf("form.php?obj=demande&") != -1 ||
695     url.indexOf("form.php?obj=dossier&") != -1 ||
696     url.indexOf("form.php?obj=dossier_instruction&") != -1
697     )
698 nhaye 1094 && url.indexOf("&action=3") == -1) {
699 vpihour 1098
700 nhaye 1094 formatFieldReferenceCadastrale();
701     }
702 softime 2271
703     // S'il y a une erreur durant la validation lors de l'ajout
704     // d'une nouvelle demande
705     if (url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
706     && (url.indexOf("&action=3") == -1
707     && url.indexOf("&action=2") == -1
708     && url.indexOf("&validation") != -1
709     && $(".form-is-valid").size() == 0)) {
710    
711     addButtonCadastraleAdesse();
712     formatFieldReferenceCadastrale();
713     }
714 vpihour 1098
715 vpihour 2169 if (url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
716 nhaye 1100 && (url.indexOf("&action=3") == -1
717 vpihour 1104 && url.indexOf("&action=2") == -1
718 softime 2271 && url.indexOf("&validation") == -1
719 nhaye 1100 && $(".form-is-valid").size() == 0)) {
720 vpihour 1098
721 vpihour 1099 addButtonCadastraleAdesse();
722 fmichon 1005 changeDemandeType();
723     }
724 vpihour 1098
725 nhaye 1033 // Ajout de demande
726 nhaye 1100 if ((url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
727 nhaye 2402 || url.indexOf("form.php?obj=demande_dossier_encours&") != -1
728     || url.indexOf("form.php?obj=demande_autre_dossier&") != -1)
729 nhaye 828 && url.indexOf("&action=0") != -1 ){
730 vpihour 1098
731 vpihour 793 /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
732 vpihour 664 hideFields();
733 vpihour 676 }
734 vpihour 1098
735 nhaye 1033 // Ajout de demande sur dossier existant
736 nhaye 2402 if ((url.indexOf("form.php?obj=demande_dossier_encours&") != -1
737     || url.indexOf("form.php?obj=demande_autre_dossier&") != -1)
738 nhaye 1100 && url.indexOf("&action=0") != -1 ){
739 vpihour 1098
740 vpihour 2364 //Cache les champs avant que dossier_autorisation_type_detaille soit choisi
741 nhaye 1033 hideFields();
742 vpihour 2364 //On affiche le select du type de la demande
743     $('#demande_type').parent().parent().show();
744 nhaye 1033 }
745 fmichon 1005
746 nhaye 1033 // Modification de demande
747 vpihour 1369 if (
748     (
749     url.indexOf("form.php?obj=demande&") != -1
750     || url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
751 nhaye 2402 || url.indexOf("form.php?obj=demande_dossier_encours&") != -1
752     || url.indexOf("form.php?obj=demande_autre_dossier&") != -1
753 vpihour 1369 )
754     && url.indexOf("&action") == -1
755     ){
756    
757 vpihour 812 formatFieldReferenceCadastrale();
758 nhaye 1033 }
759 vpihour 1351
760     //Gestion de la commission
761     $( "#tabs" ).tabs();
762    
763     // Affichage du tableau des dossier_commission au clique
764 vpihour 1392 $("#dossier_planifie").click(function() {
765 vpihour 1351
766     var params = extractUrlParams();
767     idx = params['idx'];
768    
769     ajaxIt(
770     'dossier_commission',
771     '../scr/soustab.php?obj=dossier_commission&idxformulaire='+
772     idx +
773     '&retourformulaire=commission');
774     });
775    
776     // Affichage du tableau des dossier_commission posssible au clique
777     $('#commission_dossiers_plannifier_retirer').click(
778     function(){
779    
780     var params = extractUrlParams();
781     idx = params['idx'];
782    
783     $('#tabs-2').empty();
784     ajouterTableauDossierCommissionPossible(idx);
785     }
786     );
787    
788     //Suppression du message et des données dans le champ dossier
789     $('#commission_dossiers_plannifier_numero').click(
790     function(){
791    
792     $('#tabs-3 .message').remove();
793     $('#tabs-3 #dossier').val("");
794     }
795     );
796 vpihour 812 });
797    
798     /*
799     * Action sur les champs pour les références cadastrales
800     */
801     function formatFieldReferenceCadastrale(){
802 vpihour 1098
803 vpihour 812 addNewFieldReferencesCadastrales();
804 nhaye 1676 $('#terrain_references_cadastrales').parent().parent().hide();
805 vpihour 812
806 vpihour 1098 url = document.location + "";
807    
808 vpihour 812 reference_cadastrale = $('#terrain_references_cadastrales').val();
809     /*Formatage de la reference cadastrale*/
810     if ( reference_cadastrale != '' ){
811    
812     /* Récupère la référence cadastrale non formatée */
813     references_cadastrales = reference_cadastrale.split(';');
814     donnees = new Array();
815    
816     i = 0 ;
817     /* Boucle sur les références, elles étaient séparées par un ; */
818     for ( l = 0 ; l < references_cadastrales.length - 1 ; l ++ ){
819 vpihour 664
820 vpihour 812 /*Récupère le code impots du qartier [CHIFFRES]*/
821     k = 0;
822     donnees[i] = '';
823     for ( j = k ; j < references_cadastrales[l].length ; j++ ){
824 vpihour 664
825 vpihour 812 if ( references_cadastrales[l].charAt(j) >= 0 &&
826     references_cadastrales[l].charAt(j) <= 9 ){
827    
828     donnees[i] += references_cadastrales[l].charAt(j);
829     k++;
830 vpihour 793
831 vpihour 812 } else {
832    
833     i++;
834     break;
835     }
836     }
837    
838     /* Récupère la section [LETTRES] */
839     donnees[i] = '';
840     for ( j = k ; j < references_cadastrales[l].length ; j++ )
841     if ( isAlpha(references_cadastrales[l].charAt(j)) ){
842    
843     donnees[i] += references_cadastrales[l].charAt(j);
844     k++;
845    
846     } else {
847    
848     i++;
849     break;
850     }
851    
852     /* Récupère la parcelle [CHIFFRES] */
853     donnees[i] = '';
854     for ( j = k ; j < references_cadastrales[l].length ; j++ )
855     if ( references_cadastrales[l].charAt(j) >= 0 &&
856     references_cadastrales[l].charAt(j) <= 9 ){
857 vpihour 793
858 vpihour 812 donnees[i] += references_cadastrales[l].charAt(j);
859     k++;
860    
861     } else {
862    
863     break;
864 vpihour 793 }
865 vpihour 812
866     /* Récupère les séparateurs [ A / ] et les sections */
867 nhaye 1094 m = 0 ; // Nombre de suffixe
868 vpihour 812 if ( k < references_cadastrales[l].length ){
869 vpihour 669
870     for ( j = k ; j < references_cadastrales[l].length ; j++ )
871     if ( isAlpha(references_cadastrales[l].charAt(j)) ){
872 vpihour 793
873 vpihour 812 m++;
874     donnees[++i] = references_cadastrales[l].charAt(j);
875     donnees[++i] = '';
876     }
877     else {
878 vpihour 793
879 vpihour 669 donnees[i] += references_cadastrales[l].charAt(j);
880 vpihour 664 }
881 vpihour 812 }
882    
883     /*Créé autant de champs de que de référence */
884 vpihour 1098 donnees[++i] = ';';
885 vpihour 812 i++;
886 vpihour 669
887 vpihour 812 if ( l > 0 ) {
888 vpihour 793
889 vpihour 812 $('.reference_cadastrale_custom_fields').append(
890     "<br/>" + fieldReferenceCadastraleBase()
891     );
892 vpihour 664 }
893    
894 vpihour 812 actionFormReferenceCadastrale();
895    
896     if ( m > 0 ){
897    
898     for ( j = 0 ; j < m ; j++ ){
899 vpihour 793
900 vpihour 812 $('#moreFieldReferenceCadastrale' +
901     ( $('.moreFieldReferenceCadastrale').length - 1 ) ).
902     before(
903     newInputReferenceCadastrale()
904     );
905 vpihour 664 }
906 vpihour 812 }
907 vpihour 664 }
908 vpihour 812 /* Action sur les boutons [+ ajouter d'autres champs] et [+ ajouter
909     * d'autres lignes] */
910     actionLineFormReferenceCadastrale();
911    
912     /* Ajoute les données dans les champs nouvellement créés */
913     $('.reference_cadastrale_custom_field').each(
914     function(index) {
915    
916     $(this).val(donnees[index])
917     }
918     );
919     }
920     else{
921     actionFormReferenceCadastrale();
922     actionLineFormReferenceCadastrale();
923     }
924     }
925 vpihour 641
926 vpihour 2113 /**
927 vpihour 805 * Ajoute les icônes pour la recherche de pétitionnaire fréquent.
928     */
929     function addSearchIcon(){
930 nhaye 848
931 vpihour 2113 $("#form-content:not(.form-is-valid) .search_fields").each(
932     function() {
933     //Ajout de l'icône après le champs dénomination et nom de la personne morale*/
934     $(this).append(
935 vpihour 805 '<span '+
936 vpihour 2113 'class="om-icon om-icon-16 om-icon-fix search-frequent-16" '+
937     'title="Chercher un frequent"> '+
938 vpihour 805 '</span>'
939     );
940     }
941     );
942    
943 vpihour 1060 /*Ajout des actions sur les boutons*/
944 vpihour 2113 addActionSearchIcon();
945 nhaye 848 addActionRemove();
946    
947 vpihour 768 }
948    
949 nhaye 849 /**
950     * Fonction permettant de revenir sur le formulaire d'ajout de demandeur
951     **/
952 nhaye 848 function addActionRemove(){
953     $('.erase-petitionnaire').click(
954     function(){
955     ajaxIt('petitionnaire','../scr/sousform.php?obj=petitionnaire&action=0');
956     });
957     }
958    
959 vpihour 2113 /**
960     * Vérifie que les champs necessaires sont remplis et retourne les données necessaires
961     * sous forme de tableau JSOn
962     */
963     function getDataSearch(){
964    
965     //Il faut un minimum de trois lettres pour lancer la recherche
966     var minChar = false;
967     //Récupération des données
968     var dataJson = "{";
969     $('.search_fields input').each(
970     function(){
971     if ( $(this).val().length >= 3 ){
972     minChar = true;
973     }
974    
975     var idInput = $(this).attr("id");
976     var valInput = $(this).val();
977     dataJson += "\"" + idInput + "\":\"" + valInput + "\",";
978     }
979     );
980     if (!minChar){
981     alert('Saisissez au moins trois lettres pour la recherche');
982     return "";
983     }
984    
985     dataJson = $.parseJSON(dataJson.substring(0,dataJson.length-1)+"}");
986     //Données sous forme d'un tableau JSON
987     return dataJson;
988     }
989    
990 vpihour 741 /*
991 vpihour 805 * Ajoute les actions sur les icônes de recherche
992     */
993 vpihour 2113 function addActionSearchIcon(){
994 vpihour 741
995 vpihour 2113 //Selon l'objet dans lequel on se trouve
996     var objName = '';
997     var objReturn = '';
998     if ( $('#demandeur').length == 1 ){
999     objName = 'petitionnaire';
1000     objReturn = 'demande';
1001     }
1002 nhaye 2997 else if($('#architecte').length == 1){
1003 vpihour 2113 objName = 'architecte';
1004     objReturn = 'donnees_techniques';
1005     }
1006     $('.search-frequent-16').click(
1007 vpihour 741 function(){
1008 vpihour 2113 //Récupération des données
1009     dataJson = getDataSearch();
1010     //Si ce n'est pas un tableau JSON on n'exécute pas le reste du code
1011     if ( typeof dataJson !== 'object' ){
1012 vpihour 805 return;
1013     }
1014    
1015 vpihour 2113 //Requête qui va récupérer les données du addSearchIcon(es)
1016     //pétitionnaire(s) correspondant(s) à la recherche
1017 vpihour 741 $.ajax({
1018 vpihour 2113 type: "POST",
1019     dataType: "json",
1020     data: dataJson,
1021     url: "../app/find" + objName.charAt(0).toUpperCase() + objName.substring(1) + ".php" ,
1022 vpihour 741 cache: false,
1023 nhaye 848 success: function(obj){
1024 vpihour 2113 var freq = obj;
1025 nhaye 848 var res='';
1026 vpihour 793 /*Si la recherche a donné des résultats*/
1027 nhaye 848 if ( freq.length > 0 ){
1028 vpihour 805 /*Limitation des résultats à 50 */
1029 nhaye 848 if ( freq.length > 50 ){
1030 vpihour 805
1031     nbRes = 50;
1032 nhaye 848 res += 'Votre recherche a donn&eacute; ' + freq.length
1033 vpihour 805 + ' r&eacute;sultats. Seul les cinquantes premiers ' +
1034     'seront affich&eacute;s.<br/>';
1035 nhaye 848 } else {
1036     nbRes = freq.length;
1037 vpihour 805 }
1038    
1039 vpihour 2113 res += '<select id="select-'+objName+'">' ;
1040 vpihour 805
1041 vpihour 793 /* Met les résultats de la recherche dans un select */
1042 nhaye 848 for ( i = 0 ; i < nbRes ; i++ ){
1043     res += '<option value="' + freq[i].value + '">' +
1044     freq[i].content +
1045 vpihour 793 '</option>';
1046 vpihour 741 }
1047    
1048 nhaye 848 res += '</select>';
1049     } else {
1050     res += 'Aucune correspondance trouvée.';
1051 vpihour 741 }
1052    
1053 vpihour 2113 addDivDialog('#sousform-' + objName);
1054 vpihour 793 /* Affichage de l'overlay */
1055 vpihour 741 $('#dialog').html(res);
1056    
1057     $( "#dialog" ).dialog({
1058 fmichon 2224 dialogClass: "dialog-search-frequent-"+objName,
1059 vpihour 741 modal: true,
1060     buttons : {
1061     Valider: function(){
1062 vpihour 2113 if ( res != 'Aucune correspondance trouvée.'){
1063     var id = $('#select-'+objName+' option:selected').val();
1064     if($.isNumeric(id)) {
1065     ajaxIt(objName,
1066     '../scr/sousform.php?obj=' + objName +
1067     '&action=1&retourformulaire=' + objReturn +
1068     '&idx='+id
1069     );
1070     }
1071 vpihour 756 }
1072 nhaye 848 // Fermeture de l'overlay
1073 vpihour 2113 $(this).dialog( "close" );
1074     $(this).remove();
1075 vpihour 741 }
1076 vpihour 2113 },
1077     close: function(){
1078     $(this).remove();
1079 vpihour 741 }
1080     });
1081     },
1082     });
1083     }
1084     );
1085     }
1086    
1087     /*
1088 vpihour 805 * Ajoute un div pour l'overlay dialog de jQuery
1089     */
1090     function addDivDialog(id){
1091    
1092     $(id).prepend('<div id="dialog"></div>');
1093     }
1094    
1095     /*
1096     Action au changement du select de la qualite du demandeur
1097     * */
1098     function changeDemandeurType(id){
1099    
1100 vpihour 1060 /*Réinitialise les champs et cache les champs inutiles selon la qualité du demandeur*/
1101 vpihour 805 /*Si la qualite du demandeur est particulier */
1102 nhaye 1118 if ( $('#' + id ).val() == 'particulier' ){
1103 vpihour 805
1104     $('.personne_morale_fields input').each(
1105     function(){
1106     $(this).val('');
1107     }
1108     );
1109     $('.personne_morale_fields select option[value=""]').each(
1110     function(){
1111     $(this).attr('selected', 'selected');
1112     }
1113     );
1114    
1115     $('.personne_morale_fields').hide();
1116     $('.particulier_fields').show();
1117     }
1118 vpihour 1060 /*Si c'est une personne morale*/
1119 vpihour 805 else {
1120    
1121     $('.particulier_fields input').each(
1122     function(){
1123     $(this).val('');
1124     }
1125     );
1126     $('.particulier_fields select option[value=""]').each(
1127     function(){
1128     $(this).attr('selected', 'selected');
1129     }
1130     );
1131    
1132     $('.particulier_fields').hide();
1133     $('.personne_morale_fields').show();
1134     }
1135     }
1136    
1137     /*
1138 vpihour 1060 Fonction de test des champs
1139 vpihour 676 * */
1140 vpihour 669 function isAlpha(str) {
1141 vpihour 664 return /^[a-zA-Z\/]+$/.test(str);
1142     }
1143    
1144 vpihour 768 function isMail(str){
1145     return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(str);
1146     }
1147    
1148     function isPhoneNumber(str){
1149     return /[0-9-()+]{3,20}/.test(str);
1150     }
1151    
1152 vpihour 793 function testSeparator(obj){
1153    
1154     if ( obj.value != 'A' &&
1155     obj.value != '/' ) {
1156    
1157     alert('Saisissez uniquement un A ou un / comme séparateur');
1158     obj.value = '';
1159     }
1160     }
1161 vpihour 1060 /* Fin fonction test */
1162 vpihour 793
1163 vpihour 664 /*
1164 vpihour 1060 * Ajoute les ations spécifiques pour le formulaire personnalisé d'ajout de
1165     * référence cadastrale
1166     */
1167 vpihour 664 function actionFormReferenceCadastrale(){
1168 vpihour 1098
1169 vpihour 664 $('form').submit(
1170     function(){
1171    
1172 vpihour 812 getDataFieldReferenceCadastrale();
1173 vpihour 664 }
1174     );
1175 nhaye 1094 if( $("form[name=f1] .form-is-valid").size() == 0) {
1176 vpihour 1326
1177 nhaye 1094 $('#moreFieldReferenceCadastrale' +
1178     ($('.moreFieldReferenceCadastrale').length - 1 )).
1179     on("click", function() {
1180 vpihour 1098
1181 nhaye 1094 $(this).before(newInputReferenceCadastrale());
1182     });
1183     }
1184 vpihour 762
1185 vpihour 664 }
1186    
1187 vpihour 670 /*
1188 vpihour 812 * Récupère les données saisies dans les champs de références cadastrales
1189     */
1190     function getDataFieldReferenceCadastrale(){
1191    
1192     var reference_cadastrale = '';
1193     var reference_cadastrale_temp = '';
1194    
1195 vpihour 1060 /*Pour chacun des champs du formulaire de saisie de référence cadastrale*/
1196 vpihour 812 $('.reference_cadastrale_custom_field').each(
1197     function(){
1198    
1199 vpihour 1060 /*Si on est à la fin d'une ligne de champs*/
1200 vpihour 812 if ( $(this).val() == ';' ){
1201    
1202     reference_cadastrale_bis = reference_cadastrale_temp ;
1203    
1204 vpihour 1060 /* Vérifie que les données sont correctement formatées avant de
1205     * les ajouter au résultat*/
1206 vpihour 812 while( reference_cadastrale_bis != ''){
1207     if ( /^([0-9]{1,4}[a-zA-Z]{1,3}[0-9]{1,5}([A\/]{1}[0-9]{1,4})*)*$/.test(reference_cadastrale_bis) ){
1208    
1209     reference_cadastrale += reference_cadastrale_bis + ";";
1210     break;
1211     }
1212     else{
1213    
1214     reference_cadastrale_bis = reference_cadastrale_bis.slice( 0, -1);
1215     }
1216     }
1217    
1218     reference_cadastrale_temp = '';
1219     }
1220    
1221     else {
1222    
1223 vpihour 1060 /*Sinon, on récupère la valeur du champ*/
1224 vpihour 812 reference_cadastrale_temp += $(this).val();
1225     }
1226     }
1227     );
1228 vpihour 1098
1229 vpihour 1060 /*Met la valeur du résultat dans le champs généré par le framework*/
1230 vpihour 812 $('#terrain_references_cadastrales').val(reference_cadastrale);
1231     }
1232    
1233     /*
1234 vpihour 1060 Action pour l'ajout de nouvelle ligne dans le formulaire d'ajout
1235     de référence cadastrale
1236 vpihour 670 * */
1237 vpihour 669 function actionLineFormReferenceCadastrale(){
1238 nhaye 1094 if( $("form[name=f1] .form-is-valid").size() == 0) {
1239    
1240     $('#morelineReferenceCadastrale').click(
1241     function(){
1242    
1243     /*Ajout des trois champs de base*/
1244     $('.reference_cadastrale_custom_fields').
1245     append( "<br/>" + fieldReferenceCadastraleBase());
1246 vpihour 1098
1247 nhaye 1094 /*Ajout du bind pour l'ajout de nouveaux champs*/
1248     $('#moreFieldReferenceCadastrale'+
1249     ($('.moreFieldReferenceCadastrale').length - 1 )).
1250     on("click", function() {
1251     $(this).before(newInputReferenceCadastrale());
1252     });
1253     }
1254     );
1255     }
1256 vpihour 669 }
1257    
1258 vpihour 664 /*
1259 vpihour 793 Met à jour le select demande_type dès qu'un
1260     dossier_autorisation_type_detaille est choisi
1261 vpihour 664 * */
1262 vpihour 641 function changeDemandeType(){
1263 vpihour 1104
1264 vpihour 793 var idDossierAutorisationTypeDetaille =
1265 nhaye 1053 $("#dossier_autorisation_type_detaille").val();
1266 vpihour 1098
1267 vpihour 812 /* Récupère les données saisies dans les champs pour la référence cadastrale */
1268 nhaye 1039 getDataFieldReferenceCadastrale();
1269 vpihour 812
1270 vpihour 1060 /*Si l'identifiant fourni est correct*/
1271 vpihour 641 if ( $.isNumeric(idDossierAutorisationTypeDetaille) ){
1272    
1273 vpihour 1060 /*Met à jour le select de demande_type avec les données correspondant*/
1274 softime 2503 filterSelect(idDossierAutorisationTypeDetaille, 'demande_type', 'dossier_autorisation_type_detaille', 'demande');
1275 nhaye 1090 if ( $('#demande_type option').size() < 2 ) {
1276 vpihour 664 showFormsDemande();
1277 nhaye 1090 }
1278 vpihour 1060
1279     /*Affiche le select*/
1280 vpihour 641 $('#demande_type').parent().parent().show();
1281 nhaye 1090 if($('#demande_type').val() == '' ) {
1282     $('.demande_hidden_bloc').each(
1283     function(){
1284     $(this).hide();
1285     }
1286     );
1287     $('input[type=submit]').hide();
1288     }
1289 vpihour 641 }
1290     else {
1291 vpihour 1060
1292     /*Sinon, cache tous les champs du formulaire*/
1293 vpihour 641 hideFields();
1294     }
1295     }
1296    
1297 vpihour 664 /*
1298     Ajoute le code HTML des champs pour les références cadastrales
1299     * */
1300     function addNewFieldReferencesCadastrales(){
1301 vpihour 1098
1302 nhaye 1676 var html = '<div class="field field-type-text references_cadastrales_new_field" >'+
1303     '<div class="form-libelle">' +
1304     '<label '+
1305     'class="libelle-terrain_references_cadastrales" '+
1306     'for="terrain_references_cadastrales">'+
1307     ' Références cadastrales '+
1308     '</label>' +
1309     '</div>' +
1310     '<div class="form-content reference_cadastrale_custom_fields">' +
1311 vpihour 669 fieldReferenceCadastraleBase() +
1312 nhaye 1676 '</div>' +
1313     '</div>';
1314 vpihour 1098
1315     url = document.location + "";
1316 vpihour 1369 if((getDemandeInfo('nature') == 'NOUV' || getDemandeInfo('nature') == 'NONE' ) && $(".form-is-valid").size() == 0 && url.indexOf('action=3') == -1 ) {
1317 vpihour 1060 html += '<div class="field field-type-text" id="morelineReferenceCadastrale">' +
1318 nhaye 1676 '<div class="form-libelle"></div>' +
1319 vpihour 1060 '<div class="form-content">' +
1320     '<span class="om-form-button add-16" title="Ajouter">ajouter d\'autres lignes</span>' +
1321     '</div>' +
1322     '</div>';
1323     }
1324 nhaye 1676
1325 nhaye 1033 $('.references_cadastrales_new_field').remove();
1326     $('.moreFieldReferenceCadastrale').remove();
1327     $('#morelineReferenceCadastrale').remove();
1328 nhaye 1676 $('#terrain_references_cadastrales').parent().parent().before(
1329 vpihour 1369 html
1330     );
1331 vpihour 664 }
1332    
1333 vpihour 1099 function addButtonCadastraleAdesse(){
1334 softime 2313
1335     // Permet d'ajouter le bouton de récupération d'adresse si sig activé
1336     if ($('#option_sig').val() == 'sig_externe'){
1337 vpihour 1099
1338 softime 2313 $('#terrain_references_cadastrales').parent().parent().after('<div class="field field-type-text" >' +
1339     '<div class="form-libelle"></div>' +
1340     '<div class="form-content buttonCadAdr">' +
1341     '<input id="cad-adr-them" '+
1342     'class="ui-button ui-widget ui-state-default ui-corner-all" '+
1343     'type="button" '+
1344     'onclick="getAdressFromCadastrale();" '+
1345     'value="Récupérer l\'adresse de la parcelle"/>' +
1346     '</div>' +
1347     '</div>' );
1348     }
1349 vpihour 1099 }
1350    
1351 vpihour 670 /*
1352 vpihour 1060 Séparateur caché ; pour marqué la fin d'une ligne de référence cadastrale
1353 vpihour 670 * */
1354 vpihour 669 function hiddenSeparatorField(){
1355 vpihour 1098
1356 vpihour 669 return '<input ' +
1357 vpihour 1098 'class="reference_cadastrale_custom_field" ' +
1358 vpihour 669 'type="hidden" ' +
1359     'maxlength="2" ' +
1360     'size="2" ' +
1361     'value=";" />';
1362     }
1363    
1364 fmichon 1005 /**
1365 nhaye 1039 * Retourne l'info passée en paramètre (nature de la demande ou type de la demande)
1366 fmichon 1005 **/
1367 nhaye 1039 function getDemandeInfo(info) {
1368 fmichon 1005 var id_demande_type = $('#demande_type').val();
1369 nhaye 1018 var res = "";
1370 vpihour 1369 if ( typeof id_demande_type !== "undefined" ){
1371     $.ajax({
1372     type: "GET",
1373     url: "../app/getDemandeInfo.php?iddemandetype=" + id_demande_type
1374     + "&info=" + info,
1375     cache: false,
1376     async: false,
1377     success: function(val){
1378     res = val;
1379     }
1380     });
1381     }
1382     else {
1383    
1384     res = "NONE"
1385     }
1386 nhaye 1018 return res;
1387 fmichon 1005 }
1388 vpihour 670 /*
1389 vpihour 1060 Ajout d'une nouvelle ligne de champ de référence cadastrale
1390     Retourne le code HTML
1391 vpihour 670 * */
1392 vpihour 669 function fieldReferenceCadastraleBase(){
1393 vpihour 1098
1394 vpihour 1099 url = document.location + "";
1395    
1396 nhaye 1039 var type = getDemandeInfo('nature');
1397 fmichon 1005 var reference_cadastrale = '<input ' +
1398 vpihour 669 'class="champFormulaire reference_cadastrale_custom_field" ' +
1399     'type="text" ' +
1400 softime 2271 'onchange="VerifNum(this);str_pad_js(this, 3);" ' +
1401     'maxlength="3" ' +
1402     'size="3" '+
1403 vpihour 1120 'placeholder="Quart." ';
1404 vpihour 1060
1405 fmichon 1005 // désactivation des champs de référence cadastrale
1406 vpihour 1369 if( (type != 'NOUV' && type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1407 fmichon 1005 reference_cadastrale += 'disabled="disabled" ';
1408     }
1409 vpihour 1060
1410 fmichon 1005 reference_cadastrale += 'value="" />';
1411    
1412     reference_cadastrale += '<input ' +
1413 vpihour 669 'class="champFormulaire reference_cadastrale_custom_field" ' +
1414     'type="text" ' +
1415 vpihour 762 'maxlength="3" ' +
1416 vpihour 1120 'size="3" '+
1417     'placeholder="Sect." ';
1418 vpihour 1060
1419     // désactivation des champs de référence cadastrale
1420 vpihour 1369 if((type != 'NOUV'&& type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1421 fmichon 1005 reference_cadastrale += 'disabled="disabled" ';
1422     }
1423 vpihour 1060
1424 fmichon 1005 reference_cadastrale += 'value="" '+
1425 softime 2271 'onchange="if ( !isAlpha(this.value) && this.value != \'\' ){ alert(\'Vous ne devez saisir que des lettres dans ce champs.\'); this.value = \'\'; }; this.value=this.value.toUpperCase();"/>';
1426 fmichon 1005 reference_cadastrale += '<input ' +
1427 vpihour 669 'class="champFormulaire reference_cadastrale_custom_field" ' +
1428     'type="text" ' +
1429 softime 2271 'onchange="VerifNum(this);str_pad_js(this, 4);" ' +
1430 softime 2237 'maxlength="4" ' +
1431     'size="4" '+
1432 vpihour 1120 'placeholder="Parc." ';
1433 vpihour 1060
1434     // désactivation des champs de référence cadastrale
1435 vpihour 1369 if((type != 'NOUV'&& type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1436 fmichon 1005 reference_cadastrale += 'disabled="disabled" ';
1437     }
1438 vpihour 1060
1439 fmichon 1005 reference_cadastrale += 'value="" />';
1440 nhaye 1094
1441     reference_cadastrale += '<span id="moreFieldReferenceCadastrale' +
1442 fmichon 1005 $('.moreFieldReferenceCadastrale').length +
1443 vpihour 1098 '" class="moreFieldReferenceCadastrale">' + hiddenSeparatorField();
1444 nhaye 1094
1445     // Si form validé pas de bouton
1446 vpihour 1098 url = document.location + "";
1447 vpihour 1369 if( (type == 'NOUV' || type == 'NONE') && $("form[name=f1] .form-is-valid").size() == 0 && url.indexOf('action=3') == -1 ) {
1448 nhaye 1094
1449 vpihour 1098 reference_cadastrale +=
1450 nhaye 1094 '<span class="om-form-button add-16" title="Ajouter">ajouter d\'autres champs</span>';
1451 fmichon 1005 }
1452 nhaye 1094
1453     reference_cadastrale += '</span>';
1454 fmichon 1005
1455     return reference_cadastrale;
1456 vpihour 669 }
1457    
1458 nhaye 802 /**
1459 vpihour 1060 * Cache les champs inutules [formulaire de demande]
1460 nhaye 802 **/
1461 vpihour 641 function hideFields(){
1462 nhaye 802 $('.demande_hidden_bloc').each(
1463 vpihour 641 function(){
1464 nhaye 802 $(this).hide();
1465 vpihour 641 }
1466     );
1467    
1468     $('.field-type-text').hide();
1469     $('input[type=submit]').hide();
1470     $('#demande_type').parent().parent().hide();
1471     }
1472    
1473 vpihour 664 /*
1474 vpihour 1060 Affiche les champs dont on a besoin dans le formulaire de demande
1475 vpihour 664 * */
1476 vpihour 641 function showFormsDemande(){
1477 vpihour 1098
1478    
1479 nhaye 1090 if($('#demande_type').val() != "") {
1480 nhaye 1039
1481 nhaye 1090 $('.demande_hidden_bloc').each(
1482     function(){
1483     $(this).show();
1484     }
1485     );
1486 vpihour 1326 formatFieldReferenceCadastrale(1);
1487 nhaye 1090 $('.field-type-text').show();
1488     $('input[type=submit]').show();
1489     $('.terrain_references_cadastrales_custom').hide();
1490    
1491 nhaye 1676 $('#terrain_references_cadastrales').parent().parent().hide();
1492 nhaye 1062
1493 nhaye 1561 //Vérification des contraintes de récupération des demandeurs si
1494     // pas de récupération, on efface la liste
1495     if(getDemandeInfo('contraintes') == 'sans_recup') {
1496 nhaye 1090 if($('input[name=petitionnaire_principal]').size() != -1) {
1497     removeDemandeur("petitionnaire_principal_" + $('input[name=petitionnaire_principal]').val());
1498     }
1499     if($('input[name=delegataire]').size() != -1) {
1500     removeDemandeur("delegataire_" + $('input[name=delegataire]').val());
1501     }
1502 nhaye 1062
1503 nhaye 1090 $('#listePetitionnaires input.demandeur_id').each(function(){
1504     if($(this).size() != -1) {
1505    
1506     removeDemandeur("petitionnaire_" + $(this).val());
1507     }
1508     });
1509 nhaye 1561 } else if ( getDemandeInfo('contraintes') == 'avec_recup' ) {
1510     //Récupération des demandeurs si la contrainte le permet
1511 nhaye 1097 $.ajax({
1512     type: "GET",
1513     url: "../app/getDemandeurList.php?dossier_autorisation=" + $('#dossier_autorisation').val(),
1514     cache: false,
1515     async: false,
1516     success: function(html){
1517     $('#liste_demandeur').replaceWith(html);
1518     }
1519     });
1520 nhaye 1090 }
1521 nhaye 1097 affichageBoutonsDemandeurs();
1522 nhaye 1090 } else {
1523 vpihour 1098
1524     /*Récupère les references cadastrales*/
1525     getDataFieldReferenceCadastrale();
1526    
1527 nhaye 1090 $('.demande_hidden_bloc').each(
1528     function(){
1529     $(this).hide();
1530 nhaye 1039 }
1531 nhaye 1090 );
1532     $('input[type=submit]').hide();
1533    
1534 nhaye 1039 }
1535 vpihour 641 }
1536 vpihour 651
1537 vpihour 664 /*
1538     Action au clique sur le bouton " + ajouter d'autres champs"
1539     * */
1540 vpihour 651 function newInputReferenceCadastrale(){
1541 vpihour 1359
1542     // Champs désactivé si le formulaire a été validé et est valide
1543     var type = getDemandeInfo('nature');
1544     var reference_cadastrale_disabled = '';
1545 vpihour 1369 if((type != 'NOUV'&& type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1546 vpihour 1359 reference_cadastrale_disabled = 'disabled="disabled" ';
1547     }
1548    
1549 vpihour 651 return '<input ' +
1550     'class="champFormulaire reference_cadastrale_custom_field" ' +
1551     'type="text" ' +
1552     'maxlength="1" ' +
1553 vpihour 1326 'size="3" ' +
1554 vpihour 741 'value="" ' +
1555 vpihour 1120 'placeholder="Sep." ' +
1556 vpihour 1359 reference_cadastrale_disabled +
1557 vpihour 741 'onchange="testSeparator(this);"/>' +
1558 vpihour 651 '<input ' +
1559     'class="champFormulaire reference_cadastrale_custom_field" ' +
1560     'type="text" ' +
1561 softime 2271 'onchange="VerifNum(this);str_pad_js(this, 4)" ' +
1562 vpihour 651 'maxlength="4" ' +
1563     'size="4" ' +
1564 vpihour 1120 'placeholder="Parc." ' +
1565 vpihour 1359 reference_cadastrale_disabled +
1566 vpihour 651 'value="" />';
1567     }
1568 fmichon 660
1569 vpihour 741
1570 nhaye 2868 /**
1571     * Cette fonction permet d'associer a un arbre html les fonctions jquery
1572     * necessaires. Elle permet notamment lors du chargement d'une page en ajax
1573     * d'associer le comportement du bouton, la gestion du calendrier et la gestion
1574     * du fieldset.
1575     *
1576     * @param boolean tinymce_load permet de définir si les éditeurs tinyMCE doivent être chargés.
1577     */
1578     function om_initialize_content(tinymce_load) {
1579 vpihour 3135 // Gestion des actions de portlet de formulaire
1580     form_bind_portlet_actions();
1581 nhaye 848 // Gestion du skin des boutons, liens
1582     link_bind_button();
1583     // Gestion du calendrier avec le widget datepicker de jqueryui
1584     inputdate_bind_datepicker();
1585     // Gestion des fieldset avec le plugin collaspsible de jquery
1586     fieldset_bind_collapsible();
1587 fmichon 1357 // Gestion du picker color avec le plugin minicolors
1588     bind_form_field_rvb();
1589     // Gestion du widget aide à la saisie localisation avec le plugin draggable
1590     // de jqueryui
1591     localisation_bind_draggable();
1592     // Gestion de la redimension automatique des textarea
1593     textarea_autoresize();
1594    
1595 nhaye 848
1596     changeDemandeurType('qualite');
1597     addSearchIcon();
1598     addDivDialog('.bloc_demandeur');
1599 nhaye 2868
1600     if(tinymce_load && tinymce_load == true) {
1601     // Gestion des WYSIWYG
1602     remove_tinymce()
1603     inputText_bind_tinyMCE_extended();
1604     inputText_bind_tinyMCE_simple();
1605     inputText_bind_tinyMCE();
1606     }
1607 fmichon 1005
1608 vpihour 881 }
1609    
1610 vpihour 1242 // Retourne la valeur d'une variable GET de l'URL
1611     function getQuerystring(key, default_)
1612     {
1613     if (default_==null) default_="";
1614     key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
1615     var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
1616     var qs = regex.exec(window.location.href);
1617     if(qs == null)
1618     return default_;
1619     else
1620     return qs[1];
1621     }
1622    
1623 nhaye 1270 // Récupère l'id de l'enregistrement lié au lot passé en parametre puis appel popupit
1624     function overlayCerfa(idLot) {
1625     $.get("../app/displayLotCerfa.php?lot="+idLot, function(data) {
1626     if(data != '') {
1627     popupIt('donnees_techniques',
1628     '../scr/sousform.php?obj=donnees_techniques&idx='+data+
1629     '&retourformulaire=lot&maj=1&idxformulaire='+idLot,
1630     950, 700);
1631    
1632     } else {
1633 nhaye 1271 // Si pas d'id retourner on créer un nouvel enregistrement de donnéees techniques
1634 nhaye 1270 popupIt('donnees_techniques',
1635     '../scr/sousform.php?obj=donnees_techniques&retourformulaire=lot&maj=0&idxformulaire='+idLot,
1636     950, 700);
1637     }
1638    
1639     });
1640     }
1641    
1642 nhaye 2116 /**
1643     * Fonction permettant de faire la somme des champs passé en 2nd parametre et
1644     * le stocker dans le champ passé en 1er
1645     */
1646     function sommeChampsCerfa(cible, source) {
1647     val_cible = 0;
1648    
1649     $.each(source, function(index, value) {
1650     // Conversion des champs source en integer
1651     val_source = parseInt($('#'+value).val());
1652     // Cumul des valeurs des champs source
1653     val_cible = val_cible + (isNaN(val_source) ? 0 : val_source);
1654     });
1655     // Affectation de la nouvelle valeur
1656     $('#'+cible).val(val_cible);
1657     }
1658    
1659     function calculSurfaceTotal() {
1660    
1661     var nom_col = [ "su_avt_shon",
1662     "su_cstr_shon",
1663     "su_trsf_shon",
1664     "su_chge_shon",
1665     "su_demo_shon",
1666     "su_tot_shon" ];
1667    
1668     // Calcul des totaux de colonnes
1669     $.each(nom_col, function(index, value) {
1670     var tot_col = 0;
1671     for ( var i = 1; i <= 9; i++ ) {
1672     // Conversion des champs source en integer
1673     val_source = parseInt($('#'+value+i).val());
1674     // Cumul des valeurs des champs source
1675     tot_col = tot_col + (isNaN(val_source) ? 0 : val_source);
1676     }
1677    
1678     // Affectation du résultat de ligne
1679     $('#'+value+'_tot').val(tot_col);
1680     });
1681    
1682     // Calcul des totaux des lignes
1683     for ( var j = 1; j <= 9; j++ ) {
1684     // Conversion des champs source en integer
1685     su_avt_shon = parseInt($('#su_avt_shon'+j).val());
1686     su_cstr_shon = parseInt($('#su_cstr_shon'+j).val());
1687     su_trsf_shon = parseInt($('#su_trsf_shon'+j).val());
1688     su_chge_shon = parseInt($('#su_chge_shon'+j).val());
1689     su_demo_shon = parseInt($('#su_demo_shon'+j).val());
1690    
1691     // Cumul des valeurs des champs source
1692     su_avt_shon = isNaN(su_avt_shon) ? 0 : su_avt_shon;
1693     su_cstr_shon = isNaN(su_cstr_shon) ? 0 : su_cstr_shon;
1694     su_trsf_shon = isNaN(su_trsf_shon) ? 0 : su_trsf_shon;
1695     su_chge_shon = isNaN(su_chge_shon) ? 0 : su_chge_shon;
1696     su_demo_shon = isNaN(su_demo_shon) ? 0 : su_demo_shon;
1697    
1698     // Affectation du résultat de ligne
1699     $('#su_tot_shon'+j).val((su_avt_shon+su_cstr_shon+su_trsf_shon)-(su_chge_shon+su_demo_shon));
1700    
1701     }
1702    
1703     // Calcul du total des totaux
1704     // Conversion des champs source en integer
1705     su_avt_shon = parseInt($('#su_avt_shon_tot').val());
1706     su_cstr_shon = parseInt($('#su_cstr_shon_tot').val());
1707     su_trsf_shon = parseInt($('#su_trsf_shon_tot').val());
1708     su_chge_shon = parseInt($('#su_chge_shon_tot').val());
1709     su_demo_shon = parseInt($('#su_demo_shon_tot').val());
1710    
1711     // Cumul des valeurs des champs source
1712     su_avt_shon = isNaN(su_avt_shon) ? 0 : su_avt_shon;
1713     su_cstr_shon = isNaN(su_cstr_shon) ? 0 : su_cstr_shon;
1714     su_trsf_shon = isNaN(su_trsf_shon) ? 0 : su_trsf_shon;
1715     su_chge_shon = isNaN(su_chge_shon) ? 0 : su_chge_shon;
1716     su_demo_shon = isNaN(su_demo_shon) ? 0 : su_demo_shon;
1717    
1718     // Affectation du résultat de ligne
1719     $('#su_tot_shon_tot').val((su_avt_shon+su_cstr_shon+su_trsf_shon)-(su_chge_shon+su_demo_shon));
1720    
1721     }
1722    
1723 vpihour 881 /*
1724 nhaye 1598 * Marque comme lu une consultation ou commission
1725 vpihour 881 */
1726 vpihour 1242 function portletUpdateData(id, objet, objetc, file, field, message){
1727 vpihour 881
1728 vpihour 900 /*Vérifie que l'identifiant passé en paramètre est bien un chiffre
1729     * et que le type d'objet est défini
1730     * */
1731     if ( $.isNumeric(id) && objet != '' ){
1732 vpihour 881
1733 vpihour 1242 donnees = "?ido=" + id + '&obj=' + objet + '&objk=' + objetc + '&idxDossier=' + getQuerystring('idx');
1734 vpihour 881 $.ajax({
1735     type: "GET",
1736 vpihour 1242 url: "../app/"+file+".php" + donnees ,
1737 vpihour 881 cache: false,
1738     success: function(html){
1739    
1740 vpihour 900 $('#sousform-' + objet + ' .message').remove();
1741 vpihour 892 /*Change la valeur affiché et affiche un message valide*/
1742 vpihour 1242 if ( $.parseJSON(html) == "Mise a jour effectue avec succes" ||
1743 vpihour 1245 $.parseJSON(html).indexOf("Transfert effectue avec succes") != -1 ){
1744 vpihour 881
1745 vpihour 1242 // On modife le champ field
1746 vpihour 1245 if ( field != '' && message != '' ){
1747 vpihour 1242 $('#'+field).html(message);
1748 vpihour 1245 html = $.parseJSON(html);
1749 vpihour 1242 }
1750 vpihour 1245 else {
1751     html = $.parseJSON(html).split(';');
1752    
1753     $('#'+field).html(html[0]);
1754    
1755     html = html[1];
1756     }
1757 vpihour 1242
1758 fmichon 938 // On supprime l'action
1759 vpihour 1242 $('span.'+field+'-16').parent().parent().remove();
1760 fmichon 938 // On affiche le message
1761 vpihour 900 $('#sousform-' + objet + ' .subtitle').after(
1762 vpihour 892 '<div ' +
1763     'class="message ui-widget ui-corner-all ui-state-highlight ui-state-valid">' +
1764     '<p>' +
1765     '<span class="ui-icon ui-icon-info"></span>' +
1766     '<span class="text">' +
1767 vpihour 1245 html +
1768 vpihour 892 '</span>' +
1769     '</p>' +
1770     '</div>'
1771     );
1772 vpihour 881 }
1773 vpihour 892 /*Affichage d'une erreur*/
1774     else{
1775 vpihour 900 $('#sousform-' + objet + ' .subtitle').after(
1776 vpihour 892 '<div ' +
1777     'class="message ui-widget ui-corner-all ui-state-highlight ui-state-error">' +
1778     '<p>' +
1779     '<span class="ui-icon ui-icon-info"></span>' +
1780     '<span class="text">' +
1781     $.parseJSON(html) +
1782     '</span>' +
1783     '</p>' +
1784     '</div>'
1785     );
1786     }
1787 vpihour 881 }
1788     });
1789     }
1790     }
1791 vpihour 1218
1792 nhaye 1598 /*
1793     * Marque comme non frequent un petitionnaire
1794     */
1795     function portletUpdatePetitionnaire(id, objet, objetc, file, field, message){
1796    
1797     /*
1798     *Vérifie que l'identifiant passé en paramètre est bien un chiffre
1799     * et que le type d'objet est défini
1800     */
1801     if ( $.isNumeric(id) && objet != '' ){
1802    
1803     donnees = "?ido=" + id + '&obj=' + objet + '&objk=' + objetc + '&idxDossier=' + getQuerystring('idx');
1804     $.ajax({
1805     type: "GET",
1806     url: "../app/"+file+".php" + donnees ,
1807     cache: false,
1808     success: function(html){
1809    
1810     $('#formulaire .message').remove();
1811     /*Change la valeur affiché et affiche un message valide*/
1812     if ( $.parseJSON(html) == "Mise a jour effectue avec succes" ||
1813     $.parseJSON(html).indexOf("Transfert effectue avec succes") != -1 ){
1814    
1815     // On modife le champ field
1816     if ( field != '' && message != '' ){
1817     $('#'+field).html(message);
1818     html = $.parseJSON(html);
1819     }
1820     else {
1821     html = $.parseJSON(html).split(';');
1822    
1823     $('#'+field).html(html[0]);
1824    
1825     html = html[1];
1826     }
1827    
1828     // On supprime l'action
1829     $('span.'+field+'-16').parent().parent().remove();
1830     // On affiche le message
1831     $('#formulaire #tabs-1').prepend(
1832     '<div ' +
1833     'class="message ui-widget ui-corner-all ui-state-highlight ui-state-valid">' +
1834     '<p>' +
1835     '<span class="ui-icon ui-icon-info"></span>' +
1836     '<span class="text">' +
1837     html +
1838     '</span>' +
1839     '</p>' +
1840     '</div>'
1841     );
1842     }
1843     /*Affichage d'une erreur*/
1844     else{
1845     $('#formulaire #tabs-1').prepend(
1846     '<div ' +
1847     'class="message ui-widget ui-corner-all ui-state-highlight ui-state-error">' +
1848     '<p>' +
1849     '<span class="ui-icon ui-icon-info"></span>' +
1850     '<span class="text">' +
1851     $.parseJSON(html) +
1852     '</span>' +
1853     '</p>' +
1854     '</div>'
1855     );
1856     }
1857     }
1858     });
1859     }
1860     }
1861    
1862    
1863 vpihour 1218 // Affiche le sous formulaire onglet
1864 vpihour 1351 function redirectPortletAction(id, onglet, nom_tabs){
1865 vpihour 1218
1866 vpihour 1351 var nom_tabs = ( typeof nom_tabs === "undefined" ) ? ".ui-tabs" : nom_tabs;
1867     var $tabs = $(nom_tabs).tabs();
1868    
1869 vpihour 1218 lien_onglet = $('#' + onglet).attr('href');
1870     lien_onglet = lien_onglet.substring( lien_onglet.length - 1, lien_onglet.length);
1871    
1872     $tabs.tabs('select', lien_onglet);
1873     }
1874 vpihour 1351
1875     //Rajoute un dossier pour la commission id
1876     function addDossierCommission(id, container){
1877    
1878 fmichon 1517 link = "../app/commission_ajouter_dossier.php?idx=" + id + "&idxDossier=" + $(container+" #dossier").val();
1879 vpihour 1351
1880     $.ajax({
1881     type: "GET",
1882     url: link,
1883     cache: false,
1884     dataType: "json",
1885 vpihour 2615 success: function(i){
1886 vpihour 1351
1887     $(container + " .message").remove();
1888     $(container).prepend(
1889     '<div class="message ui-widget ui-corner-all ui-state-highlight">'+
1890     '<p>'+
1891     '<span class="ui-icon ui-icon-info"></span>'+
1892     '<span class="text">'+
1893     '</span>'+
1894     '</p>'+
1895     '</div>'
1896     );
1897    
1898     // Nouveau dossier ajouté
1899     if ( i.return == "1" ){
1900    
1901     $(container + ' .message').addClass("ui-state-ok");
1902 vpihour 2615 $(container + ' .message .text').html(i.message);
1903 vpihour 1351 }
1904     //Dossier existe mais non ajouté
1905     else if( i.return == "0" ){
1906    
1907     $(container + ' .message').addClass("ui-state-error");
1908 vpihour 2615 $(container + ' .message .text').html(i.message);
1909 vpihour 1351 }
1910     //Le dossier n'existe pas
1911     else if( i.return == "-1" ){
1912    
1913     $(container + ' .message').addClass("ui-state-error");
1914 vpihour 2615 $(container + ' .message .text').html(i.message);
1915 vpihour 1351 }
1916     //Le dossier est déjà à l'ordre du jour
1917     else if( i.return == "2" ){
1918    
1919     $(container + ' .message').addClass("ui-state-error");
1920 vpihour 2615 $(container + ' .message .text').html(i.message);
1921 vpihour 1351 }
1922 vpihour 2615 //Le dossier est déjà à l'ordre du jour
1923     else if( i.return == "-2" ){
1924    
1925     $(container + ' .message').addClass("ui-state-error");
1926     $(container + ' .message .text').html(i.message);
1927     }
1928 vpihour 1351
1929     },
1930     async: false
1931     });
1932     }
1933    
1934     //Affichage du tableau des dossier_commission possibles
1935     function ajouterTableauDossierCommissionPossible(id){
1936    
1937 fmichon 1519 link = "../app/commission_tableau_dossier_possible.php?idx=" + id ;
1938 vpihour 1351
1939     $.ajax({
1940     type: "GET",
1941     url: link,
1942     cache: false,
1943     success: function(html){
1944    
1945     $('#tabs-2').html(html);
1946     },
1947     async: false
1948     });
1949     }
1950    
1951     //Met à jour la liste des dossiers de la commission
1952     function updateCommission(id, container){
1953    
1954 fmichon 1518 var link = "../app/commission_update_dossier.php?idx=" + id ;
1955 vpihour 1428 var valid = "";
1956     var error = "";
1957     var error_avis = "";
1958 vpihour 1351
1959     //Affiche du message de retour
1960     $(container + " .message").remove();
1961     $(container).prepend(
1962 vpihour 1428 '<div class="message ui-widget ui-corner-all ui-state-highlight dossier-ok">'+
1963 vpihour 1351 '<p>'+
1964     '<span class="ui-icon ui-icon-info"></span>'+
1965     '<span class="text">'+
1966     msg_loading +
1967     '</span>'+
1968     '</p>'+
1969     '</div>'
1970     );
1971    
1972     $(container + " input[type='checkbox']").each(
1973     function(index) {
1974    
1975 vpihour 1428 var idxDossier = $(this).val();
1976 softime 2112 //Identifiant du dossier formaté de façon lisible
1977     var idzDossier = $(this).parent().next().text();
1978 vpihour 1428
1979 fmichon 1518 link = "../app/commission_update_dossier.php?idx=" + id +
1980 vpihour 1428 "&idxDossier=" + idxDossier;
1981 vpihour 1351
1982     //Ajoute ces dossiers de l'ordre du jour
1983     if ( $(this).is(":checked")){
1984    
1985     link += "&action=add";
1986     }
1987     //Supprime ces dossiers de l'ordre du jour
1988     else{
1989    
1990     link += "&action=remove";
1991     }
1992    
1993     //Mise à jour des données
1994     $.ajax({
1995     type: "GET",
1996     url: link,
1997     cache: false,
1998     dataType: "json",
1999     success: function(i, obj){
2000    
2001     // Erreur
2002 vpihour 1428 if( i.error == "0" ){
2003 vpihour 1351
2004 softime 2112 error += idzDossier + ", ";
2005 vpihour 1351 }
2006 vpihour 1428 else if ( i.error == "-1" ) {
2007    
2008 softime 2112 error_avis += idzDossier + ", ";
2009 vpihour 1428 }
2010     else{
2011 softime 2112 valid += idzDossier + ", ";
2012 vpihour 1428 }
2013 vpihour 1351 },
2014     async: false
2015     });
2016     }
2017     );
2018    
2019 vpihour 1428 //Ajout du div des erreurs
2020     if ( error != "" || error_avis != "" ){
2021    
2022     $(container + " .dossier-ok").after(
2023     '<div class="message ui-widget ui-corner-all ui-state-highlight dossier-err">'+
2024     '<p>'+
2025     '<span class="ui-icon ui-icon-info"></span>'+
2026     '<span class="text">'+
2027     '</span>'+
2028     '</p>'+
2029     '</div>');
2030     }
2031    
2032 vpihour 1951 //le traitement a été effectué avec succès
2033 vpihour 1428 if ( valid != "" ){
2034 vpihour 1351
2035 vpihour 1428 $(container + ' .dossier-ok').addClass("ui-state-ok");
2036     $(container + ' .dossier-ok .text').html("Mise à jour réalisée avec succès pour le(s) dossier(s) : "+
2037     valid.slice(0,valid.length-2) +
2038     ".");
2039 vpihour 1351 }
2040     else {
2041    
2042 vpihour 1428 $(container + " .dossier-ok").remove();
2043 vpihour 1351 }
2044 vpihour 1428 //Une erreur s'est produite
2045     if ( error != "" ) {
2046    
2047     $(container + ' .dossier-err').addClass("ui-state-error");
2048     $(container + ' .dossier-err .text').append(
2049     "Dossier : " + error.slice(0,error.length-2) + " déjà plannifié pour une autre commission.");
2050     }
2051     else if ( error_avis != "" ){
2052    
2053     $(container + ' .dossier-err').addClass("ui-state-error");
2054     $(container + ' .dossier-err .text').append(
2055     "Un avis a déjà été rendu pour le(s) dossier(s): " +
2056     error_avis.slice(0,error_avis.length-2) +
2057     ".");
2058     }
2059 vpihour 1389 }
2060    
2061    
2062     //Récupère les données du type de commission et les mets dans les champs
2063     function chargeDonneesCommissionType(id_commission_type){
2064    
2065     //Requête ajax de récupération des données
2066     $.ajax({
2067     type: "GET",
2068     url: "../app/getCommissionTypeInfo.php?idx=" + id_commission_type,
2069     dataType: "json",
2070     async: false,
2071     success: function(data){
2072    
2073     // Ajout des données dans les champs
2074     $('#libelle').val(data.libelle);
2075     $('#lieu_adresse_ligne1').val(data.lieu_adresse_ligne1);
2076     $('#lieu_adresse_ligne2').val(data.lieu_adresse_ligne2);
2077     $('#lieu_salle').val(data.lieu_salle);
2078     $('#listes_de_diffusion').val(data.listes_de_diffusion);
2079     $('#participants').val(data.participants);
2080     }
2081     });
2082 vpihour 1447 }
2083    
2084     // Action de diffusion de mails des commissions
2085 vpihour 1933 function commission_diffusion(idx, obj, champ){
2086 vpihour 1447
2087     $('#tabs-1 .message').remove();
2088    
2089     // Si les données sont fournies
2090     if ( $.isNumeric(idx) && obj != "" ){
2091    
2092     //Requête ajax d'envoi des données
2093     $.ajax({
2094     type: "GET",
2095     url: "../app/commission_diffusion.php?idx=" + idx + "&obj=" + obj,
2096     dataType: "json",
2097     async: false,
2098     success: function(data){
2099    
2100     $('#tabs-1').prepend(
2101     '<div ' +
2102     'class="message ui-widget ui-corner-all ui-state-highlight">' +
2103     '<p>' +
2104     '<span class="ui-icon ui-icon-info"></span>' +
2105     '<span class="text">' +
2106     '</span>' +
2107     '</p>' +
2108     '</div>'
2109     );
2110    
2111 fmichon 1556 var type = ( obj == "commission_compte_rendu" ) ? "du compte-rendu" : "de l'ordre du jour";
2112 vpihour 1951 //L'envoi des mails a été effectué avec succès
2113 vpihour 1447 if ( data.return == 1 ){
2114    
2115 vpihour 1933 //Finalisation du document
2116     $.ajax({
2117     type: "GET",
2118     url: "../app/finalisation_document.php?idx=" + idx +
2119     "&obj=commission&champ="+champ,
2120     dataType: "json",
2121     async: false,
2122     success: function(data){
2123    
2124 vpihour 1951 //Si la finalisation a été effectuée avec succès
2125 vpihour 1933 if ( data != -1 ){
2126    
2127     //On affiche le lien du document finalisé
2128     $('.'+champ).parent().attr("href", data+"");
2129    
2130     //On affiche un message de valisation
2131     $('.'+obj+' .message .text').html(
2132 vpihour 1951 "La finalisation du document s'est effectuée avec succès.<br/>"
2133 vpihour 1933 );
2134     }
2135     // Si une erreur s'est produite
2136     else {
2137    
2138     //On affiche un message de validation
2139     $('.'+obj+' .message .text').html(
2140     "Une erreur s'est produite lors de la finalisation du document."
2141     );
2142     }
2143     }
2144     });
2145    
2146 vpihour 1447 $('#tabs-1 .message').addClass("ui-state-valid");
2147 vpihour 1933 $('#tabs-1 .message .text').prepend(
2148 vpihour 1447 "La diffusion " + type + " s'est effectuée avec succès."
2149     );
2150     }
2151     //Un erreur s'est produite
2152     else if ( data.return == -1 ){
2153    
2154     $('#tabs-1 .message').addClass("ui-state-error");
2155     $('#tabs-1 .message .text').html(
2156     "Une erreur s'est produite lors de la diffusion " +
2157     type +
2158     ". Veuillez contacter votre administrateur."
2159     );
2160     }
2161     }
2162     });
2163     }
2164     }
2165 fmichon 1467
2166     /**
2167     * Popup de confirmation pour les traitements
2168     */
2169     //
2170     function trt_confirm() {
2171     //
2172     if (confirm("Etes-vous sur de vouloir confirmer cette action ?")) {
2173     //
2174     return true;
2175     } else {
2176     //
2177     return false;
2178     }
2179     }
2180 vpihour 1899
2181     /**
2182     * Finalisation des documents.
2183     *
2184     */
2185 vpihour 1986 function finalizeDocument(idx, obj, sousform, status, retour){
2186 vpihour 1899
2187 vpihour 1921 //Requête ajax de finalisation des documents
2188     $.ajax({
2189     type: "GET",
2190     url: "../app/finalisation_document.php?idx=" + idx + "&obj=" + obj +
2191 vpihour 1986 "&status="+status+"&sousform="+sousform+"&retourformulaire="+retour,
2192 vpihour 1921 dataType: "json",
2193     async: false,
2194     success: function(data){
2195 vpihour 1986
2196 vpihour 1921 $('#'+sousform+obj+' .message.ui-widget.ui-corner-all.ui-state-highlight').remove()
2197     $('#'+sousform+obj+' a.retour').first().before(
2198     '<div ' +
2199     'class="message ui-widget ui-corner-all ui-state-highlight">' +
2200     '<p>' +
2201     '<span class="ui-icon ui-icon-info"></span>' +
2202     '<span class="text">' +
2203     '</span>' +
2204     '</p>' +
2205     '</div>'
2206     );
2207    
2208 vpihour 1951 //Si la finalisation a été effectuée avec succès
2209 vpihour 2290 if ( typeof data.pdf !== "undefined" && data.pdf != -1 ){
2210 vpihour 1921
2211     // On change le lien
2212     var etat = ((status == 1)?'':'de') + 'finalis';
2213    
2214     $('.'+etat+'e').parent().parent().html(
2215     data.portlet+""
2216     );
2217    
2218     //On affiche le lien de l'action inverse
2219     $('.edition').parent().attr("href", data.pdf+"");
2220    
2221 vpihour 1986 //Si on le document est finalisé, on cache les actions du portlet
2222     if ( status == 1 ){
2223    
2224 vpihour 2350 $("#"+sousform+obj+" .edit-16").parent().parent().remove();
2225     $("#"+sousform+obj+" .delete-16").parent().parent().remove();
2226 vpihour 1986 }
2227     else{
2228    
2229     var actions = '';
2230     //Si le lien modifier est autorisé pour cet utilisateur
2231     if ( typeof(data.actions.modifier)!='undefined' ){
2232    
2233     actions += data.actions.modifier;
2234     }
2235    
2236     //Si le lien supprimer est autorisé pour cet utilisateur
2237     if ( typeof(data.actions.supprimer)!='undefined' ){
2238    
2239     actions += data.actions.supprimer;
2240     }
2241    
2242 vpihour 2350 $('#'+sousform+obj+' .portlet-list').prepend(actions);
2243 vpihour 1986 }
2244    
2245 vpihour 1921 //On affiche un message de valisation
2246     $('#'+sousform+obj+' .message').addClass("ui-state-valid");
2247 vpihour 2290 $('#'+sousform+obj+' .message .text').html(data.message);
2248 vpihour 1921 }
2249     // Si une erreur s'est produite
2250     else {
2251    
2252     //On affiche un message de validation
2253     $('#'+sousform+obj+' .message').addClass("ui-state-error");
2254 vpihour 2290 $('#'+sousform+obj+' .message .text').html(data.message);
2255 vpihour 1921 }
2256 vpihour 2290 },
2257     error: function(jqXHR, textStatus, errorThrown) {
2258    
2259     //Si un parsererror est retourné, du code HTML s'est affiché dans
2260     //l'application, on affiche ce code
2261     if ( textStatus === "parsererror" ){
2262     $('#'+sousform+obj+' .message.ui-widget.ui-corner-all.ui-state-highlight').remove()
2263     $('#'+sousform+obj+' a.retour').first().before(jqXHR.responseText);
2264     }
2265 vpihour 1921 }
2266     });
2267 vpihour 1899 }
2268 softime 1992
2269     /**
2270     * Cette fonction permet d'afficher les options d'un select par rapport
2271     * à un autre champ
2272     *
2273     * @param int id Données (identifiant) du champ visé
2274     * @param string tableName Nom de la table
2275     * @param string linkedField Champ visé
2276     * @param string formCible Formulaire visé
2277     */
2278     function filterSelect(id, tableName, linkedField, formCible) {
2279    
2280     //lien vers script php
2281     link = "../app/filterSelect.php?idx=" + id + "&tableName=" + tableName +
2282     "&linkedField=" + linkedField + "&formCible=" + formCible;
2283    
2284     $.ajax({
2285     type: "GET",
2286     url: link,
2287     cache: false,
2288     dataType: "json",
2289     success: function(res){
2290     $('#'+tableName).empty();
2291    
2292     for ( j=0 ; j < res[0].length ; j++ ){
2293    
2294     $('#'+tableName).append(
2295     '<option value="'+res[0][j]+'" >'+res[1][j]+'</option>'
2296     );
2297    
2298     }
2299    
2300     },
2301     async: false
2302     });
2303     }
2304 vpihour 2113
2305     /**
2306 softime 2120 * Redirige vers une page après un temps d'attente
2307     * @param string page lien de la page vers la redirection
2308     * @param int milliseconde temps d'attente avant la redirection
2309     */
2310     function redirection(page, milliseconde) {
2311    
2312     //
2313     setTimeout(window.location = page, milliseconde);
2314     }
2315    
2316     /**
2317 vpihour 2113 * Retourne ce qu'il y a à afficher dans le formulaire de retour (bouton ajouter ou supprimer et éditer)
2318     */
2319     function getObjId(obj){
2320    
2321     //Récupération de l'id de l'objet
2322     var id=$('#id_retour').val();
2323    
2324     //Retour des données
2325     if ( $('#id_retour').length > 0 ){
2326     setDataFrequent(id, obj);
2327     om_initialize_content();
2328     }
2329     }
2330    
2331     function setDataFrequent(id,obj) {
2332     $.ajax({
2333     type: "GET",
2334     url: '../app/afficher_synthese_obj.view.php?idx='+id+'&obj=' + obj,
2335     cache: false,
2336     success: function(html){
2337     $('.add_'+obj).each(
2338     function(){
2339     $(this).remove();
2340     }
2341     );
2342     $(html).insertBefore('#'+obj).fadeIn(500);
2343     $('#'+obj).val(id);
2344     },
2345     async:false
2346     });
2347 vpihour 2169 }
2348    
2349     /**
2350 softime 2170 * Redirige vers le script PHP pour mettre à jour les informations
2351     * et met à jour l'interface pour l'utilisateur
2352     * @param string id Identifiant du dossier
2353     * @param string fieldname Nom du champ
2354     * @param Function callback Fonction mettant à jour l'interface des données
2355 softime 2217 * @param string confirm_message Texte du message de confirmation
2356 softime 2170 */
2357 softime 2212 function geolocalisation_treatment(id, fieldname, callback, confirm_message) {
2358 softime 2170
2359 softime 2212 // Overlay de confirmation du traitement
2360 softime 2217 if (confirm_message != null && confirm_message != '') {
2361 softime 2212 var dialog_confirm = confirm(confirm_message);
2362     if( dialog_confirm == false ){
2363     return false;
2364     }
2365     }
2366    
2367 softime 2170 // Affichage du spinner
2368     $('#'+fieldname).each(
2369     function(){
2370     $(this).children().removeClass();
2371     $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-empty');
2372     $(this).children().children().children(".text").html(msg_loading);
2373     }
2374     );
2375    
2376     // lien vers script PHP faisant l'appel au webservice
2377     link = '../app/geolocalisation_treatment.php?fieldname='+fieldname+'&id='+id+'&callback='+callback;
2378    
2379     // Traitement
2380     $.ajax({
2381     type: "GET",
2382     url: link,
2383     cache: false,
2384     dataType: "json",
2385     success: function(res){
2386 softime 2212 //
2387 softime 2170 $('#'+fieldname).each(
2388     function(){
2389     $(this).children().children().children(".text").text(res['log']['message']);
2390     $(this).children().removeClass();
2391     if (res['log']['etat'] == 't') {
2392     $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-valid');
2393     } else {
2394     $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-error');
2395     }
2396     }
2397     );
2398    
2399     //
2400 nhaye 2198 if (typeof(callback) === "function" && res['log']['etat'] == 't') {
2401 softime 2170 callback(res);
2402     }
2403     },
2404     async:false
2405     });
2406     }
2407    
2408     /**
2409 softime 2200 * Efface le message en haut du formulaire
2410     * @param array res Résultat après le traitement du script PHP
2411     */
2412     function set_geolocalisation_message(res) {
2413 softime 2263 // Si il y a un message d'erreur
2414     if ($('#geolocalisation-message')[0]) {
2415     // Supprime le message
2416     $('#geolocalisation-message').remove();
2417     // Modifie les messages des autres fonctionnalités
2418     $('#calcul_emprise').each(
2419     function() {
2420     $(this).children().removeClass();
2421     $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-error');
2422     $(this).children().children().children(".text").text(res['log']['message_diff_parcelle']);
2423     }
2424 softime 2266 );
2425 softime 2263 $('#calcul_centroide').each(
2426     function() {
2427     $(this).children().removeClass();
2428     $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-error');
2429     $(this).children().children().children(".text").text(res['log']['message_diff_parcelle']);
2430     }
2431     );
2432     $('#recup_contrainte').each(
2433     function() {
2434     $(this).children().removeClass();
2435     $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-error');
2436     $(this).children().children().children(".text").text(res['log']['message_diff_parcelle']);
2437     }
2438     );
2439     }
2440    
2441 softime 2200 }
2442    
2443     /**
2444 softime 2212 * Met le champ centroïde à jour
2445 softime 2170 * @param array res Résultat après le traitement du script PHP
2446     */
2447     function set_geolocalisation_centroide(res) {
2448 vpihour 2272
2449     var content = "<a id='action-form-localiser'"+
2450 softime 2367 " target='_SIG' href='../app/redirect_plan_sig.php?idx="+res['return']['dossierID']+"'>"+
2451 nhaye 2241 "<span class='om-icon om-icon-16 om-icon-fix sig-16' title='Localiser'>Localiser</span> "+
2452     " POINT("+res['return']['coordX']+" "+res['return']['coordY']+")"+
2453 vpihour 2272 " </a>";
2454    
2455     $('span#centroide').html(content);
2456 softime 2170 }
2457    
2458     /**
2459 softime 2716 * Met le champ contrainte à jour
2460 softime 2170 * @param array res Résultat après le traitement du script PHP
2461     */
2462     function set_geolocalisation_contrainte(res) {
2463 softime 2716 // Contenus du champ contrainte
2464     var content = $('span#msg_contrainte_sig').html();
2465     // Si aucune contraintes est récupérées du SIG
2466     if (res['dossier_contrainte']['nb_contrainte_sig'] == 0) {
2467     content = res['dossier_contrainte']['msg_contrainte_sig_empty'];
2468     }
2469     // S'il y a des contraintes récupérées
2470     if (res['dossier_contrainte']['nb_contrainte_sig'] != 0) {
2471     content = res['dossier_contrainte']['nb_contrainte_sig'] + " " + res['dossier_contrainte']['msg_contrainte_sig']
2472     }
2473     // Affiche le message
2474     $('span#msg_contrainte_sig').html(content);
2475 softime 2170 }
2476    
2477     /**
2478 softime 2178 * Redirige vers ElyxWeb
2479 softime 2200 * @param array res Résultat après le traitement du script PHP
2480 softime 2178 */
2481     function redirection_elyxweb(res) {
2482     window.open(res['return']);
2483     }
2484    
2485     /**
2486 softime 2217 * Traitement du bouton permettant de calculer toutes les données géographiques
2487     * @param string id Identifiant du dossier
2488     * @param string confirm_message Texte du message de confirmation
2489     */
2490     function all_geolocalisation_treatments(id, confirm_message) {
2491    
2492     // Overlay de confirmation du traitement
2493     if (confirm_message != null && confirm_message != '') {
2494     var dialog_confirm = confirm(confirm_message);
2495     if( dialog_confirm == false ){
2496     return false;
2497     }
2498     }
2499    
2500     // Initialisation des variables utilisées en paramètres
2501     var fieldname = '';
2502     var callback = '';
2503     var confirm_message = '';
2504     var flag = '';
2505    
2506     // Modification des variables utilisées en paramètres pour "Vérifier les
2507     // parcelles"
2508     fieldname = 'verif_parcelle';
2509     callback = set_geolocalisation_message;
2510     // Traitement "Vérifier les parcelles"
2511     geolocalisation_treatment(id, fieldname, callback, confirm_message);
2512    
2513     // Positionne le flag sur le message de "Vérifier les parcelles"
2514     flag = $('#'+fieldname+"-message").attr("class");
2515     // Si c'est un message d'erreur on arrete le traitement
2516     if (flag == 'message ui-widget ui-corner-all ui-state-highlight ui-state-error') {
2517     return false;
2518     }
2519    
2520     // Modification des variables utilisées en paramètres pour "Calculer
2521     // l'emprise"
2522     fieldname = 'calcul_emprise';
2523     callback = '';
2524     // Traitement "Calculer l'emprise"
2525     geolocalisation_treatment(id, fieldname, callback, confirm_message);
2526    
2527     // Positionne le flag sur le message de "Calculer l'emprise"
2528     flag = $('#'+fieldname+"-message").attr("class");
2529     // Si c'est un message d'erreur on arrete le traitement
2530     if (flag == 'message ui-widget ui-corner-all ui-state-highlight ui-state-error') {
2531     return false;
2532     }
2533    
2534     // Modification des variables utilisées en paramètres pour "Calculer le
2535     // centroïde"
2536     fieldname = 'calcul_centroide';
2537     callback = set_geolocalisation_centroide;
2538     // Traitement "Calculer le centroïde"
2539     geolocalisation_treatment(id, fieldname, callback, confirm_message);
2540    
2541     // Positionne le flag sur le message de "Calculer le centroïde"
2542     flag = $('#'+fieldname+"-message").attr("class");
2543     // Si c'est un message d'erreur on arrete le traitement
2544     if (flag == 'message ui-widget ui-corner-all ui-state-highlight ui-state-error') {
2545     return false;
2546     }
2547    
2548     // Modification des variables utilisées en paramètres pour "Récupérer les
2549     // contraintes"
2550     fieldname = 'recup_contrainte';
2551     callback = set_geolocalisation_contrainte;
2552     //Traitement "Récupérer les contraintes"
2553     geolocalisation_treatment(id, fieldname, callback, confirm_message);
2554    
2555     }
2556    
2557     /**
2558 vpihour 2169 * Remplit le formulaire avec l'adresse trouvée ou affiche un message d'erreur
2559     */
2560     function getAdressFromCadastrale(){
2561    
2562     //Récupération des références cadastrales
2563     var referenceCadastrale = '{"refcad":[{';
2564     var i = 0 ;
2565     var j = 1 ;
2566     var delimit = 0;
2567     var parcelleDelimit = 0;
2568     var noReferenceCadastrale = false;
2569     $(".reference_cadastrale_custom_field").each(
2570     function(){
2571    
2572     //On vérifie que le champ n'est pas vide
2573     if ($(this).val()!=""&&$(this).val() != ";"){
2574     noReferenceCadastrale = true;
2575     }
2576    
2577     //On va à la ligne suivante
2578     if ( $(this).val() == ";" ){
2579     referenceCadastrale +=(delimit!=0)?'}]':'';
2580     referenceCadastrale += "}" ;
2581     i++;
2582     j = 1;
2583     delimit = 0;
2584     parcelleDelimit = 0;
2585     }
2586     //On parcourt la ligne
2587     else {
2588     switch(true){
2589     //Quartier
2590     case (j==1):
2591     referenceCadastrale += (i!=0)?',':'';
2592     referenceCadastrale += '"' + i + '"' + ':{"quartier":"'+$(this).val()+'"';
2593     break;
2594     //Section
2595     case (j==2):
2596     referenceCadastrale += ', "section":"'+$(this).val()+'"';
2597     break;
2598     //Parcelle
2599     case (j==3):
2600     referenceCadastrale += ', "parcelle":"'+$(this).val()+'"';
2601     break;
2602     //Le délimiteur
2603     case (j%2==0&&j!=2):
2604     if ( delimit==0 ){
2605     referenceCadastrale += ', "delimit":[{"'+(delimit++)+'":"'+$(this).val()+'"';
2606     }
2607     else {
2608     referenceCadastrale += ', "'+(delimit++)+'":"'+$(this).val()+'"';
2609     }
2610     break;
2611     //La parcelle après le délimiteur
2612     case (j%2==1&&j!=1&&j!=3):
2613     referenceCadastrale += ',"'+(delimit++)+'":"'+$(this).val()+'"';
2614     break;
2615     }
2616     j++;
2617     }
2618     }
2619     );
2620     if ( noReferenceCadastrale == true ){
2621     referenceCadastrale += "}]}";
2622     }
2623     else {
2624     referenceCadastrale = "";
2625     }
2626    
2627     //Lance la tentative de récupération de l'adresse
2628     $.ajax({
2629     type: "POST",
2630     url: '../app/getAdressFromCadastrale.php',
2631     data: $.parseJSON(referenceCadastrale),
2632     cache: false,
2633     dataType: "json",
2634     success: function(data){
2635    
2636     //Si le retour est un objet JSON, on a un résultat
2637     if ( $.isPlainObject(data)){
2638    
2639     //On met l'adresse dans les champs
2640 nhaye 3066 $("#terrain_adresse_voie_numero").val(data.return_addr.dnuvoi);
2641     $("#terrain_adresse_voie").val(data.return_addr.prefixe+" "+data.return_addr.nom);
2642     $("#terrain_adresse_code_postal").val(data.return_addr.arrdt);
2643     $("#terrain_adresse_localite").val(data.return_addr.localite);
2644 vpihour 2169 }
2645     //Sinon, on affiche un message d'erreur
2646     else {
2647     alert(data);
2648     }
2649     },
2650     async: false
2651     });
2652     }
2653 softime 2356
2654     /**
2655     * Modifie les champs requis pour le formulaire demande_type
2656     * @param integer demande_nature Identifiant
2657     * @param string lib_dossier_autorisation_type_detaille Libellé du champ
2658     * dossier_autorisation_type_detaille
2659     * @param string lib_dossier_instruction_type Libellé du champ
2660     * dossier_instruction_type
2661     */
2662     function required_fields_demande_type(demande_nature, lib_dossier_autorisation_type_detaille, lib_dossier_instruction_type) {
2663    
2664     // Lien
2665     link = "../app/getDemandeNatureInfo.php?demande_nature=" + demande_nature;
2666    
2667     // Traitement
2668     $.ajax({
2669     type: "GET",
2670     url: link,
2671     cache: false,
2672     dataType: "json",
2673     success: function(demande_nature_info) {
2674    
2675     // On enlève le "*" au libellé du champ
2676     // dossier_autorisation_type_detaille pour montrer qu'il n'est
2677     // pas obligatoire
2678     $("#lib-dossier_autorisation_type_detaille").text('');
2679     $("#lib-dossier_autorisation_type_detaille")
2680     .html(lib_dossier_autorisation_type_detaille);
2681    
2682     // On enlève le "*" au libellé du champ
2683     // dossier_instruction_type pour montrer qu'il n'est
2684     // pas obligatoire
2685     $("#lib-dossier_instruction_type").text('');
2686     $("#lib-dossier_instruction_type")
2687     .html(lib_dossier_instruction_type);
2688    
2689     // Si c'est une nouvelle demande
2690     if (demande_nature_info != ''
2691     && demande_nature_info != null) {
2692    
2693     if (demande_nature_info['code'] == 'NOUV') {
2694    
2695     // On ajoute le "*" au libellé du champ
2696     // dossier_autorisation_type_detaille pour montrer qu'il est
2697     // obligatoire
2698     $("#lib-dossier_autorisation_type_detaille").text('');
2699     $("#lib-dossier_autorisation_type_detaille")
2700     .html(lib_dossier_autorisation_type_detaille + ' <span class="not-null-tag">*</span>');
2701    
2702     // On ajoute le "*" au libellé du champ
2703     // dossier_instruction_type pour montrer qu'il est
2704     // obligatoire
2705     $("#lib-dossier_instruction_type").text('');
2706     $("#lib-dossier_instruction_type")
2707     .html(lib_dossier_instruction_type + ' <span class="not-null-tag">*</span>');
2708    
2709     }
2710    
2711     }
2712    
2713     },
2714     async:false
2715     });
2716     }
2717    
2718     /**
2719     * Appel au chargement de la page
2720     **/
2721     $(function() {
2722    
2723     // url de la page
2724     url = document.location + "";
2725    
2726     // Si dans le formulaire des type de demande
2727     // et que c'est en mode ajout ou modifier
2728     if (url.indexOf("form.php?obj=demande_type&") != -1
2729     && (url.indexOf("&action=0") != -1
2730     || url.indexOf("&action=1") != -1
2731     || url.indexOf("&validation=") != -1)) {
2732    
2733     // Récupère les paramètres nécessaires
2734     var demande_nature = $("#demande_nature").val();
2735     var lib_dossier_autorisation_type_detaille = $("#lib-dossier_autorisation_type_detaille").text();
2736     var lib_dossier_instruction_type = $("#lib-dossier_instruction_type").text();
2737    
2738     // Appelle la fonction pour indiquer si les champs sont requis ou non
2739     required_fields_demande_type(demande_nature, lib_dossier_autorisation_type_detaille, lib_dossier_instruction_type);
2740     }
2741    
2742     });
2743 softime 2453
2744     /**
2745     * Cache les champs du formulaire événement
2746     * @param array fields Tableau des champs
2747     */
2748     function hideFieldsEvenement(fields) {
2749    
2750     // Pour chaque champ
2751     for (var cpt = 0; cpt < fields.length; cpt++) {
2752    
2753     $('#' + fields[cpt]).each(
2754     function(){
2755    
2756     // Récupère la balise parent et la valeur
2757     var parentField = $(this).parent();
2758     var valueField = $(this).val();
2759     // Supprime le champ
2760     $(this).remove();
2761     // Affiche le champ en tant que static
2762     parentField.append('<span id="'+fields[cpt]+'" class="field_value">'+valueField+'</span>');
2763     }
2764     );
2765    
2766     }
2767    
2768 softime 2599 // Cache les champs "evenement_retour_ar" et "evenement_retour_signature"
2769     $('#evenement_retour_ar').parent().parent().hide();
2770     $('#evenement_retour_signature').parent().parent().hide();
2771 softime 2453 }
2772    
2773     /**
2774     * Affiche les champs du formulaire événement
2775     * @param array fields Tableau des champs
2776     */
2777     function showFieldsEvenement(fields) {
2778    
2779     // Pour chaque champ
2780     for (var cpt = 0; cpt < fields.length; cpt++) {
2781    
2782     $('#' + fields[cpt]).each(
2783     function(){
2784    
2785     // Récupère la balise parent et la valeur
2786     var parentField = $(this).parent();
2787     var valueField = $(this).text();
2788     // Supprime le champ
2789     $(this).remove();
2790    
2791     // Si le champ est restriction
2792     if (this.id == 'restriction') {
2793    
2794     // Réaffiche le champ en type text
2795     parentField.append('<input id="'+this.id+'" class="champFormulaire" type="text" maxlength="60" size="30" value="'+ valueField +'" name="'+this.id+'">');
2796     } else {
2797    
2798     // Réaffiche les selects
2799     parentField.append('<select id="'+this.id+'" class="champFormulaire" size="1" name="'+this.id+'"></select>');
2800     filterSelect(valueField, fields[cpt], 'delai', 'evenement');
2801     }
2802     }
2803     );
2804    
2805     }
2806    
2807 softime 2599 // Affiche les champs "evenement_retour_ar" et "evenement_retour_signature"
2808     $('#evenement_retour_ar').parent().parent().show();
2809     $('#evenement_retour_signature').parent().parent().show();
2810 softime 2453 }
2811    
2812     /**
2813     * Action onchange sur la case à cocher "retour" du formulaire "evenement"
2814     * @param object field Champ de type booléen
2815     */
2816     function retourOnchangeEvenement(field) {
2817    
2818     // liste des champs à modifier dans le formulaire
2819     var fields = new Array(
2820     'restriction',
2821     'delai',
2822     'accord_tacite',
2823     'delai_notification',
2824     'avis_decision'
2825     );
2826    
2827     // Si le champ booléen est à 'Oui'
2828     if (field.value == 'Oui') {
2829     // Cache et rend static les champs de la liste
2830     hideFieldsEvenement(fields);
2831     } else {
2832     // Affiche et rend modifiable les champs de la liste
2833     showFieldsEvenement(fields);
2834     }
2835     }
2836 softime 2715
2837     function dossierContrainteValidationForm(objsf, link, formulaire) {
2838     // composition de la chaine data en fonction des elements du formulaire
2839     var data = "";
2840     if (formulaire) {
2841     for (i=0; i<formulaire.elements.length; i++) {
2842     data += formulaire.elements[i].name+"="+encodeURIComponent(formulaire.elements[i].value)+"&";
2843     }
2844     }
2845    
2846     // execution de la requete en POST
2847     $.ajax({
2848     type: "POST",
2849     url: link,
2850     cache: false,
2851     data: data,
2852     dataType: "json",
2853     success: function(html){
2854     // Efface le message
2855     $('.message').remove();
2856     // Affiche le message
2857     $('.subtitle').after(
2858     '<div ' +
2859     'class="message ui-widget ui-corner-all ui-state-highlight ui-state-valid">' +
2860     '<p>' +
2861     '<span class="ui-icon ui-icon-info"></span>' +
2862     '<span class="text">' +
2863     html +
2864     '</span>' +
2865     '</p>' +
2866     '</div>'
2867     );
2868     // Décoche toutes les checkbox
2869     $(":checkbox").attr('checked', false);
2870     $(":checkbox").attr('value', '');
2871     }
2872     });
2873     }
2874 softime 2716
2875     /**
2876     * Permet de recharger la page.
2877     */
2878     function refresh_page_return() {
2879     // Recharge la page
2880     location.reload();
2881     }

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26