/[openfoncier]/branches/3.2.x/app/js/script.js
ViewVC logotype

Contents of /branches/3.2.x/app/js/script.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 828 - (show annotations)
Fri Nov 23 17:50:13 2012 UTC (12 years, 2 months ago) by nhaye
Original Path: trunk/app/js/script.js
File MIME type: application/javascript
File size: 42087 byte(s)
Modification de l'ajout de petitionnaires et delegataire dans une demande.
Ajout de bouton ouvrant des overlay permettant l'ajouts des demandeurs
Implémentation de la recupération des données lors de l'ouverture du formulaire
Corrections concernant le formulaire des demandeurs pour l'affichage en overlay

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26