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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 828 - (hide annotations)
Fri Nov 23 17:50:13 2012 UTC (12 years, 2 months ago) by nhaye
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 fraynaud 88 // specific openfoncier ========================================================
2 fmichon 784
3     // Document is ready
4 nhaye 585 $(function(){
5 fmichon 784
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 nhaye 585 $('#avis_code_barre_form #consultation').focus();
11     });
12 fraynaud 88
13 nhaye 585
14 fmichon 784 /**
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 fraynaud 88 if(fenetreouverte==true)
23     pfenetre.close();
24     var ev=document.f2.evenement.value;
25     var idx=document.f2.dossier.value;
26 fraynaud 343 pfenetre=window.open("../app/bible.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");
27 fraynaud 88 fenetreouverte=true;
28     }
29 fmichon 784 // bible2 - type httpclick
30 fraynaud 88 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 fraynaud 343 pfenetre=window.open("../app/bible2.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");
37 fraynaud 88 fenetreouverte=true;
38     }
39 fmichon 784 // bible_auto - type httpclick
40 fraynaud 88 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 fraynaud 90 pfenetre=window.open("../app/bible_auto.php?idx="+idx+"&ev="+ev,"evenement","width=600,height=300,top=120,left=120");
46 fraynaud 88 fenetreouverte=true;
47     }
48 fmichon 784 // 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 fraynaud 88
123 fmichon 784
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 fraynaud 88 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 fmichon 784 //
141 fraynaud 88 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 fmichon 784 //
149 fraynaud 88 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 fmichon 784 // 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 fraynaud 271
169 fmichon 784 /**
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 vpihour 534 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 vpihour 558 // execution de la requete en GET
183 vpihour 534 $.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 vpihour 536
196 fmichon 784 /**
197     * TTélécharegement de fichier pdf en ajax
198     * spécifique de l'écran de consultation multiple
199     */
200 vpihour 536 /* 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 fmichon 784 /**
219     * Cette fonction permet de charger dans un dialog jqueryui un formulaire tel
220     * qu'il aurait été chargé avec ajaxIt
221 nhaye 800 *
222     * @param objsf string : objet de sousformulaire
223     * @param link string : lien vers un sousformulaire (../scr/sousform.php...)
224 nhaye 801 * @param width integer: width en px
225     * @param height integer: height en px
226 nhaye 800 * @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 fmichon 784 *
231 nhaye 800 **/
232 nhaye 801 function popupIt(objsf, link, width, height, callback, callbackParams) {
233 nhaye 544 // 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 nhaye 800 // 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 nhaye 557 }
259 nhaye 544 $(this).remove();
260     },
261     resizable: false,
262     modal: true,
263 nhaye 801 width: width,
264     height: height,
265 nhaye 544 });
266     },
267     async : false
268     });
269 nhaye 802 //Fermeture du dialog lors d'un clic sur le bouton retour
270 nhaye 544 $('#sousform-'+objsf).on("click",'a.retour',function() {
271     $(dialog).dialog('close').remove();
272     });
273     return false;
274     }
275 nhaye 557
276 fmichon 784 /***
277 nhaye 800 * Fonction getter des paramètres de l'url courante
278 fmichon 784 */
279 nhaye 557 // Parse URL Queries Method
280     (function($){
281 nhaye 800 $.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 nhaye 557 })(jQuery);
294 vpihour 558
295 vpihour 641
296 vpihour 793 /*
297 nhaye 800 * Javascript concernant la demande d'avis
298     *
299     *
300     */
301    
302 nhaye 802 /**
303     * Fonction de callback appellée lors de la fermeture du dialog (popupit)
304     * du retour d'avis d'un service
305     **/
306 nhaye 800 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 vpihour 793 * Javascript concernant la demande
318     *
319     *
320     */
321 fmichon 784
322 nhaye 807 /**
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 nhaye 828 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 nhaye 807 }
342    
343 nhaye 828 /**
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 vpihour 664 /*
358 vpihour 793 * 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 nhaye 828 Ajoute le formulaire d'ajout de référence cadastrale personnalisé
373 vpihour 664 * */
374     $(function() {
375 vpihour 805 changeDemandeurType('qualite');
376 vpihour 823 if ( $('#type_demandeur') == 'petitionnaire' ){
377    
378     addSearchIcon();
379     addDivDialog('.bloc_demandeur');
380     }
381 nhaye 828
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 vpihour 664 url = document.location + "" ;
415 nhaye 828 if (url.indexOf("form.php?obj=demande") != -1
416     && url.indexOf("&action=0") != -1 ){
417 vpihour 793 /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
418 vpihour 664 hideFields();
419 vpihour 676 }
420 vpihour 664
421 nhaye 828 if (url.indexOf("form.php?obj=demande") != -1
422     && url.indexOf("&action=1") != -1 ){
423 vpihour 664
424 vpihour 812 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 vpihour 664
447 vpihour 812 /*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 vpihour 664
452 vpihour 812 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 vpihour 793
458 vpihour 812 } 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 vpihour 793
485 vpihour 812 donnees[i] += references_cadastrales[l].charAt(j);
486     k++;
487    
488     } else {
489    
490     break;
491 vpihour 793 }
492 vpihour 812
493     /* Récupère les séparateurs [ A / ] et les sections */
494     m = 0 ;
495     if ( k < references_cadastrales[l].length ){
496 vpihour 669
497     for ( j = k ; j < references_cadastrales[l].length ; j++ )
498     if ( isAlpha(references_cadastrales[l].charAt(j)) ){
499 vpihour 793
500 vpihour 812 m++;
501     donnees[++i] = references_cadastrales[l].charAt(j);
502     donnees[++i] = '';
503     }
504     else {
505 vpihour 793
506 vpihour 669 donnees[i] += references_cadastrales[l].charAt(j);
507 vpihour 664 }
508 vpihour 812 }
509    
510     /*Créé autant de champs de que de référence */
511     donnees[++i] = ';';
512     i++;
513 vpihour 669
514 vpihour 812 if ( l > 0 ) {
515 vpihour 793
516 vpihour 812 $('.reference_cadastrale_custom_fields').append(
517     "<br/>" + fieldReferenceCadastraleBase()
518     );
519 vpihour 664 }
520    
521 vpihour 812 actionFormReferenceCadastrale();
522    
523     if ( m > 0 ){
524    
525     for ( j = 0 ; j < m ; j++ ){
526 vpihour 793
527 vpihour 812 $('#moreFieldReferenceCadastrale' +
528     ( $('.moreFieldReferenceCadastrale').length - 1 ) ).
529     before(
530     newInputReferenceCadastrale()
531     );
532 vpihour 664 }
533 vpihour 812 }
534 vpihour 664 }
535 vpihour 812 /* 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 vpihour 641
553 vpihour 664 /*
554 vpihour 805 * 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 nhaye 828 addActionSearchIcon('#sousform-petitionnaire #form-content');
582 vpihour 768 }
583    
584 vpihour 741 /*
585 vpihour 805 * Ajoute les actions sur les icônes de recherche
586     */
587     function addActionSearchIcon(id){
588 vpihour 741
589 vpihour 793 /*Si on recherche un pétitionnaire de type particulier*/
590 vpihour 805 $(' .search-part-16').click(
591 vpihour 741 function(){
592    
593 vpihour 805 /*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 vpihour 793 /*Données des champs nom et prénom du particulier*/
602 vpihour 805 var donnees = "?qualite=particulier"+
603     "&par_nom=" + $('.search_particulier_fields #particulier_nom').val() +
604     "&par_prenom=" + $('.search_particulier_fields #particulier_prenom').val();
605 vpihour 741
606 vpihour 805 /* Requête qui va récupérer les données duaddSearchIcon(es) pétitionnaire(s)
607 vpihour 793 * correspondant(s) à la recherche */
608 vpihour 741 $.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 vpihour 793 /*Si la recherche a donné des résultats*/
617 vpihour 756 if ( html.length > 2 ){
618 vpihour 741
619 vpihour 805 res = '' ;
620 vpihour 741 donnees = html.split(';');
621 vpihour 805 nbRes = donnees.length;
622 vpihour 793
623 vpihour 805 /*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 vpihour 793 /* Met les résultats de la recherche dans un select */
635 vpihour 805 for ( i = 0 ; i < nbRes - 1 ; i++ ){
636 vpihour 741
637     val = donnees[i].replace('"', '');
638     line = donnees[i].split('_');
639    
640 vpihour 764 if ( line[3] != '' ){
641    
642     line[3] = ' - ' + line[3];
643     }
644    
645 vpihour 793 res += '<option value="' + val + '">' +
646     line[1] + ' ' + line[2] + line[3] +
647     '</option>';
648 vpihour 741 }
649    
650     res += '</select>' ;
651     }
652    
653 vpihour 793 /* Affichage de l'overlay */
654 vpihour 741 $('#dialog').html(res);
655    
656     $( "#dialog" ).dialog({
657     modal: true,
658     buttons : {
659     Valider: function(){
660    
661 vpihour 793 /*Action à l'appui sur le bouton valider*/
662 vpihour 756 if ( res != 'Auncune correspondance trouvée.' ){
663 vpihour 793
664 vpihour 805 /*Vide les valeurs des champs*/
665     emptyFields(id);
666    
667 vpihour 756 donnees = $('#dialog select option:selected').val();
668     donnees = donnees.split('_');
669    
670 vpihour 793 if ( $.isNumeric(donnees[4]) ){
671 vpihour 805 $('#particulier_civilite ' +
672     'option[value="' + $.trim(donnees[4]) + '"]').
673 vpihour 793 attr('selected','selected');
674     }
675 vpihour 764
676 vpihour 805 $('#particulier_nom').
677 vpihour 793 val($.trim(donnees[1]));
678    
679 vpihour 805 $('#particulier_prenom').
680 vpihour 793 val($.trim(donnees[2]));
681    
682 vpihour 764 /*Vérifie si la date est non vide avant de la traiter*/
683     date_temp = $.trim(donnees[3]);
684     if ( date_temp != '' ){
685 vpihour 793
686 vpihour 764 date = date_temp.split('-');
687     date = date[2] + "/" + date[1] + "/" + date[0] ;
688 vpihour 805 $('#particulier_date_naissance').
689 vpihour 793 val(date);
690    
691 vpihour 764 }
692 vpihour 805 $('#particulier_commune_naissance').
693 vpihour 793 val($.trim(donnees[10]));
694 vpihour 805 $('#particulier_departement_naissance').
695 vpihour 793 val($.trim(donnees[11]));
696 vpihour 756
697 vpihour 805 changeValInputDemandeur(donnees);
698 vpihour 756 }
699 vpihour 741
700 vpihour 793 /*Fermeture de l'overlay*/
701 vpihour 741 $(this).dialog( "close" );
702     }
703     }
704     });
705     },
706     async: false
707     });
708     }
709     );
710    
711 vpihour 793 /*Si on recherche un pétitionnaire de type personne morale*/
712 vpihour 805 $('.search-mor-16').click(
713 vpihour 741 function(){
714    
715 vpihour 805 /*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 vpihour 793 /*Données des champs dénomination et nom de la personne morale*/
724 vpihour 805 var donnees = "?qualite=personne_morale"+
725     "&mor_denomination="+$('#personne_morale_denomination').val() +
726     "&mor_nom="+$('#personne_morale_nom').val();
727    
728 vpihour 793 /* Requête qui va récupérer les données du(es) pétitionnaire(s)
729     * correspondant(s) à la recherche */
730 vpihour 741 $.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 vpihour 805
738 vpihour 793 /*Si la recherche a donné des résultats*/
739 vpihour 805 if ( html.length > 2 ){
740 vpihour 741
741 vpihour 805 res = '' ;
742 vpihour 741 donnees = html.split(';');
743 vpihour 805 nbRes = donnees.length;
744 vpihour 793
745 vpihour 805 /*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 vpihour 793 /* Met les résultats de la recherche dans un select */
757 vpihour 805 for ( i = 0 ; i < nbRes - 1 ; i++ ){
758 vpihour 741
759     val = donnees[i].replace('"', '');
760     line = donnees[i].split('_');
761    
762 vpihour 793 res += '<option value="' + val + '">' +
763     line[5] + ' ' + line[6] +
764     '</option>';
765 vpihour 741 }
766    
767     res += '</select>' ;
768     }
769    
770 vpihour 793 /* Affichage de l'overlay */
771 vpihour 741 $('#dialog').html(res);
772    
773     $( "#dialog" ).dialog({
774     modal: true,
775     buttons : {
776     Valider: function(){
777    
778 vpihour 805 /*Vide les valeurs des champs*/
779     emptyFields(id);
780    
781 vpihour 793 /*Action à l'appui sur le bouton valider*/
782 vpihour 756 if ( res != 'Auncune correspondance trouvée.' ){
783     donnees = $('#dialog select option:selected').val();
784     donnees = donnees.split('_');
785 vpihour 805
786 vpihour 793 if ( $.isNumeric(donnees[8]) ){
787    
788 vpihour 805 $('#personne_morale_civilite ' +
789     'option[value="' + $.trim(donnees[8]) + '"]').
790 vpihour 793 attr('selected','selected');
791     }
792 vpihour 756
793 vpihour 805 $('#personne_morale_denomination').
794 vpihour 793 val($.trim(donnees[5]));
795 vpihour 805
796     $('#personne_morale_raison_sociale').
797 vpihour 793 val($.trim(donnees[12]));
798 vpihour 805
799     $('#personne_morale_siret').
800 vpihour 793 val($.trim(donnees[6]));
801 vpihour 805
802     $('#personne_morale_categorie_juridique').
803 vpihour 793 val($.trim(donnees[13]));
804 vpihour 805
805     $('#personne_morale_nom').
806 vpihour 793 val($.trim(donnees[7]));
807 vpihour 805
808     $('#personne_morale_prenom').
809 vpihour 793 val($.trim(donnees[9]));
810    
811 vpihour 805 changeValInputDemandeur(donnees);
812 vpihour 756 }
813 vpihour 793
814     /*Fermeture de l'overlay*/
815 vpihour 741 $(this).dialog( "close" );
816     }
817     }
818     });
819     },
820     async: false
821     });
822     }
823     );
824 vpihour 805
825 vpihour 741 }
826    
827     /*
828 vpihour 805 * 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 vpihour 741 Change les valeurs des champs en commun des particuliers et des personnes morales
858 vpihour 793 Lié à la fonction addActionSearch
859    
860 vpihour 741 * */
861 vpihour 805 function changeValInputDemandeur( donnees){
862 vpihour 741
863 vpihour 805 $('input[id="demandeur"]').val($.trim(donnees[0]));
864    
865 vpihour 741 /*Teste si la valeur retournée est TRUE*/
866 vpihour 762 if ( donnees[28] === 't' ){
867 vpihour 793
868 vpihour 805 $('#notification').attr('checked', 'checked');
869     $('#notification').val('Oui');
870 vpihour 762 }
871 vpihour 793
872 nhaye 828 $('#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 vpihour 741 }
890    
891     /*
892 vpihour 805 * 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 vpihour 793 Function de test des champs
941 vpihour 676 * */
942 vpihour 669 function isAlpha(str) {
943 vpihour 664 return /^[a-zA-Z\/]+$/.test(str);
944     }
945    
946 vpihour 768 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 vpihour 793 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 vpihour 664 /*
967 vpihour 793 Ajoute les ations spécifiques pour le formulaire personnalisé d'ajout de
968     référence cadastrale
969 vpihour 664 * */
970     function actionFormReferenceCadastrale(){
971     $('form').submit(
972     function(){
973    
974 vpihour 812 getDataFieldReferenceCadastrale();
975 vpihour 664 }
976     );
977 vpihour 669
978 vpihour 793 $('#moreFieldReferenceCadastrale' +
979     ($('.moreFieldReferenceCadastrale').length - 1 )).
980     on("click", function() {
981 vpihour 669 $(this).before(newInputReferenceCadastrale());
982 vpihour 664 });
983 vpihour 762
984 vpihour 664 }
985    
986 vpihour 670 /*
987 vpihour 812 * 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 vpihour 670 Action pour l'ajout de nouvelle ligne
1030     * */
1031 vpihour 669 function actionLineFormReferenceCadastrale(){
1032     $('#morelineReferenceCadastrale').click(
1033     function(){
1034    
1035 vpihour 793 $('.reference_cadastrale_custom_fields').
1036     append( "<br/>" + fieldReferenceCadastraleBase());
1037    
1038     $('#moreFieldReferenceCadastrale'+
1039     ($('.moreFieldReferenceCadastrale').length - 1 )).
1040     on("click", function() {
1041 vpihour 669 $(this).before(newInputReferenceCadastrale());
1042     });
1043 vpihour 762
1044    
1045 vpihour 669 }
1046     );
1047     }
1048    
1049 vpihour 664 /*
1050 vpihour 793 Met à jour le select demande_type dès qu'un
1051     dossier_autorisation_type_detaille est choisi
1052 vpihour 664 * */
1053 vpihour 641 function changeDemandeType(){
1054    
1055 vpihour 793 var idDossierAutorisationTypeDetaille =
1056     $("#dossier_autorisation_type_detaille option:selected").val();
1057 vpihour 641
1058 vpihour 812 /* Récupère les données saisies dans les champs pour la référence cadastrale */
1059     getDataFieldReferenceCadastrale();
1060    
1061 vpihour 641 if ( $.isNumeric(idDossierAutorisationTypeDetaille) ){
1062    
1063     changeDataSelect('demande_type','dossier_autorisation_type_detaille');
1064 vpihour 664 if ( $('#demande_type option').size() < 2 )
1065     showFormsDemande();
1066 vpihour 641
1067     $('#demande_type').parent().parent().show();
1068 vpihour 651
1069 vpihour 812 formatFieldReferenceCadastrale();
1070 vpihour 641 }
1071     else {
1072     hideFields();
1073     }
1074     }
1075    
1076 vpihour 664 /*
1077     Ajoute le code HTML des champs pour les références cadastrales
1078     * */
1079     function addNewFieldReferencesCadastrales(){
1080     $('.references_cadastrales_new_field').remove();
1081 vpihour 669 $('.moreFieldReferenceCadastrale').remove();
1082 vpihour 672 $('#morelineReferenceCadastrale').remove();
1083 vpihour 793 $('.buttonCadAdr').remove();
1084 vpihour 664 $('.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 vpihour 669 fieldReferenceCadastraleBase() +
1095 vpihour 664 '</div>' +
1096     '</div>' +
1097 vpihour 669 '<div class="field field-type-text" id="morelineReferenceCadastrale">' +
1098 vpihour 664 '<div class="form-libelle"></div>' +
1099     '<div class="form-content">' +
1100 vpihour 669 ' + ajouter d\'autres lignes' +
1101 vpihour 664 '</div>' +
1102 vpihour 688 '</div>'
1103 vpihour 664 );
1104 vpihour 688 $('#terrain_superficie').parent().parent().after('<div class="field field-type-text" >' +
1105     '<div class="form-libelle"></div>' +
1106 vpihour 793 '<div class="form-content buttonCadAdr">' +
1107 vpihour 688 '<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 vpihour 664 }
1111    
1112 vpihour 670 /*
1113     Séparateur caché ;
1114     * */
1115 vpihour 669 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 vpihour 670 /*
1125     Ajout d'une nouvelle ligne de champ
1126     * */
1127 vpihour 669 function fieldReferenceCadastraleBase(){
1128     return '<input ' +
1129     'class="champFormulaire reference_cadastrale_custom_field" ' +
1130     'type="text" ' +
1131     'onchange="VerifNum(this)" ' +
1132 vpihour 762 'maxlength="4" ' +
1133     'size="4" ' +
1134 vpihour 669 'value="" />' +
1135     '<input ' +
1136     'class="champFormulaire reference_cadastrale_custom_field" ' +
1137     'type="text" ' +
1138 vpihour 762 '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 vpihour 669 '<input ' +
1143     'class="champFormulaire reference_cadastrale_custom_field" ' +
1144     'type="text" ' +
1145     'onchange="VerifNum(this)" ' +
1146 vpihour 762 'maxlength="5" ' +
1147     'size="5" ' +
1148 vpihour 669 'value="" />' +
1149     '<span id="moreFieldReferenceCadastrale' + $('.moreFieldReferenceCadastrale').length + '" class="moreFieldReferenceCadastrale">' +
1150     hiddenSeparatorField() +
1151     ' + ajouter d\'autres champs' +
1152     '</span>';
1153     }
1154    
1155 nhaye 802 /**
1156     * Cache les champs inutules
1157     **/
1158 vpihour 641 function hideFields(){
1159 nhaye 802 $('.demande_hidden_bloc').each(
1160 vpihour 641 function(){
1161 nhaye 802 $(this).hide();
1162 vpihour 641 }
1163     );
1164    
1165     $('.field-type-text').hide();
1166     $('input[type=submit]').hide();
1167     $('#demande_type').parent().parent().hide();
1168     }
1169    
1170 vpihour 664 /*
1171     Affiche les champs dont on a besoin
1172     * */
1173 vpihour 641 function showFormsDemande(){
1174 nhaye 802 $('.demande_hidden_bloc').each(
1175 vpihour 641 function(){
1176 nhaye 802 $(this).show();
1177 vpihour 641 }
1178     );
1179    
1180     $('.field-type-text').show();
1181     $('input[type=submit]').show();
1182 vpihour 664 $('.terrain_references_cadastrales_custom').hide();
1183    
1184     $('#terrain_references_cadastrales').parent().parent().hide();
1185 vpihour 641 }
1186 vpihour 651
1187 vpihour 664 /*
1188     Action au clique sur le bouton " + ajouter d'autres champs"
1189     * */
1190 vpihour 651 function newInputReferenceCadastrale(){
1191     return '<input ' +
1192     'class="champFormulaire reference_cadastrale_custom_field" ' +
1193     'type="text" ' +
1194     'maxlength="1" ' +
1195     'size="1" ' +
1196 vpihour 741 'value="" ' +
1197     'onchange="testSeparator(this);"/>' +
1198 vpihour 651 '<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 fmichon 660
1207 vpihour 741
1208    
1209 fmichon 784 /**
1210     * Desactivation des fonctions widget du tableau de bord inutiles sur le nouveau
1211     * tableau de bord
1212     */
1213 fmichon 660 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