Mercurial > lada > lada-client
annotate app/view/widget/base/DateField.js @ 936:e7270963947c
LadaPrint Fixes an Issue where empty cells could not be printed bc NULL has no toString method
author | Dustin Demuth <dustin@intevation.de> |
---|---|
date | Wed, 30 Sep 2015 11:53:52 +0200 |
parents | 777bf66dbb11 |
children | d6e259e76de6 |
rev | line source |
---|---|
645
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
3 * |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU GPL (v>=3) |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
6 * the documentation coming with IMIS-Labordaten-Application for details. |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
7 */ |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
8 |
892
777bf66dbb11
even more jsduck... for widgets this time
Dustin Demuth <dustin@intevation.de>
parents:
733
diff
changeset
|
9 /** |
777bf66dbb11
even more jsduck... for widgets this time
Dustin Demuth <dustin@intevation.de>
parents:
733
diff
changeset
|
10 * This Widget extends a Panel in order to create a custom Datefield |
777bf66dbb11
even more jsduck... for widgets this time
Dustin Demuth <dustin@intevation.de>
parents:
733
diff
changeset
|
11 */ |
645
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
12 Ext.define('Lada.view.widget.base.DateField', { |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
13 extend: 'Ext.form.Panel', |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
14 alias: 'widget.datef', |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
15 |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
16 requires: [ |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
17 'Ext.form.field.Date' |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
18 ], |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
19 |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
20 layout: 'hbox', |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
21 |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
22 border: 0, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
23 |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
24 margin: '0, 0, 5, 0', |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
25 |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
26 initComponent: function() { |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
27 this.items = [{ |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
28 xtype: 'datefield', |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
29 flex: 1, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
30 name: this.name, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
31 fieldLabel: this.fieldLabel, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
32 labelWidth: this.labelWidth, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
33 listeners: this.listeners, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
34 triggerAction: this.triggerAction, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
35 format: this.format, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
36 msgTarget: 'none', |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
37 tpl: this.tpl |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
38 }, { |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
39 xtype: 'image', |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
40 name: 'warnImg', |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
41 src: 'resources/img/dialog-warning.png', |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
42 width: 14, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
43 height: 14, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
44 hidden: true |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
45 }, { |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
46 xtype: 'image', |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
47 name: 'errorImg', |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
48 src: 'resources/img/emblem-important.png', |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
49 width: 14, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
50 height: 14, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
51 hidden: true |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
52 }]; |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
53 this.callParent(arguments); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
54 }, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
55 |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
56 showWarnings: function(warnings) { |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
57 var img = this.down('image[name=warnImg]'); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
58 Ext.create('Ext.tip.ToolTip', { |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
59 target: img.getEl(), |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
60 html: warnings |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
61 }); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
62 this.down('datefield').invalidCls = 'x-lada-warning'; |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
63 this.down('datefield').markInvalid(''); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
64 img.show(); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
65 var fieldset = this.up('fieldset[collapsible=true]'); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
66 if (fieldset) { |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
67 var i18n = Lada.getApplication().bundle; |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
68 var warningText = i18n.getMsg(this.name) + ': ' + warnings; |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
69 fieldset.showWarningOrError(true, warningText); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
70 } |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
71 }, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
72 |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
73 showErrors: function(errors) { |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
74 var img = this.down('image[name=errorImg]'); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
75 var warnImg = this.down('image[name=warnImg]'); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
76 warnImg.hide(); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
77 Ext.create('Ext.tip.ToolTip', { |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
78 target: img.getEl(), |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
79 html: errors |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
80 }); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
81 this.down('datefield').invalidCls = 'x-lada-error'; |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
82 this.down('datefield').markInvalid(''); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
83 img.show(); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
84 var fieldset = this.up('fieldset[collapsible=true]'); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
85 if (fieldset) { |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
86 var i18n = Lada.getApplication().bundle; |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
87 var errorText = i18n.getMsg(this.name) + ': ' + errors; |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
88 fieldset.showWarningOrError(false, '', true, errorText); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
89 } |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
90 }, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
91 |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
92 clearWarningOrError: function() { |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
93 this.down('image[name=errorImg]').hide(); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
94 this.down('image[name=warnImg]').hide(); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
95 }, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
96 |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
97 getValue: function() { |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
98 return this.down('datefield').getValue(); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
99 }, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
100 |
733
a8389baaf4af
Added method to clear values.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
645
diff
changeset
|
101 clearValue: function() { |
a8389baaf4af
Added method to clear values.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
645
diff
changeset
|
102 this.down('datefield').clearValue(); |
a8389baaf4af
Added method to clear values.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
645
diff
changeset
|
103 }, |
a8389baaf4af
Added method to clear values.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
645
diff
changeset
|
104 |
645
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
105 getName: function() { |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
106 return this.name; |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
107 }, |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
108 |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
109 setReadOnly: function(value) { |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
110 this.down('datefield').setReadOnly(value); |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
111 } |
422e71708a0c
Ein Datefield Widget hinzugefügt
Dustin Demuth <dustin@intevation.de>
parents:
diff
changeset
|
112 }); |