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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1101 - (show annotations)
Tue Dec 18 18:30:40 2012 UTC (12 years, 1 month ago) by nhaye
File MIME type: application/javascript
File size: 45696 byte(s)
Création d'un widget permettant de formater les références cadastrales pour affichage static

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
454 || url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
455 || url.indexOf("form.php?obj=demande_dossier_existant&") != -1)
456 && $("form[name=f1] .form-is-valid").size() > 0 ) {
457
458 $('#add_petitionnaire_principal').hide();
459 $('#add_delegataire').hide();
460 if($('input[name=delegataire][type=hidden]').size() == 0) {
461 $('#delegataire').hide();
462 }
463 $('#add_petitionnaire').hide();
464
465 } else {
466
467 // Affichage du bouton d'ajout du petitionnaire principal
468 if($('input[name=petitionnaire_principal][type=hidden]').size() == 1) {
469 $('#add_petitionnaire_principal').hide();
470 } else {
471 $('#add_petitionnaire_principal').fadeIn(500);
472 }
473
474 // Affichage du bouton d'ajout du delegataire
475 if($('input[name=petitionnaire_principal][type=hidden]').size() == 1
476 || $('input[name=delegataire][type=hidden]').size() == 1) {
477 $('#delegataire').fadeIn(500);
478 if($('input[name=delegataire][type=hidden]').size() == 0) {
479 $('#add_delegataire').fadeIn(500);
480 } else {
481 $('#add_delegataire').hide();
482 }
483 } else {
484 $('#delegataire').hide();
485 }
486
487 // Affichage du bouton d'ajout de petitionnaires
488 if($('input[name=petitionnaire_principal][type=hidden]').size() == 0) {
489 $('#add_petitionnaire').hide();
490 } else {
491 $('#add_petitionnaire').fadeIn(500);
492 }
493 }
494 }
495
496 /**
497 * Appel au chargement de la page
498 **/
499 $(function() {
500 changeDemandeurType('qualite');
501 if ( $('#type_demandeur') == 'petitionnaire' ){
502
503 addSearchIcon();
504 addDivDialog('.bloc_demandeur');
505 }
506 affichageBoutonsDemandeurs();
507 // Bind de la fonction permettant l'ajout du pétitionnaire principal
508 $("#formulaire").on("click","#add_petitionnaire_principal", function() {
509 popupIt('petitionnaire',
510 '../scr/sousform.php?obj=petitionnaire&action=0'+
511 '&retourformulaire=demande&principal=true', 780, 'auto',
512 getDemandeurId, 'petitionnaire_principal');
513 });
514 // Bind de la fonction permettant l'ajout du délégataire
515 $("#formulaire").on("click","#add_delegataire", function(event) {
516 popupIt('delegataire',
517 '../scr/sousform.php?obj=delegataire&action=0'+
518 '&retourformulaire=demande', 780, 'auto',
519 getDemandeurId, 'delegataire');
520 });
521 // Bind de la fonction permettant l'ajout des pétitionnaires
522 $("#formulaire").on("click","#add_petitionnaire", function(event) {
523 popupIt('petitionnaire',
524 '../scr/sousform.php?obj=petitionnaire&action=0'+
525 '&retourformulaire=demande', 780, 'auto',
526 getDemandeurId, 'petitionnaire');
527 });
528
529 url = document.location + "" ;
530 if (url.indexOf("form.php?obj=demande&") != -1
531 && url.indexOf("&action=3") == -1) {
532
533 formatFieldReferenceCadastrale();
534 }
535
536 if (url.indexOf("form.php?obj=demande&") != -1
537 && (url.indexOf("&action=3") == -1
538 && $(".form-is-valid").size() == 0)) {
539
540 addButtonCadastraleAdesse();
541 changeDemandeType();
542 }
543
544 // Ajout de demande
545 if ((url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
546 || url.indexOf("form.php?obj=demande_dossier_existant&") != -1)
547 && url.indexOf("&action=0") != -1 ){
548
549 /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
550 hideFields();
551 }
552
553 // Ajout de demande sur dossier existant
554 if (url.indexOf("form.php?obj=demande_dossier_existant&") != -1
555 && url.indexOf("&action=0") != -1 ){
556
557 /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
558 hideFields();
559 changeDemandeType();
560 }
561
562 // Modification de demande
563 if ((url.indexOf("form.php?obj=demande&") != -1
564 || url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
565 || url.indexOf("form.php?obj=demande_dossier_existant&") != -1)
566 && url.indexOf("&action=3") == -1 ){
567
568 formatFieldReferenceCadastrale();
569 }
570 });
571
572 /*
573 * Action sur les champs pour les références cadastrales
574 */
575 function formatFieldReferenceCadastrale(){
576
577 $('.reference_cadastrale_custom_fields').empty();
578
579 addNewFieldReferencesCadastrales();
580 $('#terrain_references_cadastrales').parent().parent().hide();
581
582 url = document.location + "";
583
584 reference_cadastrale = $('#terrain_references_cadastrales').val();
585 /*Formatage de la reference cadastrale*/
586 if ( reference_cadastrale != '' ){
587
588 /* Récupère la référence cadastrale non formatée */
589 references_cadastrales = reference_cadastrale.split(';');
590 donnees = new Array();
591
592 i = 0 ;
593 /* Boucle sur les références, elles étaient séparées par un ; */
594 for ( l = 0 ; l < references_cadastrales.length - 1 ; l ++ ){
595
596 /*Récupère le code impots du qartier [CHIFFRES]*/
597 k = 0;
598 donnees[i] = '';
599 for ( j = k ; j < references_cadastrales[l].length ; j++ ){
600
601 if ( references_cadastrales[l].charAt(j) >= 0 &&
602 references_cadastrales[l].charAt(j) <= 9 ){
603
604 donnees[i] += references_cadastrales[l].charAt(j);
605 k++;
606
607 } else {
608
609 i++;
610 break;
611 }
612 }
613
614 /* Récupère la section [LETTRES] */
615 donnees[i] = '';
616 for ( j = k ; j < references_cadastrales[l].length ; j++ )
617 if ( isAlpha(references_cadastrales[l].charAt(j)) ){
618
619 donnees[i] += references_cadastrales[l].charAt(j);
620 k++;
621
622 } else {
623
624 i++;
625 break;
626 }
627
628 /* Récupère la parcelle [CHIFFRES] */
629 donnees[i] = '';
630 for ( j = k ; j < references_cadastrales[l].length ; j++ )
631 if ( references_cadastrales[l].charAt(j) >= 0 &&
632 references_cadastrales[l].charAt(j) <= 9 ){
633
634 donnees[i] += references_cadastrales[l].charAt(j);
635 k++;
636
637 } else {
638
639 break;
640 }
641
642 /* Récupère les séparateurs [ A / ] et les sections */
643 m = 0 ; // Nombre de suffixe
644 if ( k < references_cadastrales[l].length ){
645
646 for ( j = k ; j < references_cadastrales[l].length ; j++ )
647 if ( isAlpha(references_cadastrales[l].charAt(j)) ){
648
649 m++;
650 donnees[++i] = references_cadastrales[l].charAt(j);
651 donnees[++i] = '';
652 }
653 else {
654
655 donnees[i] += references_cadastrales[l].charAt(j);
656 }
657 }
658
659 /*Créé autant de champs de que de référence */
660 donnees[++i] = ';';
661 i++;
662
663 if ( l > 0 ) {
664
665 $('.reference_cadastrale_custom_fields').append(
666 "<br/>" + fieldReferenceCadastraleBase()
667 );
668 }
669
670 actionFormReferenceCadastrale();
671
672 if ( m > 0 ){
673
674 for ( j = 0 ; j < m ; j++ ){
675
676 $('#moreFieldReferenceCadastrale' +
677 ( $('.moreFieldReferenceCadastrale').length - 1 ) ).
678 before(
679 newInputReferenceCadastrale()
680 );
681 }
682 }
683 }
684 /* Action sur les boutons [+ ajouter d'autres champs] et [+ ajouter
685 * d'autres lignes] */
686 actionLineFormReferenceCadastrale();
687
688 /* Ajoute les données dans les champs nouvellement créés */
689 $('.reference_cadastrale_custom_field').each(
690 function(index) {
691
692 $(this).val(donnees[index])
693 }
694 );
695 }
696 else{
697 actionFormReferenceCadastrale();
698 actionLineFormReferenceCadastrale();
699 }
700 }
701
702 /*
703 * Ajoute les icônes pour la recherche de pétitionnaire fréquent.
704 */
705 function addSearchIcon(){
706
707 $("#form-content:not(.form-is-valid) .search_particulier_fields,"+
708 "#form-content:not(.form-is-valid) .search_personne_morale_fields").each(function() {
709 /*Ajout de l'icône après le champs dénomination et nom de la personne morale*/
710
711 $(this).
712 append(
713 '<span '+
714 'class="om-icon om-icon-16 om-icon-fix search-petitionnaire-16" '+
715 'title="Chercher un petitionnaire"> '+
716 '</span>'+
717 '<span '+
718 'class="om-icon om-icon-16 om-icon-fix erase-petitionnaire delete-16" '+
719 'title="Supprimer le contenu"> '+
720 '</span>'
721 );
722 }
723 );
724
725 /*Ajout des actions sur les boutons*/
726 addActionSearchIcon('#sousform-petitionnaire #form-content');
727 addActionRemove();
728
729 }
730
731 /**
732 * Fonction permettant de revenir sur le formulaire d'ajout de demandeur
733 **/
734 function addActionRemove(){
735 $('.erase-petitionnaire').click(
736 function(){
737 ajaxIt('petitionnaire','../scr/sousform.php?obj=petitionnaire&action=0');
738 });
739 }
740
741 /*
742 * Ajoute les actions sur les icônes de recherche
743 */
744 function addActionSearchIcon(id){
745
746 /*Si on recherche un pétitionnaire de type particulier*/
747 $('.search-petitionnaire-16').click(
748 function(){
749
750 /*Le champ nom du particulier doit contenir au moins trois lettres*/
751 if ( $('#particulier_nom').val().length < 3 &&
752 $('#particulier_prenom').val().length < 3 &&
753 $('#personne_morale_denomination').val().length < 3 &&
754 $('#personne_morale_nom').val().length < 3 ){
755
756 alert('Saisissez au moins trois lettres pour la recherche');
757 return;
758 }
759
760 /*Données des champs nom et prénom du particulier*/
761 var donnees = "?par_nom=" + $('.search_particulier_fields #particulier_nom').val() +
762 "&par_prenom=" + $('.search_particulier_fields #particulier_prenom').val() +
763 "&mor_denomination="+$('#personne_morale_denomination').val() +
764 "&mor_nom="+$('#personne_morale_nom').val();
765
766 /* Requête qui va récupérer les données duaddSearchIcon(es) pétitionnaire(s)
767 * correspondant(s) à la recherche */
768 $.ajax({
769 type: "GET",
770 url: "../app/findPetitionnaire.php" + donnees ,
771 cache: false,
772 success: function(obj){
773 var freq = $.parseJSON(obj);
774 var res='';
775 /*Si la recherche a donné des résultats*/
776 if ( freq.length > 0 ){
777 /*Limitation des résultats à 50 */
778 if ( freq.length > 50 ){
779
780 nbRes = 50;
781 res += 'Votre recherche a donn&eacute; ' + freq.length
782 + ' r&eacute;sultats. Seul les cinquantes premiers ' +
783 'seront affich&eacute;s.<br/>';
784 } else {
785 nbRes = freq.length;
786 }
787
788 res += '<select>' ;
789
790 /* Met les résultats de la recherche dans un select */
791 for ( i = 0 ; i < nbRes ; i++ ){
792 res += '<option value="' + freq[i].value + '">' +
793 freq[i].content +
794 '</option>';
795 }
796
797 res += '</select>';
798 } else {
799 res += 'Aucune correspondance trouvée.';
800 }
801
802 /* Affichage de l'overlay */
803 $('#dialog').html(res);
804
805 $( "#dialog" ).dialog({
806 modal: true,
807 buttons : {
808 Valider: function(){
809 if ( res != 'Auncune correspondance trouvée.'){
810
811 }
812 var id = $('#dialog select option:selected').val();
813 if($.isNumeric(id)) {
814 ajaxIt('petitionnaire',
815 '../scr/sousform.php?obj=petitionnaire&action=1&retourformulaire=demande&idx='+id);
816 }
817 // Fermeture de l'overlay
818 $(this).dialog( "close" ).empty();
819 }
820 }
821 });
822 },
823 });
824 }
825 );
826 }
827
828 /*
829 * Ajoute un div pour l'overlay dialog de jQuery
830 */
831 function addDivDialog(id){
832
833 $(id).prepend('<div id="dialog"></div>');
834 }
835
836 /*
837 Action au changement du select de la qualite du demandeur
838 * */
839 function changeDemandeurType(id){
840
841 /*Réinitialise les champs et cache les champs inutiles selon la qualité du demandeur*/
842 /*Si la qualite du demandeur est particulier */
843 if ( $('#' + id + ' option:selected').val() == 'particulier' ){
844
845 $('.personne_morale_fields input').each(
846 function(){
847 $(this).val('');
848 }
849 );
850 $('.personne_morale_fields select option[value=""]').each(
851 function(){
852 $(this).attr('selected', 'selected');
853 }
854 );
855
856 $('.personne_morale_fields').hide();
857 $('.particulier_fields').show();
858 }
859 /*Si c'est une personne morale*/
860 else {
861
862 $('.particulier_fields input').each(
863 function(){
864 $(this).val('');
865 }
866 );
867 $('.particulier_fields select option[value=""]').each(
868 function(){
869 $(this).attr('selected', 'selected');
870 }
871 );
872
873 $('.particulier_fields').hide();
874 $('.personne_morale_fields').show();
875 }
876 }
877
878 /*
879 Fonction de test des champs
880 * */
881 function isAlpha(str) {
882 return /^[a-zA-Z\/]+$/.test(str);
883 }
884
885 function isMail(str){
886 return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(str);
887 }
888
889 function isPhoneNumber(str){
890 return /[0-9-()+]{3,20}/.test(str);
891 }
892
893 function testSeparator(obj){
894
895 if ( obj.value != 'A' &&
896 obj.value != '/' ) {
897
898 alert('Saisissez uniquement un A ou un / comme séparateur');
899 obj.value = '';
900 }
901 }
902 /* Fin fonction test */
903
904 /*
905 * Ajoute les ations spécifiques pour le formulaire personnalisé d'ajout de
906 * référence cadastrale
907 */
908 function actionFormReferenceCadastrale(){
909
910 $('form').submit(
911 function(){
912
913 getDataFieldReferenceCadastrale();
914 }
915 );
916 if( $("form[name=f1] .form-is-valid").size() == 0) {
917
918 $('#moreFieldReferenceCadastrale' +
919 ($('.moreFieldReferenceCadastrale').length - 1 )).
920 on("click", function() {
921
922 $(this).before(newInputReferenceCadastrale());
923 });
924 }
925
926 }
927
928 /*
929 * Récupère les données saisies dans les champs de références cadastrales
930 */
931 function getDataFieldReferenceCadastrale(){
932
933 var reference_cadastrale = '';
934 var reference_cadastrale_temp = '';
935
936 /*Pour chacun des champs du formulaire de saisie de référence cadastrale*/
937 $('.reference_cadastrale_custom_field').each(
938 function(){
939
940 /*Si on est à la fin d'une ligne de champs*/
941 if ( $(this).val() == ';' ){
942
943 reference_cadastrale_bis = reference_cadastrale_temp ;
944
945 /* Vérifie que les données sont correctement formatées avant de
946 * les ajouter au résultat*/
947 while( reference_cadastrale_bis != ''){
948 if ( /^([0-9]{1,4}[a-zA-Z]{1,3}[0-9]{1,5}([A\/]{1}[0-9]{1,4})*)*$/.test(reference_cadastrale_bis) ){
949
950 reference_cadastrale += reference_cadastrale_bis + ";";
951 break;
952 }
953 else{
954
955 reference_cadastrale_bis = reference_cadastrale_bis.slice( 0, -1);
956 }
957 }
958
959 reference_cadastrale_temp = '';
960 }
961
962 else {
963
964 /*Sinon, on récupère la valeur du champ*/
965 reference_cadastrale_temp += $(this).val();
966 }
967 }
968 );
969
970 /*Met la valeur du résultat dans le champs généré par le framework*/
971 $('#terrain_references_cadastrales').val(reference_cadastrale);
972 }
973
974 /*
975 Action pour l'ajout de nouvelle ligne dans le formulaire d'ajout
976 de référence cadastrale
977 * */
978 function actionLineFormReferenceCadastrale(){
979 if( $("form[name=f1] .form-is-valid").size() == 0) {
980
981 $('#morelineReferenceCadastrale').click(
982 function(){
983
984 /*Ajout des trois champs de base*/
985 $('.reference_cadastrale_custom_fields').
986 append( "<br/>" + fieldReferenceCadastraleBase());
987
988 /*Ajout du bind pour l'ajout de nouveaux champs*/
989 $('#moreFieldReferenceCadastrale'+
990 ($('.moreFieldReferenceCadastrale').length - 1 )).
991 on("click", function() {
992 $(this).before(newInputReferenceCadastrale());
993 });
994 }
995 );
996 }
997 }
998
999 /*
1000 Met à jour le select demande_type dès qu'un
1001 dossier_autorisation_type_detaille est choisi
1002 * */
1003 function changeDemandeType(){
1004
1005 var idDossierAutorisationTypeDetaille =
1006 $("#dossier_autorisation_type_detaille").val();
1007
1008 /* Récupère les données saisies dans les champs pour la référence cadastrale */
1009 getDataFieldReferenceCadastrale();
1010
1011 /*Si l'identifiant fourni est correct*/
1012 if ( $.isNumeric(idDossierAutorisationTypeDetaille) ){
1013
1014 /*Met à jour le select de demande_type avec les données correspondant*/
1015 changeDataSelect('demande_type','dossier_autorisation_type_detaille');
1016 if ( $('#demande_type option').size() < 2 ) {
1017 showFormsDemande();
1018 }
1019
1020 /*Affiche le select*/
1021 $('#demande_type').parent().parent().show();
1022 if($('#demande_type').val() == '' ) {
1023 $('.demande_hidden_bloc').each(
1024 function(){
1025 $(this).hide();
1026 }
1027 );
1028 $('input[type=submit]').hide();
1029 }
1030 }
1031 else {
1032
1033 /*Sinon, cache tous les champs du formulaire*/
1034 hideFields();
1035 }
1036 }
1037
1038 /*
1039 Ajoute le code HTML des champs pour les références cadastrales
1040 * */
1041 function addNewFieldReferencesCadastrales(){
1042
1043 var html = '<div class="field field-type-text references_cadastrales_new_field" >'+
1044 '<div class="form-libelle">' +
1045 '<label '+
1046 'class="libelle-terrain_references_cadastrales" '+
1047 'for="terrain_references_cadastrales">'+
1048 ' terrain_references_cadastrales '+
1049 '</label>' +
1050 '</div>' +
1051 '<div class="form-content reference_cadastrale_custom_fields">' +
1052 fieldReferenceCadastraleBase() +
1053 '</div>' +
1054 '</div>';
1055
1056 url = document.location + "";
1057 if(getDemandeInfo('nature') == 'NOUV' && $(".form-is-valid").size() == 0 && url.indexOf('action=3') == -1 ) {
1058 html += '<div class="field field-type-text" id="morelineReferenceCadastrale">' +
1059 '<div class="form-libelle"></div>' +
1060 '<div class="form-content">' +
1061 '<span class="om-form-button add-16" title="Ajouter">ajouter d\'autres lignes</span>' +
1062 '</div>' +
1063 '</div>';
1064 }
1065
1066 $('.references_cadastrales_new_field').remove();
1067 $('.moreFieldReferenceCadastrale').remove();
1068 $('#morelineReferenceCadastrale').remove();
1069 $('.localisation .fieldsetContent').prepend(
1070 html
1071 );
1072
1073 }
1074
1075 function addButtonCadastraleAdesse(){
1076
1077 $('#terrain_superficie').parent().parent().after('<div class="field field-type-text" >' +
1078 '<div class="form-libelle"></div>' +
1079 '<div class="form-content buttonCadAdr">' +
1080 '<input id="cad-adr-them" class="ui-button ui-widget ui-state-default ui-corner-all" type="button" value="Cadastrale < = > Adresse"/>' +
1081 '</div>' +
1082 '</div>' );
1083 }
1084
1085 /*
1086 Séparateur caché ; pour marqué la fin d'une ligne de référence cadastrale
1087 * */
1088 function hiddenSeparatorField(){
1089
1090 return '<input ' +
1091 'class="reference_cadastrale_custom_field" ' +
1092 'type="hidden" ' +
1093 'maxlength="2" ' +
1094 'size="2" ' +
1095 'value=";" />';
1096 }
1097
1098 /**
1099 * Retourne l'info passée en paramètre (nature de la demande ou type de la demande)
1100 **/
1101 function getDemandeInfo(info) {
1102 var id_demande_type = $('#demande_type').val();
1103 var res = "";
1104 $.ajax({
1105 type: "GET",
1106 url: "../app/getDemandeInfo.php?iddemandetype=" + id_demande_type
1107 + "&info=" + info,
1108 cache: false,
1109 async: false,
1110 success: function(val){
1111 res = val;
1112 }
1113 });
1114 return res;
1115 }
1116 /*
1117 Ajout d'une nouvelle ligne de champ de référence cadastrale
1118 Retourne le code HTML
1119 * */
1120 function fieldReferenceCadastraleBase(){
1121
1122 url = document.location + "";
1123
1124 var type = getDemandeInfo('nature');
1125 var reference_cadastrale = '<input ' +
1126 'class="champFormulaire reference_cadastrale_custom_field" ' +
1127 'type="text" ' +
1128 'onchange="VerifNum(this)" ' +
1129 'maxlength="4" ' +
1130 'size="4" ';
1131
1132 // désactivation des champs de référence cadastrale
1133 if(type != 'NOUV' || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1134 reference_cadastrale += 'disabled="disabled" ';
1135 }
1136
1137 reference_cadastrale += 'value="" />';
1138
1139 reference_cadastrale += '<input ' +
1140 'class="champFormulaire reference_cadastrale_custom_field" ' +
1141 'type="text" ' +
1142 'maxlength="3" ' +
1143 'size="3" ';
1144
1145 // désactivation des champs de référence cadastrale
1146 if(type != 'NOUV' || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1147 reference_cadastrale += 'disabled="disabled" ';
1148 }
1149
1150 reference_cadastrale += 'value="" '+
1151 'onchange="if ( !isAlpha(this.value) ){ alert(\'Vous ne devez saisir que des lettres dans ce champs.\'); this.value = \'\'; }"/>';
1152 reference_cadastrale += '<input ' +
1153 'class="champFormulaire reference_cadastrale_custom_field" ' +
1154 'type="text" ' +
1155 'onchange="VerifNum(this)" ' +
1156 'maxlength="5" ' +
1157 'size="5" ';
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 += '<span id="moreFieldReferenceCadastrale' +
1167 $('.moreFieldReferenceCadastrale').length +
1168 '" class="moreFieldReferenceCadastrale">' + hiddenSeparatorField();
1169
1170 // Si form validé pas de bouton
1171 url = document.location + "";
1172 if( type == 'NOUV' && $("form[name=f1] .form-is-valid").size() == 0 && url.indexOf('action=3') == -1 ) {
1173
1174 reference_cadastrale +=
1175 '<span class="om-form-button add-16" title="Ajouter">ajouter d\'autres champs</span>';
1176 }
1177
1178 reference_cadastrale += '</span>';
1179
1180 return reference_cadastrale;
1181 }
1182
1183 /**
1184 * Cache les champs inutules [formulaire de demande]
1185 **/
1186 function hideFields(){
1187 $('.demande_hidden_bloc').each(
1188 function(){
1189 $(this).hide();
1190 }
1191 );
1192
1193 $('.field-type-text').hide();
1194 $('input[type=submit]').hide();
1195 $('#demande_type').parent().parent().hide();
1196 }
1197
1198 /*
1199 Affiche les champs dont on a besoin dans le formulaire de demande
1200 * */
1201 function showFormsDemande(){
1202
1203
1204 if($('#demande_type').val() != "") {
1205
1206 $('.demande_hidden_bloc').each(
1207 function(){
1208 $(this).show();
1209 }
1210 );
1211 formatFieldReferenceCadastrale();
1212 $('.field-type-text').show();
1213 $('input[type=submit]').show();
1214 $('.terrain_references_cadastrales_custom').hide();
1215
1216 $('#terrain_references_cadastrales').parent().parent().hide();
1217
1218 // Si le type de la demande est un transfert on efface la liste des demandeurs
1219 if(getDemandeInfo('type') == 'DT') {
1220 if($('input[name=petitionnaire_principal]').size() != -1) {
1221 removeDemandeur("petitionnaire_principal_" + $('input[name=petitionnaire_principal]').val());
1222 }
1223 if($('input[name=delegataire]').size() != -1) {
1224 removeDemandeur("delegataire_" + $('input[name=delegataire]').val());
1225 }
1226
1227 $('#listePetitionnaires input.demandeur_id').each(function(){
1228 if($(this).size() != -1) {
1229
1230 removeDemandeur("petitionnaire_" + $(this).val());
1231 }
1232 });
1233 } else if ( getDemandeInfo('type') == 'DM' ) {
1234 $.ajax({
1235 type: "GET",
1236 url: "../app/getDemandeurList.php?dossier_autorisation=" + $('#dossier_autorisation').val(),
1237 cache: false,
1238 async: false,
1239 success: function(html){
1240 $('#liste_demandeur').replaceWith(html);
1241 }
1242 });
1243 }
1244 affichageBoutonsDemandeurs();
1245 } else {
1246
1247 /*Récupère les references cadastrales*/
1248 getDataFieldReferenceCadastrale();
1249
1250 $('.demande_hidden_bloc').each(
1251 function(){
1252 $(this).hide();
1253 }
1254 );
1255 $('input[type=submit]').hide();
1256
1257 }
1258 }
1259
1260 /*
1261 Action au clique sur le bouton " + ajouter d'autres champs"
1262 * */
1263 function newInputReferenceCadastrale(){
1264 return '<input ' +
1265 'class="champFormulaire reference_cadastrale_custom_field" ' +
1266 'type="text" ' +
1267 'maxlength="1" ' +
1268 'size="1" ' +
1269 'value="" ' +
1270 'onchange="testSeparator(this);"/>' +
1271 '<input ' +
1272 'class="champFormulaire reference_cadastrale_custom_field" ' +
1273 'type="text" ' +
1274 'onchange="VerifNum(this)" ' +
1275 'maxlength="4" ' +
1276 'size="4" ' +
1277 'value="" />';
1278 }
1279
1280
1281
1282 /**
1283 * Desactivation des fonctions widget du tableau de bord inutiles sur le nouveau
1284 * tableau de bord
1285 */
1286 function widget_bind_move_actions() {}
1287 function widget_bind_add_action() {}
1288 function widget_bind_edit_actions(widget_selector) {}
1289
1290 // Cette fonction permet d'associer a un arbre html les fonctions jquery
1291 // necessaires. Elle permet notamment lors du chargement d'une page en ajax
1292 // d'associer le comportement du bouton, la gestion du calendrier et la gestion
1293 // du fieldset.
1294 function om_initialize_content() {
1295 // Gestion du skin des boutons, liens
1296 link_bind_button();
1297 // Gestion du calendrier avec le widget datepicker de jqueryui
1298 inputdate_bind_datepicker();
1299 // Gestion des fieldset avec le plugin collaspsible de jquery
1300 fieldset_bind_collapsible();
1301
1302 changeDemandeurType('qualite');
1303 addSearchIcon();
1304 addDivDialog('.bloc_demandeur');
1305
1306 }
1307
1308 /*
1309 * Marque comme lu une consultation
1310 */
1311 function markedAsRead(id, objet, objetc){
1312
1313 /*Vérifie que l'identifiant passé en paramètre est bien un chiffre
1314 * et que le type d'objet est défini
1315 * */
1316 if ( $.isNumeric(id) && objet != '' ){
1317
1318 donnees = "?ido=" + id + '&obj=' + objet + '&objk=' + objetc;
1319 $.ajax({
1320 type: "GET",
1321 url: "../app/marquer_comme_lu.php" + donnees ,
1322 cache: false,
1323 success: function(html){
1324
1325 $('#sousform-' + objet + ' .message').remove();
1326
1327 /*Change la valeur affiché et affiche un message valide*/
1328 if ( $.parseJSON(html) == "Mise a jour effectue avec succes"){
1329
1330 // On modife le champ lu
1331 $('#lu').html('Oui');
1332 // On supprime l'action
1333 $('span.lu-16').parent().parent().remove();
1334 // On affiche le message
1335 $('#sousform-' + objet + ' .subtitle').after(
1336 '<div ' +
1337 'class="message ui-widget ui-corner-all ui-state-highlight ui-state-valid">' +
1338 '<p>' +
1339 '<span class="ui-icon ui-icon-info"></span>' +
1340 '<span class="text">' +
1341 $.parseJSON(html) +
1342 '</span>' +
1343 '</p>' +
1344 '</div>'
1345 );
1346 }
1347 /*Affichage d'une erreur*/
1348 else{
1349 $('#sousform-' + objet + ' .subtitle').after(
1350 '<div ' +
1351 'class="message ui-widget ui-corner-all ui-state-highlight ui-state-error">' +
1352 '<p>' +
1353 '<span class="ui-icon ui-icon-info"></span>' +
1354 '<span class="text">' +
1355 $.parseJSON(html) +
1356 '</span>' +
1357 '</p>' +
1358 '</div>'
1359 );
1360 }
1361 }
1362 });
1363 }
1364 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26