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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 838 - (show annotations)
Tue Nov 27 12:03:05 2012 UTC (12 years, 2 months ago) by nhaye
File MIME type: application/javascript
File size: 42887 byte(s)
Finalisation de l'ajout/modification/suppression/visualisation des demandeurs dans le formulaire de demande :
 - amélioration de la synthèse des demandeurs (obj/demandeur.class.php)
 - modification de la gestion des boutons d'ajout de demandeurs (obj/demande.class.php, app/js/script.js, app/afficher_synthese_demandeur.view.php)
 - ajout de fonctions JS permettant la gestion de l'affichage des demandeurs
 - modification de la detection de modification des demandeurs lors de la validation du formulaire de demande (obj/demande.class.php)

1 // specific openfoncier ========================================================
2
3 // Document is ready
4 $(function(){
5
6 /**
7 * Spécifique app/avis_code_barre.php pour donner le focus sur le champ de
8 * recherche au chargement de la page.
9 */
10 $('#avis_code_barre_form #consultation').focus();
11 });
12
13
14 /**
15 * WIDGET liés au formulaire et sousformulaire
16 *
17 * Ces fonctions javascript sont appelées depuis les méthodes setOnChange,
18 * setOnClick, ...
19 */
20 // bible - type httpclick
21 function bible() {
22 if(fenetreouverte==true)
23 pfenetre.close();
24 var ev=document.f2.evenement.value;
25 var idx=document.f2.dossier.value;
26 pfenetre=window.open("../app/bible.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");
27 fenetreouverte=true;
28 }
29 // bible2 - type httpclick
30 function bible2()
31 {
32 if(fenetreouverte==true)
33 pfenetre.close();
34 var ev=document.f2.evenement.value;
35 var idx=document.f2.dossier.value;
36 pfenetre=window.open("../app/bible2.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");
37 fenetreouverte=true;
38 }
39 // bible_auto - type httpclick
40 function bible_auto(){
41 if(fenetreouverte==true)
42 pfenetre.close();
43 var ev=document.f2.evenement.value;
44 var idx=document.f2.dossier.value;
45 pfenetre=window.open("../app/bible_auto.php?idx="+idx+"&ev="+ev,"evenement","width=600,height=300,top=120,left=120");
46 fenetreouverte=true;
47 }
48 // VerifNumdec - type text
49 function VerifNumdec(champ) {
50 champ.value = champ.value.replace(",", "."); // remplacement de la virgule
51 //if (champ.value.lastIndexOf(".") == -1){ // champ decimal
52 if (isNaN(champ.value)) {
53 alert(msg_alert_error_verifnum);
54 champ.value = "";
55 return;
56 }
57 //}
58
59 }
60 // Ce widget permet de charger les données d'un select en ajax
61 function changeDataSelect(tn, ds, joker){
62
63 var id = $("#"+ds+" option:selected").val();
64 link = "../app/listData.php?idx=" + id + "&tn=" + tn + "&ds=" + ds;
65 $.ajax({
66 type: "GET",
67 url: link,
68 cache: false,
69 dataType: "json",
70 success: function(html){
71
72 $('#'+tn).empty();
73
74 if ( joker == true )
75 $('#'+tn).append(
76 '<option value="" selected="selected">*</option>'
77 );
78 else
79 $('#'+tn).append(
80 '<option value="" selected="selected">Choisir ' + tn + '</option>'
81 );
82
83 if ( html !== '' ){
84
85 html = html.split(';');
86 for ( i = 0 ; i < html.length - 1 ; i++ ){
87
88 html_temp = html[i].split('_');
89 $('#'+tn).append(
90 '<option value="'+html_temp[0]+'" >'+html_temp[1]+'</option>'
91 );
92 }
93 }
94 },
95 async: false
96 });
97 }
98 // vuploadMulti - XXX
99 function vuploadMulti(champ) {
100 //
101 if (fenetreouverte == true) {
102 pfenetre.close();
103 }
104 //
105 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");
106 //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");
107 //
108 fenetreouverte = true;
109 }
110 // tmpUpload - Upload XXX
111 function tmpUpload(champ) {
112 //
113 if (fenetreouverte == true) {
114 pfenetre.close();
115 }
116 //
117 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");
118 //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");
119 //
120 fenetreouverte = true;
121 }
122
123
124
125 /**
126 * POPUP pour le téléchargement de fichier
127 *
128 * Ces fonctions javascript sont appelées depuis des onClick sur des
129 * formulaires spécifiques pour permettre de transmettre des paramètres aux
130 * éditions pdf ainsi appelées.
131 */
132 //
133 function dossierads_d(debut)
134 {
135 //if(fenetreouverte==true)
136 window.location="../pdf/pdfetat.php?obj=dossier_ads_d&nature="
137 +document.f1.nature.value+"&idx=demo&datedebut="
138 +document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
139 }
140 //
141 function dossier_m(){
142 window.location="../pdf/pdfetat.php?obj=dossier_m&nature="
143 +document.f1.nature.value+"&idx=demo";
144 }
145 //
146 function dossierdepot()
147 {
148 //if(fenetreouverte==true)
149 window.location="../pdf/pdfetat.php?obj=dossier_depot&nature="+
150 document.f1.nature.value+"&idx=demo&datedebut="+
151 document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
152 }
153 //
154 function dossierads()
155 {
156 //if(fenetreouverte==true)
157 window.location="../pdf/pdfetat.php?obj=dossier_ads&nature="+
158 document.f1.nature.value+"&idx=demo&datedebut="+
159 document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
160 }
161
162 // téléchargement du fichier
163 function file(fichier) {
164 //
165 if (fichier == "") {
166 alert("zone vide");
167 }
168 //
169 pfenetre = window.open("../app/file.php?file="+fichier,"Visualisation","width=100,height=100,top=1,left=150,scrollbars=yes,resizable = yes");
170 //
171 fenetreouverte = true;
172 }
173
174 /**
175 * Retour spécifique de l'écran de consultation multiple - surcharge de ajaxIt
176 * @todo XXX voir les différences avec ajaxIt et si il n'est pas possible
177 * d'effectuer la modification dans le core
178 */
179 function messageIt(objsf, link, empty) {
180 // recuperation du terme recherche
181 var recherche = document.getElementById("recherchedyn");
182 if (recherche != null) {
183 link += "&recherche="+recherche.value;
184 }else {
185 link += "&recherche=";
186 }
187 // execution de la requete en GET
188 $.ajax({
189 type: "GET",
190 url: link,
191 cache: false,
192 success: function(html){
193 (empty == true )?$("#sousform-"+objsf).empty():'';
194 $("#sousform-"+objsf).append(html);
195 om_initialize_content();
196 },
197 async: false
198 });
199 }
200
201 /**
202 * TTélécharegement de fichier pdf en ajax
203 * spécifique de l'écran de consultation multiple
204 */
205 /* Plugin jQuery qui lance un espèce d'appel AJAX vers un script PHP de téléchargement de fichier*/
206 jQuery.download = function(url, data, method){
207 //url and data options required
208 if( url && data ){
209 //data can be string of parameters or array/object
210 data = typeof data == 'string' ? data : jQuery.param(data);
211 //split params into form inputs
212 var inputs = '';
213 jQuery.each(data.split('&'), function(){
214 var pair = this.split('=');
215 inputs+='<input type="hidden" name="'+ pair[0] +'" value="'+ pair[1] +'" />';
216 });
217 //send request
218 jQuery('<form action="'+ url +'" method="'+ (method||'post') +'">'+inputs+'</form>')
219 .prependTo('body').submit().remove();
220 };
221 };
222
223 /**
224 * Cette fonction permet de charger dans un dialog jqueryui un formulaire tel
225 * qu'il aurait été chargé avec ajaxIt
226 *
227 * @param objsf string : objet de sousformulaire
228 * @param link string : lien vers un sousformulaire (../scr/sousform.php...)
229 * @param width integer: width en px
230 * @param height integer: height en px
231 * @param callback function (optionel) : nom de la méthode à appeler
232 * à la fermeture du dialog
233 * @param callbackParams mixed (optionel) : paramètre à traiter dans la function
234 * callback
235 *
236 **/
237 function popupIt(objsf, link, width, height, callback, callbackParams) {
238 // Insertion du conteneur du dialog
239 var dialog = $('<div id=\"sousform-'+objsf+'\"></div>').insertAfter('.formControls');
240 $('<input type=\"text\" name=\"recherchedyn\" id=\"recherchedyn\" value=\"\" class=\"champFormulaire\" style=\"display:none\" />').insertAfter('#sousform-'+objsf);
241
242 // execution de la requete passee en parametre
243 // (idem ajaxIt + callback)
244 $.ajax({
245 type: "GET",
246 url: link,
247 cache: false,
248 success: function(html){
249 //Suppression d'un precedent dialog
250 dialog.empty();
251 //Ajout du contenu recupere
252 dialog.append(html);
253 //Initialisation du theme OM
254 om_initialize_content();
255 //Creation du dialog
256 $(dialog).dialog({
257 //OnClose suppression du contenu
258 close: function(ev, ui) {
259 // Si le formulaire est submit et valide on execute la méthode
260 // passée en paramètre
261 if (typeof(callback) === "function") {
262 callback(callbackParams);
263 }
264 $(this).remove();
265 },
266 resizable: false,
267 modal: true,
268 width: width,
269 height: height,
270 });
271 },
272 async : false
273 });
274 //Fermeture du dialog lors d'un clic sur le bouton retour
275 $('#sousform-'+objsf).on("click",'a.retour',function() {
276 $(dialog).dialog('close').remove();
277 return false;
278 });
279 }
280
281 /***
282 * Fonction getter des paramètres de l'url courante
283 */
284 // Parse URL Queries Method
285 (function($){
286 $.getQuery = function( query ) {
287 query = query.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
288 var expr = "[\\?&]"+query+"=([^&#]*)";
289 var regex = new RegExp( expr );
290 var results = regex.exec( window.location.href );
291 if( results !== null ) {
292 return results[1];
293 return decodeURIComponent(results[1].replace(/\+/g, " "));
294 } else {
295 return false;
296 }
297 };
298 })(jQuery);
299
300
301 /*
302 * Javascript concernant la demande d'avis
303 *
304 *
305 */
306
307 /**
308 * Fonction de callback appellée lors de la fermeture du dialog (popupit)
309 * du retour d'avis d'un service
310 **/
311 function returnToTab(objsf) {
312 var valid=$('#sousform-'+objsf+' div.ui-state-valid');
313 if(valid.length > 0) {
314 document.location.href="../scr/tab.php?obj="+$.getQuery('obj')+"&premier="+$.getQuery('premier')
315 +"&advs_id="+$.getQuery('advs_id')+"&recherche="+$.getQuery('recherche')+"&tricol="+$.getQuery('tricol')
316 +"&selectioncol="+$.getQuery('selectioncol');
317 }
318 };
319
320
321 /*
322 * Javascript concernant la demande
323 *
324 *
325 */
326
327 /**
328 * Function permettant de mettre à jour les infos du demandeur
329 **/
330 function getDemandeurId(type) {
331 var id_demandeur=$('#id_retour').val();
332 if($.isNumeric(id_demandeur)) {
333 if(type != 'petitionnaire') {
334 $('#add_'+type).hide();
335 }
336
337 afficherDemandeur(id_demandeur,type);
338 om_initialize_content();
339 }
340 }
341
342 /**
343 * Fonction permettant d'afficher la synthèse d'un demandeur
344 */
345 function afficherDemandeur(id,type) {
346 $.ajax({
347 type: "GET",
348 url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+id+'&type='+type,
349 cache: false,
350 success: function(html){
351 $(html).insertBefore('#add_'+type).fadeIn(500);;
352 }
353 });
354 }
355
356 /**
357 * Function permettant de modifier un demandeur
358 */
359 function editDemandeur(id,type,id_css) {
360 popupIt(type,
361 '../scr/sousform.php?obj='+type+'&action=1'+
362 '&retourformulaire=demande&idx='+id, 780, 500,
363 replaceDemandeur, {'type':type,'id': id, 'id_css':id_css});
364 changeDemandeurType('qualite');
365 addSearchIcon();
366 addDivDialog('.bloc_demandeur');
367 }
368
369 /**
370 * Function permettant de remplacer un contenu déjà existant
371 **/
372 function replaceDemandeur(obj) {
373 $.ajax({
374 type: "GET",
375 url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+obj.id+'&type='+obj.type,
376 cache: false,
377 success: function(html){
378 $(obj.id_css).replaceWith(html);
379 }
380 });
381 }
382 /**
383 * Function permettant de remplacer un contenu déjà existant
384 **/
385 function removeDemandeur(id) {
386 var div_class=$('#'+id).attr("class");
387 $('#'+id).remove();
388 if(div_class == "delegataire") {
389 $('#add_delegataire').fadeIn(500);
390 }
391 if(div_class == "petitionnaire_principal") {
392 $('#add_petitionnaire_principal').fadeIn(500);
393 }
394 }
395
396 /**
397 * Appel au chargement de la page
398 **/
399 $(function() {
400 changeDemandeurType('qualite');
401 if ( $('#type_demandeur') == 'petitionnaire' ){
402
403 addSearchIcon();
404 addDivDialog('.bloc_demandeur');
405 }
406 if($('input[name=petitionnaire_principal][type=hidden]').size() == 1) {
407 $('#add_petitionnaire_principal').hide();
408 }
409 if($('input[name=delegataire][type=hidden]').size() == 1) {
410 $('#add_delegataire').hide();
411 }
412 // Bind de la fonction permettant l'ajout du pétitionnaire principal
413 $("#formulaire").on("click","#add_petitionnaire_principal", function() {
414 popupIt('petitionnaire',
415 '../scr/sousform.php?obj=petitionnaire&action=0'+
416 '&retourformulaire=demande&principal=true', 780, 500,
417 getDemandeurId, 'petitionnaire_principal');
418
419 changeDemandeurType('qualite');
420 addSearchIcon();
421 addDivDialog('.bloc_demandeur');
422 });
423 // Bind de la fonction permettant l'ajout du délégataire
424 $("#formulaire").on("click","#add_delegataire", function(event) {
425 popupIt('delegataire',
426 '../scr/sousform.php?obj=delegataire&action=0'+
427 '&retourformulaire=demande', 780, 500,
428 getDemandeurId, 'delegataire');
429 changeDemandeurType('qualite');
430 addSearchIcon();
431 addDivDialog('.bloc_demandeur');
432 });
433 // Bind de la fonction permettant l'ajout des pétitionnaires
434 $("#formulaire").on("click","#add_petitionnaire", function(event) {
435 popupIt('petitionnaire',
436 '../scr/sousform.php?obj=petitionnaire&action=0'+
437 '&retourformulaire=demande', 780, 500,
438 getDemandeurId, 'petitionnaire');
439 changeDemandeurType('qualite');
440 addSearchIcon();
441 addDivDialog('.bloc_demandeur');
442 });
443
444
445 url = document.location + "" ;
446 if (url.indexOf("form.php?obj=demande&") != -1
447 && url.indexOf("&action=0") != -1 ){
448 /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
449 hideFields();
450 }
451
452 if (url.indexOf("form.php?obj=demande&") != -1
453 && url.indexOf("&action=1") != -1 ){
454
455 formatFieldReferenceCadastrale();
456 }
457 });
458
459 /*
460 * Action sur les champs pour les références cadastrales
461 */
462 function formatFieldReferenceCadastrale(){
463 addNewFieldReferencesCadastrales();
464 $('#terrain_references_cadastrales').parent().parent().hide();
465
466 reference_cadastrale = $('#terrain_references_cadastrales').val();
467 /*Formatage de la reference cadastrale*/
468 if ( reference_cadastrale != '' ){
469
470 /* Récupère la référence cadastrale non formatée */
471 references_cadastrales = reference_cadastrale.split(';');
472 donnees = new Array();
473
474 i = 0 ;
475 /* Boucle sur les références, elles étaient séparées par un ; */
476 for ( l = 0 ; l < references_cadastrales.length - 1 ; l ++ ){
477
478 /*Récupère le code impots du qartier [CHIFFRES]*/
479 k = 0;
480 donnees[i] = '';
481 for ( j = k ; j < references_cadastrales[l].length ; j++ ){
482
483 if ( references_cadastrales[l].charAt(j) >= 0 &&
484 references_cadastrales[l].charAt(j) <= 9 ){
485
486 donnees[i] += references_cadastrales[l].charAt(j);
487 k++;
488
489 } else {
490
491 i++;
492 break;
493 }
494 }
495
496 /* Récupère la section [LETTRES] */
497 donnees[i] = '';
498 for ( j = k ; j < references_cadastrales[l].length ; j++ )
499 if ( isAlpha(references_cadastrales[l].charAt(j)) ){
500
501 donnees[i] += references_cadastrales[l].charAt(j);
502 k++;
503
504 } else {
505
506 i++;
507 break;
508 }
509
510 /* Récupère la parcelle [CHIFFRES] */
511 donnees[i] = '';
512 for ( j = k ; j < references_cadastrales[l].length ; j++ )
513 if ( references_cadastrales[l].charAt(j) >= 0 &&
514 references_cadastrales[l].charAt(j) <= 9 ){
515
516 donnees[i] += references_cadastrales[l].charAt(j);
517 k++;
518
519 } else {
520
521 break;
522 }
523
524 /* Récupère les séparateurs [ A / ] et les sections */
525 m = 0 ;
526 if ( k < references_cadastrales[l].length ){
527
528 for ( j = k ; j < references_cadastrales[l].length ; j++ )
529 if ( isAlpha(references_cadastrales[l].charAt(j)) ){
530
531 m++;
532 donnees[++i] = references_cadastrales[l].charAt(j);
533 donnees[++i] = '';
534 }
535 else {
536
537 donnees[i] += references_cadastrales[l].charAt(j);
538 }
539 }
540
541 /*Créé autant de champs de que de référence */
542 donnees[++i] = ';';
543 i++;
544
545 if ( l > 0 ) {
546
547 $('.reference_cadastrale_custom_fields').append(
548 "<br/>" + fieldReferenceCadastraleBase()
549 );
550 }
551
552 actionFormReferenceCadastrale();
553
554 if ( m > 0 ){
555
556 for ( j = 0 ; j < m ; j++ ){
557
558 $('#moreFieldReferenceCadastrale' +
559 ( $('.moreFieldReferenceCadastrale').length - 1 ) ).
560 before(
561 newInputReferenceCadastrale()
562 );
563 }
564 }
565 }
566 /* Action sur les boutons [+ ajouter d'autres champs] et [+ ajouter
567 * d'autres lignes] */
568 actionLineFormReferenceCadastrale();
569
570 /* Ajoute les données dans les champs nouvellement créés */
571 $('.reference_cadastrale_custom_field').each(
572 function(index) {
573
574 $(this).val(donnees[index])
575 }
576 );
577 }
578 else{
579 actionFormReferenceCadastrale();
580 actionLineFormReferenceCadastrale();
581 }
582 }
583
584 /*
585 * Ajoute les icônes pour la recherche de pétitionnaire fréquent.
586 */
587 function addSearchIcon(){
588
589 /*Ajout de l'icône après le champs du prénom du particulier*/
590 $('.search_particulier_fields input').
591 last().
592 after(
593 '<span '+
594 'class="om-icon om-icon-16 om-icon-fix search-part-16" '+
595 'title="Chercher un petitionnaire">'+
596 '</span>'
597 );
598
599 /*Ajout de l'icône après le champs dénomination et nom de la personne morale*/
600 $('.search_personne_morale_fields input').each(
601 function(){
602 $(this).
603 after(
604 '<span '+
605 'class="om-icon om-icon-16 om-icon-fix search-mor-16" '+
606 'title="Chercher un petitionnaire"> '+
607 '</span>'
608 );
609 }
610 );
611
612 addActionSearchIcon('#sousform-petitionnaire #form-content');
613 }
614
615 /*
616 * Ajoute les actions sur les icônes de recherche
617 */
618 function addActionSearchIcon(id){
619
620 /*Si on recherche un pétitionnaire de type particulier*/
621 $(' .search-part-16').click(
622 function(){
623
624 /*Le champ nom du particulier doit contenir au moins trois lettres*/
625 if ( $('#particulier_nom').val().length < 3 ||
626 $('#particulier_prenom') < 3 ){
627
628 alert('Saisissez au moins trois lettres pour la recherche');
629 return;
630 }
631
632 /*Données des champs nom et prénom du particulier*/
633 var donnees = "?qualite=particulier"+
634 "&par_nom=" + $('.search_particulier_fields #particulier_nom').val() +
635 "&par_prenom=" + $('.search_particulier_fields #particulier_prenom').val();
636
637 /* Requête qui va récupérer les données duaddSearchIcon(es) pétitionnaire(s)
638 * correspondant(s) à la recherche */
639 $.ajax({
640 type: "GET",
641 url: "../app/findPetitionnaire.php" + donnees ,
642 cache: false,
643 success: function(html){
644
645 res = 'Auncune correspondance trouvée.';
646
647 /*Si la recherche a donné des résultats*/
648 if ( html.length > 2 ){
649
650 res = '' ;
651 donnees = html.split(';');
652 nbRes = donnees.length;
653
654 /*Limitation des résultats à 50 */
655 if ( nbRes > 50 ){
656
657 nbRes = 50;
658 res = 'Votre recherche a donn&eacute; ' + donnees.length
659 + ' r&eacute;sultats. Seul les cinquantes premiers ' +
660 'seront affich&eacute;s.<br/>';
661 }
662
663 res += '<select>' ;
664
665 /* Met les résultats de la recherche dans un select */
666 for ( i = 0 ; i < nbRes - 1 ; i++ ){
667
668 val = donnees[i].replace('"', '');
669 line = donnees[i].split('_');
670
671 if ( line[3] != '' ){
672
673 line[3] = ' - ' + line[3];
674 }
675
676 res += '<option value="' + val + '">' +
677 line[1] + ' ' + line[2] + line[3] +
678 '</option>';
679 }
680
681 res += '</select>' ;
682 }
683
684 /* Affichage de l'overlay */
685 $('#dialog').html(res);
686
687 $( "#dialog" ).dialog({
688 modal: true,
689 buttons : {
690 Valider: function(){
691
692 /*Action à l'appui sur le bouton valider*/
693 if ( res != 'Auncune correspondance trouvée.' ){
694
695 /*Vide les valeurs des champs*/
696 emptyFields(id);
697
698 donnees = $('#dialog select option:selected').val();
699 donnees = donnees.split('_');
700
701 if ( $.isNumeric(donnees[4]) ){
702 $('#particulier_civilite ' +
703 'option[value="' + $.trim(donnees[4]) + '"]').
704 attr('selected','selected');
705 }
706
707 $('#particulier_nom').
708 val($.trim(donnees[1]));
709
710 $('#particulier_prenom').
711 val($.trim(donnees[2]));
712
713 /*Vérifie si la date est non vide avant de la traiter*/
714 date_temp = $.trim(donnees[3]);
715 if ( date_temp != '' ){
716
717 date = date_temp.split('-');
718 date = date[2] + "/" + date[1] + "/" + date[0] ;
719 $('#particulier_date_naissance').
720 val(date);
721
722 }
723 $('#particulier_commune_naissance').
724 val($.trim(donnees[10]));
725 $('#particulier_departement_naissance').
726 val($.trim(donnees[11]));
727
728 changeValInputDemandeur(donnees);
729 }
730
731 /*Fermeture de l'overlay*/
732 $(this).dialog( "close" );
733 }
734 }
735 });
736 },
737 async: false
738 });
739 }
740 );
741
742 /*Si on recherche un pétitionnaire de type personne morale*/
743 $('.search-mor-16').click(
744 function(){
745
746 /*Le champ nom du particulier doit contenir au moins trois lettres*/
747 if ( $('#personne_morale_denomination').val().length < 3 ||
748 $('#personne_morale_nom') < 3 ){
749
750 alert('Saisissez au moins trois lettres pour la recherche');
751 return;
752 }
753
754 /*Données des champs dénomination et nom de la personne morale*/
755 var donnees = "?qualite=personne_morale"+
756 "&mor_denomination="+$('#personne_morale_denomination').val() +
757 "&mor_nom="+$('#personne_morale_nom').val();
758
759 /* Requête qui va récupérer les données du(es) pétitionnaire(s)
760 * correspondant(s) à la recherche */
761 $.ajax({
762 type: "GET",
763 url: "../app/findPetitionnaire.php" + donnees ,
764 cache: false,
765 success: function(html){
766
767 res = 'Auncune correspondance trouvée.';
768
769 /*Si la recherche a donné des résultats*/
770 if ( html.length > 2 ){
771
772 res = '' ;
773 donnees = html.split(';');
774 nbRes = donnees.length;
775
776 /*Limitation des résultats à 50 */
777 if ( nbRes > 50 ){
778
779 nbRes = 50;
780 res = 'Votre recherche a donn&eacute; ' + donnees.length
781 + ' r&eacute;sultats. Seul les cinquantes premiers ' +
782 'seront affich&eacute;s.<br/>';
783 }
784
785 res += '<select>' ;
786
787 /* Met les résultats de la recherche dans un select */
788 for ( i = 0 ; i < nbRes - 1 ; i++ ){
789
790 val = donnees[i].replace('"', '');
791 line = donnees[i].split('_');
792
793 res += '<option value="' + val + '">' +
794 line[5] + ' ' + line[6] +
795 '</option>';
796 }
797
798 res += '</select>' ;
799 }
800
801 /* Affichage de l'overlay */
802 $('#dialog').html(res);
803
804 $( "#dialog" ).dialog({
805 modal: true,
806 buttons : {
807 Valider: function(){
808
809 /*Vide les valeurs des champs*/
810 emptyFields(id);
811
812 /*Action à l'appui sur le bouton valider*/
813 if ( res != 'Auncune correspondance trouvée.' ){
814 donnees = $('#dialog select option:selected').val();
815 donnees = donnees.split('_');
816
817 if ( $.isNumeric(donnees[8]) ){
818
819 $('#personne_morale_civilite ' +
820 'option[value="' + $.trim(donnees[8]) + '"]').
821 attr('selected','selected');
822 }
823
824 $('#personne_morale_denomination').
825 val($.trim(donnees[5]));
826
827 $('#personne_morale_raison_sociale').
828 val($.trim(donnees[12]));
829
830 $('#personne_morale_siret').
831 val($.trim(donnees[6]));
832
833 $('#personne_morale_categorie_juridique').
834 val($.trim(donnees[13]));
835
836 $('#personne_morale_nom').
837 val($.trim(donnees[7]));
838
839 $('#personne_morale_prenom').
840 val($.trim(donnees[9]));
841
842 changeValInputDemandeur(donnees);
843 }
844
845 /*Fermeture de l'overlay*/
846 $(this).dialog( "close" );
847 }
848 }
849 });
850 },
851 async: false
852 });
853 }
854 );
855
856 }
857
858 /*
859 * Vide les champs avant d'y mettre les nouvelles informations
860 */
861 function emptyFields(id){
862 $(id + ' input').each(
863 function(){
864 $(this).val('');
865 }
866 );
867
868 $(id + ' select option[value=""]').each(
869 function(){
870
871 /*Ne pas remettre à zéro le select concernant la qualite du demandeur*/
872 if ( $(this).attr('id') != 'qualite' ) {
873
874 $(this).attr('selected', 'selected');
875 }
876 }
877 );
878
879 $(id + ' input[type="checkbox"]').each(
880 function(){
881 $(this).val('');
882 $(this).removeAttr('checked');
883 }
884 );
885 }
886
887 /*
888 Change les valeurs des champs en commun des particuliers et des personnes morales
889 Lié à la fonction addActionSearch
890
891 * */
892 function changeValInputDemandeur( donnees){
893
894 $('input[id="demandeur"]').val($.trim(donnees[0]));
895
896 /*Teste si la valeur retournée est TRUE*/
897 if ( donnees[28] === 't' ){
898
899 $('#notification').attr('checked', 'checked');
900 $('#notification').val('Oui');
901 }
902
903 $('#sousform-petitionnaire #frequent').attr('checked','checked');
904 $('#sousform-petitionnaire #frequent').val('Oui');
905 $('#sousform-petitionnaire #numero').val($.trim(donnees[14]));
906 $('#sousform-petitionnaire #voie').val($.trim(donnees[15]));
907 $('#sousform-petitionnaire #complement').val($.trim(donnees[16]));
908 $('#sousform-petitionnaire #lieu_dit').val($.trim(donnees[17]));
909 $('#sousform-petitionnaire #localite').val($.trim(donnees[18]));
910 $('#sousform-petitionnaire #code_postal').val($.trim(donnees[19]));
911 $('#sousform-petitionnaire #bp').val($.trim(donnees[20]));
912 $('#sousform-petitionnaire #cedex').val($.trim(donnees[21]));
913 $('#sousform-petitionnaire #pays').val($.trim(donnees[22]));
914 $('#sousform-petitionnaire #division_territoriale').val($.trim(donnees[23]));
915 $('#sousform-petitionnaire #telephone_fixe').val($.trim(donnees[24]));
916 $('#sousform-petitionnaire #telephone_mobile').val($.trim(donnees[25]));
917 $('#sousform-petitionnaire #indicatif').val($.trim(donnees[26]));
918 $('#sousform-petitionnaire #courriel').val($.trim(donnees[27]));
919 $('#sousform-petitionnaire #type_demandeur').val($.trim(donnees[29]));
920 }
921
922 /*
923 * Ajoute un div pour l'overlay dialog de jQuery
924 */
925 function addDivDialog(id){
926
927 $(id).prepend('<div id="dialog"></div>');
928 }
929
930 /*
931 Action au changement du select de la qualite du demandeur
932 * */
933 function changeDemandeurType(id){
934
935 /*Si la qualite du demandeur est particulier */
936 if ( $('#' + id + ' option:selected').val() == 'particulier' ){
937
938 $('.personne_morale_fields input').each(
939 function(){
940 $(this).val('');
941 }
942 );
943 $('.personne_morale_fields select option[value=""]').each(
944 function(){
945 $(this).attr('selected', 'selected');
946 }
947 );
948
949 $('.personne_morale_fields').hide();
950 $('.particulier_fields').show();
951 }
952 else {
953
954 $('.particulier_fields input').each(
955 function(){
956 $(this).val('');
957 }
958 );
959 $('.particulier_fields select option[value=""]').each(
960 function(){
961 $(this).attr('selected', 'selected');
962 }
963 );
964
965 $('.particulier_fields').hide();
966 $('.personne_morale_fields').show();
967 }
968 }
969
970 /*
971 Function de test des champs
972 * */
973 function isAlpha(str) {
974 return /^[a-zA-Z\/]+$/.test(str);
975 }
976
977 function isMail(str){
978 return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(str);
979 }
980
981 function isPhoneNumber(str){
982 return /[0-9-()+]{3,20}/.test(str);
983 }
984
985 function testSeparator(obj){
986
987 if ( obj.value != 'A' &&
988 obj.value != '/' ) {
989
990 alert('Saisissez uniquement un A ou un / comme séparateur');
991 obj.value = '';
992 }
993 }
994
995 /* FIN */
996
997 /*
998 Ajoute les ations spécifiques pour le formulaire personnalisé d'ajout de
999 référence cadastrale
1000 * */
1001 function actionFormReferenceCadastrale(){
1002 $('form').submit(
1003 function(){
1004
1005 getDataFieldReferenceCadastrale();
1006 }
1007 );
1008
1009 $('#moreFieldReferenceCadastrale' +
1010 ($('.moreFieldReferenceCadastrale').length - 1 )).
1011 on("click", function() {
1012 $(this).before(newInputReferenceCadastrale());
1013 });
1014
1015 }
1016
1017 /*
1018 * Récupère les données saisies dans les champs de références cadastrales
1019 */
1020 function getDataFieldReferenceCadastrale(){
1021
1022 var reference_cadastrale = '';
1023 var reference_cadastrale_temp = '';
1024
1025 $('.reference_cadastrale_custom_field').each(
1026 function(){
1027
1028 if ( $(this).val() == ';' ){
1029
1030 reference_cadastrale_bis = reference_cadastrale_temp ;
1031
1032 while( reference_cadastrale_bis != ''){
1033 if ( /^([0-9]{1,4}[a-zA-Z]{1,3}[0-9]{1,5}([A\/]{1}[0-9]{1,4})*)*$/.test(reference_cadastrale_bis) ){
1034
1035 reference_cadastrale += reference_cadastrale_bis + ";";
1036 break;
1037 }
1038 else{
1039
1040 reference_cadastrale_bis = reference_cadastrale_bis.slice( 0, -1);
1041 }
1042 }
1043
1044
1045 reference_cadastrale_temp = '';
1046 }
1047
1048 else {
1049
1050 reference_cadastrale_temp += $(this).val();
1051 }
1052
1053 }
1054 );
1055
1056 $('#terrain_references_cadastrales').val(reference_cadastrale);
1057 }
1058
1059 /*
1060 Action pour l'ajout de nouvelle ligne
1061 * */
1062 function actionLineFormReferenceCadastrale(){
1063 $('#morelineReferenceCadastrale').click(
1064 function(){
1065
1066 $('.reference_cadastrale_custom_fields').
1067 append( "<br/>" + fieldReferenceCadastraleBase());
1068
1069 $('#moreFieldReferenceCadastrale'+
1070 ($('.moreFieldReferenceCadastrale').length - 1 )).
1071 on("click", function() {
1072 $(this).before(newInputReferenceCadastrale());
1073 });
1074
1075
1076 }
1077 );
1078 }
1079
1080 /*
1081 Met à jour le select demande_type dès qu'un
1082 dossier_autorisation_type_detaille est choisi
1083 * */
1084 function changeDemandeType(){
1085
1086 var idDossierAutorisationTypeDetaille =
1087 $("#dossier_autorisation_type_detaille option:selected").val();
1088
1089 /* Récupère les données saisies dans les champs pour la référence cadastrale */
1090 getDataFieldReferenceCadastrale();
1091
1092 if ( $.isNumeric(idDossierAutorisationTypeDetaille) ){
1093
1094 changeDataSelect('demande_type','dossier_autorisation_type_detaille');
1095 if ( $('#demande_type option').size() < 2 )
1096 showFormsDemande();
1097
1098 $('#demande_type').parent().parent().show();
1099
1100 formatFieldReferenceCadastrale();
1101 }
1102 else {
1103 hideFields();
1104 }
1105 }
1106
1107 /*
1108 Ajoute le code HTML des champs pour les références cadastrales
1109 * */
1110 function addNewFieldReferencesCadastrales(){
1111 $('.references_cadastrales_new_field').remove();
1112 $('.moreFieldReferenceCadastrale').remove();
1113 $('#morelineReferenceCadastrale').remove();
1114 $('.buttonCadAdr').remove();
1115 $('.localisation .fieldsetContent').prepend(
1116 '<div class="field field-type-text references_cadastrales_new_field" >'+
1117 '<div class="form-libelle">' +
1118 '<label '+
1119 'class="libelle-terrain_references_cadastrales" '+
1120 'for="terrain_references_cadastrales">'+
1121 ' terrain_references_cadastrales '+
1122 '</label>' +
1123 '</div>' +
1124 '<div class="form-content reference_cadastrale_custom_fields">' +
1125 fieldReferenceCadastraleBase() +
1126 '</div>' +
1127 '</div>' +
1128 '<div class="field field-type-text" id="morelineReferenceCadastrale">' +
1129 '<div class="form-libelle"></div>' +
1130 '<div class="form-content">' +
1131 ' + ajouter d\'autres lignes' +
1132 '</div>' +
1133 '</div>'
1134 );
1135 $('#terrain_superficie').parent().parent().after('<div class="field field-type-text" >' +
1136 '<div class="form-libelle"></div>' +
1137 '<div class="form-content buttonCadAdr">' +
1138 '<input id="cad-adr-them" class="ui-button ui-widget ui-state-default ui-corner-all" type="button" value="Cadastrale < = > Adresse"/>' +
1139 '</div>' +
1140 '</div>' );
1141 }
1142
1143 /*
1144 Séparateur caché ;
1145 * */
1146 function hiddenSeparatorField(){
1147 return '<input ' +
1148 'class="reference_cadastrale_custom_field " ' +
1149 'type="hidden" ' +
1150 'maxlength="2" ' +
1151 'size="2" ' +
1152 'value=";" />';
1153 }
1154
1155 /*
1156 Ajout d'une nouvelle ligne de champ
1157 * */
1158 function fieldReferenceCadastraleBase(){
1159 return '<input ' +
1160 'class="champFormulaire reference_cadastrale_custom_field" ' +
1161 'type="text" ' +
1162 'onchange="VerifNum(this)" ' +
1163 'maxlength="4" ' +
1164 'size="4" ' +
1165 'value="" />' +
1166 '<input ' +
1167 'class="champFormulaire reference_cadastrale_custom_field" ' +
1168 'type="text" ' +
1169 'maxlength="3" ' +
1170 'size="3" ' +
1171 'value="" '+
1172 'onchange="if ( !isAlpha(this.value) ){ alert(\'Vous ne devez saisir que des lettres dans ce champs.\'); this.value = \'\'; }"/>' +
1173 '<input ' +
1174 'class="champFormulaire reference_cadastrale_custom_field" ' +
1175 'type="text" ' +
1176 'onchange="VerifNum(this)" ' +
1177 'maxlength="5" ' +
1178 'size="5" ' +
1179 'value="" />' +
1180 '<span id="moreFieldReferenceCadastrale' + $('.moreFieldReferenceCadastrale').length + '" class="moreFieldReferenceCadastrale">' +
1181 hiddenSeparatorField() +
1182 ' + ajouter d\'autres champs' +
1183 '</span>';
1184 }
1185
1186 /**
1187 * Cache les champs inutules
1188 **/
1189 function hideFields(){
1190 $('.demande_hidden_bloc').each(
1191 function(){
1192 $(this).hide();
1193 }
1194 );
1195
1196 $('.field-type-text').hide();
1197 $('input[type=submit]').hide();
1198 $('#demande_type').parent().parent().hide();
1199 }
1200
1201 /*
1202 Affiche les champs dont on a besoin
1203 * */
1204 function showFormsDemande(){
1205 $('.demande_hidden_bloc').each(
1206 function(){
1207 $(this).show();
1208 }
1209 );
1210
1211 $('.field-type-text').show();
1212 $('input[type=submit]').show();
1213 $('.terrain_references_cadastrales_custom').hide();
1214
1215 $('#terrain_references_cadastrales').parent().parent().hide();
1216 }
1217
1218 /*
1219 Action au clique sur le bouton " + ajouter d'autres champs"
1220 * */
1221 function newInputReferenceCadastrale(){
1222 return '<input ' +
1223 'class="champFormulaire reference_cadastrale_custom_field" ' +
1224 'type="text" ' +
1225 'maxlength="1" ' +
1226 'size="1" ' +
1227 'value="" ' +
1228 'onchange="testSeparator(this);"/>' +
1229 '<input ' +
1230 'class="champFormulaire reference_cadastrale_custom_field" ' +
1231 'type="text" ' +
1232 'onchange="VerifNum(this)" ' +
1233 'maxlength="4" ' +
1234 'size="4" ' +
1235 'value="" />';
1236 }
1237
1238
1239
1240 /**
1241 * Desactivation des fonctions widget du tableau de bord inutiles sur le nouveau
1242 * tableau de bord
1243 */
1244 function widget_bind_move_actions() {}
1245 function widget_bind_add_action() {}
1246 function widget_bind_edit_actions(widget_selector) {}
1247

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26