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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1470 - (show annotations)
Sun Mar 17 20:53:36 2013 UTC (11 years, 10 months ago) by fmichon
File MIME type: application/javascript
File size: 62040 byte(s)
Ajout du focus sur le champ de recherche affichage_reglementaire_attestation au chargement de la page

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26