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

Contents of /trunk/app/js/script.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2834 - (show annotations)
Tue Mar 18 10:39:34 2014 UTC (10 years, 10 months ago) by nhaye
File MIME type: application/javascript
File size: 99191 byte(s)
Modification de la façon dont la bible automatique remplie les zones de complément,
une fenêtre n'est plus ouverte, le chargement se fait en ajax.

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

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26