/[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 132 by fraynaud, Wed Sep 21 19:28:49 2011 UTC revision 1005 by fmichon, Thu Dec 6 15:48:07 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        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_point.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      * Function 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     * Function permettant de modifier un demandeur
379     */
380    function editDemandeur(obj,id,type,id_css) {
381        popupIt(type,
382                    '../scr/sousform.php?obj='+obj+'&action=1'+
383                    '&retourformulaire=demande&idx='+id, 780, 'auto',
384                    replaceDemandeur, {'type':type,'id': id, 'id_css':id_css});
385        affichageBoutonsDemandeurs();
386    }
387    
388    /**
389     * Function permettant de remplacer un contenu déjà existant
390     **/
391    function replaceDemandeur(obj) {
392        $.ajax({
393            type: "GET",
394            url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+obj.id+'&type='+obj.type,
395            cache: false,
396            success: function(html){
397                $(obj.id_css).replaceWith(html);
398            }
399        });
400    }
401    /**
402     * Function permettant de remplacer un contenu déjà existant
403     **/
404    function removeDemandeur(id) {
405        var div_class=$('#'+id).attr("class");
406        $('#'+id).remove();
407        if(div_class == "delegataire") {
408            $('#add_delegataire').fadeIn(500);
409        }
410        affichageBoutonsDemandeurs();
411    }
412    
413    /**
414     * Fonction permettant d'afficher et cacher les boutons d'ajout de demandeurs
415     */
416    function affichageBoutonsDemandeurs(){
417        // Affichage du bouton d'ajout du petitionnaire principal
418        if($('input[name=petitionnaire_principal][type=hidden]').size() == 1) {
419            $('#add_petitionnaire_principal').hide();
420        } else {
421            $('#add_petitionnaire_principal').fadeIn(500);
422        }
423        // Affichage du bouton d'ajout du delegataire
424        if($('input[name=petitionnaire_principal][type=hidden]').size() == 1
425           || $('input[name=delegataire][type=hidden]').size() == 1) {
426            $('#delegataire').fadeIn(500);
427            if($('input[name=delegataire][type=hidden]').size() == 0) {
428                $('#add_delegataire').fadeIn(500);
429            } else {
430                $('#add_delegataire').hide();
431            }
432        } else {
433            $('#delegataire').hide();
434        }
435        // Affichage du bouton d'ajout de petitionnaires
436        if($('input[name=petitionnaire_principal][type=hidden]').size() == 0) {
437            $('#add_petitionnaire').hide();
438        } else {
439            $('#add_petitionnaire').fadeIn(500);
440        }
441    }
442    
443    /**
444     * Appel au chargement de la page
445     **/
446    $(function() {
447        changeDemandeurType('qualite');
448        if ( $('#type_demandeur') == 'petitionnaire' ){
449            
450            addSearchIcon();
451            addDivDialog('.bloc_demandeur');
452        }
453        affichageBoutonsDemandeurs();
454        // Bind de la fonction permettant l'ajout du pétitionnaire principal
455        $("#formulaire").on("click","#add_petitionnaire_principal",  function() {
456            popupIt('petitionnaire',
457                    '../scr/sousform.php?obj=petitionnaire&action=0'+
458                    '&retourformulaire=demande&principal=true', 780, 'auto',
459                    getDemandeurId, 'petitionnaire_principal');
460        });
461        // Bind de la fonction permettant l'ajout du délégataire
462        $("#formulaire").on("click","#add_delegataire", function(event) {
463            popupIt('delegataire',
464                    '../scr/sousform.php?obj=delegataire&action=0'+
465                    '&retourformulaire=demande', 780, 'auto',
466                    getDemandeurId, 'delegataire');
467        });
468        // Bind de la fonction permettant l'ajout des pétitionnaires
469        $("#formulaire").on("click","#add_petitionnaire", function(event) {
470            popupIt('petitionnaire',
471                    '../scr/sousform.php?obj=petitionnaire&action=0'+
472                    '&retourformulaire=demande', 780, 'auto',
473                    getDemandeurId, 'petitionnaire');
474        });
475    
476            
477        url = document.location + "" ;
478        if (url.indexOf("form.php?obj=demande&") != -1
479            && url.indexOf("&action=3") == -1 ) {
480            changeDemandeType();
481        }
482    
483        if (url.indexOf("form.php?obj=demande&") != -1
484            && url.indexOf("&action=0") != -1 ){
485            /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
486            hideFields();
487        }
488        
489       if (url.indexOf("form.php?obj=demande&") != -1
490            && url.indexOf("&action=1") != -1 ){
491            
492            formatFieldReferenceCadastrale();
493       }
494    });
495    
496    /*
497     * Action sur les champs pour les références cadastrales
498     */
499    function formatFieldReferenceCadastrale(){
500        addNewFieldReferencesCadastrales();
501        $('#terrain_references_cadastrales').parent().parent().hide();
502        
503        reference_cadastrale = $('#terrain_references_cadastrales').val();
504        /*Formatage de la reference cadastrale*/
505        if ( reference_cadastrale != '' ){
506            
507            /* Récupère la référence cadastrale non formatée */
508            references_cadastrales = reference_cadastrale.split(';');
509            donnees = new Array();
510            
511            i = 0 ;
512            /* Boucle sur les références, elles étaient séparées par un ; */
513            for ( l = 0 ; l < references_cadastrales.length - 1 ; l ++ ){
514                
515                /*Récupère le code impots du qartier [CHIFFRES]*/
516                k = 0;
517                donnees[i] = '';
518                for ( j = k ; j < references_cadastrales[l].length ; j++ ){
519                    
520                    if ( references_cadastrales[l].charAt(j) >= 0 &&
521                        references_cadastrales[l].charAt(j) <= 9 ){
522                            
523                        donnees[i] += references_cadastrales[l].charAt(j);
524                        k++;
525                        
526                    } else {
527                        
528                        i++;
529                        break;
530                    }
531                }
532                
533                /* Récupère la section [LETTRES] */    
534                donnees[i] = '';
535                for ( j = k ; j < references_cadastrales[l].length ; j++ )
536                    if ( isAlpha(references_cadastrales[l].charAt(j)) ){
537                        
538                        donnees[i] += references_cadastrales[l].charAt(j);
539                        k++;
540                        
541                    } else {
542                        
543                        i++;
544                        break;
545                    }
546                
547                /* Récupère la parcelle [CHIFFRES] */
548                donnees[i] = '';
549                for ( j = k ; j < references_cadastrales[l].length ; j++ )
550                    if ( references_cadastrales[l].charAt(j) >= 0 &&
551                        references_cadastrales[l].charAt(j) <= 9 ){
552                            
553                        donnees[i] += references_cadastrales[l].charAt(j);
554                        k++;
555                        
556                    } else {
557                        
558                        break;
559                    }
560                
561                /* Récupère les séparateurs [ A / ] et les sections */
562                m = 0 ;
563                if ( k < references_cadastrales[l].length ){
564                    
565                    for ( j = k ; j < references_cadastrales[l].length ; j++ )
566                        if ( isAlpha(references_cadastrales[l].charAt(j)) ){
567                            
568                            m++;
569                            donnees[++i] = references_cadastrales[l].charAt(j);
570                            donnees[++i] = '';
571                        }
572                        else {
573                            
574                            donnees[i] += references_cadastrales[l].charAt(j);
575                        }
576                }
577                
578                /*Créé autant de champs de que de référence */
579                donnees[++i] = ';';
580                i++;
581    
582                if ( l > 0 ) {
583                    
584                    $('.reference_cadastrale_custom_fields').append(
585                        "<br/>" + fieldReferenceCadastraleBase()
586                    );
587                }
588                
589                actionFormReferenceCadastrale();
590                
591                if ( m > 0 ){
592                            
593                    for ( j = 0 ; j < m ; j++ ){
594                        
595                        $('#moreFieldReferenceCadastrale' +
596                            ( $('.moreFieldReferenceCadastrale').length - 1 ) ).
597                        before(
598                            newInputReferenceCadastrale()
599                        );
600                    }
601                }
602            }
603             /* Action sur les boutons [+ ajouter d'autres champs] et [+ ajouter
604              * d'autres lignes] */
605            actionLineFormReferenceCadastrale();
606            
607            /* Ajoute les données dans les champs nouvellement créés */
608            $('.reference_cadastrale_custom_field').each(
609                function(index) {
610                    
611                    $(this).val(donnees[index])
612                }
613            );
614        }
615        else{
616            actionFormReferenceCadastrale();
617            actionLineFormReferenceCadastrale();
618        }
619    }
620    
621    /*
622     * Ajoute les icônes pour la recherche de pétitionnaire fréquent.
623     */
624    function addSearchIcon(){
625    
626        $("#form-content:not(.form-is-valid) .search_particulier_fields,"+
627          "#form-content:not(.form-is-valid) .search_personne_morale_fields").each(function() {
628        /*Ajout de l'icône après le champs dénomination et nom de la personne morale*/
629    
630                $(this).
631                after(
632                    '<span '+
633                        'class="om-icon om-icon-16 om-icon-fix search-petitionnaire-16" '+
634                        'title="Chercher un petitionnaire"> '+
635                    '</span>'+
636                    '<span '+
637                        'class="om-icon om-icon-16 om-icon-fix erase-petitionnaire delete-16" '+
638                        'title="Supprimer le contenu"> '+
639                    '</span>'
640                );
641            }
642        );
643        
644        addActionSearchIcon('#sousform-petitionnaire #form-content');
645        addActionRemove();
646    
647    }
648    
649    /**
650     * Fonction permettant de revenir sur le formulaire d'ajout de demandeur
651     **/
652    function addActionRemove(){
653        $('.erase-petitionnaire').click(
654            function(){
655                ajaxIt('petitionnaire','../scr/sousform.php?obj=petitionnaire&action=0');
656        });
657    }
658    
659    /*
660     * Ajoute les actions sur les icônes de recherche
661     */
662    function addActionSearchIcon(id){
663        
664        /*Si on recherche un pétitionnaire de type particulier*/
665        $('.search-petitionnaire-16').click(
666            function(){
667                
668                /*Le champ nom du particulier doit contenir au moins trois lettres*/
669                if ( $('#particulier_nom').val().length < 3 &&
670                    $('#particulier_prenom').val().length < 3 &&
671                    $('#personne_morale_denomination').val().length < 3 &&
672                    $('#personne_morale_nom').val().length < 3 ){
673                    
674                    alert('Saisissez au moins trois lettres pour la recherche');
675                    return;
676                }
677                
678                /*Données des champs nom et prénom du particulier*/
679                var donnees = "?par_nom=" + $('.search_particulier_fields #particulier_nom').val() +
680                    "&par_prenom=" + $('.search_particulier_fields #particulier_prenom').val() +
681                    "&mor_denomination="+$('#personne_morale_denomination').val() +
682                    "&mor_nom="+$('#personne_morale_nom').val();
683    
684                /* Requête qui va récupérer les données duaddSearchIcon(es) pétitionnaire(s)
685                 * correspondant(s) à la recherche */
686                $.ajax({
687                    type: "GET",
688                    url: "../app/findPetitionnaire.php" + donnees ,
689                    cache: false,
690                    success: function(obj){
691                        var freq = $.parseJSON(obj);
692                        var res='';
693                        /*Si la recherche a donné des résultats*/
694                        if ( freq.length > 0 ){
695                            /*Limitation des résultats à 50 */
696                            if ( freq.length > 50 ){
697                                
698                                nbRes = 50;
699                                res += 'Votre recherche a donn&eacute; ' + freq.length
700                                    + ' r&eacute;sultats. Seul les cinquantes premiers ' +
701                                    'seront affich&eacute;s.<br/>';
702                            } else {
703                                nbRes = freq.length;
704                            }
705                            
706                            res += '<select>' ;
707                            
708                            /* Met les résultats de la recherche dans un select */
709                           for ( i = 0 ; i < nbRes ; i++ ){
710                                res += '<option value="' + freq[i].value + '">' +
711                                            freq[i].content +
712                                       '</option>';
713                            }
714                            
715                            res += '</select>';
716                        } else {
717                            res += 'Aucune correspondance trouvée.';
718                        }
719                        
720                        /* Affichage de l'overlay */
721                        $('#dialog').html(res);
722                          
723                        $( "#dialog" ).dialog({
724                            modal: true,
725                            buttons : {
726                                Valider: function(){
727                                    if ( res != 'Auncune correspondance trouvée.'){
728    
729                                    }
730                                    var id = $('#dialog select option:selected').val();
731                                    if($.isNumeric(id)) {
732                                        ajaxIt('petitionnaire',
733                                        '../scr/sousform.php?obj=petitionnaire&action=1&retourformulaire=demande&idx='+id);
734                                    }
735                                    // Fermeture de l'overlay
736                                    $(this).dialog( "close" ).empty();
737                                }
738                            }
739                        });
740                    },
741                });
742            }
743        );
744    }
745    
746    /*
747     * Ajoute un div pour l'overlay dialog de jQuery
748     */
749    function addDivDialog(id){
750        
751        $(id).prepend('<div id="dialog"></div>');
752    }
753    
754    /*
755        Action au changement du select de la qualite du demandeur
756     * */
757    function changeDemandeurType(id){
758    
759        /*Si la qualite du demandeur est particulier */
760        if ( $('#' + id + ' option:selected').val() == 'particulier' ){
761            
762            $('.personne_morale_fields input').each(
763                function(){
764                    $(this).val('');
765                }
766            );
767            $('.personne_morale_fields select option[value=""]').each(
768                function(){
769                    $(this).attr('selected', 'selected');
770                }
771            );
772            
773            $('.personne_morale_fields').hide();
774            $('.particulier_fields').show();
775        }
776        else {
777            
778           $('.particulier_fields input').each(
779                function(){
780                    $(this).val('');
781                }
782            );
783            $('.particulier_fields select option[value=""]').each(
784                function(){
785                    $(this).attr('selected', 'selected');
786                }
787            );
788            
789            $('.particulier_fields').hide();
790            $('.personne_morale_fields').show();
791        }
792    }
793    
794    /*
795        Function de test des champs
796     * */
797    function isAlpha(str) {
798        return /^[a-zA-Z\/]+$/.test(str);
799    }
800    
801    function isMail(str){
802        return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(str);
803    }
804    
805    function isPhoneNumber(str){
806        return /[0-9-()+]{3,20}/.test(str);
807    }
808    
809    function testSeparator(obj){
810    
811        if ( obj.value != 'A' &&
812             obj.value != '/' ) {
813                
814            alert('Saisissez uniquement un A ou un / comme séparateur');
815            obj.value = '';
816        }
817    }
818    
819    /* FIN */
820    
821    /*
822        Ajoute les ations spécifiques pour le formulaire personnalisé d'ajout de
823        référence cadastrale
824     * */
825    function actionFormReferenceCadastrale(){
826        $('form').submit(
827            function(){
828                
829                getDataFieldReferenceCadastrale();
830            }
831        );
832    
833        $('#moreFieldReferenceCadastrale' +
834            ($('.moreFieldReferenceCadastrale').length - 1 )).
835        on("click", function() {
836            $(this).before(newInputReferenceCadastrale());
837        });
838        
839    }
840    
841    /*
842     * Récupère les données saisies dans les champs de références cadastrales
843     */
844    function getDataFieldReferenceCadastrale(){
845        
846        var reference_cadastrale = '';
847        var reference_cadastrale_temp = '';
848        
849        $('.reference_cadastrale_custom_field').each(
850            function(){
851                
852                if ( $(this).val() == ';' ){
853                    
854                    reference_cadastrale_bis = reference_cadastrale_temp ;
855                    
856                    while( reference_cadastrale_bis != ''){
857                        if ( /^([0-9]{1,4}[a-zA-Z]{1,3}[0-9]{1,5}([A\/]{1}[0-9]{1,4})*)*$/.test(reference_cadastrale_bis) ){
858                            
859                            reference_cadastrale += reference_cadastrale_bis + ";";
860                            break;
861                        }
862                        else{
863                            
864                            reference_cadastrale_bis = reference_cadastrale_bis.slice( 0, -1);
865                        }    
866                    }
867                    
868                    
869                    reference_cadastrale_temp = '';
870                }
871                
872                else {
873                    
874                    reference_cadastrale_temp += $(this).val();
875                }
876                
877            }
878        );
879        
880        $('#terrain_references_cadastrales').val(reference_cadastrale);
881    }
882    
883    /*
884        Action pour l'ajout de nouvelle ligne
885     * */
886    function actionLineFormReferenceCadastrale(){
887        $('#morelineReferenceCadastrale').click(
888            function(){
889                
890                $('.reference_cadastrale_custom_fields').
891                append( "<br/>" + fieldReferenceCadastraleBase());
892                
893                $('#moreFieldReferenceCadastrale'+
894                    ($('.moreFieldReferenceCadastrale').length - 1 )).
895                on("click", function() {
896                    $(this).before(newInputReferenceCadastrale());
897                });
898                
899                
900            }
901        );
902    }
903    
904    /*
905        Met à jour le select demande_type dès qu'un
906        dossier_autorisation_type_detaille est choisi
907     * */
908    function changeDemandeType(){
909        
910        var idDossierAutorisationTypeDetaille =
911            $("#dossier_autorisation_type_detaille option:selected").val();
912        /* Récupère les données saisies dans les champs pour la référence cadastrale */
913        getDataFieldReferenceCadastrale();    
914        
915        if ( $.isNumeric(idDossierAutorisationTypeDetaille) ){
916            
917            changeDataSelect('demande_type','dossier_autorisation_type_detaille');
918            if ( $('#demande_type option').size() < 2 )
919                showFormsDemande();
920            
921           $('#demande_type').parent().parent().show();
922        }
923        else {
924            hideFields();
925        }
926    }
927    
928    /*
929        Ajoute le code HTML des champs pour les références cadastrales
930     * */
931    function addNewFieldReferencesCadastrales(){
932        $('.references_cadastrales_new_field').remove();
933        $('.moreFieldReferenceCadastrale').remove();
934        $('#morelineReferenceCadastrale').remove();
935        $('.buttonCadAdr').remove();
936        $('.localisation .fieldsetContent').prepend(
937           '<div class="field field-type-text references_cadastrales_new_field" >'+
938                '<div class="form-libelle">' +
939                    '<label '+
940                        'class="libelle-terrain_references_cadastrales" '+
941                        'for="terrain_references_cadastrales">'+
942                        ' terrain_references_cadastrales '+
943                    '</label>' +
944                '</div>' +
945                '<div class="form-content reference_cadastrale_custom_fields">' +
946                     fieldReferenceCadastraleBase() +
947                '</div>' +
948           '</div>' +
949           '<div class="field field-type-text" id="morelineReferenceCadastrale">' +
950                '<div class="form-libelle"></div>' +
951                '<div class="form-content">' +
952                    ' + ajouter d\'autres lignes' +
953                '</div>' +
954           '</div>'      
955       );
956       $('#terrain_superficie').parent().parent().after('<div class="field field-type-text" >' +
957                '<div class="form-libelle"></div>' +
958                '<div class="form-content buttonCadAdr">' +
959                    '<input id="cad-adr-them" class="ui-button ui-widget ui-state-default ui-corner-all" type="button" value="Cadastrale < = > Adresse"/>' +
960                '</div>' +
961           '</div>' );
962    }
963    
964    /*
965        Séparateur caché ;
966     * */
967    function hiddenSeparatorField(){
968        return '<input ' +
969                    'class="reference_cadastrale_custom_field " ' +
970                    'type="hidden" ' +
971                    'maxlength="2" ' +
972                    'size="2" ' +
973                    'value=";" />';
974    }
975    
976    /**
977     * Test si la demande est sur dossier existant ou non
978     **/
979    function isDossierExistant() {
980        var id_demande_type = $('#demande_type').val();
981        $.ajax({
982                    type: "GET",
983                    url: "../app/getDemandeNature.php?iddemandetype=" + id_demande_type ,
984                    cache: false,
985                    success: function(val){
986                        return val;
987                    }
988                });
989    }
990    /*
991        Ajout d'une nouvelle ligne de champ
992     * */
993    function fieldReferenceCadastraleBase(){
994        var reference_cadastrale = '<input ' +
995                    'class="champFormulaire reference_cadastrale_custom_field" ' +
996                    'type="text" ' +
997                    'onchange="VerifNum(this)" ' +
998                    'maxlength="4" ' +
999                    'size="4" ';
1000        // désactivation des champs de référence cadastrale
1001        if(isDossierExistant() != 'NOUV') {
1002            reference_cadastrale += 'disabled="disabled" ';
1003        }
1004        reference_cadastrale += 'value="" />';
1005    
1006        reference_cadastrale += '<input ' +
1007                    'class="champFormulaire reference_cadastrale_custom_field" ' +
1008                    'type="text" ' +
1009                    'maxlength="3" ' +
1010                    'size="3" ';
1011        if(isDossierExistant() != 'NOUV') {
1012            reference_cadastrale += 'disabled="disabled" ';
1013        }
1014        reference_cadastrale += 'value="" '+
1015                    'onchange="if ( !isAlpha(this.value) ){ alert(\'Vous ne devez saisir que des lettres dans ce champs.\'); this.value = \'\'; }"/>';
1016        reference_cadastrale += '<input ' +
1017                    'class="champFormulaire reference_cadastrale_custom_field" ' +
1018                    'type="text" ' +
1019                    'onchange="VerifNum(this)" ' +
1020                    'maxlength="5" ' +
1021                    'size="5" ';
1022        if(isDossierExistant() != 'NOUV') {
1023            reference_cadastrale += 'disabled="disabled" ';
1024        }
1025        reference_cadastrale += 'value="" />';
1026        if(isDossierExistant() != 'NOUV') {
1027            reference_cadastrale += '<span id="moreFieldReferenceCadastrale' +
1028            $('.moreFieldReferenceCadastrale').length +
1029            '" class="moreFieldReferenceCadastrale">' +
1030                    hiddenSeparatorField() +
1031                    ' + ajouter d\'autres champs' +
1032                '</span>';
1033        }
1034        
1035        
1036        return reference_cadastrale;
1037    }
1038    
1039    /**
1040     * Cache les champs inutules
1041     **/
1042    function hideFields(){
1043        $('.demande_hidden_bloc').each(
1044            function(){
1045                $(this).hide();
1046            }
1047        );
1048        
1049        $('.field-type-text').hide();
1050        $('input[type=submit]').hide();
1051        $('#demande_type').parent().parent().hide();
1052    }
1053    
1054    /*
1055        Affiche les champs dont on a besoin
1056     * */
1057    function showFormsDemande(){
1058        $('.demande_hidden_bloc').each(
1059            function(){
1060                $(this).show();
1061            }
1062        );
1063        formatFieldReferenceCadastrale();
1064        $('.field-type-text').show();
1065        $('input[type=submit]').show();
1066        $('.terrain_references_cadastrales_custom').hide();
1067        
1068        $('#terrain_references_cadastrales').parent().parent().hide();
1069    }
1070    
1071    /*
1072        Action au clique sur le bouton " + ajouter d'autres champs"
1073     * */
1074    function newInputReferenceCadastrale(){
1075        return '<input ' +
1076                'class="champFormulaire reference_cadastrale_custom_field" ' +
1077                'type="text" ' +
1078                'maxlength="1" ' +
1079                'size="1" ' +
1080                'value="" ' +
1081                'onchange="testSeparator(this);"/>' +
1082            '<input ' +
1083                'class="champFormulaire reference_cadastrale_custom_field" ' +
1084                'type="text" ' +
1085                'onchange="VerifNum(this)" ' +
1086                'maxlength="4" ' +
1087                'size="4" ' +
1088                'value="" />';
1089    }
1090    
1091    
1092    
1093    /**
1094     * Desactivation des fonctions widget du tableau de bord inutiles sur le nouveau
1095     * tableau de bord
1096     */
1097    function widget_bind_move_actions() {}
1098    function widget_bind_add_action() {}
1099    function widget_bind_edit_actions(widget_selector) {}
1100    
1101    // Cette fonction permet d'associer a un arbre html les fonctions jquery
1102    // necessaires. Elle permet notamment lors du chargement d'une page en ajax
1103    // d'associer le comportement du bouton, la gestion du calendrier et la gestion
1104    // du fieldset.
1105    function om_initialize_content() {
1106        // Gestion du skin des boutons, liens
1107        link_bind_button();
1108        // Gestion du calendrier avec le widget datepicker de jqueryui
1109        inputdate_bind_datepicker();
1110        // Gestion des fieldset avec le plugin collaspsible de jquery
1111        fieldset_bind_collapsible();
1112    
1113        changeDemandeurType('qualite');
1114        addSearchIcon();
1115        addDivDialog('.bloc_demandeur');
1116        
1117    }
1118    
1119    /*
1120     * Marque comme lu une consultation
1121     */
1122    function markedAsRead(id, objet, objetc){
1123        
1124        /*Vérifie que l'identifiant passé en paramètre est bien un chiffre
1125         * et que le type d'objet est défini
1126         * */
1127        if ( $.isNumeric(id) && objet != '' ){
1128            
1129            donnees = "?ido=" + id + '&obj=' + objet + '&objk=' + objetc;
1130            $.ajax({
1131                type: "GET",
1132                url: "../app/marquer_comme_lu.php" + donnees ,
1133                cache: false,
1134                success: function(html){
1135                    
1136                    $('#sousform-' + objet + ' .message').remove();
1137                    
1138                    /*Change la valeur affiché et affiche un message valide*/
1139                    if ( $.parseJSON(html) == "Mise a jour effectue avec succes"){
1140                        
1141                        // On modife le champ lu
1142                        $('#lu').html('Oui');
1143                        // On supprime l'action
1144                        $('span.lu-16').parent().parent().remove();
1145                        // On affiche le message
1146                        $('#sousform-' + objet + ' .subtitle').after(
1147                            '<div ' +
1148                                'class="message ui-widget ui-corner-all ui-state-highlight ui-state-valid">' +
1149                                '<p>' +
1150                                    '<span class="ui-icon ui-icon-info"></span>' +
1151                                    '<span class="text">' +
1152                                        $.parseJSON(html) +
1153                                    '</span>' +
1154                                '</p>' +
1155                            '</div>'                    
1156                        );
1157                    }
1158                    /*Affichage d'une erreur*/
1159                    else{
1160                        $('#sousform-' + objet + ' .subtitle').after(
1161                            '<div ' +
1162                                'class="message ui-widget ui-corner-all ui-state-highlight ui-state-error">' +
1163                                '<p>' +
1164                                    '<span class="ui-icon ui-icon-info"></span>' +
1165                                    '<span class="text">' +
1166                                        $.parseJSON(html) +
1167                                    '</span>' +
1168                                '</p>' +
1169                            '</div>'                    
1170                        );
1171                    }
1172                }
1173            });
1174        }
1175  }  }

Legend:
Removed from v.132  
changed lines
  Added in v.1005

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26