plugins: updated query_editor
[myslice.git] / plugins / pres_view / static / js / recup_liste.js
1 /* 
2
3         affiche la liste des possibililt�es d'affichage lors de la connexion au serveur
4
5
6 */
7
8
9 function recup_liste ( method )
10 {
11                                 var method2 = "opt_"+method;
12                                 var element, t,label,type_text,input ;
13                                          j.getJSON("methods/" + method, function(data) 
14                                         {
15                                                 j.each(data     , function(key, val) 
16                                                 {
17                                                 
18                                                         switch ( method ) 
19                                                         {
20                                                         
21                                                                 case 'dynamic':
22                                                                         
23                                                                         for( var i=0 ; i < val.length ; i++ )
24                                                                         {       
25                                                                                 label                   = document.createElement("label");
26                                                                                 input           = document.createElement("input");
27                                                                                 input.id = ( val[i].id.toString() ) ;
28                                                                                 input.setAttribute ( "type","checkbox");
29                                                                                 label.appendChild(input);
30                                                                                 input.setAttribute ( "onclick","client.ape_join('"+val[i].id.toString()+"')");
31
32                                                                                 t                       = document.createTextNode(val[i].name+" ");
33                                                                                 label.appendChild(t);
34                                                                                 document.getElementById(method2).appendChild(label);
35                                                                                 document.getElementById(method2).appendChild(document.createElement("br"));
36                                                                         }
37                                                                         
38                                                                         
39                                                                 break;
40                                                                 
41                                                                 default:
42                                                                         for( var i=0 ; i < val.length ; i++ )
43                                                                         {       
44                                                                                 label                   = document.createElement("label");
45                                                                                 label.title     = val[i].descriptif;
46                                                                                 label.setAttribute      ("class", "masterTooltip");
47                                                                                 input           = document.createElement("input");
48                                                                                 input.id = ( val[i].id.toString() ) ;
49                                                                                 input.setAttribute ( "type","checkbox");
50                                                                                 label.appendChild(input);
51
52                                                                                 t                       = document.createTextNode(val[i].name+" ");
53                                                                                 label.appendChild(t);
54                                                                                 document.getElementById(method2).appendChild(label);
55                                                                                 
56
57                                                                                 // gestion des contraintes 
58                                                                                 
59                                                                                 if ( val[i].contraints.length != null ) {
60                                                                                 
61                                                                                         //var texte="recup_data(\"methods/"+method.toString()+"/constraints=";
62                                                                                         var texte="recup_data(\""+method.toString()+"/";
63                                                                                         for (var  j=0 ; j< val[i].contraints.length ;j++ ) // asscoci� � un nom 
64                                                                                         {
65                                                                                                 for ( var k=0 ; k < val[i].contraints[j].ens.length ; k++ ) //associ� a un ensemble de contraite
66                                                                                                 {
67                                                                                                         var contrainte = "";
68                                                                                                         element                 = document.createElement("input");
69                                                                                                         element.setAttribute("style","width:75px");
70                                                                                                         if ( k != 0 ) contrainte += ",";
71                                                                                                         switch ( val[i].contraints[j].ens[k].type )
72                                                                                                         {
73                                                         
74                                                                                                                 case 'date':
75                                                                                                                                 element.setAttribute ( "type","text");
76                                                                                                                                 element.className = "datepicker";
77                                                                                                                                 element.id = "contrainte"+val[i].id.toString()+i.toString()+k.toString();
78                                                                                                                                 document.getElementById(method2).appendChild(element);
79                                                                                                                                 jQuery(function() {
80                                                                                                                                         jQuery(".datepicker").datepicker({
81                                                                                                                                                 showOtherMonths: true,
82                                                                                                                                                 selectOtherMonths: true,
83                                                                                                                                                 showAnim: 'slideDown',
84                                                                                                                                                 //regional: 'fr',
85                                                                                                                                                 dateFormat: 'dd/mm/yy'
86                                                                                                                                         });
87                                                                                                                                         jQuery(".datepicker").datepicker("setDate", -14);
88                                                                                                                                 });
89                                                                                                                                 jQuery("contrainte"+val[i].id.toString()+i.toString()+k.toString()).datepicker("setDate", -14);
90
91                                                                                                                                 contrainte += "'"+val[i].contraints[j].ens[k].op.toString()+val[i].contraints[j].ens[k].variable.toString()+"':\"+j(\"#contrainte"+val[i].id.toString()+i.toString()+k.toString()+"\").datepicker(\"getDate\").getTime()/1000+\"";
92                                                                                                                 break;
93                                                                                                                 
94                                                                                                                 case 'texte':
95                                                                                                                                 element                 = document.createElement("input");
96                                                                                                                                 element.setAttribute("type","text");
97                                                                                                                                 element.setAttribute("id","contrainte"+val[i].id.toString()+i.toString()+k.toString());
98                                                                                                                                 contrainte += "'"+val[i].contraints[j].ens[k].op.toString()+val[i].contraints[j].ens[k].varariable.toString()+"':\"+this.value+\"       ";
99                                                                                                                 break;
100                                                                                                                 
101                                                                                                                 default:
102                                                                                                                         alert ( 'mauvais type dans le fichier conf') ;
103                                                                                                                 break;
104                                                                                                         }
105                                                                                                         tooltip();
106
107                                                                                                 }
108                                                                                                 //texte += contrainte +"&id="+val[i].id.toString()+"\",\""+val[i].id.toString()+"\",\""+method.toString()+"\");" ;
109                                                                                                 texte += contrainte +"/"+val[i].id.toString()+"\",\""+val[i].id.toString()+"\",\""+method.toString()+"\");" ;
110                                                                                                 document.getElementById(method2).appendChild(document.createElement("br"));
111                                                                                         }
112                                                                                                         
113                                                                                                 
114                                                                                         /* type_text            = document.createElement("input");
115                                                                                         type_text.setAttribute("id",val[i].id.toString()+"2" );
116                                                                                         type_text.setAttribute("type","text");                                          
117                                                                                         type_text.value         = val[i].contraints;
118                                                                                         document.getElementById(method2).insertBefore(type_text,document.getElementById(method2).childNodes[0]);
119                                                                                         var texte = "recup_data(\"lib/cgi/static.py?constraints=']date_created':\"+j(\".datepicker\").datepicker(\"getDate\").getTime()/1000+\"&id="+val[i].id.toString()+"\","+val[i].id.toString()+","+method.toString()+")";
120                                                                                         element.setAttribute("onclick","if ( this.checked ){if ( "+texte+"}else{set_visibility(false,"+val[i].id.toString()+")}");
121                                                                                         */
122                                                                                         
123                                                                                 } else { 
124                                                                                         
125                                                                                         var texte = "recup_data(\""+method.toString()+"/']date_created':\"+j(\".datepicker\").datepicker(\"getDate\").getTime()/1000+\"/"+val[i].id.toString()+"\",\""+val[i].id.toString()+"\",\""+method.toString()+"\");";
126                                                                                         //var texte = "recup_data(\"methods/"+method.toString()+"?constraints=']date_created':\"+j(\".datepicker\").datepicker(\"getDate\").getTime()/1000+\"&id="+val[i].id.toString()+"\",\""+val[i].id.toString()+"\",\""+method.toString()+"\");";
127                                                                                         document.getElementById(method2).appendChild(document.createElement("br"));     
128                                                                                 }
129                                                                                 input.setAttribute("onclick","if ( this.checked ){"+texte+"}else{set_visibility(false,"+val[i].id.toString()+",\""+method.toString()+"\")}");
130
131
132                                                                         }
133                                                                 break;
134                                                                 
135                                                         }
136                                                         
137                                                 });
138                                         });
139 }
140
141
142 function tooltip ()
143 {
144                                         jQuery('.masterTooltip').hover(function(){
145                                                         // Hover over code
146                                                         var title = j(this).attr('title');
147                                                         j(this).data('tipText', title).removeAttr('title');
148                                                         j('<p class="tooltip"></p>')
149                                                         .text(title)
150                                                         .appendTo('body')
151                                                         .fadeIn('slow');
152                                         }, function() {
153                                                         // Hover out code
154                                                         j(this).attr('title', j(this).data('tipText'));
155                                                         j('.tooltip').remove();
156                                         }).mousemove(function(e) {
157                                                         var mousex = e.pageX + 20; //Get X coordinates
158                                                         var mousey = e.pageY + 10; //Get Y coordinates
159                                                         j('.tooltip')
160                                                         .css({ top: mousey, left: mousex })
161                                         });
162 }