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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1062 - (show annotations)
Thu Dec 13 17:36:49 2012 UTC (12 years, 1 month ago) by nhaye
File MIME type: application/javascript
File size: 41645 byte(s)
Amélioration du filtrage des types de demandes selon si la demande est effectuée sur un dossier existant ou non,
correction de la suppression des petitionnaires lors d'une demande de transfert.

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26