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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1524 - (show annotations)
Wed Mar 20 14:55:33 2013 UTC (11 years, 10 months ago) by fmichon
File MIME type: application/javascript
File size: 63520 byte(s)
Optimisation de la bible

1 /**
2 * Script JS spécifique à l'applicatif, ce script est detiné à ê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/avis_code_barre.php pour donner le focus sur le champ de
31 * recherche au chargement de la page.
32 */
33 $('#avis_code_barre_form #consultation').focus();
34
35 /**
36 * Spécifique app/maj_dates_suivi.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($('#maj_dates_form #date').val()!="") {
40 $('#maj_dates_form #instruction').focus();
41 }
42 });
43
44
45 /**
46 * WIDGET liés au formulaire et sousformulaire
47 *
48 * Ces fonctions javascript sont appelées depuis les méthodes setOnChange,
49 * setOnClick, ...
50 */
51 //
52 // Cette fonction permet de retourner les informations sur le fichier téléchargé
53 // du formulaire d'upload vers le formulaire d'origine
54 function bible_return(form, champ) {
55 // Initialisation de la variable contenant les valeurs sélectionnées
56 var listeElement = '';
57 // Récupération du contenu de chacun des éléments cochés
58 $("span.content").each(function( index ) {
59 if (document.getElementById('checkbox'+index).checked == true) {
60 listeElement += $(this).text() + '\r\n\r';
61 }
62 });
63 // Récupération du textarea à remplir
64 obj = $("form[name|="+form+"] #"+champ);
65 // Remplissage du textarea et déclenchement du trigger autosize
66 $(obj).val(obj.val()+listeElement+"\r").trigger('autosize');
67 // Fermeture de la boite de dialog
68 $('#upload-container').dialog('close').remove();
69 }
70 //
71 function bible() {
72 //
73 var ev = document.f2.evenement.value;
74 //
75 if (ev == "") {
76 window.alert("Vous devez d'abord sélectionner un événement.");
77 return false;
78 }
79 //
80 var idx = document.f2.dossier.value;
81 //
82 var link = "../app/bible.php?complement=1&ev="+ev+"&idx="+idx;
83 load_form_in_modal(link);
84 //
85 return false;
86 }
87 //
88 function bible2() {
89 var ev=document.f2.evenement.value;
90 if (ev == "") {
91 window.alert("Vous devez d'abord sélectionner un événement.");
92 return false;
93 }
94 var idx=document.f2.dossier.value;
95 var link = "../app/bible.php?complement=2&ev="+ev+"&idx="+idx;
96 load_form_in_modal(link);
97 return false;
98 }
99 // bible_auto - type httpclick
100 function bible_auto(){
101 if(fenetreouverte==true)
102 pfenetre.close();
103 var ev=document.f2.evenement.value;
104 if (ev == "") {
105 window.alert("Vous devez d'abord sélectionner un événement.");
106 return false;
107 }
108 var idx=document.f2.dossier.value;
109
110 pfenetre=window.open("../app/bible_auto.php?idx="+idx+"&ev="+ev,"evenement","width=600,height=300,top=120,left=120");
111 fenetreouverte=true;
112 return false;
113 }
114 // VerifNumdec - type text
115 function VerifNumdec(champ) {
116 champ.value = champ.value.replace(",", "."); // remplacement de la virgule
117 //if (champ.value.lastIndexOf(".") == -1){ // champ decimal
118 if (isNaN(champ.value)) {
119 alert(msg_alert_error_verifnum);
120 champ.value = "";
121 return;
122 }
123 //}
124
125 }
126 // Ce widget permet de charger les données d'un select en ajax
127 function changeDataSelect(tableName, linkedField, joker){
128 var id_dossierAutorisation = $("#dossier_autorisation").val();
129 var id = $("#"+linkedField).val();
130 link = "../app/listData.php?idx=" + id + "&tableName=" + tableName +
131 "&linkedField=" + linkedField ;
132 if(id_dossierAutorisation != "") {
133 link += "&nature=EXIST";
134 }
135 var val_tableName = $('#'+tableName).val();
136 $.ajax({
137 type: "GET",
138 url: link,
139 cache: false,
140 dataType: "json",
141 success: function(html){
142
143 $('#'+tableName).empty();
144 var selected = "";
145 if(val_tableName == "") {
146 selected=' selected="selected"';
147 }
148 if ( joker == true )
149 $('#'+tableName).append(
150 '<option value=""'+selected+'>*</option>'
151 );
152 else {
153 $('#'+tableName).append(
154 '<option value=""'+selected+'>Choisir ' + tableName + '</option>'
155 );
156 }
157 if ( html !== '' ){
158
159 html = html.split(';');
160 for ( i = 0 ; i < html.length - 1 ; i++ ){
161
162 html_temp = html[i].split('_');
163 selected = "";
164 if(val_tableName == html_temp[0]) {
165 selected=' selected="selected"';
166 }
167 $('#'+tableName).append(
168 '<option value="'+html_temp[0]+'"'+selected+' >'+html_temp[1]+'</option>'
169 );
170
171 }
172 }
173 },
174 async: false
175 });
176 }
177
178 // Ce widget permet de charger les données de la demande type en ajax
179 function changeDemandeTypeDataSelect(){
180 // Récupération de l'id du dossier_autorisation_type_detaille
181 var id_datd = $("#dossier_autorisation_type_detaille").val();
182
183 // Récupération de la liste des paramètres de l'url
184 var params = extractUrlParams();
185 if ( typeof params['idx_dossier'] === "undefined" ){
186 params['idx_dossier'] = '';
187 }
188
189 link = "../app/listDemandeType.php?idx=" + params['idx_dossier'] + "&datd="+ id_datd;
190
191 var val_tableName = $('#demande_type').val();
192 $.ajax({
193 type: "GET",
194 url: link,
195 cache: false,
196 dataType: "json",
197 success: function(res){
198 $('#demande_type').empty();
199 var selected = "";
200
201 for ( j=0 ; j < res[0].length ; j++ ){
202
203 $('#demande_type').append(
204 '<option value="'+res[0][j]+'"'+selected+' >'+res[1][j]+'</option>'
205 );
206
207 }
208 $('#demande_type').val(val_tableName);
209 },
210 async: false
211 });
212 }
213
214 /**
215 * Fonction de récupération des paramètres GET de la page
216 * @return Array Tableau associatif contenant les paramètres GET
217 */
218 function extractUrlParams(){
219 var t = location.search.substring(1).split('&');
220 var f = [];
221 for (var i=0; i<t.length; i++){
222 var x = t[ i ].split('=');
223 f[x[0]]=x[1];
224 }
225 return f;
226 }
227
228 // vuploadMulti - XXX
229 function vuploadMulti(champ) {
230 //
231 if (fenetreouverte == true) {
232 pfenetre.close();
233 }
234 //
235 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");
236 //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");
237 //
238 fenetreouverte = true;
239 }
240 // tmpUpload - Upload XXX
241 function tmpUpload(champ) {
242 //
243 if (fenetreouverte == true) {
244 pfenetre.close();
245 }
246 //
247 pfenetre = window.open("../app/tmpUpload.php?origine="+champ+"&form="+$('input[name='+champ+']').closest('form').attr('name'),"upload","width=400,height=300,top=120,left=120");
248 //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");
249 //
250 fenetreouverte = true;
251 }
252
253
254
255 /**
256 * POPUP pour le téléchargement de fichier
257 *
258 * Ces fonctions javascript sont appelées depuis des onClick sur des
259 * formulaires spécifiques pour permettre de transmettre des paramètres aux
260 * éditions pdf ainsi appelées.
261 */
262 //
263 function dossierads_d(debut)
264 {
265 //if(fenetreouverte==true)
266 window.location="../pdf/pdfetat.php?obj=registre_dossiers_decisions_par_type_par_date&nature="
267 +document.f1.nature.value+"&idx=demo&datedebut="
268 +document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
269 }
270
271 // Cette fonction permet de gérer la validation du formulaire du script :
272 // app/affichage_reglementaire_registre.php
273 function affichage_reglementaire_registre(button) {
274 // Popup de confirmation du traitement par l'utilisateur
275 if (trt_confirm() == false) {
276 return false;
277 }
278 // Suppression du bouton pour que l'utilisateur ne puisse pas cliquer une
279 // deuxième fois
280 $(button).remove();
281 // Affichage du spinner
282 $("#msg").html(msg_loading);
283 // Requête AJAX vers le fichier app/affichage_reglementaire_registre.php
284 // pour mettre à jour les dossiers
285 // XXX layout
286 $.ajax({
287 type: "GET",
288 url: "../app/affichage_reglementaire_registre.php?update",
289 cache: false,
290 success: function(html){
291 // Ajout d'un bloc de message vide
292 $('#msg').html(
293 '<div class="message ui-widget ui-corner-all ui-state-highlight">'+
294 '<p>'+
295 '<span class="ui-icon ui-icon-info"></span>'+
296 '<span class="text">'+
297 '</span>'+
298 '</p>'+
299 '</div>'
300 );
301 // Si le retour de l'appel Ajax n'est pas vide, alors il y a eu une
302 // lors du traitement
303 if ( html.length > 2 ) {
304 $("#msg .message").addClass("ui-state-error");
305 $("#msg .text").html(html);
306 } else {
307 // Sinon message de succès et appel de l'édition
308 $("#msg .message").addClass("ui-state-valid");
309 $("#msg .text").html("Traitement terminé. Le registre a été téléchargé.");
310 window.open("../pdf/pdfetat.php?obj=registre_dossiers_affichage_reglementaire&idx=demo");
311 }
312 },
313 async: false
314 });
315 //
316 return false;
317 }
318
319 //Fonction de redirection pour le widget de recherche de dossier
320 function widget_recherche_dossier(data,nbRes){
321 /*$('#msg').show();
322 $('#msg').html(msg_loading);*/
323
324 // S'il n'y a qu'un seul résultat, afficher un résumé
325 if ( nbRes == 1 ){
326
327 window.location = "../scr/form.php?obj=dossier_instruction&action=3&" +
328 "idx=" + data + "&premier=0&advs_id=&recherche=&tricol=&" +
329 "selectioncol=&valide=&retour=tab";
330 }
331 // S'il y a une liste de dossier, redirection vers le tableau
332 else {
333
334 window.location = "../scr/tab.php?obj=recherche_direct&selectioncol=0&recherche=" + data;
335 }
336 }
337 //
338 function dossierdepot()
339 {
340 //if(fenetreouverte==true)
341 window.location="../pdf/pdfetat.php?obj=registre_dossiers_depots_par_type_par_date&nature="+
342 document.f1.nature.value+"&idx=demo&datedebut="+
343 document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
344 }
345 //
346 function dossierads()
347 {
348 //if(fenetreouverte==true)
349 window.location="../pdf/pdfetat.php?obj=registre_dossiers_par_type_par_date&nature="+
350 document.f1.nature.value+"&idx=demo&datedebut="+
351 document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
352 }
353
354 // téléchargement du fichier
355 function file(fichier) {
356 //
357 if (fichier == "") {
358 alert("zone vide");
359 }
360 //
361 pfenetre = window.open("../app/file.php?file="+fichier,"Visualisation","width=100,height=100,top=1,left=150,scrollbars=yes,resizable = yes");
362 //
363 fenetreouverte = true;
364 }
365
366 /**
367 * Retour spécifique de l'écran de consultation multiple - surcharge de ajaxIt
368 * @todo XXX voir les différences avec ajaxIt et si il n'est pas possible
369 * d'effectuer la modification dans le core
370 */
371 function messageIt(objsf, link, empty) {
372 // recuperation du terme recherche
373 var recherche = document.getElementById("recherchedyn");
374 if (recherche != null) {
375 link += "&recherche="+recherche.value;
376 }else {
377 link += "&recherche=";
378 }
379 // execution de la requete en GET
380 $.ajax({
381 type: "GET",
382 url: link,
383 cache: false,
384 success: function(html){
385 (empty == true )?$("#sousform-"+objsf).empty():'';
386 $("#sousform-"+objsf).append(html);
387 om_initialize_content();
388 },
389 async: false
390 });
391 }
392
393 /**
394 * TTélécharegement de fichier pdf en ajax
395 * spécifique de l'écran de consultation multiple
396 */
397 /* Plugin jQuery qui lance un espèce d'appel AJAX vers un script PHP de téléchargement de fichier*/
398 jQuery.download = function(url, data, method){
399 //url and data options required
400 if( url && data ){
401 //data can be string of parameters or array/object
402 data = typeof data == 'string' ? data : jQuery.param(data);
403 //split params into form inputs
404 var inputs = '';
405 jQuery.each(data.split('&'), function(){
406 var pair = this.split('=');
407 inputs+='<input type="hidden" name="'+ pair[0] +'" value="'+ pair[1] +'" />';
408 });
409 //send request
410 jQuery('<form action="'+ url +'" method="'+ (method||'post') +'">'+inputs+'</form>')
411 .prependTo('body').submit().remove();
412 };
413 };
414
415 /**
416 * Cette fonction permet de charger dans un dialog jqueryui un formulaire tel
417 * qu'il aurait été chargé avec ajaxIt
418 *
419 * @param objsf string : objet de sousformulaire
420 * @param link string : lien vers un sousformulaire (../scr/sousform.php...)
421 * @param width integer: width en px
422 * @param height integer: height en px
423 * @param callback function (optionel) : nom de la méthode à appeler
424 * à la fermeture du dialog
425 * @param callbackParams mixed (optionel) : paramètre à traiter dans la function
426 * callback
427 *
428 **/
429 function popupIt(objsf, link, width, height, callback, callbackParams) {
430 // Insertion du conteneur du dialog
431 var dialog = $('<div id=\"sousform-'+objsf+'\"></div>').insertAfter('#tabs-1 .formControls');
432 $('<input type=\"text\" name=\"recherchedyn\" id=\"recherchedyn\" value=\"\" class=\"champFormulaire\" style=\"display:none\" />').insertAfter('#sousform-'+objsf);
433
434 // execution de la requete passee en parametre
435 // (idem ajaxIt + callback)
436 $.ajax({
437 type: "GET",
438 url: link,
439 cache: false,
440 success: function(html){
441 //Suppression d'un precedent dialog
442 dialog.empty();
443 //Ajout du contenu recupere
444 dialog.append(html);
445 //Initialisation du theme OM
446 om_initialize_content();
447 //Creation du dialog
448 $(dialog).dialog({
449 //OnClose suppression du contenu
450 close: function(ev, ui) {
451 // Si le formulaire est submit et valide on execute la méthode
452 // passée en paramètre
453 if (typeof(callback) === "function") {
454 callback(callbackParams);
455 }
456 $(this).remove();
457 },
458 resizable: true,
459 modal: true,
460 width: 'auto',
461 height: 'auto',
462 position: 'left top',
463 });
464 },
465 async : false
466 });
467 //Fermeture du dialog lors d'un clic sur le bouton retour
468 $('#sousform-'+objsf).on("click",'a.retour',function() {
469 $(dialog).dialog('close').remove();
470 return false;
471 });
472 }
473
474 /***
475 * Fonction getter des paramètres de l'url courante
476 */
477 // Parse URL Queries Method
478 (function($){
479 $.getQuery = function( query ) {
480 query = query.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
481 var expr = "[\\?&]"+query+"=([^&#]*)";
482 var regex = new RegExp( expr );
483 var results = regex.exec( window.location.href );
484 if( results !== null ) {
485 return results[1];
486 return decodeURIComponent(results[1].replace(/\+/g, " "));
487 } else {
488 return false;
489 }
490 };
491 })(jQuery);
492
493
494 /*
495 * Javascript concernant la demande d'avis
496 *
497 *
498 */
499
500 /**
501 * Fonction de callback appellée lors de la fermeture du dialog (popupit)
502 * du retour d'avis d'un service
503 **/
504 function returnToTab(objsf) {
505 var valid=$('#sousform-'+objsf+' div.ui-state-valid');
506 if(valid.length > 0) {
507 document.location.href="../scr/tab.php?obj="+$.getQuery('obj')+"&premier="+$.getQuery('premier')
508 +"&advs_id="+$.getQuery('advs_id')+"&recherche="+$.getQuery('recherche')+"&tricol="+$.getQuery('tricol')
509 +"&selectioncol="+$.getQuery('selectioncol');
510 }
511 };
512
513
514 /*
515 * Javascript concernant la demande
516 *
517 *
518 */
519
520 /**
521 * Fonction permettant de mettre à jour les infos du demandeur
522 **/
523 function getDemandeurId(type) {
524 var id_demandeur=$('#id_retour').val();
525 if($.isNumeric(id_demandeur)) {
526 afficherDemandeur(id_demandeur,type);
527 om_initialize_content();
528 }
529 }
530
531 /**
532 * Fonction permettant d'afficher la synthèse d'un demandeur
533 */
534 function afficherDemandeur(id,type) {
535 $.ajax({
536 type: "GET",
537 url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+id+'&type='+type,
538 cache: false,
539 success: function(html){
540 $(html).insertBefore('#add_'+type).fadeIn(500);
541
542 },
543 async:false
544 });
545 affichageBoutonsDemandeurs();
546 }
547
548 /**
549 * Fonction permettant de modifier un demandeur
550 */
551 function editDemandeur(obj,id,type,id_css) {
552 var url = '../scr/sousform.php?obj='+obj+'&retourformulaire=demande';
553 if(getDemandeInfo('type') == 'DM') {
554 url += '&action=0&idx_demandeur='+id;
555 } else {
556 url += '&action=1&idx='+id;
557 }
558 popupIt(obj, url, 860, 'auto',
559 replaceDemandeur, {'type':type,'id': id, 'id_css':id_css});
560 affichageBoutonsDemandeurs();
561 }
562
563 /**
564 * Function permettant de remplacer un contenu déjà existant
565 **/
566 function replaceDemandeur(obj) {
567 var new_demandeur=$('#id_retour').val();
568 if($.isNumeric(new_demandeur)) {
569 $.ajax({
570 type: "GET",
571 url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+new_demandeur+'&type='+obj.type,
572 cache: false,
573 success: function(html){
574 $(obj.id_css).replaceWith(html);
575 }
576 });
577 }
578 }
579 /**
580 * Function permettant de remplacer un contenu déjà existant
581 **/
582 function removeDemandeur(id) {
583 var div_class=$('#'+id).attr("class");
584 $('#'+id).remove();
585 if(div_class == "delegataire") {
586 $('#add_delegataire').fadeIn(500);
587 }
588 affichageBoutonsDemandeurs();
589 }
590
591 /**
592 * Fonction permettant d'afficher et cacher les boutons d'ajout de demandeurs
593 */
594 function affichageBoutonsDemandeurs(){
595
596 // Si formulaire après validation on cache les boutons d'ajout de demandeurs
597 url = document.location + "" ;
598
599 if ((url.indexOf("form.php?obj=demande&") != -1
600 || url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
601 || url.indexOf("form.php?obj=demande_dossier_existant&") != -1)
602 && $("form[name=f1] .form-is-valid").size() > 0 ) {
603
604 $('#add_petitionnaire_principal').hide();
605 $('#add_delegataire').hide();
606 if($('input[name=delegataire][type=hidden]').size() == 0) {
607 $('#delegataire').hide();
608 }
609 $('#add_petitionnaire').hide();
610
611 } else {
612
613 // Affichage du bouton d'ajout du petitionnaire principal
614 if($('input[name=petitionnaire_principal][type=hidden]').size() == 1) {
615 $('#add_petitionnaire_principal').hide();
616 } else {
617 $('#add_petitionnaire_principal').fadeIn(500);
618 }
619
620 // Affichage du bouton d'ajout du delegataire
621 if($('input[name=petitionnaire_principal][type=hidden]').size() == 1
622 || $('input[name=delegataire][type=hidden]').size() == 1) {
623 $('#delegataire').fadeIn(500);
624 if($('input[name=delegataire][type=hidden]').size() == 0) {
625 $('#add_delegataire').fadeIn(500);
626 } else {
627 $('#add_delegataire').hide();
628 }
629 } else {
630 $('#delegataire').hide();
631 }
632
633 // Affichage du bouton d'ajout de petitionnaires
634 if($('input[name=petitionnaire_principal][type=hidden]').size() == 0) {
635 $('#add_petitionnaire').hide();
636 } else {
637 $('#add_petitionnaire').fadeIn(500);
638 }
639 }
640 }
641
642 /**
643 * Appel au chargement de la page
644 **/
645 $(function() {
646 changeDemandeurType('qualite');
647 if ( $('#type_demandeur') == 'petitionnaire' ){
648
649 addSearchIcon();
650 addDivDialog('.bloc_demandeur');
651 }
652 affichageBoutonsDemandeurs();
653 // Bind de la fonction permettant l'ajout du pétitionnaire principal
654 $("#formulaire").on("click","#add_petitionnaire_principal", function() {
655 popupIt('petitionnaire',
656 '../scr/sousform.php?obj=petitionnaire&action=0'+
657 '&retourformulaire=demande&principal=true', 860, 'auto',
658 getDemandeurId, 'petitionnaire_principal');
659 });
660 // Bind de la fonction permettant l'ajout du délégataire
661 $("#formulaire").on("click","#add_delegataire", function(event) {
662 popupIt('delegataire',
663 '../scr/sousform.php?obj=delegataire&action=0'+
664 '&retourformulaire=demande', 860, 'auto',
665 getDemandeurId, 'delegataire');
666 });
667 // Bind de la fonction permettant l'ajout des pétitionnaires
668 $("#formulaire").on("click","#add_petitionnaire", function(event) {
669 popupIt('petitionnaire',
670 '../scr/sousform.php?obj=petitionnaire&action=0'+
671 '&retourformulaire=demande', 860, 'auto',
672 getDemandeurId, 'petitionnaire');
673 });
674
675 url = document.location + "" ;
676 if ((
677 url.indexOf("form.php?obj=demande&") != -1 ||
678 url.indexOf("form.php?obj=dossier&") != -1 ||
679 url.indexOf("form.php?obj=dossier_instruction&") != -1
680 )
681 && url.indexOf("&action=3") == -1) {
682
683 formatFieldReferenceCadastrale();
684 }
685
686 if (url.indexOf("form.php?obj=demande&") != -1
687 && (url.indexOf("&action=3") == -1
688 && url.indexOf("&action=2") == -1
689 && $(".form-is-valid").size() == 0)) {
690
691 addButtonCadastraleAdesse();
692 changeDemandeType();
693 }
694
695 // Ajout de demande
696 if ((url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
697 || url.indexOf("form.php?obj=demande_dossier_existant&") != -1)
698 && url.indexOf("&action=0") != -1 ){
699
700 /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
701 hideFields();
702 }
703
704 // Ajout de demande sur dossier existant
705 if (url.indexOf("form.php?obj=demande_dossier_existant&") != -1
706 && url.indexOf("&action=0") != -1 ){
707
708 /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
709 hideFields();
710 changeDemandeType();
711 }
712
713 // Modification de demande
714 if (
715 (
716 url.indexOf("form.php?obj=demande&") != -1
717 || url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
718 || url.indexOf("form.php?obj=demande_dossier_existant&") != -1
719 )
720 && url.indexOf("&action") == -1
721 ){
722
723 formatFieldReferenceCadastrale();
724 }
725
726 //Gestion de la commission
727 $( "#tabs" ).tabs();
728
729 // Affichage du tableau des dossier_commission au clique
730 $("#dossier_planifie").click(function() {
731
732 var params = extractUrlParams();
733 idx = params['idx'];
734
735 ajaxIt(
736 'dossier_commission',
737 '../scr/soustab.php?obj=dossier_commission&idxformulaire='+
738 idx +
739 '&retourformulaire=commission');
740 });
741
742 // Affichage du tableau des dossier_commission posssible au clique
743 $('#commission_dossiers_plannifier_retirer').click(
744 function(){
745
746 var params = extractUrlParams();
747 idx = params['idx'];
748
749 $('#tabs-2').empty();
750 ajouterTableauDossierCommissionPossible(idx);
751 }
752 );
753
754 //Suppression du message et des données dans le champ dossier
755 $('#commission_dossiers_plannifier_numero').click(
756 function(){
757
758 $('#tabs-3 .message').remove();
759 $('#tabs-3 #dossier').val("");
760 }
761 );
762 });
763
764 /*
765 * Action sur les champs pour les références cadastrales
766 */
767 function formatFieldReferenceCadastrale(){
768
769 addNewFieldReferencesCadastrales();
770 $('#terrain_references_cadastrales').parent().parent().hide();
771
772 url = document.location + "";
773
774 reference_cadastrale = $('#terrain_references_cadastrales').val();
775 /*Formatage de la reference cadastrale*/
776 if ( reference_cadastrale != '' ){
777
778 /* Récupère la référence cadastrale non formatée */
779 references_cadastrales = reference_cadastrale.split(';');
780 donnees = new Array();
781
782 i = 0 ;
783 /* Boucle sur les références, elles étaient séparées par un ; */
784 for ( l = 0 ; l < references_cadastrales.length - 1 ; l ++ ){
785
786 /*Récupère le code impots du qartier [CHIFFRES]*/
787 k = 0;
788 donnees[i] = '';
789 for ( j = k ; j < references_cadastrales[l].length ; j++ ){
790
791 if ( references_cadastrales[l].charAt(j) >= 0 &&
792 references_cadastrales[l].charAt(j) <= 9 ){
793
794 donnees[i] += references_cadastrales[l].charAt(j);
795 k++;
796
797 } else {
798
799 i++;
800 break;
801 }
802 }
803
804 /* Récupère la section [LETTRES] */
805 donnees[i] = '';
806 for ( j = k ; j < references_cadastrales[l].length ; j++ )
807 if ( isAlpha(references_cadastrales[l].charAt(j)) ){
808
809 donnees[i] += references_cadastrales[l].charAt(j);
810 k++;
811
812 } else {
813
814 i++;
815 break;
816 }
817
818 /* Récupère la parcelle [CHIFFRES] */
819 donnees[i] = '';
820 for ( j = k ; j < references_cadastrales[l].length ; j++ )
821 if ( references_cadastrales[l].charAt(j) >= 0 &&
822 references_cadastrales[l].charAt(j) <= 9 ){
823
824 donnees[i] += references_cadastrales[l].charAt(j);
825 k++;
826
827 } else {
828
829 break;
830 }
831
832 /* Récupère les séparateurs [ A / ] et les sections */
833 m = 0 ; // Nombre de suffixe
834 if ( k < references_cadastrales[l].length ){
835
836 for ( j = k ; j < references_cadastrales[l].length ; j++ )
837 if ( isAlpha(references_cadastrales[l].charAt(j)) ){
838
839 m++;
840 donnees[++i] = references_cadastrales[l].charAt(j);
841 donnees[++i] = '';
842 }
843 else {
844
845 donnees[i] += references_cadastrales[l].charAt(j);
846 }
847 }
848
849 /*Créé autant de champs de que de référence */
850 donnees[++i] = ';';
851 i++;
852
853 if ( l > 0 ) {
854
855 $('.reference_cadastrale_custom_fields').append(
856 "<br/>" + fieldReferenceCadastraleBase()
857 );
858 }
859
860 actionFormReferenceCadastrale();
861
862 if ( m > 0 ){
863
864 for ( j = 0 ; j < m ; j++ ){
865
866 $('#moreFieldReferenceCadastrale' +
867 ( $('.moreFieldReferenceCadastrale').length - 1 ) ).
868 before(
869 newInputReferenceCadastrale()
870 );
871 }
872 }
873 }
874 /* Action sur les boutons [+ ajouter d'autres champs] et [+ ajouter
875 * d'autres lignes] */
876 actionLineFormReferenceCadastrale();
877
878 /* Ajoute les données dans les champs nouvellement créés */
879 $('.reference_cadastrale_custom_field').each(
880 function(index) {
881
882 $(this).val(donnees[index])
883 }
884 );
885 }
886 else{
887 actionFormReferenceCadastrale();
888 actionLineFormReferenceCadastrale();
889 }
890 }
891
892 /*
893 * Ajoute les icônes pour la recherche de pétitionnaire fréquent.
894 */
895 function addSearchIcon(){
896
897 $("#form-content:not(.form-is-valid) .search_particulier_fields,"+
898 "#form-content:not(.form-is-valid) .search_personne_morale_fields").each(function() {
899 /*Ajout de l'icône après le champs dénomination et nom de la personne morale*/
900
901 $(this).
902 append(
903 '<span '+
904 'class="om-icon om-icon-16 om-icon-fix search-petitionnaire-16" '+
905 'title="Chercher un petitionnaire"> '+
906 '</span>'
907 );
908 }
909 );
910
911 /*Ajout des actions sur les boutons*/
912 addActionSearchIcon('#sousform-petitionnaire #form-content');
913 addActionRemove();
914
915 }
916
917 /**
918 * Fonction permettant de revenir sur le formulaire d'ajout de demandeur
919 **/
920 function addActionRemove(){
921 $('.erase-petitionnaire').click(
922 function(){
923 ajaxIt('petitionnaire','../scr/sousform.php?obj=petitionnaire&action=0');
924 });
925 }
926
927 /*
928 * Ajoute les actions sur les icônes de recherche
929 */
930 function addActionSearchIcon(id){
931
932 /*Si on recherche un pétitionnaire de type particulier*/
933 $('.search-petitionnaire-16').click(
934 function(){
935
936 /*Le champ nom du particulier doit contenir au moins trois lettres*/
937 if ( $('#particulier_nom').val().length < 3 &&
938 $('#particulier_prenom').val().length < 3 &&
939 $('#personne_morale_denomination').val().length < 3 ){
940
941 alert('Saisissez au moins trois lettres pour la recherche');
942 return;
943 }
944
945 /*Données des champs nom et prénom du particulier*/
946 var donnees = "?par_nom=" + $('.search_particulier_fields #particulier_nom').val() +
947 "&par_prenom=" + $('.search_particulier_fields #particulier_prenom').val() +
948 "&mor_denomination="+$('#personne_morale_denomination').val();
949
950 /* Requête qui va récupérer les données duaddSearchIcon(es) pétitionnaire(s)
951 * correspondant(s) à la recherche */
952 $.ajax({
953 type: "GET",
954 url: "../app/findPetitionnaire.php" + donnees ,
955 cache: false,
956 success: function(obj){
957 var freq = $.parseJSON(obj);
958 var res='';
959 /*Si la recherche a donné des résultats*/
960 if ( freq.length > 0 ){
961 /*Limitation des résultats à 50 */
962 if ( freq.length > 50 ){
963
964 nbRes = 50;
965 res += 'Votre recherche a donn&eacute; ' + freq.length
966 + ' r&eacute;sultats. Seul les cinquantes premiers ' +
967 'seront affich&eacute;s.<br/>';
968 } else {
969 nbRes = freq.length;
970 }
971
972 res += '<select>' ;
973
974 /* Met les résultats de la recherche dans un select */
975 for ( i = 0 ; i < nbRes ; i++ ){
976 res += '<option value="' + freq[i].value + '">' +
977 freq[i].content +
978 '</option>';
979 }
980
981 res += '</select>';
982 } else {
983 res += 'Aucune correspondance trouvée.';
984 }
985
986 addDivDialog('#sousform-petitionnaire');
987 /* Affichage de l'overlay */
988 $('#dialog').html(res);
989
990 $( "#dialog" ).dialog({
991 modal: true,
992 buttons : {
993 Valider: function(){
994 if ( res != 'Auncune correspondance trouvée.'){
995
996 }
997 var id = $('#dialog select option:selected').val();
998 if($.isNumeric(id)) {
999 ajaxIt('petitionnaire',
1000 '../scr/sousform.php?obj=petitionnaire&action=1&retourformulaire=demande&idx='+id);
1001 }
1002 // Fermeture de l'overlay
1003 $(this).dialog( "close" ).empty();
1004 }
1005 }
1006 });
1007 },
1008 });
1009 }
1010 );
1011 }
1012
1013 /*
1014 * Ajoute un div pour l'overlay dialog de jQuery
1015 */
1016 function addDivDialog(id){
1017
1018 $(id).prepend('<div id="dialog"></div>');
1019 }
1020
1021 /*
1022 Action au changement du select de la qualite du demandeur
1023 * */
1024 function changeDemandeurType(id){
1025
1026 /*Réinitialise les champs et cache les champs inutiles selon la qualité du demandeur*/
1027 /*Si la qualite du demandeur est particulier */
1028 if ( $('#' + id ).val() == 'particulier' ){
1029
1030 $('.personne_morale_fields input').each(
1031 function(){
1032 $(this).val('');
1033 }
1034 );
1035 $('.personne_morale_fields select option[value=""]').each(
1036 function(){
1037 $(this).attr('selected', 'selected');
1038 }
1039 );
1040
1041 $('.personne_morale_fields').hide();
1042 $('.particulier_fields').show();
1043 }
1044 /*Si c'est une personne morale*/
1045 else {
1046
1047 $('.particulier_fields input').each(
1048 function(){
1049 $(this).val('');
1050 }
1051 );
1052 $('.particulier_fields select option[value=""]').each(
1053 function(){
1054 $(this).attr('selected', 'selected');
1055 }
1056 );
1057
1058 $('.particulier_fields').hide();
1059 $('.personne_morale_fields').show();
1060 }
1061 }
1062
1063 /*
1064 Fonction de test des champs
1065 * */
1066 function isAlpha(str) {
1067 return /^[a-zA-Z\/]+$/.test(str);
1068 }
1069
1070 function isMail(str){
1071 return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(str);
1072 }
1073
1074 function isPhoneNumber(str){
1075 return /[0-9-()+]{3,20}/.test(str);
1076 }
1077
1078 function testSeparator(obj){
1079
1080 if ( obj.value != 'A' &&
1081 obj.value != '/' ) {
1082
1083 alert('Saisissez uniquement un A ou un / comme séparateur');
1084 obj.value = '';
1085 }
1086 }
1087 /* Fin fonction test */
1088
1089 /*
1090 * Ajoute les ations spécifiques pour le formulaire personnalisé d'ajout de
1091 * référence cadastrale
1092 */
1093 function actionFormReferenceCadastrale(){
1094
1095 $('form').submit(
1096 function(){
1097
1098 getDataFieldReferenceCadastrale();
1099 }
1100 );
1101 if( $("form[name=f1] .form-is-valid").size() == 0) {
1102
1103 $('#moreFieldReferenceCadastrale' +
1104 ($('.moreFieldReferenceCadastrale').length - 1 )).
1105 on("click", function() {
1106
1107 $(this).before(newInputReferenceCadastrale());
1108 });
1109 }
1110
1111 }
1112
1113 /*
1114 * Récupère les données saisies dans les champs de références cadastrales
1115 */
1116 function getDataFieldReferenceCadastrale(){
1117
1118 var reference_cadastrale = '';
1119 var reference_cadastrale_temp = '';
1120
1121 /*Pour chacun des champs du formulaire de saisie de référence cadastrale*/
1122 $('.reference_cadastrale_custom_field').each(
1123 function(){
1124
1125 /*Si on est à la fin d'une ligne de champs*/
1126 if ( $(this).val() == ';' ){
1127
1128 reference_cadastrale_bis = reference_cadastrale_temp ;
1129
1130 /* Vérifie que les données sont correctement formatées avant de
1131 * les ajouter au résultat*/
1132 while( reference_cadastrale_bis != ''){
1133 if ( /^([0-9]{1,4}[a-zA-Z]{1,3}[0-9]{1,5}([A\/]{1}[0-9]{1,4})*)*$/.test(reference_cadastrale_bis) ){
1134
1135 reference_cadastrale += reference_cadastrale_bis + ";";
1136 break;
1137 }
1138 else{
1139
1140 reference_cadastrale_bis = reference_cadastrale_bis.slice( 0, -1);
1141 }
1142 }
1143
1144 reference_cadastrale_temp = '';
1145 }
1146
1147 else {
1148
1149 /*Sinon, on récupère la valeur du champ*/
1150 reference_cadastrale_temp += $(this).val();
1151 }
1152 }
1153 );
1154
1155 /*Met la valeur du résultat dans le champs généré par le framework*/
1156 $('#terrain_references_cadastrales').val(reference_cadastrale);
1157 }
1158
1159 /*
1160 Action pour l'ajout de nouvelle ligne dans le formulaire d'ajout
1161 de référence cadastrale
1162 * */
1163 function actionLineFormReferenceCadastrale(){
1164 if( $("form[name=f1] .form-is-valid").size() == 0) {
1165
1166 $('#morelineReferenceCadastrale').click(
1167 function(){
1168
1169 /*Ajout des trois champs de base*/
1170 $('.reference_cadastrale_custom_fields').
1171 append( "<br/>" + fieldReferenceCadastraleBase());
1172
1173 /*Ajout du bind pour l'ajout de nouveaux champs*/
1174 $('#moreFieldReferenceCadastrale'+
1175 ($('.moreFieldReferenceCadastrale').length - 1 )).
1176 on("click", function() {
1177 $(this).before(newInputReferenceCadastrale());
1178 });
1179 }
1180 );
1181 }
1182 }
1183
1184 /*
1185 Met à jour le select demande_type dès qu'un
1186 dossier_autorisation_type_detaille est choisi
1187 * */
1188 function changeDemandeType(){
1189
1190 var idDossierAutorisationTypeDetaille =
1191 $("#dossier_autorisation_type_detaille").val();
1192
1193 /* Récupère les données saisies dans les champs pour la référence cadastrale */
1194 getDataFieldReferenceCadastrale();
1195
1196 /*Si l'identifiant fourni est correct*/
1197 if ( $.isNumeric(idDossierAutorisationTypeDetaille) ){
1198
1199 /*Met à jour le select de demande_type avec les données correspondant*/
1200 changeDemandeTypeDataSelect();
1201 if ( $('#demande_type option').size() < 2 ) {
1202 showFormsDemande();
1203 }
1204
1205 /*Affiche le select*/
1206 $('#demande_type').parent().parent().show();
1207 if($('#demande_type').val() == '' ) {
1208 $('.demande_hidden_bloc').each(
1209 function(){
1210 $(this).hide();
1211 }
1212 );
1213 $('input[type=submit]').hide();
1214 }
1215 }
1216 else {
1217
1218 /*Sinon, cache tous les champs du formulaire*/
1219 hideFields();
1220 }
1221 }
1222
1223 /*
1224 Ajoute le code HTML des champs pour les références cadastrales
1225 * */
1226 function addNewFieldReferencesCadastrales(){
1227
1228 var html = '<div class="field field-type-text references_cadastrales_new_field" >'+
1229 '<div class="form-libelle">' +
1230 '<label '+
1231 'class="libelle-terrain_references_cadastrales" '+
1232 'for="terrain_references_cadastrales">'+
1233 ' terrain_references_cadastrales '+
1234 '</label>' +
1235 '</div>' +
1236 '<div class="form-content reference_cadastrale_custom_fields">' +
1237 fieldReferenceCadastraleBase() +
1238 '</div>' +
1239 '</div>';
1240
1241 url = document.location + "";
1242 if((getDemandeInfo('nature') == 'NOUV' || getDemandeInfo('nature') == 'NONE' ) && $(".form-is-valid").size() == 0 && url.indexOf('action=3') == -1 ) {
1243 html += '<div class="field field-type-text" id="morelineReferenceCadastrale">' +
1244 '<div class="form-libelle"></div>' +
1245 '<div class="form-content">' +
1246 '<span class="om-form-button add-16" title="Ajouter">ajouter d\'autres lignes</span>' +
1247 '</div>' +
1248 '</div>';
1249 }
1250
1251 $('.references_cadastrales_new_field').remove();
1252 $('.moreFieldReferenceCadastrale').remove();
1253 $('#morelineReferenceCadastrale').remove();
1254 $('#terrain_references_cadastrales').parent().parent().before(
1255 html
1256 );
1257 }
1258
1259 function addButtonCadastraleAdesse(){
1260
1261 $('#terrain_superficie').parent().parent().after('<div class="field field-type-text" >' +
1262 '<div class="form-libelle"></div>' +
1263 '<div class="form-content buttonCadAdr">' +
1264 '<input id="cad-adr-them" class="ui-button ui-widget ui-state-default ui-corner-all" type="button" value="Cadastrale < = > Adresse"/>' +
1265 '</div>' +
1266 '</div>' );
1267 }
1268
1269 /*
1270 Séparateur caché ; pour marqué la fin d'une ligne de référence cadastrale
1271 * */
1272 function hiddenSeparatorField(){
1273
1274 return '<input ' +
1275 'class="reference_cadastrale_custom_field" ' +
1276 'type="hidden" ' +
1277 'maxlength="2" ' +
1278 'size="2" ' +
1279 'value=";" />';
1280 }
1281
1282 /**
1283 * Retourne l'info passée en paramètre (nature de la demande ou type de la demande)
1284 **/
1285 function getDemandeInfo(info) {
1286 var id_demande_type = $('#demande_type').val();
1287 var res = "";
1288 if ( typeof id_demande_type !== "undefined" ){
1289 $.ajax({
1290 type: "GET",
1291 url: "../app/getDemandeInfo.php?iddemandetype=" + id_demande_type
1292 + "&info=" + info,
1293 cache: false,
1294 async: false,
1295 success: function(val){
1296 res = val;
1297 }
1298 });
1299 }
1300 else {
1301
1302 res = "NONE"
1303 }
1304 return res;
1305 }
1306 /*
1307 Ajout d'une nouvelle ligne de champ de référence cadastrale
1308 Retourne le code HTML
1309 * */
1310 function fieldReferenceCadastraleBase(){
1311
1312 url = document.location + "";
1313
1314 var type = getDemandeInfo('nature');
1315 var reference_cadastrale = '<input ' +
1316 'class="champFormulaire reference_cadastrale_custom_field" ' +
1317 'type="text" ' +
1318 'onchange="VerifNum(this)" ' +
1319 'maxlength="4" ' +
1320 'size="4" '+
1321 'placeholder="Quart." ';
1322
1323 // désactivation des champs de référence cadastrale
1324 if( (type != 'NOUV' && type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1325 reference_cadastrale += 'disabled="disabled" ';
1326 }
1327
1328 reference_cadastrale += 'value="" />';
1329
1330 reference_cadastrale += '<input ' +
1331 'class="champFormulaire reference_cadastrale_custom_field" ' +
1332 'type="text" ' +
1333 'maxlength="3" ' +
1334 'size="3" '+
1335 'placeholder="Sect." ';
1336
1337 // désactivation des champs de référence cadastrale
1338 if((type != 'NOUV'&& type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1339 reference_cadastrale += 'disabled="disabled" ';
1340 }
1341
1342 reference_cadastrale += 'value="" '+
1343 'onchange="if ( !isAlpha(this.value) ){ alert(\'Vous ne devez saisir que des lettres dans ce champs.\'); this.value = \'\'; }"/>';
1344 reference_cadastrale += '<input ' +
1345 'class="champFormulaire reference_cadastrale_custom_field" ' +
1346 'type="text" ' +
1347 'onchange="VerifNum(this)" ' +
1348 'maxlength="5" ' +
1349 'size="5" '+
1350 'placeholder="Parc." ';
1351
1352 // désactivation des champs de référence cadastrale
1353 if((type != 'NOUV'&& type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1354 reference_cadastrale += 'disabled="disabled" ';
1355 }
1356
1357 reference_cadastrale += 'value="" />';
1358
1359 reference_cadastrale += '<span id="moreFieldReferenceCadastrale' +
1360 $('.moreFieldReferenceCadastrale').length +
1361 '" class="moreFieldReferenceCadastrale">' + hiddenSeparatorField();
1362
1363 // Si form validé pas de bouton
1364 url = document.location + "";
1365 if( (type == 'NOUV' || type == 'NONE') && $("form[name=f1] .form-is-valid").size() == 0 && url.indexOf('action=3') == -1 ) {
1366
1367 reference_cadastrale +=
1368 '<span class="om-form-button add-16" title="Ajouter">ajouter d\'autres champs</span>';
1369 }
1370
1371 reference_cadastrale += '</span>';
1372
1373 return reference_cadastrale;
1374 }
1375
1376 /**
1377 * Cache les champs inutules [formulaire de demande]
1378 **/
1379 function hideFields(){
1380 $('.demande_hidden_bloc').each(
1381 function(){
1382 $(this).hide();
1383 }
1384 );
1385
1386 $('.field-type-text').hide();
1387 $('input[type=submit]').hide();
1388 $('#demande_type').parent().parent().hide();
1389 }
1390
1391 /*
1392 Affiche les champs dont on a besoin dans le formulaire de demande
1393 * */
1394 function showFormsDemande(){
1395
1396
1397 if($('#demande_type').val() != "") {
1398
1399 $('.demande_hidden_bloc').each(
1400 function(){
1401 $(this).show();
1402 }
1403 );
1404 formatFieldReferenceCadastrale(1);
1405 $('.field-type-text').show();
1406 $('input[type=submit]').show();
1407 $('.terrain_references_cadastrales_custom').hide();
1408
1409 $('#terrain_references_cadastrales').parent().parent().hide();
1410
1411 // Si le type de la demande est un transfert on efface la liste des demandeurs
1412 if(getDemandeInfo('type') == 'DT') {
1413 if($('input[name=petitionnaire_principal]').size() != -1) {
1414 removeDemandeur("petitionnaire_principal_" + $('input[name=petitionnaire_principal]').val());
1415 }
1416 if($('input[name=delegataire]').size() != -1) {
1417 removeDemandeur("delegataire_" + $('input[name=delegataire]').val());
1418 }
1419
1420 $('#listePetitionnaires input.demandeur_id').each(function(){
1421 if($(this).size() != -1) {
1422
1423 removeDemandeur("petitionnaire_" + $(this).val());
1424 }
1425 });
1426 } else if ( getDemandeInfo('type') == 'DM' ) {
1427 $.ajax({
1428 type: "GET",
1429 url: "../app/getDemandeurList.php?dossier_autorisation=" + $('#dossier_autorisation').val(),
1430 cache: false,
1431 async: false,
1432 success: function(html){
1433 $('#liste_demandeur').replaceWith(html);
1434 }
1435 });
1436 }
1437 affichageBoutonsDemandeurs();
1438 } else {
1439
1440 /*Récupère les references cadastrales*/
1441 getDataFieldReferenceCadastrale();
1442
1443 $('.demande_hidden_bloc').each(
1444 function(){
1445 $(this).hide();
1446 }
1447 );
1448 $('input[type=submit]').hide();
1449
1450 }
1451 }
1452
1453 /*
1454 Action au clique sur le bouton " + ajouter d'autres champs"
1455 * */
1456 function newInputReferenceCadastrale(){
1457
1458 // Champs désactivé si le formulaire a été validé et est valide
1459 var type = getDemandeInfo('nature');
1460 var reference_cadastrale_disabled = '';
1461 if((type != 'NOUV'&& type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1462 reference_cadastrale_disabled = 'disabled="disabled" ';
1463 }
1464
1465 return '<input ' +
1466 'class="champFormulaire reference_cadastrale_custom_field" ' +
1467 'type="text" ' +
1468 'maxlength="1" ' +
1469 'size="3" ' +
1470 'value="" ' +
1471 'placeholder="Sep." ' +
1472 reference_cadastrale_disabled +
1473 'onchange="testSeparator(this);"/>' +
1474 '<input ' +
1475 'class="champFormulaire reference_cadastrale_custom_field" ' +
1476 'type="text" ' +
1477 'onchange="VerifNum(this)" ' +
1478 'maxlength="4" ' +
1479 'size="4" ' +
1480 'placeholder="Parc." ' +
1481 reference_cadastrale_disabled +
1482 'value="" />';
1483 }
1484
1485
1486
1487 /**
1488 * Desactivation des fonctions widget du tableau de bord inutiles sur le nouveau
1489 * tableau de bord
1490 */
1491 function widget_bind_move_actions() {}
1492 function widget_bind_add_action() {}
1493 function widget_bind_edit_actions(widget_selector) {}
1494
1495 // Cette fonction permet d'associer a un arbre html les fonctions jquery
1496 // necessaires. Elle permet notamment lors du chargement d'une page en ajax
1497 // d'associer le comportement du bouton, la gestion du calendrier et la gestion
1498 // du fieldset.
1499 function om_initialize_content() {
1500 // Gestion du skin des boutons, liens
1501 link_bind_button();
1502 // Gestion du calendrier avec le widget datepicker de jqueryui
1503 inputdate_bind_datepicker();
1504 // Gestion des fieldset avec le plugin collaspsible de jquery
1505 fieldset_bind_collapsible();
1506 // Gestion du picker color avec le plugin minicolors
1507 bind_form_field_rvb();
1508 // Gestion du widget aide à la saisie localisation avec le plugin draggable
1509 // de jqueryui
1510 localisation_bind_draggable();
1511 // Gestion de la redimension automatique des textarea
1512 textarea_autoresize();
1513
1514
1515 changeDemandeurType('qualite');
1516 addSearchIcon();
1517 addDivDialog('.bloc_demandeur');
1518
1519 }
1520
1521 // Retourne la valeur d'une variable GET de l'URL
1522 function getQuerystring(key, default_)
1523 {
1524 if (default_==null) default_="";
1525 key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
1526 var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
1527 var qs = regex.exec(window.location.href);
1528 if(qs == null)
1529 return default_;
1530 else
1531 return qs[1];
1532 }
1533
1534 // Récupère l'id de l'enregistrement lié au lot passé en parametre puis appel popupit
1535 function overlayCerfa(idLot) {
1536 $.get("../app/displayLotCerfa.php?lot="+idLot, function(data) {
1537 if(data != '') {
1538 popupIt('donnees_techniques',
1539 '../scr/sousform.php?obj=donnees_techniques&idx='+data+
1540 '&retourformulaire=lot&maj=1&idxformulaire='+idLot,
1541 950, 700);
1542
1543 } else {
1544 // Si pas d'id retourner on créer un nouvel enregistrement de donnéees techniques
1545 popupIt('donnees_techniques',
1546 '../scr/sousform.php?obj=donnees_techniques&retourformulaire=lot&maj=0&idxformulaire='+idLot,
1547 950, 700);
1548 }
1549
1550 });
1551 }
1552
1553 /*
1554 * Marque comme lu une consultation
1555 */
1556 function portletUpdateData(id, objet, objetc, file, field, message){
1557
1558 /*Vérifie que l'identifiant passé en paramètre est bien un chiffre
1559 * et que le type d'objet est défini
1560 * */
1561 if ( $.isNumeric(id) && objet != '' ){
1562
1563 donnees = "?ido=" + id + '&obj=' + objet + '&objk=' + objetc + '&idxDossier=' + getQuerystring('idx');
1564 $.ajax({
1565 type: "GET",
1566 url: "../app/"+file+".php" + donnees ,
1567 cache: false,
1568 success: function(html){
1569
1570 $('#sousform-' + objet + ' .message').remove();
1571 /*Change la valeur affiché et affiche un message valide*/
1572 if ( $.parseJSON(html) == "Mise a jour effectue avec succes" ||
1573 $.parseJSON(html).indexOf("Transfert effectue avec succes") != -1 ){
1574
1575 // On modife le champ field
1576 if ( field != '' && message != '' ){
1577 $('#'+field).html(message);
1578 html = $.parseJSON(html);
1579 }
1580 else {
1581 html = $.parseJSON(html).split(';');
1582
1583 $('#'+field).html(html[0]);
1584
1585 html = html[1];
1586 }
1587
1588 // On supprime l'action
1589 $('span.'+field+'-16').parent().parent().remove();
1590 // On affiche le message
1591 $('#sousform-' + objet + ' .subtitle').after(
1592 '<div ' +
1593 'class="message ui-widget ui-corner-all ui-state-highlight ui-state-valid">' +
1594 '<p>' +
1595 '<span class="ui-icon ui-icon-info"></span>' +
1596 '<span class="text">' +
1597 html +
1598 '</span>' +
1599 '</p>' +
1600 '</div>'
1601 );
1602 }
1603 /*Affichage d'une erreur*/
1604 else{
1605 $('#sousform-' + objet + ' .subtitle').after(
1606 '<div ' +
1607 'class="message ui-widget ui-corner-all ui-state-highlight ui-state-error">' +
1608 '<p>' +
1609 '<span class="ui-icon ui-icon-info"></span>' +
1610 '<span class="text">' +
1611 $.parseJSON(html) +
1612 '</span>' +
1613 '</p>' +
1614 '</div>'
1615 );
1616 }
1617 }
1618 });
1619 }
1620 }
1621
1622 // Affiche le sous formulaire onglet
1623 function redirectPortletAction(id, onglet, nom_tabs){
1624
1625 var nom_tabs = ( typeof nom_tabs === "undefined" ) ? ".ui-tabs" : nom_tabs;
1626 var $tabs = $(nom_tabs).tabs();
1627
1628 lien_onglet = $('#' + onglet).attr('href');
1629 lien_onglet = lien_onglet.substring( lien_onglet.length - 1, lien_onglet.length);
1630
1631 $tabs.tabs('select', lien_onglet);
1632 }
1633
1634 //Rajoute un dossier pour la commission id
1635 function addDossierCommission(id, container){
1636
1637 link = "../app/commission_ajouter_dossier.php?idx=" + id + "&idxDossier=" + $(container+" #dossier").val();
1638
1639 $.ajax({
1640 type: "GET",
1641 url: link,
1642 cache: false,
1643 dataType: "json",
1644 success: function(i, obj){
1645
1646 $(container + " .message").remove();
1647 $(container).prepend(
1648 '<div class="message ui-widget ui-corner-all ui-state-highlight">'+
1649 '<p>'+
1650 '<span class="ui-icon ui-icon-info"></span>'+
1651 '<span class="text">'+
1652 '</span>'+
1653 '</p>'+
1654 '</div>'
1655 );
1656
1657 // Nouveau dossier ajouté
1658 if ( i.return == "1" ){
1659
1660 $(container + ' .message').addClass("ui-state-ok");
1661 $(container + ' .message .text').html("Dossier ajouté avec succès.");
1662 }
1663 //Dossier existe mais non ajouté
1664 else if( i.return == "0" ){
1665
1666 $(container + ' .message').addClass("ui-state-error");
1667 $(container + ' .message .text').html("Une erreur s'est produite lors de l'ajout de ce dossier. " +
1668 "Veuillez contacter votre administrateur");
1669 }
1670 //Le dossier n'existe pas
1671 else if( i.return == "-1" ){
1672
1673 $(container + ' .message').addClass("ui-state-error");
1674 $(container + ' .message .text').html("Ce dossier n'existe pas.");
1675 }
1676 //Le dossier est déjà à l'ordre du jour
1677 else if( i.return == "2" ){
1678
1679 $(container + ' .message').addClass("ui-state-error");
1680 $(container + ' .message .text').html("Ce dossier est deja a l'ordre du jour.");
1681 }
1682
1683 },
1684 async: false
1685 });
1686 }
1687
1688 //Affichage du tableau des dossier_commission possibles
1689 function ajouterTableauDossierCommissionPossible(id){
1690
1691 link = "../app/commission_tableau_dossier_possible.php?idx=" + id ;
1692
1693 $.ajax({
1694 type: "GET",
1695 url: link,
1696 cache: false,
1697 success: function(html){
1698
1699 $('#tabs-2').html(html);
1700 },
1701 async: false
1702 });
1703 }
1704
1705 //Met à jour la liste des dossiers de la commission
1706 function updateCommission(id, container){
1707
1708 var link = "../app/commission_update_dossier.php?idx=" + id ;
1709 var valid = "";
1710 var error = "";
1711 var error_avis = "";
1712
1713 //Affiche du message de retour
1714 $(container + " .message").remove();
1715 $(container).prepend(
1716 '<div class="message ui-widget ui-corner-all ui-state-highlight dossier-ok">'+
1717 '<p>'+
1718 '<span class="ui-icon ui-icon-info"></span>'+
1719 '<span class="text">'+
1720 msg_loading +
1721 '</span>'+
1722 '</p>'+
1723 '</div>'
1724 );
1725
1726 $(container + " input[type='checkbox']").each(
1727 function(index) {
1728
1729 var idxDossier = $(this).val();
1730
1731 link = "../app/commission_update_dossier.php?idx=" + id +
1732 "&idxDossier=" + idxDossier;
1733
1734 //Ajoute ces dossiers de l'ordre du jour
1735 if ( $(this).is(":checked")){
1736
1737 link += "&action=add";
1738 }
1739 //Supprime ces dossiers de l'ordre du jour
1740 else{
1741
1742 link += "&action=remove";
1743 }
1744
1745 //Mise à jour des données
1746 $.ajax({
1747 type: "GET",
1748 url: link,
1749 cache: false,
1750 dataType: "json",
1751 success: function(i, obj){
1752
1753 // Erreur
1754 if( i.error == "0" ){
1755
1756 error += idxDossier + ", ";
1757 }
1758 else if ( i.error == "-1" ) {
1759
1760 error_avis += idxDossier + ", ";
1761 }
1762 else{
1763 valid += idxDossier + ", ";
1764 }
1765 },
1766 async: false
1767 });
1768 }
1769 );
1770
1771 //Ajout du div des erreurs
1772 if ( error != "" || error_avis != "" ){
1773
1774 $(container + " .dossier-ok").after(
1775 '<div class="message ui-widget ui-corner-all ui-state-highlight dossier-err">'+
1776 '<p>'+
1777 '<span class="ui-icon ui-icon-info"></span>'+
1778 '<span class="text">'+
1779 '</span>'+
1780 '</p>'+
1781 '</div>');
1782 }
1783
1784 //le traitement a été effectué avec succés
1785 if ( valid != "" ){
1786
1787 $(container + ' .dossier-ok').addClass("ui-state-ok");
1788 $(container + ' .dossier-ok .text').html("Mise à jour réalisée avec succès pour le(s) dossier(s) : "+
1789 valid.slice(0,valid.length-2) +
1790 ".");
1791 }
1792 else {
1793
1794 $(container + " .dossier-ok").remove();
1795 }
1796 //Une erreur s'est produite
1797 if ( error != "" ) {
1798
1799 $(container + ' .dossier-err').addClass("ui-state-error");
1800 $(container + ' .dossier-err .text').append(
1801 "Dossier : " + error.slice(0,error.length-2) + " déjà plannifié pour une autre commission.");
1802 }
1803 else if ( error_avis != "" ){
1804
1805 $(container + ' .dossier-err').addClass("ui-state-error");
1806 $(container + ' .dossier-err .text').append(
1807 "Un avis a déjà été rendu pour le(s) dossier(s): " +
1808 error_avis.slice(0,error_avis.length-2) +
1809 ".");
1810 }
1811 }
1812
1813
1814 //Récupère les données du type de commission et les mets dans les champs
1815 function chargeDonneesCommissionType(id_commission_type){
1816
1817 //Requête ajax de récupération des données
1818 $.ajax({
1819 type: "GET",
1820 url: "../app/getCommissionTypeInfo.php?idx=" + id_commission_type,
1821 dataType: "json",
1822 async: false,
1823 success: function(data){
1824
1825 // Ajout des données dans les champs
1826 $('#libelle').val(data.libelle);
1827 $('#lieu_adresse_ligne1').val(data.lieu_adresse_ligne1);
1828 $('#lieu_adresse_ligne2').val(data.lieu_adresse_ligne2);
1829 $('#lieu_salle').val(data.lieu_salle);
1830 $('#listes_de_diffusion').val(data.listes_de_diffusion);
1831 $('#participants').val(data.participants);
1832 }
1833 });
1834 }
1835
1836 // Action de diffusion de mails des commissions
1837 function commission_diffusion(idx, obj){
1838
1839 $('#tabs-1 .message').remove();
1840
1841 // Si les données sont fournies
1842 if ( $.isNumeric(idx) && obj != "" ){
1843
1844 //Requête ajax d'envoi des données
1845 $.ajax({
1846 type: "GET",
1847 url: "../app/commission_diffusion.php?idx=" + idx + "&obj=" + obj,
1848 dataType: "json",
1849 async: false,
1850 success: function(data){
1851
1852 $('#tabs-1').prepend(
1853 '<div ' +
1854 'class="message ui-widget ui-corner-all ui-state-highlight">' +
1855 '<p>' +
1856 '<span class="ui-icon ui-icon-info"></span>' +
1857 '<span class="text">' +
1858 '</span>' +
1859 '</p>' +
1860 '</div>'
1861 );
1862
1863 var type = ( obj == "compte_rendu" ) ? "du compte-rendu" : "de l'ordre du jour";
1864 //L'envoi des mails a été effectué avec succés
1865 if ( data.return == 1 ){
1866
1867 $('#tabs-1 .message').addClass("ui-state-valid");
1868 $('#tabs-1 .message .text').html(
1869 "La diffusion " + type + " s'est effectuée avec succès."
1870 );
1871 }
1872 //Un erreur s'est produite
1873 else if ( data.return == -1 ){
1874
1875 $('#tabs-1 .message').addClass("ui-state-error");
1876 $('#tabs-1 .message .text').html(
1877 "Une erreur s'est produite lors de la diffusion " +
1878 type +
1879 ". Veuillez contacter votre administrateur."
1880 );
1881 }
1882 }
1883 });
1884 }
1885 }
1886
1887 /**
1888 * Popup de confirmation pour les traitements
1889 */
1890 //
1891 function trt_confirm() {
1892 //
1893 if (confirm("Etes-vous sur de vouloir confirmer cette action ?")) {
1894 //
1895 return true;
1896 } else {
1897 //
1898 return false;
1899 }
1900 }

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26