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 });

http://lada.wald.intevation.org