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

Diff of /trunk/app/js/script.js

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 153 by fraynaud, Thu Sep 29 16:48:28 2011 UTC revision 833 by vpihour, Mon Nov 26 14:36:51 2012 UTC
# Line 1  Line 1 
1  // specific openfoncier ========================================================  // specific openfoncier ========================================================
2    
3  function bible(){  // 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)      if(fenetreouverte==true)
23             pfenetre.close();             pfenetre.close();
24      var ev=document.f2.evenement.value;      var ev=document.f2.evenement.value;
25      var idx=document.f2.dossier.value;      var idx=document.f2.dossier.value;
26      pfenetre=window.open("../app/bible.php?ev="+ev+"&idx="+idx,"bible","width=600,height=100,top=120,left=120");      pfenetre=window.open("../app/bible.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");
27      fenetreouverte=true;      fenetreouverte=true;
28  }  }
29    // bible2 - type httpclick
30  function bible2()  function bible2()
31  {  {
32      if(fenetreouverte==true)      if(fenetreouverte==true)
33             pfenetre.close();             pfenetre.close();
34      var ev=document.f2.evenement.value;      var ev=document.f2.evenement.value;
35      var idx=document.f2.dossier.value;      var idx=document.f2.dossier.value;
36      pfenetre=window.open("../app/bible2.php?ev="+ev,"bible","width=600,height=100,top=120,left=120");      pfenetre=window.open("../app/bible2.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");
37      fenetreouverte=true;      fenetreouverte=true;
38  }  }
39    // bible_auto - type httpclick
40  function bible_auto(){  function bible_auto(){
41      if(fenetreouverte==true)      if(fenetreouverte==true)
42             pfenetre.close();             pfenetre.close();
# Line 27  function bible_auto(){ Line 45  function bible_auto(){
45      pfenetre=window.open("../app/bible_auto.php?idx="+idx+"&ev="+ev,"evenement","width=600,height=300,top=120,left=120");      pfenetre=window.open("../app/bible_auto.php?idx="+idx+"&ev="+ev,"evenement","width=600,height=300,top=120,left=120");
46      fenetreouverte=true;      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)  function dossierads_d(debut)
134  {  {
135  //if(fenetreouverte==true)  //if(fenetreouverte==true)
# Line 35  window.location="../pdf/pdfetat.php?obj= Line 137  window.location="../pdf/pdfetat.php?obj=
137  +document.f1.nature.value+"&idx=demo&datedebut="  +document.f1.nature.value+"&idx=demo&datedebut="
138  +document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;  +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()  function dossierdepot()
147  {  {
148  //if(fenetreouverte==true)  //if(fenetreouverte==true)
# Line 43  function dossierdepot() Line 150  function dossierdepot()
150      document.f1.nature.value+"&idx=demo&datedebut="+      document.f1.nature.value+"&idx=demo&datedebut="+
151      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
152  }  }
153    //
154  function dossierads()  function dossierads()
155  {  {
156  //if(fenetreouverte==true)  //if(fenetreouverte==true)
# Line 52  function dossierads() Line 159  function dossierads()
159      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
160  }  }
161    
162  function onSaisieSelect(evt){  // téléchargement du fichier
163      //ne pas faire la transformation sur la couche mais sur un clone  function file(fichier) {
164      // specifique openfoncier      //
165      geom = evt.feature.geometry.clone()      if (fichier == "") {
166      geom.transform(mercator, projection_externe);          alert("zone vide");
167      if(fenetreouverte==true)      }
168          pfenetre.close();      //
169      //compatibilite IE -> mettre des ' au lieu de "      pfenetre = window.open("../app/file.php?file="+fichier,"Visualisation","width=100,height=100,top=1,left=150,scrollbars=yes,resizable = yes");
170      pfenetre=window.open("../app/form_sig.php?obj="+obj+"&idx="+idx+"&geom="+geom+"&table="+table+"&champ="+champ, 'saisie_geometrie', 'width=400,height=300,top=120,left=120' );      //
171      fenetreouverte=true;      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        });
278        return false;
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 d'insérer l'id du demandeur ajouté dans un input hidden
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            if (type == "petitionnaire") {
337                $('<input type="hidden" class="demandeur" name="'+type+'[]" value="'+id_demandeur+'"/>').insertBefore('#add_'+type);
338            } else {
339                $('<input type="hidden" class="demandeur" name="'+type+'" value="'+id_demandeur+'"/>').insertBefore('#add_'+type);
340            }
341            
342            afficherDemandeur(id_demandeur,type);
343            om_initialize_content();
344        }
345    
346    }
347    
348    /**
349     * Fonction permettant d'afficher la synthèse d'un demandeur
350     */
351    function afficherDemandeur(id,type) {
352        $.ajax({
353            type: "GET",
354            url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+id+'&type='+type,
355            cache: false,
356            success: function(html){
357                $(html).insertBefore('#add_'+type);
358            }
359        });
360    }
361    
362    /*
363     * A garder
364     */
365    /*
366     * '<div class="field field-type-text morePetitionnaire" style="display: table-row;">' +
367            '<div class="form-libelle">' +
368                '<label class="libelle-more_petitionnaire" for="terrain_superficie"> + Ajouter un autre p&eacute;titionnaire </label>' +
369            '</div>' +
370            '<div class="form-content">' +
371            '</div>' +
372        '</div>'
373     */
374    
375    
376    /*
377        Ajoute le formulaire d'ajout de référence cadastrale personnalisé
378     * */
379    $(function() {
380        changeDemandeurType('qualite');
381        if ( $('#type_demandeur') == 'petitionnaire' ){
382            
383            addSearchIcon();
384            addDivDialog('.bloc_demandeur');
385        }
386    
387        // Bind de la fonction permettant l'ajout du pétitionnaire principal
388        $("#add_petitionnaire_principal").click( function() {
389            popupIt('petitionnaire',
390                    '../scr/sousform.php?obj=petitionnaire&action=0'+
391                    '&retourformulaire=demande&principal=true', 780, 500,
392                    getDemandeurId, 'petitionnaire_principal');
393            changeDemandeurType('qualite');
394            addSearchIcon();
395            addDivDialog('.bloc_demandeur');
396        });
397        // Bind de la fonction permettant l'ajout du délégataire
398        $("#formulaire").on("click","#add_delegataire", function(event) {
399            popupIt('delegataire',
400                    '../scr/sousform.php?obj=delegataire&action=0'+
401                    '&retourformulaire=demande', 780, 500,
402                    getDemandeurId, 'delegataire');
403            changeDemandeurType('qualite');
404            addSearchIcon();
405            addDivDialog('.bloc_demandeur');
406        });
407        // Bind de la fonction permettant l'ajout des pétitionnaires
408        $("#formulaire").on("click","#add_petitionnaire", function(event) {
409            popupIt('petitionnaire',
410                    '../scr/sousform.php?obj=petitionnaire&action=0'+
411                    '&retourformulaire=demande', 780, 500,
412                    getDemandeurId, 'petitionnaire');
413            changeDemandeurType('qualite');
414            addSearchIcon();
415            addDivDialog('.bloc_demandeur');
416        });
417    
418            
419        url = document.location + "" ;
420        if (url.indexOf("form.php?obj=demande") != -1
421            && url.indexOf("&action=0") != -1 ){
422            /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
423            hideFields();
424        }
425      
426       if (url.indexOf("form.php?obj=demande") != -1
427            && url.indexOf("&action=1") != -1 ){
428            
429            formatFieldReferenceCadastrale();
430       }
431    });
432    
433    /*
434     * Action sur les champs pour les références cadastrales
435     */
436    function formatFieldReferenceCadastrale(){
437        addNewFieldReferencesCadastrales();
438        $('#terrain_references_cadastrales').parent().parent().hide();
439        
440        reference_cadastrale = $('#terrain_references_cadastrales').val();
441        /*Formatage de la reference cadastrale*/
442        if ( reference_cadastrale != '' ){
443            
444            /* Récupère la référence cadastrale non formatée */
445            references_cadastrales = reference_cadastrale.split(';');
446            donnees = new Array();
447            
448            i = 0 ;
449            /* Boucle sur les références, elles étaient séparées par un ; */
450            for ( l = 0 ; l < references_cadastrales.length - 1 ; l ++ ){
451                
452                /*Récupère le code impots du qartier [CHIFFRES]*/
453                k = 0;
454                donnees[i] = '';
455                for ( j = k ; j < references_cadastrales[l].length ; j++ ){
456                    
457                    if ( references_cadastrales[l].charAt(j) >= 0 &&
458                        references_cadastrales[l].charAt(j) <= 9 ){
459                            
460                        donnees[i] += references_cadastrales[l].charAt(j);
461                        k++;
462                        
463                    } else {
464                        
465                        i++;
466                        break;
467                    }
468                }
469                
470                /* Récupère la section [LETTRES] */    
471                donnees[i] = '';
472                for ( j = k ; j < references_cadastrales[l].length ; j++ )
473                    if ( isAlpha(references_cadastrales[l].charAt(j)) ){
474                        
475                        donnees[i] += references_cadastrales[l].charAt(j);
476                        k++;
477                        
478                    } else {
479                        
480                        i++;
481                        break;
482                    }
483                
484                /* Récupère la parcelle [CHIFFRES] */
485                donnees[i] = '';
486                for ( j = k ; j < references_cadastrales[l].length ; j++ )
487                    if ( references_cadastrales[l].charAt(j) >= 0 &&
488                        references_cadastrales[l].charAt(j) <= 9 ){
489                            
490                        donnees[i] += references_cadastrales[l].charAt(j);
491                        k++;
492                        
493                    } else {
494                        
495                        break;
496                    }
497                
498                /* Récupère les séparateurs [ A / ] et les sections */
499                m = 0 ;
500                if ( k < references_cadastrales[l].length ){
501                    
502                    for ( j = k ; j < references_cadastrales[l].length ; j++ )
503                        if ( isAlpha(references_cadastrales[l].charAt(j)) ){
504                            
505                            m++;
506                            donnees[++i] = references_cadastrales[l].charAt(j);
507                            donnees[++i] = '';
508                        }
509                        else {
510                            
511                            donnees[i] += references_cadastrales[l].charAt(j);
512                        }
513                }
514                
515                /*Créé autant de champs de que de référence */
516                donnees[++i] = ';';
517                i++;
518    
519                if ( l > 0 ) {
520                    
521                    $('.reference_cadastrale_custom_fields').append(
522                        "<br/>" + fieldReferenceCadastraleBase()
523                    );
524                }
525                
526                actionFormReferenceCadastrale();
527                
528                if ( m > 0 ){
529                            
530                    for ( j = 0 ; j < m ; j++ ){
531                        
532                        $('#moreFieldReferenceCadastrale' +
533                            ( $('.moreFieldReferenceCadastrale').length - 1 ) ).
534                        before(
535                            newInputReferenceCadastrale()
536                        );
537                    }
538                }
539            }
540             /* Action sur les boutons [+ ajouter d'autres champs] et [+ ajouter
541              * d'autres lignes] */
542            actionLineFormReferenceCadastrale();
543            
544            /* Ajoute les données dans les champs nouvellement créés */
545            $('.reference_cadastrale_custom_field').each(
546                function(index) {
547                    
548                    $(this).val(donnees[index])
549                }
550            );
551        }
552        else{
553            actionFormReferenceCadastrale();
554            actionLineFormReferenceCadastrale();
555        }
556    }
557    
558    /*
559     * Ajoute les icônes pour la recherche de pétitionnaire fréquent.
560     */
561    function addSearchIcon(){
562        
563        /*Ajout de l'icône après le champs du prénom du particulier*/
564        $('.search_particulier_fields input').
565        last().
566        after(
567            '<span '+
568                'class="om-icon om-icon-16 om-icon-fix search-part-16" '+
569                'title="Chercher un petitionnaire">'+
570            '</span>'
571        );
572        
573        /*Ajout de l'icône après le champs dénomination et nom de la personne morale*/
574        $('.search_personne_morale_fields input').each(
575            function(){
576                $(this).
577                after(
578                    '<span '+
579                        'class="om-icon om-icon-16 om-icon-fix search-mor-16" '+
580                        'title="Chercher un petitionnaire"> '+
581                    '</span>'
582                );
583            }
584        );
585        
586        addActionSearchIcon('#sousform-petitionnaire #form-content');
587    }
588    
589    /*
590     * Ajoute les actions sur les icônes de recherche
591     */
592    function addActionSearchIcon(id){
593        
594        /*Si on recherche un pétitionnaire de type particulier*/
595        $(' .search-part-16').click(
596            function(){
597                
598                /*Le champ nom du particulier doit contenir au moins trois lettres*/
599                if ( $('#particulier_nom').val().length < 3 ||
600                    $('#particulier_prenom') < 3 ){
601                    
602                    alert('Saisissez au moins trois lettres pour la recherche');
603                    return;
604                }
605                
606                /*Données des champs nom et prénom du particulier*/
607                var donnees = "?qualite=particulier"+
608                    "&par_nom=" + $('.search_particulier_fields #particulier_nom').val() +
609                    "&par_prenom=" + $('.search_particulier_fields #particulier_prenom').val();
610    
611                /* Requête qui va récupérer les données duaddSearchIcon(es) pétitionnaire(s)
612                 * correspondant(s) à la recherche */
613                $.ajax({
614                    type: "GET",
615                    url: "../app/findPetitionnaire.php" + donnees ,
616                    cache: false,
617                    success: function(html){
618                        
619                        res = 'Auncune correspondance trouvée.';
620                        
621                        /*Si la recherche a donné des résultats*/
622                        if ( html.length > 2 ){
623                            
624                            res = '' ;
625                            donnees = html.split(';');
626                            nbRes = donnees.length;
627                            
628                            /*Limitation des résultats à 50 */
629                            if ( nbRes > 50 ){
630                                
631                                nbRes = 50;
632                                res = 'Votre recherche a donn&eacute; ' + donnees.length
633                                    + ' r&eacute;sultats. Seul les cinquantes premiers ' +
634                                    'seront affich&eacute;s.<br/>';
635                            }
636                            
637                            res += '<select>' ;
638                            
639                            /* Met les résultats de la recherche dans un select */
640                           for ( i = 0 ; i < nbRes - 1 ; i++ ){
641    
642                                val = donnees[i].replace('"', '');
643                                line = donnees[i].split('_');
644                                
645                                if ( line[3] != '' ){
646                                    
647                                    line[3] = ' - ' + line[3];
648                                }
649                                
650                                res += '<option value="' + val + '">' +
651                                            line[1] + ' ' + line[2] + line[3] +
652                                       '</option>';
653                            }
654                            
655                            res += '</select>' ;
656                        }
657                        
658                        /* Affichage de l'overlay */
659                        $('#dialog').html(res);
660                          
661                        $( "#dialog" ).dialog({
662                            modal: true,
663                            buttons : {
664                                Valider: function(){
665                                    
666                                    /*Action à l'appui sur le bouton valider*/
667                                    if ( res != 'Auncune correspondance trouvée.' ){
668                                        
669                                        /*Vide les valeurs des champs*/
670                                        emptyFields(id);
671                                        
672                                        donnees = $('#dialog select option:selected').val();
673                                        donnees = donnees.split('_');
674                                        
675                                        if ( $.isNumeric(donnees[4]) ){
676                                            $('#particulier_civilite ' +
677                                                'option[value="' + $.trim(donnees[4]) + '"]').
678                                            attr('selected','selected');
679                                        }
680                                        
681                                        $('#particulier_nom').
682                                        val($.trim(donnees[1]));
683                                        
684                                        $('#particulier_prenom').
685                                        val($.trim(donnees[2]));
686                                        
687                                        /*Vérifie si la date est non vide avant de la traiter*/
688                                        date_temp = $.trim(donnees[3]);
689                                        if ( date_temp != '' ){
690                                            
691                                            date = date_temp.split('-');
692                                            date = date[2] + "/" + date[1] + "/" + date[0] ;
693                                            $('#particulier_date_naissance').
694                                            val(date);
695                                            
696                                        }
697                                        $('#particulier_commune_naissance').
698                                        val($.trim(donnees[10]));
699                                        $('#particulier_departement_naissance').
700                                        val($.trim(donnees[11]));
701                                        
702                                        changeValInputDemandeur(donnees);
703                                    }
704                                    
705                                    /*Fermeture de l'overlay*/
706                                    $(this).dialog( "close" );
707                                }
708                            }
709                        });
710                    },
711                    async: false
712                });
713            }
714        );
715        
716        /*Si on recherche un pétitionnaire de type personne morale*/
717        $('.search-mor-16').click(
718            function(){
719                
720                /*Le champ nom du particulier doit contenir au moins trois lettres*/
721                if ( $('#personne_morale_denomination').val().length < 3 ||
722                    $('#personne_morale_nom') < 3 ){
723                    
724                    alert('Saisissez au moins trois lettres pour la recherche');
725                    return;
726                }
727                
728                /*Données des champs dénomination et nom de la personne morale*/
729                var donnees = "?qualite=personne_morale"+
730                    "&mor_denomination="+$('#personne_morale_denomination').val() +
731                    "&mor_nom="+$('#personne_morale_nom').val();
732                    
733                /* Requête qui va récupérer les données du(es) pétitionnaire(s)
734                 * correspondant(s) à la recherche */    
735                $.ajax({
736                    type: "GET",
737                    url: "../app/findPetitionnaire.php" + donnees ,
738                    cache: false,
739                    success: function(html){
740                        
741                        res = 'Auncune correspondance trouvée.';
742    
743                        /*Si la recherche a donné des résultats*/
744                        if ( html.length > 2 ){
745                            
746                            res = '' ;
747                            donnees = html.split(';');
748                            nbRes = donnees.length;
749                            
750                            /*Limitation des résultats à 50 */
751                            if ( nbRes > 50 ){
752                                
753                                nbRes = 50;
754                                res = 'Votre recherche a donn&eacute; ' + donnees.length
755                                    + ' r&eacute;sultats. Seul les cinquantes premiers ' +
756                                    'seront affich&eacute;s.<br/>';
757                            }
758                            
759                            res += '<select>' ;
760                            
761                            /* Met les résultats de la recherche dans un select */
762                            for ( i = 0 ; i < nbRes - 1 ; i++ ){
763    
764                                val = donnees[i].replace('"', '');
765                                line = donnees[i].split('_');
766                                
767                                res += '<option value="' + val + '">' +
768                                            line[5] + ' ' + line[6] +
769                                        '</option>';
770                            }
771                            
772                            res += '</select>' ;
773                        }
774                        
775                        /* Affichage de l'overlay */
776                        $('#dialog').html(res);
777                          
778                        $( "#dialog" ).dialog({
779                            modal: true,
780                            buttons : {
781                                Valider: function(){
782                                    
783                                    /*Vide les valeurs des champs*/
784                                    emptyFields(id);
785                                    
786                                    /*Action à l'appui sur le bouton valider*/
787                                    if ( res != 'Auncune correspondance trouvée.' ){
788                                        donnees = $('#dialog select option:selected').val();
789                                        donnees = donnees.split('_');
790                                                                            
791                                        if ( $.isNumeric(donnees[8]) ){
792                                            
793                                            $('#personne_morale_civilite ' +
794                                                'option[value="' + $.trim(donnees[8]) + '"]').
795                                            attr('selected','selected');
796                                        }
797                                        
798                                        $('#personne_morale_denomination').
799                                        val($.trim(donnees[5]));
800                                        
801                                        $('#personne_morale_raison_sociale').
802                                        val($.trim(donnees[12]));
803                                        
804                                        $('#personne_morale_siret').
805                                        val($.trim(donnees[6]));
806                                        
807                                        $('#personne_morale_categorie_juridique').
808                                        val($.trim(donnees[13]));
809                                        
810                                        $('#personne_morale_nom').
811                                        val($.trim(donnees[7]));
812                                        
813                                        $('#personne_morale_prenom').
814                                        val($.trim(donnees[9]));
815                                        
816                                        changeValInputDemandeur(donnees);
817                                    }
818                                    
819                                    /*Fermeture de l'overlay*/
820                                    $(this).dialog( "close" );
821                                }
822                            }
823                        });
824                    },
825                    async: false
826                });
827            }
828        );
829        
830    }
831    
832    /*
833     * Vide les champs avant d'y mettre les nouvelles informations
834     */
835    function emptyFields(id){
836        $(id + ' input').each(
837            function(){
838                $(this).val('');
839            }
840        );
841        
842        $(id + ' select option[value=""]').each(
843            function(){
844                
845                /*Ne pas remettre à zéro le select concernant la qualite du demandeur*/
846                if ( $(this).attr('id') != 'qualite' ) {
847                    
848                    $(this).attr('selected', 'selected');
849                }
850            }
851        );
852        
853        $(id + ' input[type="checkbox"]').each(
854            function(){
855                $(this).val('');
856                $(this).removeAttr('checked');
857            }
858        );
859    }
860    
861    /*
862        Change les valeurs des champs en commun des particuliers et des personnes morales
863        Lié à la fonction addActionSearch
864        
865     * */
866    function changeValInputDemandeur( donnees){
867        
868        $('input[id="demandeur"]').val($.trim(donnees[0]));
869        
870        /*Teste si la valeur retournée est TRUE*/
871        if ( donnees[28] === 't' ){
872            
873            $('#notification').attr('checked', 'checked');
874            $('#notification').val('Oui');
875        }
876        
877        $('#sousform-petitionnaire #frequent').attr('checked','checked');
878        $('#sousform-petitionnaire #frequent').val('Oui');
879        $('#sousform-petitionnaire #numero').val($.trim(donnees[14]));
880        $('#sousform-petitionnaire #voie').val($.trim(donnees[15]));
881        $('#sousform-petitionnaire #complement').val($.trim(donnees[16]));
882        $('#sousform-petitionnaire #lieu_dit').val($.trim(donnees[17]));
883        $('#sousform-petitionnaire #localite').val($.trim(donnees[18]));
884        $('#sousform-petitionnaire #code_postal').val($.trim(donnees[19]));
885        $('#sousform-petitionnaire #bp').val($.trim(donnees[20]));
886        $('#sousform-petitionnaire #cedex').val($.trim(donnees[21]));
887        $('#sousform-petitionnaire #pays').val($.trim(donnees[22]));
888        $('#sousform-petitionnaire #division_territoriale').val($.trim(donnees[23]));
889        $('#sousform-petitionnaire #telephone_fixe').val($.trim(donnees[24]));
890        $('#sousform-petitionnaire #telephone_mobile').val($.trim(donnees[25]));
891        $('#sousform-petitionnaire #indicatif').val($.trim(donnees[26]));
892        $('#sousform-petitionnaire #courriel').val($.trim(donnees[27]));
893        $('#sousform-petitionnaire #type_demandeur').val($.trim(donnees[29]));
894    }
895    
896    /*
897     * Ajoute un div pour l'overlay dialog de jQuery
898     */
899    function addDivDialog(id){
900        
901        $(id).prepend('<div id="dialog"></div>');
902    }
903    
904    /*
905        Action au changement du select de la qualite du demandeur
906     * */
907    function changeDemandeurType(id){
908    
909        /*Si la qualite du demandeur est particulier */
910        if ( $('#' + id + ' option:selected').val() == 'particulier' ){
911            
912            $('.personne_morale_fields input').each(
913                function(){
914                    $(this).val('');
915                }
916            );
917            $('.personne_morale_fields select option[value=""]').each(
918                function(){
919                    $(this).attr('selected', 'selected');
920                }
921            );
922            
923            $('.personne_morale_fields').hide();
924            $('.particulier_fields').show();
925        }
926        else {
927            
928           $('.particulier_fields input').each(
929                function(){
930                    $(this).val('');
931                }
932            );
933            $('.particulier_fields select option[value=""]').each(
934                function(){
935                    $(this).attr('selected', 'selected');
936                }
937            );
938            
939            $('.particulier_fields').hide();
940            $('.personne_morale_fields').show();
941        }
942    }
943    
944    /*
945        Function de test des champs
946     * */
947    function isAlpha(str) {
948        return /^[a-zA-Z\/]+$/.test(str);
949    }
950    
951    function isMail(str){
952        return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(str);
953    }
954    
955    function isPhoneNumber(str){
956        return /[0-9-()+]{3,20}/.test(str);
957    }
958    
959    function testSeparator(obj){
960    
961        if ( obj.value != 'A' &&
962             obj.value != '/' ) {
963                
964            alert('Saisissez uniquement un A ou un / comme séparateur');
965            obj.value = '';
966        }
967    }
968    
969    /* FIN */
970    
971    /*
972        Ajoute les ations spécifiques pour le formulaire personnalisé d'ajout de
973        référence cadastrale
974     * */
975    function actionFormReferenceCadastrale(){
976        $('form').submit(
977            function(){
978                
979                getDataFieldReferenceCadastrale();
980            }
981        );
982    
983        $('#moreFieldReferenceCadastrale' +
984            ($('.moreFieldReferenceCadastrale').length - 1 )).
985        on("click", function() {
986            $(this).before(newInputReferenceCadastrale());
987        });
988        
989    }
990    
991    /*
992     * Récupère les données saisies dans les champs de références cadastrales
993     */
994    function getDataFieldReferenceCadastrale(){
995        
996        var reference_cadastrale = '';
997        var reference_cadastrale_temp = '';
998        
999        $('.reference_cadastrale_custom_field').each(
1000            function(){
1001                
1002                if ( $(this).val() == ';' ){
1003                    
1004                    reference_cadastrale_bis = reference_cadastrale_temp ;
1005                    
1006                    while( reference_cadastrale_bis != ''){
1007                        if ( /^([0-9]{1,4}[a-zA-Z]{1,3}[0-9]{1,5}([A\/]{1}[0-9]{1,4})*)*$/.test(reference_cadastrale_bis) ){
1008                            
1009                            reference_cadastrale += reference_cadastrale_bis + ";";
1010                            break;
1011                        }
1012                        else{
1013                            
1014                            reference_cadastrale_bis = reference_cadastrale_bis.slice( 0, -1);
1015                        }    
1016                    }
1017                    
1018                    
1019                    reference_cadastrale_temp = '';
1020                }
1021                
1022                else {
1023                    
1024                    reference_cadastrale_temp += $(this).val();
1025                }
1026                
1027            }
1028        );
1029        
1030        $('#terrain_references_cadastrales').val(reference_cadastrale);
1031    }
1032    
1033    /*
1034        Action pour l'ajout de nouvelle ligne
1035     * */
1036    function actionLineFormReferenceCadastrale(){
1037        $('#morelineReferenceCadastrale').click(
1038            function(){
1039                
1040                $('.reference_cadastrale_custom_fields').
1041                append( "<br/>" + fieldReferenceCadastraleBase());
1042                
1043                $('#moreFieldReferenceCadastrale'+
1044                    ($('.moreFieldReferenceCadastrale').length - 1 )).
1045                on("click", function() {
1046                    $(this).before(newInputReferenceCadastrale());
1047                });
1048                
1049                
1050            }
1051        );
1052    }
1053    
1054    /*
1055        Met à jour le select demande_type dès qu'un
1056        dossier_autorisation_type_detaille est choisi
1057     * */
1058    function changeDemandeType(){
1059        
1060        var idDossierAutorisationTypeDetaille =
1061            $("#dossier_autorisation_type_detaille option:selected").val();
1062        
1063        /* Récupère les données saisies dans les champs pour la référence cadastrale */
1064        getDataFieldReferenceCadastrale();    
1065        
1066        if ( $.isNumeric(idDossierAutorisationTypeDetaille) ){
1067            
1068            changeDataSelect('demande_type','dossier_autorisation_type_detaille');
1069            if ( $('#demande_type option').size() < 2 )
1070                showFormsDemande();
1071            
1072           $('#demande_type').parent().parent().show();
1073          
1074           formatFieldReferenceCadastrale();
1075        }
1076        else {
1077            hideFields();
1078        }
1079    }
1080    
1081    /*
1082        Ajoute le code HTML des champs pour les références cadastrales
1083     * */
1084    function addNewFieldReferencesCadastrales(){
1085        $('.references_cadastrales_new_field').remove();
1086        $('.moreFieldReferenceCadastrale').remove();
1087        $('#morelineReferenceCadastrale').remove();
1088        $('.buttonCadAdr').remove();
1089        $('.localisation .fieldsetContent').prepend(
1090           '<div class="field field-type-text references_cadastrales_new_field" >'+
1091                '<div class="form-libelle">' +
1092                    '<label '+
1093                        'class="libelle-terrain_references_cadastrales" '+
1094                        'for="terrain_references_cadastrales">'+
1095                        ' terrain_references_cadastrales '+
1096                    '</label>' +
1097                '</div>' +
1098                '<div class="form-content reference_cadastrale_custom_fields">' +
1099                     fieldReferenceCadastraleBase() +
1100                '</div>' +
1101           '</div>' +
1102           '<div class="field field-type-text" id="morelineReferenceCadastrale">' +
1103                '<div class="form-libelle"></div>' +
1104                '<div class="form-content">' +
1105                    ' + ajouter d\'autres lignes' +
1106                '</div>' +
1107           '</div>'      
1108       );
1109       $('#terrain_superficie').parent().parent().after('<div class="field field-type-text" >' +
1110                '<div class="form-libelle"></div>' +
1111                '<div class="form-content buttonCadAdr">' +
1112                    '<input id="cad-adr-them" class="ui-button ui-widget ui-state-default ui-corner-all" type="button" value="Cadastrale < = > Adresse"/>' +
1113                '</div>' +
1114           '</div>' );
1115    }
1116    
1117    /*
1118        Séparateur caché ;
1119     * */
1120    function hiddenSeparatorField(){
1121        return '<input ' +
1122                    'class="reference_cadastrale_custom_field " ' +
1123                    'type="hidden" ' +
1124                    'maxlength="2" ' +
1125                    'size="2" ' +
1126                    'value=";" />';
1127    }
1128    
1129    /*
1130        Ajout d'une nouvelle ligne de champ
1131     * */
1132    function fieldReferenceCadastraleBase(){
1133        return '<input ' +
1134                    'class="champFormulaire reference_cadastrale_custom_field" ' +
1135                    'type="text" ' +
1136                    'onchange="VerifNum(this)" ' +
1137                    'maxlength="4" ' +
1138                    'size="4" ' +
1139                    'value="" />' +
1140                '<input ' +
1141                    'class="champFormulaire reference_cadastrale_custom_field" ' +
1142                    'type="text" ' +
1143                    'maxlength="3" ' +
1144                    'size="3" ' +
1145                    'value="" '+
1146                    'onchange="if ( !isAlpha(this.value) ){ alert(\'Vous ne devez saisir que des lettres dans ce champs.\'); this.value = \'\'; }"/>' +
1147                '<input ' +
1148                    'class="champFormulaire reference_cadastrale_custom_field" ' +
1149                    'type="text" ' +
1150                    'onchange="VerifNum(this)" ' +
1151                    'maxlength="5" ' +
1152                    'size="5" ' +
1153                    'value="" />' +
1154                '<span id="moreFieldReferenceCadastrale' + $('.moreFieldReferenceCadastrale').length + '" class="moreFieldReferenceCadastrale">' +
1155                    hiddenSeparatorField() +
1156                    ' + ajouter d\'autres champs' +
1157                '</span>';
1158    }
1159    
1160    /**
1161     * Cache les champs inutules
1162     **/
1163    function hideFields(){
1164        $('.demande_hidden_bloc').each(
1165            function(){
1166                $(this).hide();
1167            }
1168        );
1169        
1170        $('.field-type-text').hide();
1171        $('input[type=submit]').hide();
1172        $('#demande_type').parent().parent().hide();
1173    }
1174    
1175    /*
1176        Affiche les champs dont on a besoin
1177     * */
1178    function showFormsDemande(){
1179        $('.demande_hidden_bloc').each(
1180            function(){
1181                $(this).show();
1182            }
1183        );
1184        
1185        $('.field-type-text').show();
1186        $('input[type=submit]').show();
1187        $('.terrain_references_cadastrales_custom').hide();
1188        
1189        $('#terrain_references_cadastrales').parent().parent().hide();
1190    }
1191    
1192    /*
1193        Action au clique sur le bouton " + ajouter d'autres champs"
1194     * */
1195    function newInputReferenceCadastrale(){
1196        return '<input ' +
1197                'class="champFormulaire reference_cadastrale_custom_field" ' +
1198                'type="text" ' +
1199                'maxlength="1" ' +
1200                'size="1" ' +
1201                'value="" ' +
1202                'onchange="testSeparator(this);"/>' +
1203            '<input ' +
1204                'class="champFormulaire reference_cadastrale_custom_field" ' +
1205                'type="text" ' +
1206                'onchange="VerifNum(this)" ' +
1207                'maxlength="4" ' +
1208                'size="4" ' +
1209                'value="" />';
1210    }
1211    
1212    
1213    
1214    /**
1215     * Desactivation des fonctions widget du tableau de bord inutiles sur le nouveau
1216     * tableau de bord
1217     */
1218    function widget_bind_move_actions() {}
1219    function widget_bind_add_action() {}
1220    function widget_bind_edit_actions(widget_selector) {}
1221    

Legend:
Removed from v.153  
changed lines
  Added in v.833

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26