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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1242 - (show annotations)
Tue Feb 12 16:07:06 2013 UTC (11 years, 11 months ago) by vpihour
File MIME type: application/javascript
File size: 47704 byte(s)
Généralisation de la fonction JS permettant de marquer une consultation comme lue

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26