/[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 1404 by nhaye, Thu Mar 14 16:14:04 2013 UTC revision 2237 by softime, Wed Sep 4 10:28:01 2013 UTC
# Line 1  Line 1 
1  // specific openfoncier ========================================================  /**
2     * Script JS spécifique à l'applicatif, ce script est destiné à être
3     * appelé en dernier dans la pile des fichiers JS.
4     *
5     * @package openfoncier
6     * @version SVN : $Id$
7     */
8    
9  // Document is ready  // Document is ready
10  $(function(){  $(function(){
11    
12        /**
13         * Ajout du focus sur le champ login au chargement de la page.
14         */
15         $('#login_form #login').focus();
16    
17        /**
18         * Spécifique app/affichage_reglementaire_attestation.php pour donner le
19         * focus sur le champ de recherche au chargement de la page.
20         */
21         $('#affichage_reglementaire_attestation_form #dossier').focus();
22    
23        /**
24         * Spécifique app/widget_recherche_dossier.php pour donner le
25         * focus sur le champ de recherche au chargement de la page.
26         */
27         $('#widget_recherche_dossier_form #dossier').focus();
28    
29     /**     /**
30      * Spécifique app/avis_code_barre.php pour donner le focus sur le champ de      * Spécifique app/suivi_retours_de_consultation.php pour donner le focus sur le champ de
31      * recherche au chargement de la page.      * recherche au chargement de la page.
32      */      */
33     $('#avis_code_barre_form #consultation').focus();     $('#suivi_retours_de_consultation_form #code_barres').focus();
34    
35      /**      /**
36      * Spécifique app/maj_dates_suivi.php pour donner le focus sur le champ      * Spécifique app/suivi_mise_a_jour_des_dates.php pour donner le focus sur le champ
37      * instruction au chargement de la page si la date n'est pas vide.      * instruction au chargement de la page si la date n'est pas vide.
38      */      */
39      if($('#maj_dates_form #date').val()!="") {      if($('#suivi_mise_a_jour_des_dates_form #date').val()!="") {
40          $('#maj_dates_form #instruction').focus();          $('#suivi_mise_a_jour_des_dates_form #code_barres').focus();
41      }      }
42        
43        /**
44        * Spécifique app/suivi_envoi_lettre_rar.php pour donner le focus sur le champ
45        * liste des codes barres d'instructions scannés au chargement de la page.
46        */
47        $('#suivi_envoi_lettre_rar_form #liste_code_barres_instruction').focus();
48        
49        /**
50         * Affichage d'un dialog pour les règles de calcul associés à l'action
51         */
52        $('.regle_action').dialog({
53            autoOpen: false,
54            show: "fade",
55            hide: "fade",
56            dialogClass: "alert",
57            minHeight: 30,
58            minWidth: 400
59        });
60        
61        $('.wf_evenement_action').mouseover(
62            function(){
63                var id = $(this).attr("id");
64                $( "#regle_action"+ id ).dialog({ position: { my: "left top", at: "left bottom", of: $(this) } });
65                $( "#regle_action"+ id ).dialog("open");
66                $(".ui-dialog-titlebar").hide();
67            }
68        );
69        
70        $('.wf_evenement_action').mouseleave(
71            function(){
72                var id = $(this).attr("id");
73                $( "#regle_action"+ id ).dialog( "close" );
74            }
75        );
76   });   });
77    
78    
# Line 25  $(function(){ Line 82  $(function(){
82   * Ces fonctions javascript sont appelées depuis les méthodes setOnChange,   * Ces fonctions javascript sont appelées depuis les méthodes setOnChange,
83   * setOnClick, ...   * setOnClick, ...
84   */   */
85  // bible - type httpclick  //
86    // Cette fonction permet de retourner les informations sur le fichier téléchargé
87    // du formulaire d'upload vers le formulaire d'origine
88    function bible_return(form, champ) {
89        // Initialisation de la variable contenant les valeurs sélectionnées
90        var listeElement = '';
91        // Récupération du contenu de chacun des éléments cochés
92        $("span.content").each(function( index ) {
93            if (document.getElementById('checkbox'+index).checked == true) {
94                listeElement += $(this).text() + '\r\n\r';
95            }
96        });
97        // Récupération du textarea à remplir
98        obj = $("form[name|="+form+"] #"+champ);
99        // Remplissage du textarea et déclenchement du trigger autosize
100        $(obj).val(obj.val()+listeElement+"\r").trigger('autosize');
101        // Fermeture de la boite de dialog
102        $('#upload-container').dialog('close').remove();
103    }
104    //
105  function bible() {  function bible() {
106      if(fenetreouverte==true)      //
107             pfenetre.close();      var ev = document.f2.evenement.value;
108      var ev=document.f2.evenement.value;      //
109      var idx=document.f2.dossier.value;      if (ev == "") {
110      pfenetre=window.open("../app/bible.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");          window.alert("Vous devez d'abord sélectionner un événement.");
111      fenetreouverte=true;          return false;
112        }
113        //
114        var idx = document.f2.dossier.value;
115        //
116        var link = "../app/bible.php?complement=1&ev="+ev+"&idx="+idx;
117        load_form_in_modal(link);
118        //
119        return false;
120  }  }
121  // bible2 - type httpclick  //
122  function bible2()  function bible2() {
 {  
     if(fenetreouverte==true)  
            pfenetre.close();  
123      var ev=document.f2.evenement.value;      var ev=document.f2.evenement.value;
124        if (ev == "") {
125            window.alert("Vous devez d'abord sélectionner un événement.");
126            return false;
127        }
128      var idx=document.f2.dossier.value;      var idx=document.f2.dossier.value;
129      pfenetre=window.open("../app/bible2.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");      var link = "../app/bible.php?complement=2&ev="+ev+"&idx="+idx;
130      fenetreouverte=true;      load_form_in_modal(link);
131        return false;
132  }  }
133  // bible_auto - type httpclick  // bible_auto - type httpclick
134  function bible_auto(){  function bible_auto(){
135      if(fenetreouverte==true)      if(fenetreouverte==true)
136             pfenetre.close();             pfenetre.close();
137      var ev=document.f2.evenement.value;      var ev=document.f2.evenement.value;
138        if (ev == "") {
139            window.alert("Vous devez d'abord sélectionner un événement.");
140            return false;
141        }
142      var idx=document.f2.dossier.value;      var idx=document.f2.dossier.value;
143        
144      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");
145      fenetreouverte=true;      fenetreouverte=true;
146        return false;
147  }  }
148  // VerifNumdec - type text  // VerifNumdec - type text
149  function VerifNumdec(champ) {  function VerifNumdec(champ) {
# Line 179  function vuploadMulti(champ) { Line 271  function vuploadMulti(champ) {
271      //      //
272      fenetreouverte = true;      fenetreouverte = true;
273  }  }
 // tmpUpload - Upload  XXX  
 function tmpUpload(champ) {  
     //  
     if (fenetreouverte == true) {  
         pfenetre.close();  
     }  
     //  
     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");  
     //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");  
     //  
     fenetreouverte = true;  
 }  
   
   
274    
275  /**  /**
276   * POPUP pour le téléchargement de fichier   * POPUP pour le téléchargement de fichier
# Line 209  window.location="../pdf/pdfetat.php?obj= Line 287  window.location="../pdf/pdfetat.php?obj=
287  +document.f1.nature.value+"&idx=demo&datedebut="  +document.f1.nature.value+"&idx=demo&datedebut="
288  +document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;  +document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
289  }  }
290  //  
291  function dossier_reglementaire(){  // Cette fonction permet de gérer la validation du formulaire du script :
292        // app/affichage_reglementaire_registre.php
293      $('#bouton-PDF').remove();  function affichage_reglementaire_registre(button) {
294        // Popup de confirmation du traitement par l'utilisateur
295        if (trt_confirm() == false) {
296            return false;
297        }
298        // Suppression du bouton pour que l'utilisateur ne puisse pas cliquer une
299        // deuxième fois
300        $(button).remove();
301        // Affichage du spinner
302      $("#msg").html(msg_loading);      $("#msg").html(msg_loading);
303                // Requête AJAX vers le fichier app/affichage_reglementaire_registre.php
304      /*Requete AJAX vers le fichier edition_reglementaire.php pour mettre à jour les dossiers*/      // pour mettre à jour les dossiers
305        // XXX layout
306      $.ajax({      $.ajax({
307          type: "GET",          type: "GET",
308          url: "../app/edition_reglementaire.php?update",          url: "../app/affichage_reglementaire_registre.php?update",
309          cache: false,          cache: false,
310          success: function(html){          success: function(html){
311                            // Ajout d'un bloc de message vide
312              $('#msg').html(              $('#msg').html(
313                  '<div class="message ui-widget ui-corner-all ui-state-highlight">'+                  '<div class="message ui-widget ui-corner-all ui-state-highlight">'+
314                      '<p>'+                      '<p>'+
# Line 231  function dossier_reglementaire(){ Line 318  function dossier_reglementaire(){
318                      '</p>'+                      '</p>'+
319                  '</div>'                  '</div>'
320              );              );
321                            // Si le retour de l'appel Ajax n'est pas vide, alors il y a eu une
322              if ( html.length > 2 ){              // lors du traitement
323                                if ( html.length > 2 ) {
324                  $("#msg .message").addClass("ui-state-error");                  $("#msg .message").addClass("ui-state-error");
325                  $("#msg .text").html(html);                  $("#msg .text").html(html);
326              }              } else {
327              else {                  // Sinon message de succès et appel de l'édition
                   
328                  $("#msg .message").addClass("ui-state-valid");                  $("#msg .message").addClass("ui-state-valid");
329                  $("#msg .text").html("PDF affiche avec succes !");                  $("#msg .text").html("Traitement terminé. Le registre a été téléchargé.");
330                  window.open("../pdf/pdfetat.php?obj=registre_dossiers_affichage_reglementaire&idx=demo");                  window.open("../pdf/pdfetat.php?obj=registre_dossiers_affichage_reglementaire&idx=demo");
331              }              }
332          },          },
333          async: false          async: false
334      });      });
335        //
336        return false;
337  }  }
338    
339  //Fonction de redirection pour le widget de recherche de dossier  //Fonction de redirection pour le widget de recherche de dossier
340  function widget_recherche_dossier(data,nbRes){  function widget_recherche_dossier(data,nbRes){
341      /*$('#msg').show();      /*$('#msg').show();
# Line 386  function popupIt(objsf, link, width, hei Line 475  function popupIt(objsf, link, width, hei
475                  }                  }
476                  $(this).remove();                  $(this).remove();
477              },              },
478              resizable: false,              resizable: true,
479              modal: true,              modal: true,
480              width: width,              width: 'auto',
481              height: height,              height: 'auto',
482              position: 'center',              position: 'left top',
483            });            });
484          },          },
485          async : false          async : false
# Line 481  function afficherDemandeur(id,type) { Line 570  function afficherDemandeur(id,type) {
570   */   */
571  function editDemandeur(obj,id,type,id_css) {  function editDemandeur(obj,id,type,id_css) {
572      var url = '../scr/sousform.php?obj='+obj+'&retourformulaire=demande';      var url = '../scr/sousform.php?obj='+obj+'&retourformulaire=demande';
573      if(getDemandeInfo('type') == 'DM') {      //Vérification des contraintes de récupération des demandeurs
574        if(getDemandeInfo('contraintes') == 'avec_recup') {
575          url += '&action=0&idx_demandeur='+id;          url += '&action=0&idx_demandeur='+id;
576      } else {      } else {
577          url += '&action=1&idx='+id;          url += '&action=1&idx='+id;
# Line 614  $(function() { Line 704  $(function() {
704          formatFieldReferenceCadastrale();          formatFieldReferenceCadastrale();
705      }      }
706            
707      if (url.indexOf("form.php?obj=demande&") != -1      if (url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
708          && (url.indexOf("&action=3") == -1          && (url.indexOf("&action=3") == -1
709          && url.indexOf("&action=2") == -1          && url.indexOf("&action=2") == -1
710          && $(".form-is-valid").size() == 0)) {          && $(".form-is-valid").size() == 0)) {
# Line 820  function formatFieldReferenceCadastrale( Line 910  function formatFieldReferenceCadastrale(
910      }      }
911  }  }
912    
913  /*  /**
914   * Ajoute les icônes pour la recherche de pétitionnaire fréquent.   * Ajoute les icônes pour la recherche de pétitionnaire fréquent.
915   */   */
916  function addSearchIcon(){  function addSearchIcon(){
917    
918      $("#form-content:not(.form-is-valid) .search_particulier_fields,"+      $("#form-content:not(.form-is-valid) .search_fields").each(
919        "#form-content:not(.form-is-valid) .search_personne_morale_fields").each(function() {          function() {
920      /*Ajout de l'icône après le champs dénomination et nom de la personne morale*/              //Ajout de l'icône après le champs dénomination et nom de la personne morale*/
921                $(this).append(
             $(this).  
             append(  
922                  '<span '+                  '<span '+
923                      'class="om-icon om-icon-16 om-icon-fix search-petitionnaire-16" '+                      'class="om-icon om-icon-16 om-icon-fix search-frequent-16" '+
924                      'title="Chercher un petitionnaire"> '+                      'title="Chercher un frequent"> '+
                 '</span>'+  
                 '<span '+  
                     'class="om-icon om-icon-16 om-icon-fix erase-petitionnaire delete-16" '+  
                     'title="Supprimer le contenu"> '+  
925                  '</span>'                  '</span>'
926              );              );
927          }          }
928      );      );
929            
930      /*Ajout des actions sur les boutons*/      /*Ajout des actions sur les boutons*/
931      addActionSearchIcon('#sousform-petitionnaire #form-content');      addActionSearchIcon();
932      addActionRemove();      addActionRemove();
933    
934  }  }
# Line 859  function addActionRemove(){ Line 943  function addActionRemove(){
943      });      });
944  }  }
945    
946    /**
947     * Vérifie que les champs necessaires sont remplis et retourne les données necessaires
948     * sous forme de tableau JSOn
949     */
950    function getDataSearch(){
951        
952        //Il faut un minimum de trois lettres pour lancer la recherche
953        var minChar = false;
954        //Récupération des données
955        var dataJson = "{";
956        $('.search_fields input').each(
957            function(){
958                if ( $(this).val().length >= 3 ){
959                    minChar = true;
960                }
961                
962                var idInput = $(this).attr("id");
963                var valInput = $(this).val();
964                dataJson += "\"" + idInput + "\":\"" + valInput + "\",";
965            }
966        );
967        if (!minChar){
968            alert('Saisissez au moins trois lettres pour la recherche');
969            return "";
970        }
971        
972        dataJson = $.parseJSON(dataJson.substring(0,dataJson.length-1)+"}");
973        //Données sous forme d'un tableau JSON
974        return dataJson;
975    }
976    
977  /*  /*
978   * Ajoute les actions sur les icônes de recherche   * Ajoute les actions sur les icônes de recherche
979   */   */
980  function addActionSearchIcon(id){  function addActionSearchIcon(){
981        
982        //Selon l'objet dans lequel on se trouve
983        var objName = '';
984        var objReturn = '';
985        if ( $('#demandeur').length == 1 ){
986            objName = 'petitionnaire';
987            objReturn = 'demande';
988        }
989        else if($('#architecte').length == 1){
990            objName = 'architecte';
991            objReturn = 'donnees_techniques';
992        }
993            
994      /*Si on recherche un pétitionnaire de type particulier*/      $('.search-frequent-16').click(
     $('.search-petitionnaire-16').click(  
995          function(){          function(){
996                            //Récupération des données
997              /*Le champ nom du particulier doit contenir au moins trois lettres*/              dataJson = getDataSearch();
998              if ( $('#particulier_nom').val().length < 3 &&              //Si ce n'est pas un tableau JSON on n'exécute pas le reste du code
999                  $('#particulier_prenom').val().length < 3 &&              if ( typeof dataJson !== 'object' ){
                 $('#personne_morale_denomination').val().length < 3 &&  
                 $('#personne_morale_nom').val().length < 3 ){  
                   
                 alert('Saisissez au moins trois lettres pour la recherche');  
1000                  return;                  return;
1001              }              }
1002                            
1003              /*Données des champs nom et prénom du particulier*/              //Requête qui va récupérer les données du addSearchIcon(es)
1004              var donnees = "?par_nom=" + $('.search_particulier_fields #particulier_nom').val() +              //pétitionnaire(s) correspondant(s) à la recherche
                 "&par_prenom=" + $('.search_particulier_fields #particulier_prenom').val() +  
                 "&mor_denomination="+$('#personne_morale_denomination').val() +  
                 "&mor_nom="+$('#personne_morale_nom').val();  
   
             /* Requête qui va récupérer les données duaddSearchIcon(es) pétitionnaire(s)  
              * correspondant(s) à la recherche */  
1005              $.ajax({              $.ajax({
1006                  type: "GET",                  type: "POST",
1007                  url: "../app/findPetitionnaire.php" + donnees ,                  dataType: "json",
1008                    data: dataJson,
1009                    url: "../app/find" + objName.charAt(0).toUpperCase() + objName.substring(1) + ".php" ,
1010                  cache: false,                  cache: false,
1011                  success: function(obj){                  success: function(obj){
1012                      var freq = $.parseJSON(obj);                      var freq = obj;
1013                      var res='';                      var res='';
1014                      /*Si la recherche a donné des résultats*/                      /*Si la recherche a donné des résultats*/
1015                      if ( freq.length > 0 ){                      if ( freq.length > 0 ){
# Line 906  function addActionSearchIcon(id){ Line 1024  function addActionSearchIcon(id){
1024                              nbRes = freq.length;                              nbRes = freq.length;
1025                          }                          }
1026                                                    
1027                          res += '<select>' ;                          res += '<select id="select-'+objName+'">' ;
1028                                                    
1029                          /* Met les résultats de la recherche dans un select */                          /* Met les résultats de la recherche dans un select */
1030                         for ( i = 0 ; i < nbRes ; i++ ){                         for ( i = 0 ; i < nbRes ; i++ ){
# Line 920  function addActionSearchIcon(id){ Line 1038  function addActionSearchIcon(id){
1038                          res += 'Aucune correspondance trouvée.';                          res += 'Aucune correspondance trouvée.';
1039                      }                      }
1040                                            
1041                        addDivDialog('#sousform-' + objName);
1042                      /* Affichage de l'overlay */                      /* Affichage de l'overlay */
1043                      $('#dialog').html(res);                      $('#dialog').html(res);
1044                                                
1045                      $( "#dialog" ).dialog({                      $( "#dialog" ).dialog({
1046                            dialogClass: "dialog-search-frequent-"+objName,
1047                          modal: true,                          modal: true,
1048                          buttons : {                          buttons : {
1049                              Valider: function(){                              Valider: function(){
1050                                  if ( res != 'Auncune correspondance trouvée.'){                                  if ( res != 'Aucune correspondance trouvée.'){
1051                                        var id = $('#select-'+objName+' option:selected').val();
1052                                  }                                      if($.isNumeric(id)) {
1053                                  var id = $('#dialog select option:selected').val();                                          ajaxIt(objName,
1054                                  if($.isNumeric(id)) {                                          '../scr/sousform.php?obj=' + objName +
1055                                      ajaxIt('petitionnaire',                                          '&action=1&retourformulaire=' + objReturn +
1056                                      '../scr/sousform.php?obj=petitionnaire&action=1&retourformulaire=demande&idx='+id);                                          '&idx='+id
1057                                            );
1058                                        }
1059                                  }                                  }
1060                                  // Fermeture de l'overlay                                  // Fermeture de l'overlay
1061                                  $(this).dialog( "close" ).empty();                                  $(this).dialog( "close" );
1062                                    $(this).remove();
1063                              }                              }
1064                            },
1065                            close: function(){
1066                                $(this).remove();
1067                          }                          }
1068                      });                      });
1069                  },                  },
# Line 1166  function addNewFieldReferencesCadastrale Line 1292  function addNewFieldReferencesCadastrale
1292                  '<label '+                  '<label '+
1293                      'class="libelle-terrain_references_cadastrales" '+                      'class="libelle-terrain_references_cadastrales" '+
1294                      'for="terrain_references_cadastrales">'+                      'for="terrain_references_cadastrales">'+
1295                      ' terrain_references_cadastrales '+                      ' Références cadastrales '+
1296                  '</label>' +                  '</label>' +
1297              '</div>' +              '</div>' +
1298              '<div class="form-content reference_cadastrale_custom_fields">' +              '<div class="form-content reference_cadastrale_custom_fields">' +
# Line 1183  function addNewFieldReferencesCadastrale Line 1309  function addNewFieldReferencesCadastrale
1309              '</div>' +              '</div>' +
1310         '</div>';         '</div>';
1311      }      }
1312          
1313      $('.references_cadastrales_new_field').remove();      $('.references_cadastrales_new_field').remove();
1314      $('.moreFieldReferenceCadastrale').remove();      $('.moreFieldReferenceCadastrale').remove();
1315      $('#morelineReferenceCadastrale').remove();      $('#morelineReferenceCadastrale').remove();
# Line 1194  function addNewFieldReferencesCadastrale Line 1320  function addNewFieldReferencesCadastrale
1320    
1321  function addButtonCadastraleAdesse(){  function addButtonCadastraleAdesse(){
1322            
1323      $('#terrain_superficie').parent().parent().after('<div class="field field-type-text" >' +      $('#terrain_references_cadastrales').parent().parent().after('<div class="field field-type-text" >' +
1324          '<div class="form-libelle"></div>' +          '<div class="form-libelle"></div>' +
1325          '<div class="form-content buttonCadAdr">' +          '<div class="form-content buttonCadAdr">' +
1326              '<input id="cad-adr-them" class="ui-button ui-widget ui-state-default ui-corner-all" type="button" value="Cadastrale < = > Adresse"/>' +              '<input id="cad-adr-them" '+
1327                    'class="ui-button ui-widget ui-state-default ui-corner-all" '+
1328                    'type="button" '+
1329                    'onclick="getAdressFromCadastrale();" '+
1330                    'value="Récupérer l\'adresse"/>' +
1331          '</div>' +          '</div>' +
1332     '</div>' );     '</div>' );
1333  }  }
# Line 1281  function fieldReferenceCadastraleBase(){ Line 1411  function fieldReferenceCadastraleBase(){
1411                  'class="champFormulaire reference_cadastrale_custom_field" ' +                  'class="champFormulaire reference_cadastrale_custom_field" ' +
1412                  'type="text" ' +                  'type="text" ' +
1413                  'onchange="VerifNum(this)" ' +                  'onchange="VerifNum(this)" ' +
1414                  'maxlength="5" ' +                  'maxlength="4" ' +
1415                  'size="5" '+                  'size="4" '+
1416                  'placeholder="Parc." ';                  'placeholder="Parc." ';
1417            
1418      // désactivation des champs de référence cadastrale      // désactivation des champs de référence cadastrale
# Line 1344  function showFormsDemande(){ Line 1474  function showFormsDemande(){
1474                    
1475          $('#terrain_references_cadastrales').parent().parent().hide();          $('#terrain_references_cadastrales').parent().parent().hide();
1476    
1477          // Si le type de la demande est un transfert on efface la liste des demandeurs          //Vérification des contraintes de récupération des demandeurs si
1478          if(getDemandeInfo('type') == 'DT') {          // pas de récupération, on efface la liste
1479            if(getDemandeInfo('contraintes') == 'sans_recup') {
1480              if($('input[name=petitionnaire_principal]').size() != -1) {              if($('input[name=petitionnaire_principal]').size() != -1) {
1481                  removeDemandeur("petitionnaire_principal_" + $('input[name=petitionnaire_principal]').val());                  removeDemandeur("petitionnaire_principal_" + $('input[name=petitionnaire_principal]').val());
1482              }              }
# Line 1359  function showFormsDemande(){ Line 1490  function showFormsDemande(){
1490                      removeDemandeur("petitionnaire_" + $(this).val());                      removeDemandeur("petitionnaire_" + $(this).val());
1491                  }                  }
1492              });              });
1493          } else if ( getDemandeInfo('type') == 'DM' ) {          } else if ( getDemandeInfo('contraintes') == 'avec_recup' ) {
1494                            //Récupération des demandeurs si la contrainte le permet
1495              $.ajax({              $.ajax({
1496                  type: "GET",                  type: "GET",
1497                  url: "../app/getDemandeurList.php?dossier_autorisation=" + $('#dossier_autorisation').val(),                  url: "../app/getDemandeurList.php?dossier_autorisation=" + $('#dossier_autorisation').val(),
# Line 1419  function newInputReferenceCadastrale(){ Line 1551  function newInputReferenceCadastrale(){
1551  }  }
1552    
1553    
   
 /**  
  * Desactivation des fonctions widget du tableau de bord inutiles sur le nouveau  
  * tableau de bord  
  */  
 function widget_bind_move_actions() {}  
 function widget_bind_add_action() {}  
 function widget_bind_edit_actions(widget_selector) {}  
   
1554  // Cette fonction permet d'associer a un arbre html les fonctions jquery  // Cette fonction permet d'associer a un arbre html les fonctions jquery
1555  // necessaires. Elle permet notamment lors du chargement d'une page en ajax  // necessaires. Elle permet notamment lors du chargement d'une page en ajax
1556  // d'associer le comportement du bouton, la gestion du calendrier et la gestion  // d'associer le comportement du bouton, la gestion du calendrier et la gestion
# Line 1486  function overlayCerfa(idLot) { Line 1609  function overlayCerfa(idLot) {
1609          });          });
1610  }  }
1611    
1612    /**
1613     * Fonction permettant de faire la somme des champs passé en 2nd parametre et
1614     * le stocker dans le champ passé en 1er
1615     */
1616    function sommeChampsCerfa(cible, source) {
1617        val_cible = 0;
1618        
1619        $.each(source, function(index, value) {
1620            // Conversion des champs source en integer
1621            val_source = parseInt($('#'+value).val());
1622            // Cumul des valeurs des champs source
1623            val_cible = val_cible + (isNaN(val_source) ? 0 : val_source);
1624        });
1625        // Affectation de la nouvelle valeur
1626        $('#'+cible).val(val_cible);
1627    }
1628    
1629    function calculSurfaceTotal() {
1630        
1631        var nom_col = [ "su_avt_shon",
1632                        "su_cstr_shon",
1633                        "su_trsf_shon",
1634                        "su_chge_shon",
1635                        "su_demo_shon",
1636                        "su_tot_shon" ];
1637    
1638        // Calcul des totaux de colonnes
1639        $.each(nom_col, function(index, value) {
1640            var tot_col = 0;
1641            for ( var i = 1; i <= 9; i++ ) {
1642                // Conversion des champs source en integer
1643                val_source = parseInt($('#'+value+i).val());
1644                // Cumul des valeurs des champs source
1645                tot_col = tot_col + (isNaN(val_source) ? 0 : val_source);
1646            }
1647    
1648            // Affectation du résultat de ligne
1649            $('#'+value+'_tot').val(tot_col);
1650        });
1651    
1652        // Calcul des totaux des lignes
1653        for ( var j = 1; j <= 9; j++ ) {
1654            // Conversion des champs source en integer
1655            su_avt_shon = parseInt($('#su_avt_shon'+j).val());
1656            su_cstr_shon = parseInt($('#su_cstr_shon'+j).val());
1657            su_trsf_shon = parseInt($('#su_trsf_shon'+j).val());
1658            su_chge_shon = parseInt($('#su_chge_shon'+j).val());
1659            su_demo_shon = parseInt($('#su_demo_shon'+j).val());
1660            
1661            // Cumul des valeurs des champs source
1662            su_avt_shon = isNaN(su_avt_shon) ? 0 : su_avt_shon;
1663            su_cstr_shon = isNaN(su_cstr_shon) ? 0 : su_cstr_shon;
1664            su_trsf_shon = isNaN(su_trsf_shon) ? 0 : su_trsf_shon;
1665            su_chge_shon = isNaN(su_chge_shon) ? 0 : su_chge_shon;
1666            su_demo_shon = isNaN(su_demo_shon) ? 0 : su_demo_shon;
1667    
1668            // Affectation du résultat de ligne
1669            $('#su_tot_shon'+j).val((su_avt_shon+su_cstr_shon+su_trsf_shon)-(su_chge_shon+su_demo_shon));
1670    
1671        }
1672    
1673        // Calcul du total des totaux
1674        // Conversion des champs source en integer
1675        su_avt_shon = parseInt($('#su_avt_shon_tot').val());
1676        su_cstr_shon = parseInt($('#su_cstr_shon_tot').val());
1677        su_trsf_shon = parseInt($('#su_trsf_shon_tot').val());
1678        su_chge_shon = parseInt($('#su_chge_shon_tot').val());
1679        su_demo_shon = parseInt($('#su_demo_shon_tot').val());
1680        
1681        // Cumul des valeurs des champs source
1682        su_avt_shon = isNaN(su_avt_shon) ? 0 : su_avt_shon;
1683        su_cstr_shon = isNaN(su_cstr_shon) ? 0 : su_cstr_shon;
1684        su_trsf_shon = isNaN(su_trsf_shon) ? 0 : su_trsf_shon;
1685        su_chge_shon = isNaN(su_chge_shon) ? 0 : su_chge_shon;
1686        su_demo_shon = isNaN(su_demo_shon) ? 0 : su_demo_shon;
1687    
1688        // Affectation du résultat de ligne
1689        $('#su_tot_shon_tot').val((su_avt_shon+su_cstr_shon+su_trsf_shon)-(su_chge_shon+su_demo_shon));
1690    
1691    }
1692    
1693  /*  /*
1694   * Marque comme lu une consultation   * Marque comme lu une consultation ou commission
1695   */   */
1696  function portletUpdateData(id, objet, objetc, file, field, message){  function portletUpdateData(id, objet, objetc, file, field, message){
1697            
# Line 1555  function portletUpdateData(id, objet, ob Line 1759  function portletUpdateData(id, objet, ob
1759      }      }
1760  }  }
1761    
1762    /*
1763     * Marque comme non frequent un petitionnaire
1764     */
1765    function portletUpdatePetitionnaire(id, objet, objetc, file, field, message){
1766        
1767        /*
1768         *Vérifie que l'identifiant passé en paramètre est bien un chiffre
1769         * et que le type d'objet est défini
1770         */
1771        if ( $.isNumeric(id) && objet != '' ){
1772            
1773            donnees = "?ido=" + id + '&obj=' + objet + '&objk=' + objetc + '&idxDossier=' + getQuerystring('idx');
1774            $.ajax({
1775                type: "GET",
1776                url: "../app/"+file+".php" + donnees ,
1777                cache: false,
1778                success: function(html){
1779                    
1780                    $('#formulaire .message').remove();
1781                    /*Change la valeur affiché et affiche un message valide*/
1782                    if ( $.parseJSON(html) == "Mise a jour effectue avec succes" ||
1783                    $.parseJSON(html).indexOf("Transfert effectue avec succes") != -1 ){
1784                        
1785                        // On modife le champ field
1786                        if ( field != '' && message != '' ){
1787                            $('#'+field).html(message);
1788                            html = $.parseJSON(html);
1789                        }
1790                        else {
1791                            html = $.parseJSON(html).split(';');
1792                            
1793                            $('#'+field).html(html[0]);
1794                            
1795                            html = html[1];
1796                        }
1797                        
1798                        // On supprime l'action
1799                        $('span.'+field+'-16').parent().parent().remove();
1800                        // On affiche le message
1801                        $('#formulaire #tabs-1').prepend(
1802                            '<div ' +
1803                                'class="message ui-widget ui-corner-all ui-state-highlight ui-state-valid">' +
1804                                '<p>' +
1805                                    '<span class="ui-icon ui-icon-info"></span>' +
1806                                    '<span class="text">' +
1807                                        html +
1808                                    '</span>' +
1809                                '</p>' +
1810                            '</div>'
1811                        );
1812                    }
1813                    /*Affichage d'une erreur*/
1814                    else{
1815                        $('#formulaire #tabs-1').prepend(
1816                            '<div ' +
1817                                'class="message ui-widget ui-corner-all ui-state-highlight ui-state-error">' +
1818                                '<p>' +
1819                                    '<span class="ui-icon ui-icon-info"></span>' +
1820                                    '<span class="text">' +
1821                                        $.parseJSON(html) +
1822                                    '</span>' +
1823                                '</p>' +
1824                            '</div>'
1825                        );
1826                    }
1827                }
1828            });
1829        }
1830    }
1831    
1832    
1833  // Affiche le sous formulaire onglet  // Affiche le sous formulaire onglet
1834  function redirectPortletAction(id, onglet, nom_tabs){  function redirectPortletAction(id, onglet, nom_tabs){
1835    
# Line 1570  function redirectPortletAction(id, ongle Line 1845  function redirectPortletAction(id, ongle
1845  //Rajoute un dossier pour la commission id  //Rajoute un dossier pour la commission id
1846  function addDossierCommission(id, container){  function addDossierCommission(id, container){
1847            
1848      link = "../app/ajouter_dossier_commission.php?idx=" + id + "&idxDossier=" + $(container+" #dossier").val();      link = "../app/commission_ajouter_dossier.php?idx=" + id + "&idxDossier=" + $(container+" #dossier").val();
1849    
1850      $.ajax({      $.ajax({
1851          type: "GET",          type: "GET",
# Line 1624  function addDossierCommission(id, contai Line 1899  function addDossierCommission(id, contai
1899  //Affichage du tableau des dossier_commission possibles  //Affichage du tableau des dossier_commission possibles
1900  function ajouterTableauDossierCommissionPossible(id){  function ajouterTableauDossierCommissionPossible(id){
1901            
1902      link = "../app/tableau_dossier_commission_possible.php?idx=" + id ;      link = "../app/commission_tableau_dossier_possible.php?idx=" + id ;
1903    
1904      $.ajax({      $.ajax({
1905          type: "GET",          type: "GET",
# Line 1641  function ajouterTableauDossierCommission Line 1916  function ajouterTableauDossierCommission
1916  //Met à jour la liste des dossiers de la commission  //Met à jour la liste des dossiers de la commission
1917  function updateCommission(id, container){  function updateCommission(id, container){
1918            
1919      var link = "../app/update_dossier_commission.php?idx=" + id ;      var link = "../app/commission_update_dossier.php?idx=" + id ;
1920      var res = 1;      var valid = "";
1921        var error = "";
1922        var error_avis = "";
1923            
1924       //Affiche du message de retour       //Affiche du message de retour
1925      $(container + " .message").remove();      $(container + " .message").remove();
1926      $(container).prepend(      $(container).prepend(
1927          '<div class="message ui-widget ui-corner-all ui-state-highlight">'+          '<div class="message ui-widget ui-corner-all ui-state-highlight dossier-ok">'+
1928              '<p>'+              '<p>'+
1929                  '<span class="ui-icon ui-icon-info"></span>'+                  '<span class="ui-icon ui-icon-info"></span>'+
1930                  '<span class="text">'+                  '<span class="text">'+
# Line 1660  function updateCommission(id, container) Line 1937  function updateCommission(id, container)
1937      $(container + " input[type='checkbox']").each(      $(container + " input[type='checkbox']").each(
1938          function(index) {          function(index) {
1939                            
1940              link = "../app/update_dossier_commission.php?idx=" + id +              var idxDossier = $(this).val();
1941                  "&idxDossier=" + $(this).val();              //Identifiant du dossier formaté de façon lisible
1942                var idzDossier = $(this).parent().next().text();
1943                
1944                link = "../app/commission_update_dossier.php?idx=" + id +
1945                    "&idxDossier=" + idxDossier;
1946                            
1947              //Ajoute ces dossiers de l'ordre du jour              //Ajoute ces dossiers de l'ordre du jour
1948              if ( $(this).is(":checked")){              if ( $(this).is(":checked")){
# Line 1683  function updateCommission(id, container) Line 1964  function updateCommission(id, container)
1964                  success: function(i, obj){                  success: function(i, obj){
1965                                            
1966                      // Erreur                      // Erreur
1967                      if( i.return == "-1" ){                      if( i.error == "0" ){
1968                                                    
1969                          res = -1;                          error += idzDossier + ", ";
1970                        }
1971                        else if ( i.error == "-1" ) {
1972    
1973                            error_avis += idzDossier + ", ";
1974                        }
1975                        else{
1976                            valid += idzDossier + ", ";
1977                      }                      }
1978                  },                  },
1979                  async: false                  async: false
# Line 1693  function updateCommission(id, container) Line 1981  function updateCommission(id, container)
1981          }          }
1982      );      );
1983    
1984      //le traitement a été effectué avec succés      //Ajout du div des erreurs
1985      if ( res == 1 ){      if ( error != "" || error_avis != "" ){
1986            
1987            $(container + " .dossier-ok").after(
1988            '<div class="message ui-widget ui-corner-all ui-state-highlight dossier-err">'+
1989                '<p>'+
1990                    '<span class="ui-icon ui-icon-info"></span>'+
1991                    '<span class="text">'+
1992                    '</span>'+
1993                '</p>'+
1994            '</div>');
1995        }
1996    
1997        //le traitement a été effectué avec succès
1998        if ( valid != "" ){
1999                    
2000          $(container + ' .message').addClass("ui-state-ok");          $(container + ' .dossier-ok').addClass("ui-state-ok");
2001          $(container + ' .message .text').html("Mise à jour réalisée avec succès.");          $(container + ' .dossier-ok .text').html("Mise à jour réalisée avec succès pour le(s) dossier(s) : "+
2002                valid.slice(0,valid.length-2) +
2003                ".");
2004      }      }
     //Une erreur s'est produite  
2005      else {      else {
2006                    
2007          $(container + ' .message').addClass("ui-state-error");          $(container + " .dossier-ok").remove();
2008          $(container + ' .message .text').html("Une erreur s'est produite la mise à jour de la commission. " +      }
2009              "Veuillez contacter votre administrateur");      //Une erreur s'est produite
2010        if ( error != "" ) {
2011            
2012            $(container + ' .dossier-err').addClass("ui-state-error");
2013            $(container + ' .dossier-err .text').append(
2014                "Dossier : " + error.slice(0,error.length-2) + " déjà plannifié pour une autre commission.");
2015        }
2016        else if ( error_avis != "" ){
2017            
2018            $(container + ' .dossier-err').addClass("ui-state-error");
2019            $(container + ' .dossier-err .text').append(
2020                "Un  avis a déjà été rendu pour le(s) dossier(s): " +
2021                error_avis.slice(0,error_avis.length-2) +
2022                ".");
2023      }      }
2024  }  }
2025    
# Line 1729  function chargeDonneesCommissionType(id_ Line 2044  function chargeDonneesCommissionType(id_
2044              $('#participants').val(data.participants);              $('#participants').val(data.participants);
2045          }          }
2046      });      });
 }  
2047    }
2048    
2049    // Action de diffusion de mails des commissions
2050    function commission_diffusion(idx, obj, champ){
2051        
2052        $('#tabs-1 .message').remove();
2053        
2054        // Si les données sont fournies
2055        if ( $.isNumeric(idx) && obj != "" ){
2056            
2057            //Requête ajax d'envoi des données
2058            $.ajax({
2059                type: "GET",
2060                url: "../app/commission_diffusion.php?idx=" + idx + "&obj=" + obj,
2061                dataType: "json",
2062                async: false,
2063                success: function(data){
2064    
2065                    $('#tabs-1').prepend(
2066                        '<div ' +
2067                            'class="message ui-widget ui-corner-all ui-state-highlight">' +
2068                            '<p>' +
2069                                '<span class="ui-icon ui-icon-info"></span>' +
2070                                '<span class="text">' +
2071                                '</span>' +
2072                            '</p>' +
2073                        '</div>'                    
2074                    );
2075                    
2076                    var type = ( obj == "commission_compte_rendu" ) ? "du compte-rendu" : "de l'ordre du jour";
2077                    //L'envoi des mails a été effectué avec succès
2078                    if ( data.return == 1 ){
2079                        
2080                        //Finalisation du document
2081                        $.ajax({
2082                            type: "GET",
2083                            url: "../app/finalisation_document.php?idx=" + idx +
2084                                "&obj=commission&champ="+champ,
2085                            dataType: "json",
2086                            async: false,
2087                            success: function(data){
2088    
2089                                //Si la finalisation a été effectuée avec succès
2090                                if ( data != -1 ){
2091                                                      
2092                                    //On affiche le lien du document finalisé
2093                                    $('.'+champ).parent().attr("href", data+"");
2094                                    
2095                                    //On affiche un message de valisation
2096                                    $('.'+obj+' .message .text').html(
2097                                        "La finalisation du document s'est effectuée avec succès.<br/>"
2098                                    );
2099                                }
2100                                // Si une erreur s'est produite
2101                                else {
2102                                    
2103                                    //On affiche un message de validation
2104                                    $('.'+obj+' .message .text').html(
2105                                        "Une erreur s'est produite lors de la finalisation du document."
2106                                    );
2107                                }
2108                            }
2109                        });
2110                        
2111                        $('#tabs-1 .message').addClass("ui-state-valid");
2112                        $('#tabs-1 .message .text').prepend(
2113                            "La diffusion " + type + " s'est effectuée avec succès."
2114                        );
2115                    }
2116                    //Un erreur s'est produite
2117                    else if ( data.return == -1 ){
2118                        
2119                        $('#tabs-1 .message').addClass("ui-state-error");
2120                        $('#tabs-1 .message .text').html(
2121                            "Une erreur s'est produite lors de la diffusion " +
2122                            type +
2123                            ". Veuillez contacter votre administrateur."
2124                        );
2125                    }
2126                }
2127            });
2128        }
2129    }
2130    
2131    /**
2132     * Popup de confirmation pour les traitements
2133     */
2134    //
2135    function trt_confirm() {
2136        //
2137        if (confirm("Etes-vous sur de vouloir confirmer cette action ?")) {
2138            //
2139            return true;
2140        } else {
2141            //
2142            return false;
2143        }
2144    }
2145    
2146    /**
2147     * Finalisation des documents.
2148     *
2149     */
2150    function finalizeDocument(idx, obj, sousform, status, retour){
2151    
2152        //Requête ajax de finalisation des documents
2153        $.ajax({
2154            type: "GET",
2155            url: "../app/finalisation_document.php?idx=" + idx + "&obj=" + obj +
2156                "&status="+status+"&sousform="+sousform+"&retourformulaire="+retour,
2157            dataType: "json",
2158            async: false,
2159            success: function(data){
2160                
2161                $('#'+sousform+obj+' .message.ui-widget.ui-corner-all.ui-state-highlight').remove()
2162                $('#'+sousform+obj+' a.retour').first().before(
2163                    '<div ' +
2164                        'class="message ui-widget ui-corner-all ui-state-highlight">' +
2165                        '<p>' +
2166                            '<span class="ui-icon ui-icon-info"></span>' +
2167                            '<span class="text">' +
2168                            '</span>' +
2169                        '</p>' +
2170                    '</div>'                    
2171                );
2172                
2173                //Si la finalisation a été effectuée avec succès
2174                if ( data.pdf != -1 ){
2175                    
2176                    // On change le lien
2177                    var etat = ((status == 1)?'':'de') + 'finalis';
2178                    
2179                    $('.'+etat+'e').parent().parent().html(
2180                        data.portlet+""
2181                    );
2182                    
2183                    //On affiche le lien de l'action inverse
2184                    $('.edition').parent().attr("href", data.pdf+"");
2185                    
2186                    //Si on le document est finalisé, on cache les actions du portlet
2187                    if ( status == 1 ){
2188                        
2189                        $(".edit-16").parent().parent().remove();
2190                        $(".delete-16").parent().parent().remove();
2191                    }
2192                    else{
2193                        
2194                        var actions = '';
2195                        //Si le lien modifier est autorisé pour cet utilisateur
2196                        if ( typeof(data.actions.modifier)!='undefined' ){
2197                            
2198                            actions += data.actions.modifier;
2199                        }
2200                        
2201                        //Si le lien supprimer est autorisé pour cet utilisateur
2202                        if ( typeof(data.actions.supprimer)!='undefined' ){
2203                            
2204                            actions += data.actions.supprimer;
2205                        }
2206                        
2207                        $('.portlet-list').prepend(actions);
2208                    }
2209                    
2210                    //On affiche un message de valisation
2211                    $('#'+sousform+obj+' .message').addClass("ui-state-valid");
2212                    $('#'+sousform+obj+' .message .text').html(
2213                        "La "+etat+"ation du document s'est effectuée avec succès."
2214                    );
2215                }
2216                // Si une erreur s'est produite
2217                else {
2218                    
2219                    //On affiche un message de validation
2220                    $('#'+sousform+obj+' .message').addClass("ui-state-error");
2221                    $('#'+sousform+obj+' .message .text').html(
2222                        "Une erreur s'est produite lors de la finalisation du document."
2223                    );
2224                }
2225            }
2226        });
2227    }
2228    
2229    /**
2230     * Cette fonction permet d'afficher les options d'un select par rapport
2231     * à un autre champ
2232     *
2233     * @param  int id               Données (identifiant) du champ visé
2234     * @param  string tableName     Nom de la table
2235     * @param  string linkedField   Champ visé
2236     * @param  string formCible     Formulaire visé
2237     */
2238    function filterSelect(id, tableName, linkedField, formCible) {
2239    
2240        //lien vers script php
2241        link = "../app/filterSelect.php?idx=" + id + "&tableName=" + tableName +
2242                "&linkedField=" + linkedField + "&formCible=" + formCible;
2243    
2244        $.ajax({
2245            type: "GET",
2246            url: link,
2247            cache: false,
2248            dataType: "json",
2249            success: function(res){
2250                $('#'+tableName).empty();
2251    
2252                for ( j=0 ; j < res[0].length ; j++ ){
2253    
2254                    $('#'+tableName).append(
2255                        '<option value="'+res[0][j]+'" >'+res[1][j]+'</option>'
2256                    );
2257                    
2258                }
2259    
2260            },
2261            async: false
2262        });
2263    }
2264    
2265    /**
2266     * Redirige vers une page après un temps d'attente
2267     * @param  string   page            lien de la page vers la redirection
2268     * @param  int      milliseconde    temps d'attente avant la redirection
2269     */
2270    function redirection(page, milliseconde) {
2271    
2272        //
2273        setTimeout(window.location = page, milliseconde);
2274    }
2275    
2276    /**
2277     * Retourne ce qu'il y a à afficher dans le formulaire de retour (bouton ajouter ou supprimer et éditer)
2278     */
2279    function getObjId(obj){
2280    
2281        //Récupération de l'id de l'objet
2282        var id=$('#id_retour').val();
2283    
2284        //Retour des données
2285        if ( $('#id_retour').length > 0 ){
2286            setDataFrequent(id, obj);
2287            om_initialize_content();
2288        }
2289    }
2290    
2291    function setDataFrequent(id,obj) {
2292        $.ajax({
2293            type: "GET",
2294            url: '../app/afficher_synthese_obj.view.php?idx='+id+'&obj=' + obj,
2295            cache: false,
2296            success: function(html){
2297                $('.add_'+obj).each(
2298                    function(){
2299                        $(this).remove();
2300                    }
2301                );
2302                $(html).insertBefore('#'+obj).fadeIn(500);
2303                $('#'+obj).val(id);
2304            },
2305            async:false
2306        });
2307    }
2308    
2309    /**
2310     * Redirige vers le script PHP pour mettre à jour les informations
2311     * et met à jour l'interface pour l'utilisateur
2312     * @param  string   id          Identifiant du dossier
2313     * @param  string   fieldname   Nom du champ
2314     * @param  Function callback    Fonction mettant à jour l'interface des données
2315     * @param  string   confirm_message     Texte du message de confirmation
2316     */
2317    function geolocalisation_treatment(id, fieldname, callback, confirm_message) {
2318    
2319        // Overlay de confirmation du traitement
2320        if (confirm_message != null && confirm_message != '') {
2321            var dialog_confirm = confirm(confirm_message);
2322            if( dialog_confirm == false ){
2323              return false;
2324            }
2325        }
2326    
2327        // Affichage du spinner
2328        $('#'+fieldname).each(
2329            function(){
2330                $(this).children().removeClass();
2331                $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-empty');
2332                $(this).children().children().children(".text").html(msg_loading);
2333            }
2334        );
2335        
2336        // lien vers script PHP faisant l'appel au webservice
2337        link = '../app/geolocalisation_treatment.php?fieldname='+fieldname+'&id='+id+'&callback='+callback;
2338    
2339        // Traitement
2340        $.ajax({
2341            type: "GET",
2342            url: link,
2343            cache: false,
2344            dataType: "json",
2345            success: function(res){
2346                //
2347                $('#'+fieldname).each(
2348                    function(){
2349                        $(this).children().children().children(".text").text(res['log']['message']);
2350                        $(this).children().removeClass();
2351                        if (res['log']['etat'] == 't') {
2352                            $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-valid');
2353                        } else {
2354                            $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-error');
2355                        }
2356                    }
2357                );
2358    
2359                //
2360                if (typeof(callback) === "function" && res['log']['etat'] == 't') {
2361                    callback(res);
2362                }
2363            },
2364            async:false
2365        });
2366    }
2367    
2368    /**
2369     * Efface le message en haut du formulaire
2370     * @param array res Résultat après le traitement du script PHP
2371     */
2372    function set_geolocalisation_message(res) {
2373        $('#geolocalisation-message').remove();
2374    }
2375    
2376    /**
2377     * Met le champ centroïde à jour
2378     * @param  array   res  Résultat après le traitement du script PHP
2379     */
2380    function set_geolocalisation_centroide(res) {
2381        $('span#centroide').text("POINT("+res['return']['coordX']+" "+res['return']['coordY']+")");
2382    }
2383    
2384    /**
2385     * Met le champ servitude à jour
2386     * @param  array   res  Résultat après le traitement du script PHP
2387     */
2388    function set_geolocalisation_contrainte(res) {
2389        $('span#servitude').text(res['return']['servitude']);
2390    }
2391    
2392    /**
2393     * Redirige vers ElyxWeb
2394     * @param array res Résultat après le traitement du script PHP
2395     */
2396    function redirection_elyxweb(res) {
2397        window.open(res['return']);
2398    }
2399    
2400    /**
2401     * Traitement du bouton permettant de calculer toutes les données géographiques
2402     * @param  string   id                  Identifiant du dossier
2403     * @param  string   confirm_message     Texte du message de confirmation
2404     */
2405    function all_geolocalisation_treatments(id, confirm_message) {
2406    
2407        // Overlay de confirmation du traitement
2408        if (confirm_message != null && confirm_message != '') {
2409            var dialog_confirm = confirm(confirm_message);
2410            if( dialog_confirm == false ){
2411              return false;
2412            }
2413        }
2414    
2415        // Initialisation des variables utilisées en paramètres
2416        var fieldname = '';
2417        var callback = '';
2418        var confirm_message = '';
2419        var flag = '';
2420    
2421        // Modification des variables utilisées en paramètres pour "Vérifier les
2422        // parcelles"
2423        fieldname = 'verif_parcelle';
2424        callback = set_geolocalisation_message;
2425        // Traitement "Vérifier les parcelles"
2426        geolocalisation_treatment(id, fieldname, callback, confirm_message);
2427    
2428        // Positionne le flag sur le message de "Vérifier les parcelles"
2429        flag = $('#'+fieldname+"-message").attr("class");
2430        // Si c'est un message d'erreur on arrete le traitement
2431        if (flag == 'message ui-widget ui-corner-all ui-state-highlight ui-state-error') {
2432            return false;
2433        }
2434    
2435        // Modification des variables utilisées en paramètres pour "Calculer
2436        // l'emprise"
2437        fieldname = 'calcul_emprise';
2438        callback = '';
2439        // Traitement "Calculer l'emprise"
2440        geolocalisation_treatment(id, fieldname, callback, confirm_message);
2441    
2442        // Positionne le flag sur le message de "Calculer l'emprise"
2443        flag = $('#'+fieldname+"-message").attr("class");
2444        // Si c'est un message d'erreur on arrete le traitement
2445        if (flag == 'message ui-widget ui-corner-all ui-state-highlight ui-state-error') {
2446            return false;
2447        }
2448    
2449        // Modification des variables utilisées en paramètres pour "Calculer le
2450        // centroïde"
2451        fieldname = 'calcul_centroide';
2452        callback = set_geolocalisation_centroide;
2453        // Traitement "Calculer le centroïde"
2454        geolocalisation_treatment(id, fieldname, callback, confirm_message);
2455    
2456        // Positionne le flag sur le message de "Calculer le centroïde"
2457        flag = $('#'+fieldname+"-message").attr("class");
2458        // Si c'est un message d'erreur on arrete le traitement
2459        if (flag == 'message ui-widget ui-corner-all ui-state-highlight ui-state-error') {
2460            return false;
2461        }
2462    
2463        // Modification des variables utilisées en paramètres pour "Récupérer les
2464        // contraintes"
2465        fieldname = 'recup_contrainte';
2466        callback = set_geolocalisation_contrainte;
2467        //Traitement "Récupérer les contraintes"
2468        geolocalisation_treatment(id, fieldname, callback, confirm_message);
2469        
2470    }
2471    
2472    /**
2473     * Remplit le formulaire avec l'adresse trouvée ou affiche un message d'erreur
2474     */
2475    function getAdressFromCadastrale(){
2476        
2477        //Récupération des références cadastrales
2478        var referenceCadastrale = '{"refcad":[{';
2479        var i = 0 ;
2480        var j = 1 ;
2481        var delimit = 0;
2482        var parcelleDelimit = 0;
2483        var noReferenceCadastrale = false;
2484        $(".reference_cadastrale_custom_field").each(
2485            function(){
2486                
2487                //On vérifie que le champ n'est pas vide
2488                if ($(this).val()!=""&&$(this).val() != ";"){
2489                    noReferenceCadastrale = true;
2490                }
2491                
2492                //On va à la ligne suivante
2493                if ( $(this).val() == ";" ){
2494                    referenceCadastrale +=(delimit!=0)?'}]':'';
2495                    referenceCadastrale += "}" ;
2496                    i++;
2497                    j = 1;
2498                    delimit = 0;
2499                    parcelleDelimit = 0;
2500                }
2501                //On parcourt la ligne
2502                else {
2503                    switch(true){
2504                        //Quartier
2505                        case (j==1):
2506                            referenceCadastrale += (i!=0)?',':'';
2507                            referenceCadastrale += '"' + i + '"' + ':{"quartier":"'+$(this).val()+'"';
2508                            break;
2509                        //Section
2510                        case (j==2):
2511                            referenceCadastrale += ', "section":"'+$(this).val()+'"';
2512                            break;
2513                        //Parcelle
2514                        case (j==3):
2515                            referenceCadastrale += ', "parcelle":"'+$(this).val()+'"';
2516                            break;
2517                        //Le délimiteur
2518                        case (j%2==0&&j!=2):
2519                            if ( delimit==0 ){
2520                                referenceCadastrale += ', "delimit":[{"'+(delimit++)+'":"'+$(this).val()+'"';
2521                            }
2522                            else {
2523                                referenceCadastrale += ', "'+(delimit++)+'":"'+$(this).val()+'"';
2524                            }
2525                            break;
2526                        //La parcelle après le délimiteur
2527                        case (j%2==1&&j!=1&&j!=3):
2528                            referenceCadastrale += ',"'+(delimit++)+'":"'+$(this).val()+'"';
2529                            break;
2530                    }
2531                    j++;
2532                }
2533            }
2534        );
2535        if ( noReferenceCadastrale == true ){
2536            referenceCadastrale += "}]}";
2537        }
2538        else {
2539            referenceCadastrale = "";
2540        }
2541    
2542        //Lance la tentative de récupération de l'adresse
2543        $.ajax({
2544            type: "POST",
2545            url: '../app/getAdressFromCadastrale.php',
2546            data: $.parseJSON(referenceCadastrale),
2547            cache: false,
2548            dataType: "json",
2549            success: function(data){
2550    
2551                //Si le retour est un objet JSON, on a un résultat
2552                if ( $.isPlainObject(data)){
2553                    
2554                    //On met l'adresse dans les champs
2555                    $("#terrain_adresse_voie_numero").val(data.return.dnuvoi);
2556                    $("#terrain_adresse_voie").val(data.return.prefixe+" "+data.return.nom);
2557                    $("#terrain_adresse_code_postal").val(data.return.arrdt);
2558                    $("#terrain_adresse_localite").val(data.return.localite);
2559                }
2560                //Sinon, on affiche un message d'erreur
2561                else {
2562                    alert(data);
2563                }
2564            },
2565            async: false
2566        });
2567    }

Legend:
Removed from v.1404  
changed lines
  Added in v.2237

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26