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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26