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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1099 - (show annotations)
Tue Dec 18 17:05:32 2012 UTC (12 years, 1 month ago) by vpihour
File MIME type: application/javascript
File size: 45289 byte(s)
Champs reference cadastrale non modifiable en consultation
Suppression du bouton d'action "cadastrale <=> adresse" quand inutile

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26