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

Contents of /trunk/app/js/script.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1471 - (show annotations)
Sun Mar 17 20:58:11 2013 UTC (11 years, 10 months ago) by fmichon
File MIME type: application/javascript
File size: 62162 byte(s)
Ajout du focus sur le champ login au chargement de la page.

1 // specific openfoncier ========================================================
2
3 // Document is ready
4 $(function(){
5
6 /**
7 * Ajout du focus sur le champ login au chargement de la page.
8 */
9 $('#login_form #login').focus();
10
11 /**
12 * Spécifique app/affichage_reglementaire_attestation.php pour donner le
13 * focus sur le champ de recherche au chargement de la page.
14 */
15 $('#affichage_reglementaire_attestation_form #dossier').focus();
16
17 /**
18 * Spécifique app/avis_code_barre.php pour donner le focus sur le champ de
19 * recherche au chargement de la page.
20 */
21 $('#avis_code_barre_form #consultation').focus();
22
23 /**
24 * Spécifique app/maj_dates_suivi.php pour donner le focus sur le champ
25 * instruction au chargement de la page si la date n'est pas vide.
26 */
27 if($('#maj_dates_form #date').val()!="") {
28 $('#maj_dates_form #instruction').focus();
29 }
30 });
31
32
33 /**
34 * WIDGET liés au formulaire et sousformulaire
35 *
36 * Ces fonctions javascript sont appelées depuis les méthodes setOnChange,
37 * setOnClick, ...
38 */
39 // bible - type httpclick
40 function bible() {
41 if(fenetreouverte==true)
42 pfenetre.close();
43 var ev=document.f2.evenement.value;
44 var idx=document.f2.dossier.value;
45 pfenetre=window.open("../app/bible.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");
46 fenetreouverte=true;
47 }
48 // bible2 - type httpclick
49 function bible2()
50 {
51 if(fenetreouverte==true)
52 pfenetre.close();
53 var ev=document.f2.evenement.value;
54 var idx=document.f2.dossier.value;
55 pfenetre=window.open("../app/bible2.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");
56 fenetreouverte=true;
57 }
58 // bible_auto - type httpclick
59 function bible_auto(){
60 if(fenetreouverte==true)
61 pfenetre.close();
62 var ev=document.f2.evenement.value;
63 var idx=document.f2.dossier.value;
64 pfenetre=window.open("../app/bible_auto.php?idx="+idx+"&ev="+ev,"evenement","width=600,height=300,top=120,left=120");
65 fenetreouverte=true;
66 }
67 // VerifNumdec - type text
68 function VerifNumdec(champ) {
69 champ.value = champ.value.replace(",", "."); // remplacement de la virgule
70 //if (champ.value.lastIndexOf(".") == -1){ // champ decimal
71 if (isNaN(champ.value)) {
72 alert(msg_alert_error_verifnum);
73 champ.value = "";
74 return;
75 }
76 //}
77
78 }
79 // Ce widget permet de charger les données d'un select en ajax
80 function changeDataSelect(tableName, linkedField, joker){
81 var id_dossierAutorisation = $("#dossier_autorisation").val();
82 var id = $("#"+linkedField).val();
83 link = "../app/listData.php?idx=" + id + "&tableName=" + tableName +
84 "&linkedField=" + linkedField ;
85 if(id_dossierAutorisation != "") {
86 link += "&nature=EXIST";
87 }
88 var val_tableName = $('#'+tableName).val();
89 $.ajax({
90 type: "GET",
91 url: link,
92 cache: false,
93 dataType: "json",
94 success: function(html){
95
96 $('#'+tableName).empty();
97 var selected = "";
98 if(val_tableName == "") {
99 selected=' selected="selected"';
100 }
101 if ( joker == true )
102 $('#'+tableName).append(
103 '<option value=""'+selected+'>*</option>'
104 );
105 else {
106 $('#'+tableName).append(
107 '<option value=""'+selected+'>Choisir ' + tableName + '</option>'
108 );
109 }
110 if ( html !== '' ){
111
112 html = html.split(';');
113 for ( i = 0 ; i < html.length - 1 ; i++ ){
114
115 html_temp = html[i].split('_');
116 selected = "";
117 if(val_tableName == html_temp[0]) {
118 selected=' selected="selected"';
119 }
120 $('#'+tableName).append(
121 '<option value="'+html_temp[0]+'"'+selected+' >'+html_temp[1]+'</option>'
122 );
123
124 }
125 }
126 },
127 async: false
128 });
129 }
130
131 // Ce widget permet de charger les données de la demande type en ajax
132 function changeDemandeTypeDataSelect(){
133 // Récupération de l'id du dossier_autorisation_type_detaille
134 var id_datd = $("#dossier_autorisation_type_detaille").val();
135
136 // Récupération de la liste des paramètres de l'url
137 var params = extractUrlParams();
138 if ( typeof params['idx_dossier'] === "undefined" ){
139 params['idx_dossier'] = '';
140 }
141
142 link = "../app/listDemandeType.php?idx=" + params['idx_dossier'] + "&datd="+ id_datd;
143
144 var val_tableName = $('#demande_type').val();
145 $.ajax({
146 type: "GET",
147 url: link,
148 cache: false,
149 dataType: "json",
150 success: function(res){
151 $('#demande_type').empty();
152 var selected = "";
153
154 for ( j=0 ; j < res[0].length ; j++ ){
155
156 $('#demande_type').append(
157 '<option value="'+res[0][j]+'"'+selected+' >'+res[1][j]+'</option>'
158 );
159
160 }
161 $('#demande_type').val(val_tableName);
162 },
163 async: false
164 });
165 }
166
167 /**
168 * Fonction de récupération des paramètres GET de la page
169 * @return Array Tableau associatif contenant les paramètres GET
170 */
171 function extractUrlParams(){
172 var t = location.search.substring(1).split('&');
173 var f = [];
174 for (var i=0; i<t.length; i++){
175 var x = t[ i ].split('=');
176 f[x[0]]=x[1];
177 }
178 return f;
179 }
180
181 // vuploadMulti - XXX
182 function vuploadMulti(champ) {
183 //
184 if (fenetreouverte == true) {
185 pfenetre.close();
186 }
187 //
188 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");
189 //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");
190 //
191 fenetreouverte = true;
192 }
193 // tmpUpload - Upload XXX
194 function tmpUpload(champ) {
195 //
196 if (fenetreouverte == true) {
197 pfenetre.close();
198 }
199 //
200 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");
201 //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");
202 //
203 fenetreouverte = true;
204 }
205
206
207
208 /**
209 * POPUP pour le téléchargement de fichier
210 *
211 * Ces fonctions javascript sont appelées depuis des onClick sur des
212 * formulaires spécifiques pour permettre de transmettre des paramètres aux
213 * éditions pdf ainsi appelées.
214 */
215 //
216 function dossierads_d(debut)
217 {
218 //if(fenetreouverte==true)
219 window.location="../pdf/pdfetat.php?obj=registre_dossiers_decisions_par_type_par_date&nature="
220 +document.f1.nature.value+"&idx=demo&datedebut="
221 +document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
222 }
223
224 // Cette fonction permet de gérer la validation du formulaire du script :
225 // app/affichage_reglementaire_registre.php
226 function affichage_reglementaire_registre(button) {
227 // Popup de confirmation du traitement par l'utilisateur
228 if (trt_confirm() == false) {
229 return false;
230 }
231 // Suppression du bouton pour que l'utilisateur ne puisse pas cliquer une
232 // deuxième fois
233 $(button).remove();
234 // Affichage du spinner
235 $("#msg").html(msg_loading);
236 // Requête AJAX vers le fichier app/affichage_reglementaire_registre.php
237 // pour mettre à jour les dossiers
238 // XXX layout
239 $.ajax({
240 type: "GET",
241 url: "../app/affichage_reglementaire_registre.php?update",
242 cache: false,
243 success: function(html){
244 // Ajout d'un bloc de message vide
245 $('#msg').html(
246 '<div class="message ui-widget ui-corner-all ui-state-highlight">'+
247 '<p>'+
248 '<span class="ui-icon ui-icon-info"></span>'+
249 '<span class="text">'+
250 '</span>'+
251 '</p>'+
252 '</div>'
253 );
254 // Si le retour de l'appel Ajax n'est pas vide, alors il y a eu une
255 // lors du traitement
256 if ( html.length > 2 ) {
257 $("#msg .message").addClass("ui-state-error");
258 $("#msg .text").html(html);
259 } else {
260 // Sinon message de succès et appel de l'édition
261 $("#msg .message").addClass("ui-state-valid");
262 $("#msg .text").html("Traitement terminé. Le registre a été téléchargé.");
263 window.open("../pdf/pdfetat.php?obj=registre_dossiers_affichage_reglementaire&idx=demo");
264 }
265 },
266 async: false
267 });
268 //
269 return false;
270 }
271
272 //Fonction de redirection pour le widget de recherche de dossier
273 function widget_recherche_dossier(data,nbRes){
274 /*$('#msg').show();
275 $('#msg').html(msg_loading);*/
276
277 // S'il n'y a qu'un seul résultat, afficher un résumé
278 if ( nbRes == 1 ){
279
280 window.location = "../scr/form.php?obj=dossier_instruction&action=3&" +
281 "idx=" + data + "&premier=0&advs_id=&recherche=&tricol=&" +
282 "selectioncol=&valide=&retour=tab";
283 }
284 // S'il y a une liste de dossier, redirection vers le tableau
285 else {
286
287 window.location = "../scr/tab.php?obj=recherche_direct&selectioncol=0&recherche=" + data;
288 }
289 }
290 //
291 function dossierdepot()
292 {
293 //if(fenetreouverte==true)
294 window.location="../pdf/pdfetat.php?obj=registre_dossiers_depots_par_type_par_date&nature="+
295 document.f1.nature.value+"&idx=demo&datedebut="+
296 document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
297 }
298 //
299 function dossierads()
300 {
301 //if(fenetreouverte==true)
302 window.location="../pdf/pdfetat.php?obj=registre_dossiers_par_type_par_date&nature="+
303 document.f1.nature.value+"&idx=demo&datedebut="+
304 document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
305 }
306
307 // téléchargement du fichier
308 function file(fichier) {
309 //
310 if (fichier == "") {
311 alert("zone vide");
312 }
313 //
314 pfenetre = window.open("../app/file.php?file="+fichier,"Visualisation","width=100,height=100,top=1,left=150,scrollbars=yes,resizable = yes");
315 //
316 fenetreouverte = true;
317 }
318
319 /**
320 * Retour spécifique de l'écran de consultation multiple - surcharge de ajaxIt
321 * @todo XXX voir les différences avec ajaxIt et si il n'est pas possible
322 * d'effectuer la modification dans le core
323 */
324 function messageIt(objsf, link, empty) {
325 // recuperation du terme recherche
326 var recherche = document.getElementById("recherchedyn");
327 if (recherche != null) {
328 link += "&recherche="+recherche.value;
329 }else {
330 link += "&recherche=";
331 }
332 // execution de la requete en GET
333 $.ajax({
334 type: "GET",
335 url: link,
336 cache: false,
337 success: function(html){
338 (empty == true )?$("#sousform-"+objsf).empty():'';
339 $("#sousform-"+objsf).append(html);
340 om_initialize_content();
341 },
342 async: false
343 });
344 }
345
346 /**
347 * TTélécharegement de fichier pdf en ajax
348 * spécifique de l'écran de consultation multiple
349 */
350 /* Plugin jQuery qui lance un espèce d'appel AJAX vers un script PHP de téléchargement de fichier*/
351 jQuery.download = function(url, data, method){
352 //url and data options required
353 if( url && data ){
354 //data can be string of parameters or array/object
355 data = typeof data == 'string' ? data : jQuery.param(data);
356 //split params into form inputs
357 var inputs = '';
358 jQuery.each(data.split('&'), function(){
359 var pair = this.split('=');
360 inputs+='<input type="hidden" name="'+ pair[0] +'" value="'+ pair[1] +'" />';
361 });
362 //send request
363 jQuery('<form action="'+ url +'" method="'+ (method||'post') +'">'+inputs+'</form>')
364 .prependTo('body').submit().remove();
365 };
366 };
367
368 /**
369 * Cette fonction permet de charger dans un dialog jqueryui un formulaire tel
370 * qu'il aurait été chargé avec ajaxIt
371 *
372 * @param objsf string : objet de sousformulaire
373 * @param link string : lien vers un sousformulaire (../scr/sousform.php...)
374 * @param width integer: width en px
375 * @param height integer: height en px
376 * @param callback function (optionel) : nom de la méthode à appeler
377 * à la fermeture du dialog
378 * @param callbackParams mixed (optionel) : paramètre à traiter dans la function
379 * callback
380 *
381 **/
382 function popupIt(objsf, link, width, height, callback, callbackParams) {
383 // Insertion du conteneur du dialog
384 var dialog = $('<div id=\"sousform-'+objsf+'\"></div>').insertAfter('#tabs-1 .formControls');
385 $('<input type=\"text\" name=\"recherchedyn\" id=\"recherchedyn\" value=\"\" class=\"champFormulaire\" style=\"display:none\" />').insertAfter('#sousform-'+objsf);
386
387 // execution de la requete passee en parametre
388 // (idem ajaxIt + callback)
389 $.ajax({
390 type: "GET",
391 url: link,
392 cache: false,
393 success: function(html){
394 //Suppression d'un precedent dialog
395 dialog.empty();
396 //Ajout du contenu recupere
397 dialog.append(html);
398 //Initialisation du theme OM
399 om_initialize_content();
400 //Creation du dialog
401 $(dialog).dialog({
402 //OnClose suppression du contenu
403 close: function(ev, ui) {
404 // Si le formulaire est submit et valide on execute la méthode
405 // passée en paramètre
406 if (typeof(callback) === "function") {
407 callback(callbackParams);
408 }
409 $(this).remove();
410 },
411 resizable: false,
412 modal: true,
413 width: width,
414 height: height,
415 position: 'center',
416 });
417 },
418 async : false
419 });
420 //Fermeture du dialog lors d'un clic sur le bouton retour
421 $('#sousform-'+objsf).on("click",'a.retour',function() {
422 $(dialog).dialog('close').remove();
423 return false;
424 });
425 }
426
427 /***
428 * Fonction getter des paramètres de l'url courante
429 */
430 // Parse URL Queries Method
431 (function($){
432 $.getQuery = function( query ) {
433 query = query.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
434 var expr = "[\\?&]"+query+"=([^&#]*)";
435 var regex = new RegExp( expr );
436 var results = regex.exec( window.location.href );
437 if( results !== null ) {
438 return results[1];
439 return decodeURIComponent(results[1].replace(/\+/g, " "));
440 } else {
441 return false;
442 }
443 };
444 })(jQuery);
445
446
447 /*
448 * Javascript concernant la demande d'avis
449 *
450 *
451 */
452
453 /**
454 * Fonction de callback appellée lors de la fermeture du dialog (popupit)
455 * du retour d'avis d'un service
456 **/
457 function returnToTab(objsf) {
458 var valid=$('#sousform-'+objsf+' div.ui-state-valid');
459 if(valid.length > 0) {
460 document.location.href="../scr/tab.php?obj="+$.getQuery('obj')+"&premier="+$.getQuery('premier')
461 +"&advs_id="+$.getQuery('advs_id')+"&recherche="+$.getQuery('recherche')+"&tricol="+$.getQuery('tricol')
462 +"&selectioncol="+$.getQuery('selectioncol');
463 }
464 };
465
466
467 /*
468 * Javascript concernant la demande
469 *
470 *
471 */
472
473 /**
474 * Fonction permettant de mettre à jour les infos du demandeur
475 **/
476 function getDemandeurId(type) {
477 var id_demandeur=$('#id_retour').val();
478 if($.isNumeric(id_demandeur)) {
479 afficherDemandeur(id_demandeur,type);
480 om_initialize_content();
481 }
482 }
483
484 /**
485 * Fonction permettant d'afficher la synthèse d'un demandeur
486 */
487 function afficherDemandeur(id,type) {
488 $.ajax({
489 type: "GET",
490 url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+id+'&type='+type,
491 cache: false,
492 success: function(html){
493 $(html).insertBefore('#add_'+type).fadeIn(500);
494
495 },
496 async:false
497 });
498 affichageBoutonsDemandeurs();
499 }
500
501 /**
502 * Fonction permettant de modifier un demandeur
503 */
504 function editDemandeur(obj,id,type,id_css) {
505 var url = '../scr/sousform.php?obj='+obj+'&retourformulaire=demande';
506 if(getDemandeInfo('type') == 'DM') {
507 url += '&action=0&idx_demandeur='+id;
508 } else {
509 url += '&action=1&idx='+id;
510 }
511 popupIt(obj, url, 860, 'auto',
512 replaceDemandeur, {'type':type,'id': id, 'id_css':id_css});
513 affichageBoutonsDemandeurs();
514 }
515
516 /**
517 * Function permettant de remplacer un contenu déjà existant
518 **/
519 function replaceDemandeur(obj) {
520 var new_demandeur=$('#id_retour').val();
521 if($.isNumeric(new_demandeur)) {
522 $.ajax({
523 type: "GET",
524 url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+new_demandeur+'&type='+obj.type,
525 cache: false,
526 success: function(html){
527 $(obj.id_css).replaceWith(html);
528 }
529 });
530 }
531 }
532 /**
533 * Function permettant de remplacer un contenu déjà existant
534 **/
535 function removeDemandeur(id) {
536 var div_class=$('#'+id).attr("class");
537 $('#'+id).remove();
538 if(div_class == "delegataire") {
539 $('#add_delegataire').fadeIn(500);
540 }
541 affichageBoutonsDemandeurs();
542 }
543
544 /**
545 * Fonction permettant d'afficher et cacher les boutons d'ajout de demandeurs
546 */
547 function affichageBoutonsDemandeurs(){
548
549 // Si formulaire après validation on cache les boutons d'ajout de demandeurs
550 url = document.location + "" ;
551
552 if ((url.indexOf("form.php?obj=demande&") != -1
553 || url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
554 || url.indexOf("form.php?obj=demande_dossier_existant&") != -1)
555 && $("form[name=f1] .form-is-valid").size() > 0 ) {
556
557 $('#add_petitionnaire_principal').hide();
558 $('#add_delegataire').hide();
559 if($('input[name=delegataire][type=hidden]').size() == 0) {
560 $('#delegataire').hide();
561 }
562 $('#add_petitionnaire').hide();
563
564 } else {
565
566 // Affichage du bouton d'ajout du petitionnaire principal
567 if($('input[name=petitionnaire_principal][type=hidden]').size() == 1) {
568 $('#add_petitionnaire_principal').hide();
569 } else {
570 $('#add_petitionnaire_principal').fadeIn(500);
571 }
572
573 // Affichage du bouton d'ajout du delegataire
574 if($('input[name=petitionnaire_principal][type=hidden]').size() == 1
575 || $('input[name=delegataire][type=hidden]').size() == 1) {
576 $('#delegataire').fadeIn(500);
577 if($('input[name=delegataire][type=hidden]').size() == 0) {
578 $('#add_delegataire').fadeIn(500);
579 } else {
580 $('#add_delegataire').hide();
581 }
582 } else {
583 $('#delegataire').hide();
584 }
585
586 // Affichage du bouton d'ajout de petitionnaires
587 if($('input[name=petitionnaire_principal][type=hidden]').size() == 0) {
588 $('#add_petitionnaire').hide();
589 } else {
590 $('#add_petitionnaire').fadeIn(500);
591 }
592 }
593 }
594
595 /**
596 * Appel au chargement de la page
597 **/
598 $(function() {
599 changeDemandeurType('qualite');
600 if ( $('#type_demandeur') == 'petitionnaire' ){
601
602 addSearchIcon();
603 addDivDialog('.bloc_demandeur');
604 }
605 affichageBoutonsDemandeurs();
606 // Bind de la fonction permettant l'ajout du pétitionnaire principal
607 $("#formulaire").on("click","#add_petitionnaire_principal", function() {
608 popupIt('petitionnaire',
609 '../scr/sousform.php?obj=petitionnaire&action=0'+
610 '&retourformulaire=demande&principal=true', 860, 'auto',
611 getDemandeurId, 'petitionnaire_principal');
612 });
613 // Bind de la fonction permettant l'ajout du délégataire
614 $("#formulaire").on("click","#add_delegataire", function(event) {
615 popupIt('delegataire',
616 '../scr/sousform.php?obj=delegataire&action=0'+
617 '&retourformulaire=demande', 860, 'auto',
618 getDemandeurId, 'delegataire');
619 });
620 // Bind de la fonction permettant l'ajout des pétitionnaires
621 $("#formulaire").on("click","#add_petitionnaire", function(event) {
622 popupIt('petitionnaire',
623 '../scr/sousform.php?obj=petitionnaire&action=0'+
624 '&retourformulaire=demande', 860, 'auto',
625 getDemandeurId, 'petitionnaire');
626 });
627
628 url = document.location + "" ;
629 if ((
630 url.indexOf("form.php?obj=demande&") != -1 ||
631 url.indexOf("form.php?obj=dossier&") != -1 ||
632 url.indexOf("form.php?obj=dossier_instruction&") != -1
633 )
634 && url.indexOf("&action=3") == -1) {
635
636 formatFieldReferenceCadastrale();
637 }
638
639 if (url.indexOf("form.php?obj=demande&") != -1
640 && (url.indexOf("&action=3") == -1
641 && url.indexOf("&action=2") == -1
642 && $(".form-is-valid").size() == 0)) {
643
644 addButtonCadastraleAdesse();
645 changeDemandeType();
646 }
647
648 // Ajout de demande
649 if ((url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
650 || url.indexOf("form.php?obj=demande_dossier_existant&") != -1)
651 && url.indexOf("&action=0") != -1 ){
652
653 /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
654 hideFields();
655 }
656
657 // Ajout de demande sur dossier existant
658 if (url.indexOf("form.php?obj=demande_dossier_existant&") != -1
659 && url.indexOf("&action=0") != -1 ){
660
661 /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
662 hideFields();
663 changeDemandeType();
664 }
665
666 // Modification de demande
667 if (
668 (
669 url.indexOf("form.php?obj=demande&") != -1
670 || url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
671 || url.indexOf("form.php?obj=demande_dossier_existant&") != -1
672 )
673 && url.indexOf("&action") == -1
674 ){
675
676 formatFieldReferenceCadastrale();
677 }
678
679 //Gestion de la commission
680 $( "#tabs" ).tabs();
681
682 // Affichage du tableau des dossier_commission au clique
683 $("#dossier_planifie").click(function() {
684
685 var params = extractUrlParams();
686 idx = params['idx'];
687
688 ajaxIt(
689 'dossier_commission',
690 '../scr/soustab.php?obj=dossier_commission&idxformulaire='+
691 idx +
692 '&retourformulaire=commission');
693 });
694
695 // Affichage du tableau des dossier_commission posssible au clique
696 $('#commission_dossiers_plannifier_retirer').click(
697 function(){
698
699 var params = extractUrlParams();
700 idx = params['idx'];
701
702 $('#tabs-2').empty();
703 ajouterTableauDossierCommissionPossible(idx);
704 }
705 );
706
707 //Suppression du message et des données dans le champ dossier
708 $('#commission_dossiers_plannifier_numero').click(
709 function(){
710
711 $('#tabs-3 .message').remove();
712 $('#tabs-3 #dossier').val("");
713 }
714 );
715 });
716
717 /*
718 * Action sur les champs pour les références cadastrales
719 */
720 function formatFieldReferenceCadastrale(){
721
722 addNewFieldReferencesCadastrales();
723 $('#terrain_references_cadastrales').parent().parent().hide();
724
725 url = document.location + "";
726
727 reference_cadastrale = $('#terrain_references_cadastrales').val();
728 /*Formatage de la reference cadastrale*/
729 if ( reference_cadastrale != '' ){
730
731 /* Récupère la référence cadastrale non formatée */
732 references_cadastrales = reference_cadastrale.split(';');
733 donnees = new Array();
734
735 i = 0 ;
736 /* Boucle sur les références, elles étaient séparées par un ; */
737 for ( l = 0 ; l < references_cadastrales.length - 1 ; l ++ ){
738
739 /*Récupère le code impots du qartier [CHIFFRES]*/
740 k = 0;
741 donnees[i] = '';
742 for ( j = k ; j < references_cadastrales[l].length ; j++ ){
743
744 if ( references_cadastrales[l].charAt(j) >= 0 &&
745 references_cadastrales[l].charAt(j) <= 9 ){
746
747 donnees[i] += references_cadastrales[l].charAt(j);
748 k++;
749
750 } else {
751
752 i++;
753 break;
754 }
755 }
756
757 /* Récupère la section [LETTRES] */
758 donnees[i] = '';
759 for ( j = k ; j < references_cadastrales[l].length ; j++ )
760 if ( isAlpha(references_cadastrales[l].charAt(j)) ){
761
762 donnees[i] += references_cadastrales[l].charAt(j);
763 k++;
764
765 } else {
766
767 i++;
768 break;
769 }
770
771 /* Récupère la parcelle [CHIFFRES] */
772 donnees[i] = '';
773 for ( j = k ; j < references_cadastrales[l].length ; j++ )
774 if ( references_cadastrales[l].charAt(j) >= 0 &&
775 references_cadastrales[l].charAt(j) <= 9 ){
776
777 donnees[i] += references_cadastrales[l].charAt(j);
778 k++;
779
780 } else {
781
782 break;
783 }
784
785 /* Récupère les séparateurs [ A / ] et les sections */
786 m = 0 ; // Nombre de suffixe
787 if ( k < references_cadastrales[l].length ){
788
789 for ( j = k ; j < references_cadastrales[l].length ; j++ )
790 if ( isAlpha(references_cadastrales[l].charAt(j)) ){
791
792 m++;
793 donnees[++i] = references_cadastrales[l].charAt(j);
794 donnees[++i] = '';
795 }
796 else {
797
798 donnees[i] += references_cadastrales[l].charAt(j);
799 }
800 }
801
802 /*Créé autant de champs de que de référence */
803 donnees[++i] = ';';
804 i++;
805
806 if ( l > 0 ) {
807
808 $('.reference_cadastrale_custom_fields').append(
809 "<br/>" + fieldReferenceCadastraleBase()
810 );
811 }
812
813 actionFormReferenceCadastrale();
814
815 if ( m > 0 ){
816
817 for ( j = 0 ; j < m ; j++ ){
818
819 $('#moreFieldReferenceCadastrale' +
820 ( $('.moreFieldReferenceCadastrale').length - 1 ) ).
821 before(
822 newInputReferenceCadastrale()
823 );
824 }
825 }
826 }
827 /* Action sur les boutons [+ ajouter d'autres champs] et [+ ajouter
828 * d'autres lignes] */
829 actionLineFormReferenceCadastrale();
830
831 /* Ajoute les données dans les champs nouvellement créés */
832 $('.reference_cadastrale_custom_field').each(
833 function(index) {
834
835 $(this).val(donnees[index])
836 }
837 );
838 }
839 else{
840 actionFormReferenceCadastrale();
841 actionLineFormReferenceCadastrale();
842 }
843 }
844
845 /*
846 * Ajoute les icônes pour la recherche de pétitionnaire fréquent.
847 */
848 function addSearchIcon(){
849
850 $("#form-content:not(.form-is-valid) .search_particulier_fields,"+
851 "#form-content:not(.form-is-valid) .search_personne_morale_fields").each(function() {
852 /*Ajout de l'icône après le champs dénomination et nom de la personne morale*/
853
854 $(this).
855 append(
856 '<span '+
857 'class="om-icon om-icon-16 om-icon-fix search-petitionnaire-16" '+
858 'title="Chercher un petitionnaire"> '+
859 '</span>'
860 );
861 }
862 );
863
864 /*Ajout des actions sur les boutons*/
865 addActionSearchIcon('#sousform-petitionnaire #form-content');
866 addActionRemove();
867
868 }
869
870 /**
871 * Fonction permettant de revenir sur le formulaire d'ajout de demandeur
872 **/
873 function addActionRemove(){
874 $('.erase-petitionnaire').click(
875 function(){
876 ajaxIt('petitionnaire','../scr/sousform.php?obj=petitionnaire&action=0');
877 });
878 }
879
880 /*
881 * Ajoute les actions sur les icônes de recherche
882 */
883 function addActionSearchIcon(id){
884
885 /*Si on recherche un pétitionnaire de type particulier*/
886 $('.search-petitionnaire-16').click(
887 function(){
888
889 /*Le champ nom du particulier doit contenir au moins trois lettres*/
890 if ( $('#particulier_nom').val().length < 3 &&
891 $('#particulier_prenom').val().length < 3 &&
892 $('#personne_morale_denomination').val().length < 3 ){
893
894 alert('Saisissez au moins trois lettres pour la recherche');
895 return;
896 }
897
898 /*Données des champs nom et prénom du particulier*/
899 var donnees = "?par_nom=" + $('.search_particulier_fields #particulier_nom').val() +
900 "&par_prenom=" + $('.search_particulier_fields #particulier_prenom').val() +
901 "&mor_denomination="+$('#personne_morale_denomination').val();
902
903 /* Requête qui va récupérer les données duaddSearchIcon(es) pétitionnaire(s)
904 * correspondant(s) à la recherche */
905 $.ajax({
906 type: "GET",
907 url: "../app/findPetitionnaire.php" + donnees ,
908 cache: false,
909 success: function(obj){
910 var freq = $.parseJSON(obj);
911 var res='';
912 /*Si la recherche a donné des résultats*/
913 if ( freq.length > 0 ){
914 /*Limitation des résultats à 50 */
915 if ( freq.length > 50 ){
916
917 nbRes = 50;
918 res += 'Votre recherche a donn&eacute; ' + freq.length
919 + ' r&eacute;sultats. Seul les cinquantes premiers ' +
920 'seront affich&eacute;s.<br/>';
921 } else {
922 nbRes = freq.length;
923 }
924
925 res += '<select>' ;
926
927 /* Met les résultats de la recherche dans un select */
928 for ( i = 0 ; i < nbRes ; i++ ){
929 res += '<option value="' + freq[i].value + '">' +
930 freq[i].content +
931 '</option>';
932 }
933
934 res += '</select>';
935 } else {
936 res += 'Aucune correspondance trouvée.';
937 }
938
939 addDivDialog('#sousform-petitionnaire');
940 /* Affichage de l'overlay */
941 $('#dialog').html(res);
942
943 $( "#dialog" ).dialog({
944 modal: true,
945 buttons : {
946 Valider: function(){
947 if ( res != 'Auncune correspondance trouvée.'){
948
949 }
950 var id = $('#dialog select option:selected').val();
951 if($.isNumeric(id)) {
952 ajaxIt('petitionnaire',
953 '../scr/sousform.php?obj=petitionnaire&action=1&retourformulaire=demande&idx='+id);
954 }
955 // Fermeture de l'overlay
956 $(this).dialog( "close" ).empty();
957 }
958 }
959 });
960 },
961 });
962 }
963 );
964 }
965
966 /*
967 * Ajoute un div pour l'overlay dialog de jQuery
968 */
969 function addDivDialog(id){
970
971 $(id).prepend('<div id="dialog"></div>');
972 }
973
974 /*
975 Action au changement du select de la qualite du demandeur
976 * */
977 function changeDemandeurType(id){
978
979 /*Réinitialise les champs et cache les champs inutiles selon la qualité du demandeur*/
980 /*Si la qualite du demandeur est particulier */
981 if ( $('#' + id ).val() == 'particulier' ){
982
983 $('.personne_morale_fields input').each(
984 function(){
985 $(this).val('');
986 }
987 );
988 $('.personne_morale_fields select option[value=""]').each(
989 function(){
990 $(this).attr('selected', 'selected');
991 }
992 );
993
994 $('.personne_morale_fields').hide();
995 $('.particulier_fields').show();
996 }
997 /*Si c'est une personne morale*/
998 else {
999
1000 $('.particulier_fields input').each(
1001 function(){
1002 $(this).val('');
1003 }
1004 );
1005 $('.particulier_fields select option[value=""]').each(
1006 function(){
1007 $(this).attr('selected', 'selected');
1008 }
1009 );
1010
1011 $('.particulier_fields').hide();
1012 $('.personne_morale_fields').show();
1013 }
1014 }
1015
1016 /*
1017 Fonction de test des champs
1018 * */
1019 function isAlpha(str) {
1020 return /^[a-zA-Z\/]+$/.test(str);
1021 }
1022
1023 function isMail(str){
1024 return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(str);
1025 }
1026
1027 function isPhoneNumber(str){
1028 return /[0-9-()+]{3,20}/.test(str);
1029 }
1030
1031 function testSeparator(obj){
1032
1033 if ( obj.value != 'A' &&
1034 obj.value != '/' ) {
1035
1036 alert('Saisissez uniquement un A ou un / comme séparateur');
1037 obj.value = '';
1038 }
1039 }
1040 /* Fin fonction test */
1041
1042 /*
1043 * Ajoute les ations spécifiques pour le formulaire personnalisé d'ajout de
1044 * référence cadastrale
1045 */
1046 function actionFormReferenceCadastrale(){
1047
1048 $('form').submit(
1049 function(){
1050
1051 getDataFieldReferenceCadastrale();
1052 }
1053 );
1054 if( $("form[name=f1] .form-is-valid").size() == 0) {
1055
1056 $('#moreFieldReferenceCadastrale' +
1057 ($('.moreFieldReferenceCadastrale').length - 1 )).
1058 on("click", function() {
1059
1060 $(this).before(newInputReferenceCadastrale());
1061 });
1062 }
1063
1064 }
1065
1066 /*
1067 * Récupère les données saisies dans les champs de références cadastrales
1068 */
1069 function getDataFieldReferenceCadastrale(){
1070
1071 var reference_cadastrale = '';
1072 var reference_cadastrale_temp = '';
1073
1074 /*Pour chacun des champs du formulaire de saisie de référence cadastrale*/
1075 $('.reference_cadastrale_custom_field').each(
1076 function(){
1077
1078 /*Si on est à la fin d'une ligne de champs*/
1079 if ( $(this).val() == ';' ){
1080
1081 reference_cadastrale_bis = reference_cadastrale_temp ;
1082
1083 /* Vérifie que les données sont correctement formatées avant de
1084 * les ajouter au résultat*/
1085 while( reference_cadastrale_bis != ''){
1086 if ( /^([0-9]{1,4}[a-zA-Z]{1,3}[0-9]{1,5}([A\/]{1}[0-9]{1,4})*)*$/.test(reference_cadastrale_bis) ){
1087
1088 reference_cadastrale += reference_cadastrale_bis + ";";
1089 break;
1090 }
1091 else{
1092
1093 reference_cadastrale_bis = reference_cadastrale_bis.slice( 0, -1);
1094 }
1095 }
1096
1097 reference_cadastrale_temp = '';
1098 }
1099
1100 else {
1101
1102 /*Sinon, on récupère la valeur du champ*/
1103 reference_cadastrale_temp += $(this).val();
1104 }
1105 }
1106 );
1107
1108 /*Met la valeur du résultat dans le champs généré par le framework*/
1109 $('#terrain_references_cadastrales').val(reference_cadastrale);
1110 }
1111
1112 /*
1113 Action pour l'ajout de nouvelle ligne dans le formulaire d'ajout
1114 de référence cadastrale
1115 * */
1116 function actionLineFormReferenceCadastrale(){
1117 if( $("form[name=f1] .form-is-valid").size() == 0) {
1118
1119 $('#morelineReferenceCadastrale').click(
1120 function(){
1121
1122 /*Ajout des trois champs de base*/
1123 $('.reference_cadastrale_custom_fields').
1124 append( "<br/>" + fieldReferenceCadastraleBase());
1125
1126 /*Ajout du bind pour l'ajout de nouveaux champs*/
1127 $('#moreFieldReferenceCadastrale'+
1128 ($('.moreFieldReferenceCadastrale').length - 1 )).
1129 on("click", function() {
1130 $(this).before(newInputReferenceCadastrale());
1131 });
1132 }
1133 );
1134 }
1135 }
1136
1137 /*
1138 Met à jour le select demande_type dès qu'un
1139 dossier_autorisation_type_detaille est choisi
1140 * */
1141 function changeDemandeType(){
1142
1143 var idDossierAutorisationTypeDetaille =
1144 $("#dossier_autorisation_type_detaille").val();
1145
1146 /* Récupère les données saisies dans les champs pour la référence cadastrale */
1147 getDataFieldReferenceCadastrale();
1148
1149 /*Si l'identifiant fourni est correct*/
1150 if ( $.isNumeric(idDossierAutorisationTypeDetaille) ){
1151
1152 /*Met à jour le select de demande_type avec les données correspondant*/
1153 changeDemandeTypeDataSelect();
1154 if ( $('#demande_type option').size() < 2 ) {
1155 showFormsDemande();
1156 }
1157
1158 /*Affiche le select*/
1159 $('#demande_type').parent().parent().show();
1160 if($('#demande_type').val() == '' ) {
1161 $('.demande_hidden_bloc').each(
1162 function(){
1163 $(this).hide();
1164 }
1165 );
1166 $('input[type=submit]').hide();
1167 }
1168 }
1169 else {
1170
1171 /*Sinon, cache tous les champs du formulaire*/
1172 hideFields();
1173 }
1174 }
1175
1176 /*
1177 Ajoute le code HTML des champs pour les références cadastrales
1178 * */
1179 function addNewFieldReferencesCadastrales(){
1180
1181 var html = '<div class="field field-type-text references_cadastrales_new_field" >'+
1182 '<div class="form-libelle">' +
1183 '<label '+
1184 'class="libelle-terrain_references_cadastrales" '+
1185 'for="terrain_references_cadastrales">'+
1186 ' terrain_references_cadastrales '+
1187 '</label>' +
1188 '</div>' +
1189 '<div class="form-content reference_cadastrale_custom_fields">' +
1190 fieldReferenceCadastraleBase() +
1191 '</div>' +
1192 '</div>';
1193
1194 url = document.location + "";
1195 if((getDemandeInfo('nature') == 'NOUV' || getDemandeInfo('nature') == 'NONE' ) && $(".form-is-valid").size() == 0 && url.indexOf('action=3') == -1 ) {
1196 html += '<div class="field field-type-text" id="morelineReferenceCadastrale">' +
1197 '<div class="form-libelle"></div>' +
1198 '<div class="form-content">' +
1199 '<span class="om-form-button add-16" title="Ajouter">ajouter d\'autres lignes</span>' +
1200 '</div>' +
1201 '</div>';
1202 }
1203
1204 $('.references_cadastrales_new_field').remove();
1205 $('.moreFieldReferenceCadastrale').remove();
1206 $('#morelineReferenceCadastrale').remove();
1207 $('#terrain_references_cadastrales').parent().parent().before(
1208 html
1209 );
1210 }
1211
1212 function addButtonCadastraleAdesse(){
1213
1214 $('#terrain_superficie').parent().parent().after('<div class="field field-type-text" >' +
1215 '<div class="form-libelle"></div>' +
1216 '<div class="form-content buttonCadAdr">' +
1217 '<input id="cad-adr-them" class="ui-button ui-widget ui-state-default ui-corner-all" type="button" value="Cadastrale < = > Adresse"/>' +
1218 '</div>' +
1219 '</div>' );
1220 }
1221
1222 /*
1223 Séparateur caché ; pour marqué la fin d'une ligne de référence cadastrale
1224 * */
1225 function hiddenSeparatorField(){
1226
1227 return '<input ' +
1228 'class="reference_cadastrale_custom_field" ' +
1229 'type="hidden" ' +
1230 'maxlength="2" ' +
1231 'size="2" ' +
1232 'value=";" />';
1233 }
1234
1235 /**
1236 * Retourne l'info passée en paramètre (nature de la demande ou type de la demande)
1237 **/
1238 function getDemandeInfo(info) {
1239 var id_demande_type = $('#demande_type').val();
1240 var res = "";
1241 if ( typeof id_demande_type !== "undefined" ){
1242 $.ajax({
1243 type: "GET",
1244 url: "../app/getDemandeInfo.php?iddemandetype=" + id_demande_type
1245 + "&info=" + info,
1246 cache: false,
1247 async: false,
1248 success: function(val){
1249 res = val;
1250 }
1251 });
1252 }
1253 else {
1254
1255 res = "NONE"
1256 }
1257 return res;
1258 }
1259 /*
1260 Ajout d'une nouvelle ligne de champ de référence cadastrale
1261 Retourne le code HTML
1262 * */
1263 function fieldReferenceCadastraleBase(){
1264
1265 url = document.location + "";
1266
1267 var type = getDemandeInfo('nature');
1268 var reference_cadastrale = '<input ' +
1269 'class="champFormulaire reference_cadastrale_custom_field" ' +
1270 'type="text" ' +
1271 'onchange="VerifNum(this)" ' +
1272 'maxlength="4" ' +
1273 'size="4" '+
1274 'placeholder="Quart." ';
1275
1276 // désactivation des champs de référence cadastrale
1277 if( (type != 'NOUV' && type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1278 reference_cadastrale += 'disabled="disabled" ';
1279 }
1280
1281 reference_cadastrale += 'value="" />';
1282
1283 reference_cadastrale += '<input ' +
1284 'class="champFormulaire reference_cadastrale_custom_field" ' +
1285 'type="text" ' +
1286 'maxlength="3" ' +
1287 'size="3" '+
1288 'placeholder="Sect." ';
1289
1290 // désactivation des champs de référence cadastrale
1291 if((type != 'NOUV'&& type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1292 reference_cadastrale += 'disabled="disabled" ';
1293 }
1294
1295 reference_cadastrale += 'value="" '+
1296 'onchange="if ( !isAlpha(this.value) ){ alert(\'Vous ne devez saisir que des lettres dans ce champs.\'); this.value = \'\'; }"/>';
1297 reference_cadastrale += '<input ' +
1298 'class="champFormulaire reference_cadastrale_custom_field" ' +
1299 'type="text" ' +
1300 'onchange="VerifNum(this)" ' +
1301 'maxlength="5" ' +
1302 'size="5" '+
1303 'placeholder="Parc." ';
1304
1305 // désactivation des champs de référence cadastrale
1306 if((type != 'NOUV'&& type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1307 reference_cadastrale += 'disabled="disabled" ';
1308 }
1309
1310 reference_cadastrale += 'value="" />';
1311
1312 reference_cadastrale += '<span id="moreFieldReferenceCadastrale' +
1313 $('.moreFieldReferenceCadastrale').length +
1314 '" class="moreFieldReferenceCadastrale">' + hiddenSeparatorField();
1315
1316 // Si form validé pas de bouton
1317 url = document.location + "";
1318 if( (type == 'NOUV' || type == 'NONE') && $("form[name=f1] .form-is-valid").size() == 0 && url.indexOf('action=3') == -1 ) {
1319
1320 reference_cadastrale +=
1321 '<span class="om-form-button add-16" title="Ajouter">ajouter d\'autres champs</span>';
1322 }
1323
1324 reference_cadastrale += '</span>';
1325
1326 return reference_cadastrale;
1327 }
1328
1329 /**
1330 * Cache les champs inutules [formulaire de demande]
1331 **/
1332 function hideFields(){
1333 $('.demande_hidden_bloc').each(
1334 function(){
1335 $(this).hide();
1336 }
1337 );
1338
1339 $('.field-type-text').hide();
1340 $('input[type=submit]').hide();
1341 $('#demande_type').parent().parent().hide();
1342 }
1343
1344 /*
1345 Affiche les champs dont on a besoin dans le formulaire de demande
1346 * */
1347 function showFormsDemande(){
1348
1349
1350 if($('#demande_type').val() != "") {
1351
1352 $('.demande_hidden_bloc').each(
1353 function(){
1354 $(this).show();
1355 }
1356 );
1357 formatFieldReferenceCadastrale(1);
1358 $('.field-type-text').show();
1359 $('input[type=submit]').show();
1360 $('.terrain_references_cadastrales_custom').hide();
1361
1362 $('#terrain_references_cadastrales').parent().parent().hide();
1363
1364 // Si le type de la demande est un transfert on efface la liste des demandeurs
1365 if(getDemandeInfo('type') == 'DT') {
1366 if($('input[name=petitionnaire_principal]').size() != -1) {
1367 removeDemandeur("petitionnaire_principal_" + $('input[name=petitionnaire_principal]').val());
1368 }
1369 if($('input[name=delegataire]').size() != -1) {
1370 removeDemandeur("delegataire_" + $('input[name=delegataire]').val());
1371 }
1372
1373 $('#listePetitionnaires input.demandeur_id').each(function(){
1374 if($(this).size() != -1) {
1375
1376 removeDemandeur("petitionnaire_" + $(this).val());
1377 }
1378 });
1379 } else if ( getDemandeInfo('type') == 'DM' ) {
1380 $.ajax({
1381 type: "GET",
1382 url: "../app/getDemandeurList.php?dossier_autorisation=" + $('#dossier_autorisation').val(),
1383 cache: false,
1384 async: false,
1385 success: function(html){
1386 $('#liste_demandeur').replaceWith(html);
1387 }
1388 });
1389 }
1390 affichageBoutonsDemandeurs();
1391 } else {
1392
1393 /*Récupère les references cadastrales*/
1394 getDataFieldReferenceCadastrale();
1395
1396 $('.demande_hidden_bloc').each(
1397 function(){
1398 $(this).hide();
1399 }
1400 );
1401 $('input[type=submit]').hide();
1402
1403 }
1404 }
1405
1406 /*
1407 Action au clique sur le bouton " + ajouter d'autres champs"
1408 * */
1409 function newInputReferenceCadastrale(){
1410
1411 // Champs désactivé si le formulaire a été validé et est valide
1412 var type = getDemandeInfo('nature');
1413 var reference_cadastrale_disabled = '';
1414 if((type != 'NOUV'&& type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1415 reference_cadastrale_disabled = 'disabled="disabled" ';
1416 }
1417
1418 return '<input ' +
1419 'class="champFormulaire reference_cadastrale_custom_field" ' +
1420 'type="text" ' +
1421 'maxlength="1" ' +
1422 'size="3" ' +
1423 'value="" ' +
1424 'placeholder="Sep." ' +
1425 reference_cadastrale_disabled +
1426 'onchange="testSeparator(this);"/>' +
1427 '<input ' +
1428 'class="champFormulaire reference_cadastrale_custom_field" ' +
1429 'type="text" ' +
1430 'onchange="VerifNum(this)" ' +
1431 'maxlength="4" ' +
1432 'size="4" ' +
1433 'placeholder="Parc." ' +
1434 reference_cadastrale_disabled +
1435 'value="" />';
1436 }
1437
1438
1439
1440 /**
1441 * Desactivation des fonctions widget du tableau de bord inutiles sur le nouveau
1442 * tableau de bord
1443 */
1444 function widget_bind_move_actions() {}
1445 function widget_bind_add_action() {}
1446 function widget_bind_edit_actions(widget_selector) {}
1447
1448 // Cette fonction permet d'associer a un arbre html les fonctions jquery
1449 // necessaires. Elle permet notamment lors du chargement d'une page en ajax
1450 // d'associer le comportement du bouton, la gestion du calendrier et la gestion
1451 // du fieldset.
1452 function om_initialize_content() {
1453 // Gestion du skin des boutons, liens
1454 link_bind_button();
1455 // Gestion du calendrier avec le widget datepicker de jqueryui
1456 inputdate_bind_datepicker();
1457 // Gestion des fieldset avec le plugin collaspsible de jquery
1458 fieldset_bind_collapsible();
1459 // Gestion du picker color avec le plugin minicolors
1460 bind_form_field_rvb();
1461 // Gestion du widget aide à la saisie localisation avec le plugin draggable
1462 // de jqueryui
1463 localisation_bind_draggable();
1464 // Gestion de la redimension automatique des textarea
1465 textarea_autoresize();
1466
1467
1468 changeDemandeurType('qualite');
1469 addSearchIcon();
1470 addDivDialog('.bloc_demandeur');
1471
1472 }
1473
1474 // Retourne la valeur d'une variable GET de l'URL
1475 function getQuerystring(key, default_)
1476 {
1477 if (default_==null) default_="";
1478 key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
1479 var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
1480 var qs = regex.exec(window.location.href);
1481 if(qs == null)
1482 return default_;
1483 else
1484 return qs[1];
1485 }
1486
1487 // Récupère l'id de l'enregistrement lié au lot passé en parametre puis appel popupit
1488 function overlayCerfa(idLot) {
1489 $.get("../app/displayLotCerfa.php?lot="+idLot, function(data) {
1490 if(data != '') {
1491 popupIt('donnees_techniques',
1492 '../scr/sousform.php?obj=donnees_techniques&idx='+data+
1493 '&retourformulaire=lot&maj=1&idxformulaire='+idLot,
1494 950, 700);
1495
1496 } else {
1497 // Si pas d'id retourner on créer un nouvel enregistrement de donnéees techniques
1498 popupIt('donnees_techniques',
1499 '../scr/sousform.php?obj=donnees_techniques&retourformulaire=lot&maj=0&idxformulaire='+idLot,
1500 950, 700);
1501 }
1502
1503 });
1504 }
1505
1506 /*
1507 * Marque comme lu une consultation
1508 */
1509 function portletUpdateData(id, objet, objetc, file, field, message){
1510
1511 /*Vérifie que l'identifiant passé en paramètre est bien un chiffre
1512 * et que le type d'objet est défini
1513 * */
1514 if ( $.isNumeric(id) && objet != '' ){
1515
1516 donnees = "?ido=" + id + '&obj=' + objet + '&objk=' + objetc + '&idxDossier=' + getQuerystring('idx');
1517 $.ajax({
1518 type: "GET",
1519 url: "../app/"+file+".php" + donnees ,
1520 cache: false,
1521 success: function(html){
1522
1523 $('#sousform-' + objet + ' .message').remove();
1524 /*Change la valeur affiché et affiche un message valide*/
1525 if ( $.parseJSON(html) == "Mise a jour effectue avec succes" ||
1526 $.parseJSON(html).indexOf("Transfert effectue avec succes") != -1 ){
1527
1528 // On modife le champ field
1529 if ( field != '' && message != '' ){
1530 $('#'+field).html(message);
1531 html = $.parseJSON(html);
1532 }
1533 else {
1534 html = $.parseJSON(html).split(';');
1535
1536 $('#'+field).html(html[0]);
1537
1538 html = html[1];
1539 }
1540
1541 // On supprime l'action
1542 $('span.'+field+'-16').parent().parent().remove();
1543 // On affiche le message
1544 $('#sousform-' + objet + ' .subtitle').after(
1545 '<div ' +
1546 'class="message ui-widget ui-corner-all ui-state-highlight ui-state-valid">' +
1547 '<p>' +
1548 '<span class="ui-icon ui-icon-info"></span>' +
1549 '<span class="text">' +
1550 html +
1551 '</span>' +
1552 '</p>' +
1553 '</div>'
1554 );
1555 }
1556 /*Affichage d'une erreur*/
1557 else{
1558 $('#sousform-' + objet + ' .subtitle').after(
1559 '<div ' +
1560 'class="message ui-widget ui-corner-all ui-state-highlight ui-state-error">' +
1561 '<p>' +
1562 '<span class="ui-icon ui-icon-info"></span>' +
1563 '<span class="text">' +
1564 $.parseJSON(html) +
1565 '</span>' +
1566 '</p>' +
1567 '</div>'
1568 );
1569 }
1570 }
1571 });
1572 }
1573 }
1574
1575 // Affiche le sous formulaire onglet
1576 function redirectPortletAction(id, onglet, nom_tabs){
1577
1578 var nom_tabs = ( typeof nom_tabs === "undefined" ) ? ".ui-tabs" : nom_tabs;
1579 var $tabs = $(nom_tabs).tabs();
1580
1581 lien_onglet = $('#' + onglet).attr('href');
1582 lien_onglet = lien_onglet.substring( lien_onglet.length - 1, lien_onglet.length);
1583
1584 $tabs.tabs('select', lien_onglet);
1585 }
1586
1587 //Rajoute un dossier pour la commission id
1588 function addDossierCommission(id, container){
1589
1590 link = "../app/ajouter_dossier_commission.php?idx=" + id + "&idxDossier=" + $(container+" #dossier").val();
1591
1592 $.ajax({
1593 type: "GET",
1594 url: link,
1595 cache: false,
1596 dataType: "json",
1597 success: function(i, obj){
1598
1599 $(container + " .message").remove();
1600 $(container).prepend(
1601 '<div class="message ui-widget ui-corner-all ui-state-highlight">'+
1602 '<p>'+
1603 '<span class="ui-icon ui-icon-info"></span>'+
1604 '<span class="text">'+
1605 '</span>'+
1606 '</p>'+
1607 '</div>'
1608 );
1609
1610 // Nouveau dossier ajouté
1611 if ( i.return == "1" ){
1612
1613 $(container + ' .message').addClass("ui-state-ok");
1614 $(container + ' .message .text').html("Dossier ajouté avec succès.");
1615 }
1616 //Dossier existe mais non ajouté
1617 else if( i.return == "0" ){
1618
1619 $(container + ' .message').addClass("ui-state-error");
1620 $(container + ' .message .text').html("Une erreur s'est produite lors de l'ajout de ce dossier. " +
1621 "Veuillez contacter votre administrateur");
1622 }
1623 //Le dossier n'existe pas
1624 else if( i.return == "-1" ){
1625
1626 $(container + ' .message').addClass("ui-state-error");
1627 $(container + ' .message .text').html("Ce dossier n'existe pas.");
1628 }
1629 //Le dossier est déjà à l'ordre du jour
1630 else if( i.return == "2" ){
1631
1632 $(container + ' .message').addClass("ui-state-error");
1633 $(container + ' .message .text').html("Ce dossier est deja a l'ordre du jour.");
1634 }
1635
1636 },
1637 async: false
1638 });
1639 }
1640
1641 //Affichage du tableau des dossier_commission possibles
1642 function ajouterTableauDossierCommissionPossible(id){
1643
1644 link = "../app/tableau_dossier_commission_possible.php?idx=" + id ;
1645
1646 $.ajax({
1647 type: "GET",
1648 url: link,
1649 cache: false,
1650 success: function(html){
1651
1652 $('#tabs-2').html(html);
1653 },
1654 async: false
1655 });
1656 }
1657
1658 //Met à jour la liste des dossiers de la commission
1659 function updateCommission(id, container){
1660
1661 var link = "../app/update_dossier_commission.php?idx=" + id ;
1662 var valid = "";
1663 var error = "";
1664 var error_avis = "";
1665
1666 //Affiche du message de retour
1667 $(container + " .message").remove();
1668 $(container).prepend(
1669 '<div class="message ui-widget ui-corner-all ui-state-highlight dossier-ok">'+
1670 '<p>'+
1671 '<span class="ui-icon ui-icon-info"></span>'+
1672 '<span class="text">'+
1673 msg_loading +
1674 '</span>'+
1675 '</p>'+
1676 '</div>'
1677 );
1678
1679 $(container + " input[type='checkbox']").each(
1680 function(index) {
1681
1682 var idxDossier = $(this).val();
1683
1684 link = "../app/update_dossier_commission.php?idx=" + id +
1685 "&idxDossier=" + idxDossier;
1686
1687 //Ajoute ces dossiers de l'ordre du jour
1688 if ( $(this).is(":checked")){
1689
1690 link += "&action=add";
1691 }
1692 //Supprime ces dossiers de l'ordre du jour
1693 else{
1694
1695 link += "&action=remove";
1696 }
1697
1698 //Mise à jour des données
1699 $.ajax({
1700 type: "GET",
1701 url: link,
1702 cache: false,
1703 dataType: "json",
1704 success: function(i, obj){
1705
1706 // Erreur
1707 if( i.error == "0" ){
1708
1709 error += idxDossier + ", ";
1710 }
1711 else if ( i.error == "-1" ) {
1712
1713 error_avis += idxDossier + ", ";
1714 }
1715 else{
1716 valid += idxDossier + ", ";
1717 }
1718 },
1719 async: false
1720 });
1721 }
1722 );
1723
1724 //Ajout du div des erreurs
1725 if ( error != "" || error_avis != "" ){
1726
1727 $(container + " .dossier-ok").after(
1728 '<div class="message ui-widget ui-corner-all ui-state-highlight dossier-err">'+
1729 '<p>'+
1730 '<span class="ui-icon ui-icon-info"></span>'+
1731 '<span class="text">'+
1732 '</span>'+
1733 '</p>'+
1734 '</div>');
1735 }
1736
1737 //le traitement a été effectué avec succés
1738 if ( valid != "" ){
1739
1740 $(container + ' .dossier-ok').addClass("ui-state-ok");
1741 $(container + ' .dossier-ok .text').html("Mise à jour réalisée avec succès pour le(s) dossier(s) : "+
1742 valid.slice(0,valid.length-2) +
1743 ".");
1744 }
1745 else {
1746
1747 $(container + " .dossier-ok").remove();
1748 }
1749 //Une erreur s'est produite
1750 if ( error != "" ) {
1751
1752 $(container + ' .dossier-err').addClass("ui-state-error");
1753 $(container + ' .dossier-err .text').append(
1754 "Dossier : " + error.slice(0,error.length-2) + " déjà plannifié pour une autre commission.");
1755 }
1756 else if ( error_avis != "" ){
1757
1758 $(container + ' .dossier-err').addClass("ui-state-error");
1759 $(container + ' .dossier-err .text').append(
1760 "Un avis a déjà été rendu pour le(s) dossier(s): " +
1761 error_avis.slice(0,error_avis.length-2) +
1762 ".");
1763 }
1764 }
1765
1766
1767 //Récupère les données du type de commission et les mets dans les champs
1768 function chargeDonneesCommissionType(id_commission_type){
1769
1770 //Requête ajax de récupération des données
1771 $.ajax({
1772 type: "GET",
1773 url: "../app/getCommissionTypeInfo.php?idx=" + id_commission_type,
1774 dataType: "json",
1775 async: false,
1776 success: function(data){
1777
1778 // Ajout des données dans les champs
1779 $('#libelle').val(data.libelle);
1780 $('#lieu_adresse_ligne1').val(data.lieu_adresse_ligne1);
1781 $('#lieu_adresse_ligne2').val(data.lieu_adresse_ligne2);
1782 $('#lieu_salle').val(data.lieu_salle);
1783 $('#listes_de_diffusion').val(data.listes_de_diffusion);
1784 $('#participants').val(data.participants);
1785 }
1786 });
1787 }
1788
1789 // Action de diffusion de mails des commissions
1790 function commission_diffusion(idx, obj){
1791
1792 $('#tabs-1 .message').remove();
1793
1794 // Si les données sont fournies
1795 if ( $.isNumeric(idx) && obj != "" ){
1796
1797 //Requête ajax d'envoi des données
1798 $.ajax({
1799 type: "GET",
1800 url: "../app/commission_diffusion.php?idx=" + idx + "&obj=" + obj,
1801 dataType: "json",
1802 async: false,
1803 success: function(data){
1804
1805 $('#tabs-1').prepend(
1806 '<div ' +
1807 'class="message ui-widget ui-corner-all ui-state-highlight">' +
1808 '<p>' +
1809 '<span class="ui-icon ui-icon-info"></span>' +
1810 '<span class="text">' +
1811 '</span>' +
1812 '</p>' +
1813 '</div>'
1814 );
1815
1816 var type = ( obj == "compte_rendu" ) ? "du compte-rendu" : "de l'ordre du jour";
1817 //L'envoi des mails a été effectué avec succés
1818 if ( data.return == 1 ){
1819
1820 $('#tabs-1 .message').addClass("ui-state-valid");
1821 $('#tabs-1 .message .text').html(
1822 "La diffusion " + type + " s'est effectuée avec succès."
1823 );
1824 }
1825 //Un erreur s'est produite
1826 else if ( data.return == -1 ){
1827
1828 $('#tabs-1 .message').addClass("ui-state-error");
1829 $('#tabs-1 .message .text').html(
1830 "Une erreur s'est produite lors de la diffusion " +
1831 type +
1832 ". Veuillez contacter votre administrateur."
1833 );
1834 }
1835 }
1836 });
1837 }
1838 }
1839
1840 /**
1841 * Popup de confirmation pour les traitements
1842 */
1843 //
1844 function trt_confirm() {
1845 //
1846 if (confirm("Etes-vous sur de vouloir confirmer cette action ?")) {
1847 //
1848 return true;
1849 } else {
1850 //
1851 return false;
1852 }
1853 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26