1 |
d45a7442
|
Alessandro_N
|
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
|
5 |
|
|
|
6 |
|
|
|
7 |
|
|
|
8 |
|
|
|
9 |
|
|
|
10 |
|
|
|
11 |
|
|
|
12 |
|
|
|
13 |
|
|
|
14 |
|
|
|
15 |
|
|
|
16 |
|
|
|
17 |
|
|
|
18 |
|
|
|
19 |
|
|
|
20 |
|
|
|
21 |
|
|
|
22 |
|
|
|
23 |
|
|
|
24 |
|
|
|
25 |
|
|
Ext.namespace('sitools.user.component.forms');
|
26 |
|
|
|
27 |
|
|
|
28 |
|
|
|
29 |
|
|
|
30 |
|
|
|
31 |
|
|
|
32 |
|
|
|
33 |
|
|
|
34 |
|
|
|
35 |
|
|
|
36 |
|
|
|
37 |
|
|
|
38 |
|
|
|
39 |
|
|
|
40 |
|
|
|
41 |
|
|
|
42 |
|
|
|
43 |
|
|
sitools.user.component.forms.projectForm = Ext.extend(Ext.Panel, {
|
44 |
|
|
initComponent : function () {
|
45 |
|
|
var config = this;
|
46 |
|
|
this.componentType = "formProject";
|
47 |
|
|
|
48 |
|
|
var panelIdObject = {};
|
49 |
|
|
|
50 |
|
|
|
51 |
|
|
if (!Ext.isEmpty(this.formZones)){
|
52 |
|
|
Ext.each(this.formZones, function(formParam) {
|
53 |
|
|
var containerId = formParam.containerPanelId;
|
54 |
|
|
if (Ext.isEmpty(panelIdObject[containerId])){
|
55 |
|
|
panelIdObject[containerId] = [];
|
56 |
|
|
}
|
57 |
|
|
panelIdObject[containerId].push(formParam);
|
58 |
|
|
});
|
59 |
|
|
} else {
|
60 |
|
|
Ext.each(config.formParameters, function(formParam) {
|
61 |
|
|
var containerId = formParam.containerPanelId;
|
62 |
|
|
if (Ext.isEmpty(panelIdObject[containerId])){
|
63 |
|
|
panelIdObject[containerId] = [];
|
64 |
|
|
}
|
65 |
|
|
panelIdObject[containerId].push(formParam);
|
66 |
|
|
});
|
67 |
|
|
}
|
68 |
|
|
|
69 |
|
|
var items = [];
|
70 |
|
|
var globalParams = {};
|
71 |
|
|
|
72 |
|
|
Ext.iterate(panelIdObject, function(key, formParams){
|
73 |
|
|
var componentList = new sitools.user.component.formComponentsPanel({
|
74 |
|
|
border: true,
|
75 |
|
|
css : config.formCss,
|
76 |
|
|
formId : config.formId,
|
77 |
|
|
id : key
|
78 |
|
|
});
|
79 |
|
|
|
80 |
|
|
if (!Ext.isEmpty(this.formZones)) {
|
81 |
|
|
globalParams.formZones = formParams;
|
82 |
|
|
} else {
|
83 |
|
|
globalParams.oldParameters = formParams;
|
84 |
|
|
}
|
85 |
|
|
|
86 |
|
|
|
87 |
|
|
componentList.loadParameters(globalParams, config.dataUrl, "dataset");
|
88 |
|
|
|
89 |
|
|
items.push(componentList);
|
90 |
|
|
}, this);
|
91 |
|
|
|
92 |
|
|
|
93 |
|
|
|
94 |
|
|
|
95 |
|
|
|
96 |
|
|
|
97 |
|
|
this.zonesPanel = new Ext.Panel({
|
98 |
|
|
width : config.formWidth,
|
99 |
|
|
height : config.formHeight,
|
100 |
|
|
css : config.formCss,
|
101 |
|
|
formId : config.formId,
|
102 |
|
|
items : [items]
|
103 |
|
|
});
|
104 |
|
|
|
105 |
|
|
|
106 |
|
|
|
107 |
|
|
|
108 |
|
|
|
109 |
|
|
var displayComponentPanel = new Ext.Panel({
|
110 |
|
|
title : i18n.get('label.formConcepts'),
|
111 |
|
|
region : "center",
|
112 |
|
|
flex : 2,
|
113 |
|
|
autoScroll : true,
|
114 |
|
|
items : this.zonesPanel,
|
115 |
|
|
layout : "absolute",
|
116 |
|
|
listeners : {
|
117 |
|
|
scope : this,
|
118 |
|
|
resize : function () {
|
119 |
|
|
if (!Ext.isEmpty(this.zonesPanel.getEl())) {
|
120 |
|
|
var cmpChildSize = this.zonesPanel.getSize();
|
121 |
|
|
var size = this.body.getSize();
|
122 |
|
|
var xpos = 0, ypos = 0;
|
123 |
|
|
if (size.height > cmpChildSize.height) {
|
124 |
|
|
ypos = (size.height - cmpChildSize.height) / 2;
|
125 |
|
|
}
|
126 |
|
|
if (size.width > cmpChildSize.width) {
|
127 |
|
|
xpos = (size.width - cmpChildSize.width) / 2;
|
128 |
|
|
}
|
129 |
|
|
this.zonesPanel.setPosition(xpos, ypos);
|
130 |
|
|
|
131 |
|
|
}
|
132 |
|
|
}
|
133 |
|
|
}
|
134 |
|
|
});
|
135 |
|
|
|
136 |
|
|
|
137 |
|
|
|
138 |
|
|
|
139 |
|
|
|
140 |
|
|
this.propertyPanel = new Ext.form.FormPanel({
|
141 |
|
|
title : i18n.get("label.defineProperties"),
|
142 |
|
|
padding : 10,
|
143 |
|
|
labelWidth : 100,
|
144 |
|
|
flex : 2,
|
145 |
|
|
autoScroll : true,
|
146 |
|
|
defaults : {
|
147 |
|
|
labelSeparator : ""
|
148 |
|
|
},
|
149 |
|
|
buttons : [{
|
150 |
|
|
text : i18n.get('label.refreshDatasets'),
|
151 |
|
|
scope : this,
|
152 |
|
|
handler : this.propertySearch
|
153 |
|
|
}]
|
154 |
|
|
});
|
155 |
|
|
if (!Ext.isEmpty(this.properties)) {
|
156 |
|
|
Ext.each(this.properties, function (prop) {
|
157 |
|
|
var field = this.buildPropertyField(prop);
|
158 |
|
|
this.propertyPanel.add(field);
|
159 |
|
|
}, this);
|
160 |
|
|
}
|
161 |
|
|
|
162 |
|
|
var storeDatasets = new Ext.data.JsonStore({
|
163 |
|
|
restful : true,
|
164 |
|
|
fields : [{
|
165 |
|
|
name : "id",
|
166 |
|
|
type : "string"
|
167 |
|
|
}, {
|
168 |
|
|
name : "name",
|
169 |
|
|
type : "string"
|
170 |
|
|
}, {
|
171 |
|
|
name : "visible",
|
172 |
|
|
type : "boolean"
|
173 |
|
|
}],
|
174 |
|
|
url : projectGlobal.sitoolsAttachementForUsers + this.urlServicePropertiesSearch,
|
175 |
|
|
root : "collection.dataSets",
|
176 |
|
|
listeners : {
|
177 |
|
|
load : function (store, recs) {
|
178 |
|
|
Ext.each(recs, function (rec) {
|
179 |
|
|
rec.set("visible", true);
|
180 |
|
|
});
|
181 |
|
|
}
|
182 |
|
|
},
|
183 |
|
|
autoLoad : true
|
184 |
|
|
});
|
185 |
|
|
|
186 |
|
|
var visible = new Ext.grid.CheckColumn({
|
187 |
|
|
header : i18n.get('headers.visible'),
|
188 |
|
|
dataIndex : 'visible',
|
189 |
|
|
width : 55
|
190 |
|
|
});
|
191 |
|
|
|
192 |
|
|
var cmDatasets = new Ext.grid.ColumnModel({
|
193 |
|
|
columns : [ {
|
194 |
|
|
header : i18n.get('headers.name'),
|
195 |
|
|
dataIndex : 'name',
|
196 |
|
|
width : 120
|
197 |
|
|
}, visible]
|
198 |
|
|
});
|
199 |
|
|
|
200 |
|
|
var smDatasets = new Ext.grid.RowSelectionModel({
|
201 |
|
|
singleSelect : true
|
202 |
|
|
});
|
203 |
|
|
|
204 |
|
|
|
205 |
|
|
|
206 |
|
|
|
207 |
|
|
|
208 |
|
|
this.datasetPanel = new Ext.grid.EditorGridPanel({
|
209 |
|
|
title : i18n.get('label.defineDatasets'),
|
210 |
|
|
store : storeDatasets,
|
211 |
|
|
cm : cmDatasets,
|
212 |
|
|
sm : smDatasets,
|
213 |
|
|
flex : 1,
|
214 |
|
|
autoScroll : true,
|
215 |
|
|
viewConfig : {
|
216 |
|
|
forceFit : true
|
217 |
|
|
},
|
218 |
|
|
plugins : [visible]
|
219 |
|
|
});
|
220 |
|
|
|
221 |
|
|
var firstPanel = new Ext.Panel({
|
222 |
|
|
height : 300,
|
223 |
|
|
items : [this.propertyPanel, this.datasetPanel],
|
224 |
|
|
layout : "hbox",
|
225 |
|
|
collapsedTitle : i18n.get('label.advancedSearch'),
|
226 |
|
|
region : "north",
|
227 |
|
|
collapsible : true,
|
228 |
|
|
collapsed : true,
|
229 |
|
|
flex : 2,
|
230 |
|
|
layoutConfig : {
|
231 |
|
|
align : "stretch"
|
232 |
|
|
}
|
233 |
|
|
});
|
234 |
|
|
|
235 |
|
|
|
236 |
|
|
this.resetFormButton = new Ext.Button({
|
237 |
|
|
text : 'Reset Form',
|
238 |
|
|
scope : this,
|
239 |
|
|
iconCls : 'x-btn-reset',
|
240 |
|
|
handler : function () {
|
241 |
|
|
var containers = this.find("stype", 'sitoolsFormContainer');
|
242 |
|
|
Ext.each(containers, function (container) {
|
243 |
|
|
if(Ext.isFunction(container.resetToDefault)){
|
244 |
|
|
container.resetToDefault();
|
245 |
|
|
}
|
246 |
|
|
}, this);
|
247 |
|
|
}
|
248 |
|
|
});
|
249 |
|
|
|
250 |
|
|
|
251 |
|
|
|
252 |
|
|
|
253 |
|
|
|
254 |
|
|
this.searchButton = new Ext.Button({
|
255 |
|
|
text : i18n.get('label.search'),
|
256 |
|
|
scope : this,
|
257 |
|
|
iconCls : 'x-btn-search',
|
258 |
|
|
handler : function (button) {
|
259 |
|
|
this.onSearch(button);
|
260 |
|
|
}
|
261 |
|
|
});
|
262 |
|
|
|
263 |
|
|
Ext.apply(this, {
|
264 |
|
|
height : config.formHeight,
|
265 |
|
|
layout : "border",
|
266 |
|
|
layoutConfig : {
|
267 |
|
|
align : "stretch"
|
268 |
|
|
},
|
269 |
|
|
items : [ firstPanel, displayComponentPanel ],
|
270 |
|
|
buttons : [this.resetFormButton, this.searchButton],
|
271 |
|
|
listeners : {
|
272 |
|
|
scope : this,
|
273 |
|
|
propertyChanged : function () {
|
274 |
|
|
var properties = this.propertyPanel.items.items;
|
275 |
|
|
var params = {};
|
276 |
|
|
var j = 0;
|
277 |
|
|
var k = {};
|
278 |
|
|
for (var i = 0; i < properties.length; i++) {
|
279 |
|
|
var prop = properties[i];
|
280 |
|
|
if (!Ext.isEmpty(prop.getAPIValue())) {
|
281 |
|
|
params["k[" + j + "]"] = prop.getAPIValue();
|
282 |
|
|
j++;
|
283 |
|
|
}
|
284 |
|
|
}
|
285 |
|
|
this.datasetPanel.getStore().load({
|
286 |
|
|
params : params
|
287 |
|
|
});
|
288 |
|
|
},
|
289 |
|
|
multiDsSearchDone : function () {
|
290 |
|
|
this.resetFormButton.setDisabled(false);
|
291 |
|
|
this.searchButton.setDisabled(false);
|
292 |
|
|
}
|
293 |
|
|
|
294 |
|
|
},
|
295 |
|
|
bbar : new Ext.ux.StatusBar({
|
296 |
|
|
text : i18n.get('label.ready'),
|
297 |
|
|
iconCls : 'x-status-valid',
|
298 |
|
|
hidden : true
|
299 |
|
|
})
|
300 |
|
|
});
|
301 |
|
|
sitools.user.component.forms.projectForm.superclass.initComponent.call(this);
|
302 |
|
|
},
|
303 |
|
|
|
304 |
|
|
|
305 |
|
|
|
306 |
|
|
|
307 |
|
|
|
308 |
|
|
onSearch : function (button) {
|
309 |
|
|
button.setDisabled(true);
|
310 |
|
|
var containers = this.find("stype", 'sitoolsFormContainer');
|
311 |
|
|
var formMultiDsParams = [];
|
312 |
|
|
var glue = "";
|
313 |
|
|
var i = 0;
|
314 |
|
|
var datasets = [];
|
315 |
|
|
this.datasetPanel.getStore().each(function (rec) {
|
316 |
|
|
if (rec.get("visible")) {
|
317 |
|
|
datasets.push(rec.get('id'));
|
318 |
|
|
}
|
319 |
|
|
});
|
320 |
|
|
if (datasets.length <= 0) {
|
321 |
|
|
Ext.Msg.alert(i18n.get('label.error'), i18n.get('label.atLeastOneDataset'));
|
322 |
|
|
button.setDisabled(false);
|
323 |
|
|
return;
|
324 |
|
|
}
|
325 |
|
|
|
326 |
|
|
if (! Ext.isEmpty(this.nbDatasetsMax) && datasets.length > this.nbDatasetsMax) {
|
327 |
|
|
Ext.Msg.alert(i18n.get('label.error'), String.format(i18n.get('label.toManyDatasetsAllowed'), this.nbDatasetsMax));
|
328 |
|
|
button.setDisabled(false);
|
329 |
|
|
return;
|
330 |
|
|
}
|
331 |
|
|
var valid = true;
|
332 |
|
|
|
333 |
|
|
this.zonesPanel.items.each(function(componentList){
|
334 |
|
|
valid = valid && componentList.isComponentsValid();
|
335 |
|
|
},this);
|
336 |
|
|
|
337 |
|
|
if (!valid) {
|
338 |
|
|
this.getBottomToolbar().setStatus({
|
339 |
|
|
text : i18n.get('label.checkformvalue'),
|
340 |
|
|
iconCls : 'x-status-error'
|
341 |
|
|
});
|
342 |
|
|
this.getBottomToolbar().setVisible(true);
|
343 |
|
|
button.setDisabled(false);
|
344 |
|
|
return;
|
345 |
|
|
} else {
|
346 |
|
|
this.getBottomToolbar().setVisible(false);
|
347 |
|
|
}
|
348 |
|
|
|
349 |
|
|
Ext.each(containers, function (container) {
|
350 |
|
|
|
351 |
|
|
|
352 |
|
|
if (Ext.isFunction(container.getParameterValue)) {
|
353 |
|
|
var param = container.getParameterValue();
|
354 |
|
|
|
355 |
|
|
if (!Ext.isEmpty(param)) {
|
356 |
|
|
formMultiDsParams.push(this.paramValueToApi(param));
|
357 |
|
|
}
|
358 |
|
|
}
|
359 |
|
|
}, this);
|
360 |
|
|
|
361 |
|
|
var urlService = projectGlobal.sitoolsAttachementForUsers + this.urlServiceDatasetSearch;
|
362 |
|
|
|
363 |
|
|
var params = {};
|
364 |
|
|
params.datasetsList = datasets.join("|");
|
365 |
|
|
|
366 |
|
|
i = 0;
|
367 |
|
|
|
368 |
|
|
if (!Ext.isEmpty(formMultiDsParams)) {
|
369 |
|
|
Ext.each(formMultiDsParams, function (param) {
|
370 |
|
|
params["c[" + i + "]"] = param;
|
371 |
|
|
i += 1;
|
372 |
|
|
}, this);
|
373 |
|
|
}
|
374 |
|
|
|
375 |
|
|
|
376 |
|
|
Ext.Ajax.request({
|
377 |
|
|
method : "POST",
|
378 |
|
|
params : params,
|
379 |
|
|
|
380 |
|
|
jsonData : {},
|
381 |
|
|
scope : this,
|
382 |
|
|
url : urlService,
|
383 |
|
|
success : function (response) {
|
384 |
|
|
try {
|
385 |
|
|
var json = Ext.decode(response.responseText);
|
386 |
|
|
if (! json.success) {
|
387 |
|
|
Ext.Msg.alert(i18n.get('label.error'), json.message);
|
388 |
|
|
return;
|
389 |
|
|
}
|
390 |
|
|
var jsObj = SitoolsDesk.navProfile.multiDataset.getObjectResults();
|
391 |
|
|
var componentCfg = {
|
392 |
|
|
urlTask : json.TaskModel.statusUrl,
|
393 |
|
|
formId : this.formId,
|
394 |
|
|
formMultiDsParams : formMultiDsParams,
|
395 |
|
|
datasets : datasets,
|
396 |
|
|
formName : this.formName,
|
397 |
|
|
callerId : this.id
|
398 |
|
|
};
|
399 |
|
|
|
400 |
|
|
var windowConfig = {
|
401 |
|
|
id : "windMultiDsResultForm" + this.formId,
|
402 |
|
|
title : i18n.get('label.MultiDsResultForm') + " : " + this.formName,
|
403 |
|
|
saveToolbar : false,
|
404 |
|
|
iconCls : "dataviews"
|
405 |
|
|
};
|
406 |
|
|
SitoolsDesk.addDesktopWindow(windowConfig, componentCfg, jsObj);
|
407 |
|
|
|
408 |
|
|
}
|
409 |
|
|
catch (err) {
|
410 |
|
|
Ext.Msg.alert(i18n.get('label.error'), err);
|
411 |
|
|
return;
|
412 |
|
|
}
|
413 |
|
|
},
|
414 |
|
|
|
415 |
|
|
failure : alertFailure
|
416 |
|
|
});
|
417 |
|
|
var desktop = getDesktop();
|
418 |
|
|
var win = desktop.getWindow("windMultiDsResultForm" + this.formId);
|
419 |
|
|
if (win) {
|
420 |
|
|
win.close();
|
421 |
|
|
}
|
422 |
|
|
|
423 |
|
|
},
|
424 |
|
|
|
425 |
|
|
|
426 |
|
|
|
427 |
|
|
|
428 |
|
|
_getSettings : function () {
|
429 |
|
|
return {
|
430 |
|
|
objectName : "projectForm",
|
431 |
|
|
formId : this.formId,
|
432 |
|
|
formName : this.formName,
|
433 |
|
|
formParameters : this.formParameters,
|
434 |
|
|
formWidth : this.formWidth,
|
435 |
|
|
formHeight : this.formHeight,
|
436 |
|
|
formCss : this.formCss,
|
437 |
|
|
properties : this.properties,
|
438 |
|
|
urlServicePropertiesSearch : this.urlServicePropertiesSearch,
|
439 |
|
|
urlServiceDatasetSearch : this.urlServiceDatasetSearch,
|
440 |
|
|
componentType : this.componentType,
|
441 |
|
|
dictionaryName : this.dictionaryName,
|
442 |
|
|
preferencesPath : this.preferencesPath,
|
443 |
|
|
preferencesFileName : this.preferencesFileName,
|
444 |
|
|
formZones : this.zones
|
445 |
|
|
|
446 |
|
|
};
|
447 |
|
|
},
|
448 |
|
|
|
449 |
|
|
|
450 |
|
|
|
451 |
|
|
|
452 |
|
|
|
453 |
|
|
paramValueToApi : function (paramValue) {
|
454 |
|
|
var stringParam = paramValue.type + "|" + this.dictionaryName + "," + paramValue.code + "|" + paramValue.value;
|
455 |
|
|
if (!Ext.isEmpty(paramValue.userDimension) && !Ext.isEmpty(paramValue.userUnit)) {
|
456 |
|
|
stringParam += "|" + paramValue.userDimension + "|" + paramValue.userUnit.unitName;
|
457 |
|
|
}
|
458 |
|
|
return stringParam;
|
459 |
|
|
},
|
460 |
|
|
|
461 |
|
|
|
462 |
|
|
getResetFormButton : function () {
|
463 |
|
|
return this.resetFormButton;
|
464 |
|
|
},
|
465 |
|
|
|
466 |
|
|
|
467 |
|
|
|
468 |
|
|
|
469 |
|
|
|
470 |
|
|
|
471 |
|
|
getSearchButton : function () {
|
472 |
|
|
return this.searchButton;
|
473 |
|
|
},
|
474 |
|
|
|
475 |
|
|
|
476 |
|
|
|
477 |
|
|
|
478 |
|
|
|
479 |
|
|
|
480 |
|
|
|
481 |
|
|
|
482 |
|
|
|
483 |
|
|
|
484 |
|
|
|
485 |
|
|
buildPropertyField : function (prop) {
|
486 |
|
|
var field;
|
487 |
|
|
switch (prop.type) {
|
488 |
|
|
case "TEXTFIELD" :
|
489 |
|
|
field = {
|
490 |
|
|
xtype : "textfield",
|
491 |
|
|
name : prop.name,
|
492 |
|
|
anchor : '98%',
|
493 |
|
|
enableKeyEvents : true,
|
494 |
|
|
fieldLabel : prop.name,
|
495 |
|
|
getAPIValue : function () {
|
496 |
|
|
if (Ext.isEmpty(this.getValue())) {
|
497 |
|
|
return null;
|
498 |
|
|
}
|
499 |
|
|
return String.format("{0}|{1}|{2}", prop.type, prop.name, this.getValue());
|
500 |
|
|
}
|
501 |
|
|
};
|
502 |
|
|
break;
|
503 |
|
|
case "NUMBER_FIELD" :
|
504 |
|
|
field = {
|
505 |
|
|
xtype : "numberfield",
|
506 |
|
|
name : prop.name,
|
507 |
|
|
anchor : '98%',
|
508 |
|
|
enableKeyEvents : true,
|
509 |
|
|
fieldLabel : prop.name,
|
510 |
|
|
getAPIValue : function () {
|
511 |
|
|
if (Ext.isEmpty(this.getValue())) {
|
512 |
|
|
return null;
|
513 |
|
|
}
|
514 |
|
|
return String.format("{0}|{1}|{2}", prop.type, prop.name, this.getValue());
|
515 |
|
|
}
|
516 |
|
|
};
|
517 |
|
|
break;
|
518 |
|
|
case "NUMERIC_BETWEEN" :
|
519 |
|
|
field = {
|
520 |
|
|
xtype: 'compositefield',
|
521 |
|
|
defaults: {
|
522 |
|
|
flex: 1
|
523 |
|
|
},
|
524 |
|
|
msgTarget: 'under',
|
525 |
|
|
anchor : '98%',
|
526 |
|
|
items: [
|
527 |
|
|
{
|
528 |
|
|
xtype: 'numberfield',
|
529 |
|
|
name : prop.name + "deb",
|
530 |
|
|
enableKeyEvents : true
|
531 |
|
|
},
|
532 |
|
|
{
|
533 |
|
|
xtype: 'numberfield',
|
534 |
|
|
name : prop.name + "fin"
|
535 |
|
|
|
536 |
|
|
}
|
537 |
|
|
],
|
538 |
|
|
fieldLabel : prop.name,
|
539 |
|
|
getAPIValue : function () {
|
540 |
|
|
var deb = this.items.itemAt(0).getValue();
|
541 |
|
|
var fin = this.items.itemAt(1).getValue();
|
542 |
|
|
if (Ext.isEmpty(deb) || Ext.isEmpty(fin)) {
|
543 |
|
|
return null;
|
544 |
|
|
}
|
545 |
|
|
return String.format("{0}|{1}|{2}|{3}", prop.type, prop.name, deb, fin);
|
546 |
|
|
}
|
547 |
|
|
};
|
548 |
|
|
break;
|
549 |
|
|
case "DATE_BETWEEN" :
|
550 |
|
|
field = {
|
551 |
|
|
xtype: 'compositefield',
|
552 |
|
|
defaults: {
|
553 |
|
|
flex: 1
|
554 |
|
|
},
|
555 |
|
|
msgTarget: 'under',
|
556 |
|
|
anchor : '98%',
|
557 |
|
|
items: [
|
558 |
|
|
{
|
559 |
|
|
xtype: 'datefield',
|
560 |
|
|
name : prop.name + "deb",
|
561 |
|
|
enableKeyEvents : true,
|
562 |
|
|
format : SITOOLS_DEFAULT_IHM_DATE_FORMAT,
|
563 |
|
|
showTime : true
|
564 |
|
|
},
|
565 |
|
|
{
|
566 |
|
|
xtype: 'datefield',
|
567 |
|
|
name : prop.name + "fin",
|
568 |
|
|
format : SITOOLS_DEFAULT_IHM_DATE_FORMAT,
|
569 |
|
|
showTime : true
|
570 |
|
|
|
571 |
|
|
}
|
572 |
|
|
],
|
573 |
|
|
fieldLabel : prop.name,
|
574 |
|
|
getAPIValue : function () {
|
575 |
|
|
var deb, fin;
|
576 |
|
|
try {
|
577 |
|
|
deb = this.items.itemAt(0).getValue().format(SITOOLS_DATE_FORMAT);
|
578 |
|
|
fin = this.items.itemAt(1).getValue().format(SITOOLS_DATE_FORMAT);
|
579 |
|
|
|
580 |
|
|
}
|
581 |
|
|
catch (err) {
|
582 |
|
|
return null;
|
583 |
|
|
}
|
584 |
|
|
if (Ext.isEmpty(deb) || Ext.isEmpty(fin)) {
|
585 |
|
|
return null;
|
586 |
|
|
}
|
587 |
|
|
return String.format("{0}|{1}|{2}|{3}", prop.type, prop.name, deb, fin);
|
588 |
|
|
}
|
589 |
|
|
};
|
590 |
|
|
break;
|
591 |
|
|
}
|
592 |
|
|
return field;
|
593 |
|
|
},
|
594 |
|
|
|
595 |
|
|
|
596 |
|
|
|
597 |
|
|
|
598 |
|
|
propertySearch : function () {
|
599 |
|
|
var properties = this.propertyPanel.items.items;
|
600 |
|
|
var params = {};
|
601 |
|
|
var j = 0;
|
602 |
|
|
var k = {};
|
603 |
|
|
for (var i = 0; i < properties.length; i++) {
|
604 |
|
|
var prop = properties[i];
|
605 |
|
|
if (!Ext.isEmpty(prop.getAPIValue())) {
|
606 |
|
|
params["k[" + j + "]"] = prop.getAPIValue();
|
607 |
|
|
j++;
|
608 |
|
|
}
|
609 |
|
|
}
|
610 |
|
|
this.datasetPanel.getStore().load({
|
611 |
|
|
params : params
|
612 |
|
|
});
|
613 |
|
|
this.datasetPanel.getView().refresh();
|
614 |
|
|
}
|
615 |
|
|
|
616 |
|
|
});
|