annotate app/controller/FilterResult.js @ 939:cbc0c3fdada6

LadaPrint: Give Feedback when printing is in Progress
author Dustin Demuth <dustin@intevation.de>
date Wed, 30 Sep 2015 16:08:40 +0200
parents fe85a4d23370
children 1e2895bfa410
rev   line source
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 *
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU GPL (v>=3)
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6 * the documentation coming with IMIS-Labordaten-Application for details.
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 */
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9 /**
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 * Controller for filter result grid.
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 */
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 Ext.define('Lada.controller.FilterResult', {
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 extend: 'Ext.app.Controller',
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 requires: [
754
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
15 'Lada.view.window.ProbeEdit',
759
b7484c7da2d4 Unified the Messprogramm windows. Unfortunately the Roweditor of Messmethodengrid is broken in this commit. This is due to the fact that the Mmt store is noit autoloaded anymore
Dustin Demuth <dustin@intevation.de>
parents: 755
diff changeset
16 'Lada.view.window.Messprogramm'
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 ],
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
19 /**
810
a5373ee662e2 Created a loading Animation for the Filterresultgrid
Dustin Demuth <dustin@intevation.de>
parents: 809
diff changeset
20 * Initialize the Controller with listeners
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
21 */
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 init: function() {
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 this.control({
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 'filterresultgrid': {
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 itemdblclick: this.editItem
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 },
754
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
27 'filterresultgrid toolbar button[action=addProbe]': {
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
28 click: this.addProbeItem
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 },
755
3637c453f67d Enabled Creation of a Messprogramm, an empty Window is now shown. The save operation leads to a E 500
Dustin Demuth <dustin@intevation.de>
parents: 754
diff changeset
30 'filterresultgrid toolbar button[action=addMessprogramm]': {
3637c453f67d Enabled Creation of a Messprogramm, an empty Window is now shown. The save operation leads to a E 500
Dustin Demuth <dustin@intevation.de>
parents: 754
diff changeset
31 click: this.addMessprogrammItem
3637c453f67d Enabled Creation of a Messprogramm, an empty Window is now shown. The save operation leads to a E 500
Dustin Demuth <dustin@intevation.de>
parents: 754
diff changeset
32 },
860
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
33 'filterresultgrid toolbar button[action=genProbenFromMessprogramm]': {
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
34 click: this.genProbenFromMessprogramm
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
35 },
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 'filterresultgrid toolbar button[action=import]': {
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 click: this.uploadFile
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 },
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 'filterresultgrid toolbar button[action=export]': {
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 click: this.downloadFile
923
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
41 },
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
42 'filterresultgrid toolbar button[action=print]': {
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
43 click: this.printSelection
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 }
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 });
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 this.callParent(arguments);
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 },
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
49 /**
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
50 * This function is called after a Row in the
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
51 * {@link Lada.view.grid.FilterResult}
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
52 * was double-clicked.
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
53 * The function opens a {@link Lada.view.window.ProbeEdit}
895
2b7bcb778f0a Jsduck debug
Dustin Demuth <dustin@intevation.de>
parents: 887
diff changeset
54 * or a {@link Lada.view.window.Messprogramm}.
754
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
55 * To determine which window has to be opened, the function
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
56 * analyse the records modelname.
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
57 */
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 editItem: function(grid, record) {
754
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
59 var mname = record.store.model.modelName || '';
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
60 var winname = '';
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
61
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
62 //Based upon the Model that was loaded, act differently
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
63 if (mname == 'Lada.model.ProbeList'){
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
64 winname = 'Lada.view.window.ProbeEdit';
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
65 }
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
66 else if (mname == 'Lada.model.MessprogrammList'){
759
b7484c7da2d4 Unified the Messprogramm windows. Unfortunately the Roweditor of Messmethodengrid is broken in this commit. This is due to the fact that the Mmt store is noit autoloaded anymore
Dustin Demuth <dustin@intevation.de>
parents: 755
diff changeset
67 winname = 'Lada.view.window.Messprogramm';
754
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
68 }
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
69 if (winname){
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
70 var win = Ext.create(winname, {
814
af54733a6d48 Fix for IE8 compatibility
Dustin Demuth <dustin@intevation.de>
parents: 812
diff changeset
71 record: record,
af54733a6d48 Fix for IE8 compatibility
Dustin Demuth <dustin@intevation.de>
parents: 812
diff changeset
72 style: 'z-index: -1;' //Fixes an Issue where windows could not be created in IE8
754
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
73 });
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
74 win.show();
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
75 win.initData();
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
76 }
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
77 else {
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
78 console.log('The model is unknown.'
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
79 +'No window was configured to display the data.'
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
80 +'I retrieved a model named:' + mname
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
81 );
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
82 }
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
83 },
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
84
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
85 /**
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
86 * This function opens a new window to create a Probe
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
87 * {@link Lada.view.window.ProbeCreate}
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
88 */
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
89 addProbeItem: function() {
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
90 var win = Ext.create('Lada.view.window.ProbeCreate');
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 win.show();
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 win.initData();
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 },
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
95 /**
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
96 * This function opens a new window to create a Probe
895
2b7bcb778f0a Jsduck debug
Dustin Demuth <dustin@intevation.de>
parents: 887
diff changeset
97 * {@link Lada.view.window.Messprogramm}
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
98 */
754
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
99 addMessprogrammItem: function() {
759
b7484c7da2d4 Unified the Messprogramm windows. Unfortunately the Roweditor of Messmethodengrid is broken in this commit. This is due to the fact that the Mmt store is noit autoloaded anymore
Dustin Demuth <dustin@intevation.de>
parents: 755
diff changeset
100 var win = Ext.create('Lada.view.window.Messprogramm');
755
3637c453f67d Enabled Creation of a Messprogramm, an empty Window is now shown. The save operation leads to a E 500
Dustin Demuth <dustin@intevation.de>
parents: 754
diff changeset
101 win.show();
3637c453f67d Enabled Creation of a Messprogramm, an empty Window is now shown. The save operation leads to a E 500
Dustin Demuth <dustin@intevation.de>
parents: 754
diff changeset
102 win.initData();
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
103 },
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
104
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
105 /**
860
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
106 * This button creates a window to generate Proben
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
107 * from a selected messprogramm.
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
108 */
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
109 genProbenFromMessprogramm: function(button) {
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
110 var grid = button.up('grid');
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
111 var selection = grid.getView().getSelectionModel().getSelection();
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
112 var i18n = Lada.getApplication().bundle;
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
113 var proben = [];
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
114 for (var i = 0; i < selection.length; i++) {
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
115 proben.push(selection[i].get('id'));
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
116 }
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
117 var me = this;
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
118
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
119 var winname = 'Lada.view.window.GenProbenFromMessprogramm';
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
120 for (p in proben) {
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
121 grid.setLoading(true);
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
122 Ext.ClassManager.get('Lada.model.Messprogramm').load(proben[p], {
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
123 failure: function(record, action) {
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
124 me.setLoading(false);
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
125 // TODO
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
126 console.log('An unhandled Failure occured. See following Response and Record');
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
127 console.log(action);
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
128 console.log(record);
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
129 },
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
130 success: function(record, response) {
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
131 grid.setLoading(false);
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
132
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
133 var win = Ext.create(winname, {
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
134 record: record,
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
135 parentWindow: null
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
136 });
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
137 win.show();
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
138 win.initData();
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
139 },
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
140 scope: this
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
141 });
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
142 }
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
143 },
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
144
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
145 /**
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
146 * This function opens a {@link Lada.view.window.FileUpload}
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
147 * window to upload a LAF-File
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
148 */
725
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
149 uploadFile: function() {
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
150 var win = Ext.create('Lada.view.window.FileUpload', {
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
151 title: 'Datenimport',
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
152 modal: true
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
153 });
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
154
725
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
155 win.show();
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
156 },
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
157
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
158 /**
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
159 * This function can be used to Download the items which
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
160 * were selected in the {@link Lada.view.grid.FilterResult}
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
161 * The Download does not work with Internet Explorers older than v.10
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
162 */
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
163 downloadFile: function(button) {
725
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
164 var grid = button.up('grid');
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
165 var selection = grid.getView().getSelectionModel().getSelection();
754
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
166 var i18n = Lada.getApplication().bundle;
725
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
167 var proben = [];
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
168 for (var i = 0; i < selection.length; i++) {
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
169 proben.push(selection[i].get('id'));
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
170 }
825
426829f27b02 fixed scope for reload
Dustin Demuth <dustin@intevation.de>
parents: 814
diff changeset
171 var me = this;
725
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
172 Ext.Ajax.request({
727
e002234d7da5 Corrected URL for lada-server in export and import
Dustin Demuth <dustin@intevation.de>
parents: 725
diff changeset
173 url: 'lada-server/export/laf',
725
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
174 jsonData: {'proben': proben},
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
175 success: function(response) {
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
176 var content = response.responseText;
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
177 var blob = new Blob([content],{type: 'text/plain'});
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
178 saveAs(blob, 'export.laf');
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
179 },
812
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
180 failure: function(response) {
920
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
181 /*
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
182 SSO will send a 302 if the Client is not authenticated
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
183 unfortunately this seems to be filtered by the browser.
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
184 We assume that a 302 was send when the follwing statement
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
185 is true.
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
186 */
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
187 if (response.status == 0 && response.responseText === "") {
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
188 Ext.MessageBox.confirm('Erneutes Login erforderlich',
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
189 'Ihre Session ist abgelaufen.<br/>'+
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
190 'Für ein erneutes Login muss die Anwendung neu geladen werden.<br/>' +
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
191 'Alle ungesicherten Daten gehen dabei verloren.<br/>' +
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
192 'Soll die Anwendung jetzt neu geladen werden?', this.reload);
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
193 }
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
194 // further error handling
812
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
195 var json = Ext.JSON.decode(response.responseText);
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
196 if (json) {
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
197 if(json.errors.totalCount > 0 || json.warnings.totalCount > 0){
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
198 formPanel.setMessages(json.errors, json.warnings);
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
199 }
920
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
200 if(json.message){
812
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
201 Ext.Msg.alert(Lada.getApplication().bundle.getMsg('err.msg.generic.title')
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
202 +' #'+json.message,
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
203 Lada.getApplication().bundle.getMsg(json.message));
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
204 } else {
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
205 Ext.Msg.alert(i18n.getMsg('err.msg.generic.title'),
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
206 i18n.getMsg('err.msg.laf.filecreatefailed'));
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
207 }
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
208 } else {
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
209 Ext.Msg.alert(i18n.getMsg('err.msg.generic.title'),
754
6b0d0e62f7d7 added Probenintervalle to a Messprogramm... there is still a lot of work needed. For instance for the slider element.
Dustin Demuth <dustin@intevation.de>
parents: 751
diff changeset
210 i18n.getMsg('err.msg.laf.filecreatefailed'));
812
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
211 }
725
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
212 }
83c571b022f3 Added window for laf file upload and use filtergrid buttons to export or import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 620
diff changeset
213 });
812
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
214 },
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
215
923
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
216 /**
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
217 * Send the selection to a Printservice
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
218 */
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
219 printSelection: function(button) {
939
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
220
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
221 //disable Button and setLoading...
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
222 button.disable();
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
223 button.setLoading(true);
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
224
923
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
225 var grid = button.up('grid');
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
226 var selection = grid.getView().getSelectionModel().getSelection();
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
227 var i18n = Lada.getApplication().bundle;
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
228 var me = this;
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
229 var columns = [];
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
230 var columnNames = [];
938
fe85a4d23370 LadaPrint removed superfluous debug message and made printer more generic. In theory it should also be capable of printing messprogramme without further changes.
Dustin Demuth <dustin@intevation.de>
parents: 937
diff changeset
231 var visibleColumns = [];
fe85a4d23370 LadaPrint removed superfluous debug message and made printer more generic. In theory it should also be capable of printing messprogramme without further changes.
Dustin Demuth <dustin@intevation.de>
parents: 937
diff changeset
232 var displayName = '';
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
233 var data = [];
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
234
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
235 // Write the columns to an array
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
236 try {
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
237 for (key in selection[0].data) {
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
238 // Do not write owner or readonly or id
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
239 if (["owner", "readonly", "id"].indexOf(key) == -1){
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
240 columns.push(key);
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
241 }
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
242 }
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
243 }
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
244 catch (e) {
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
245 console.log(e);
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
246 }
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
247
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
248 //Retrieve visible columns' id's and names.
938
fe85a4d23370 LadaPrint removed superfluous debug message and made printer more generic. In theory it should also be capable of printing messprogramme without further changes.
Dustin Demuth <dustin@intevation.de>
parents: 937
diff changeset
249 // and set displayName
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
250 try {
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
251 var grid = button.up('filterresultgrid');
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
252 var cman = grid.columnManager;
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
253 var cols = cman.getColumns();
938
fe85a4d23370 LadaPrint removed superfluous debug message and made printer more generic. In theory it should also be capable of printing messprogramme without further changes.
Dustin Demuth <dustin@intevation.de>
parents: 937
diff changeset
254
fe85a4d23370 LadaPrint removed superfluous debug message and made printer more generic. In theory it should also be capable of printing messprogramme without further changes.
Dustin Demuth <dustin@intevation.de>
parents: 937
diff changeset
255 displayName = grid.down('tbtext').text;
fe85a4d23370 LadaPrint removed superfluous debug message and made printer more generic. In theory it should also be capable of printing messprogramme without further changes.
Dustin Demuth <dustin@intevation.de>
parents: 937
diff changeset
256
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
257 for (key in cols) {
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
258 if (cols[key].dataIndex) {
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
259 visibleColumns[cols[key].dataIndex] = cols[key].text;
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
260 }
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
261 }
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
262 }
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
263 catch (e) {
936
e7270963947c LadaPrint Fixes an Issue where empty cells could not be printed bc NULL has no toString method
Dustin Demuth <dustin@intevation.de>
parents: 934
diff changeset
264 console.log(e);
923
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
265 }
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
266
936
e7270963947c LadaPrint Fixes an Issue where empty cells could not be printed bc NULL has no toString method
Dustin Demuth <dustin@intevation.de>
parents: 934
diff changeset
267
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
268 // Retrieve Data from selection
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
269 try {
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
270 for (item in selection) {
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
271 var row = selection[item].data;
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
272 var out = [];
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
273 //Lookup every column and write to data array.
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
274 for (key in columns){
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
275 var attr = columns[key];
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
276 //Only write data to output when the column is not hidden.
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
277 if (row[attr] != null &&
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
278 visibleColumns[attr] != null) {
936
e7270963947c LadaPrint Fixes an Issue where empty cells could not be printed bc NULL has no toString method
Dustin Demuth <dustin@intevation.de>
parents: 934
diff changeset
279 out.push(row[attr].toString());
e7270963947c LadaPrint Fixes an Issue where empty cells could not be printed bc NULL has no toString method
Dustin Demuth <dustin@intevation.de>
parents: 934
diff changeset
280 }
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
281 else if (visibleColumns[attr] != null) {
936
e7270963947c LadaPrint Fixes an Issue where empty cells could not be printed bc NULL has no toString method
Dustin Demuth <dustin@intevation.de>
parents: 934
diff changeset
282 out.push('');
e7270963947c LadaPrint Fixes an Issue where empty cells could not be printed bc NULL has no toString method
Dustin Demuth <dustin@intevation.de>
parents: 934
diff changeset
283 }
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
284 }
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
285 data.push(out);
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
286 }
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
287 }
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
288 catch (e){
936
e7270963947c LadaPrint Fixes an Issue where empty cells could not be printed bc NULL has no toString method
Dustin Demuth <dustin@intevation.de>
parents: 934
diff changeset
289 console.log(e);
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
290 }
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
291
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
292 //Retrieve the names of the columns.
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
293 try {
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
294 var grid = button.up('filterresultgrid');
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
295 var cman = grid.columnManager;
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
296 var cols = cman.getColumns();
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
297 //Iterate columns and find column names for the key...
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
298 // This WILL run into bad behaviour when column-keys exist twice.
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
299 for (key in columns){
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
300 for (k in cols){
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
301 if (cols[k].dataIndex == columns[key]){
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
302 columnNames.push(cols[k].text);
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
303 break;
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
304 }
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
305 }
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
306 }
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
307 }
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
308 catch (e) {
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
309 console.log(e);
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
310 }
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
311
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
312 var printData = {
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
313 'layout': 'A4 landscape',
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
314 'outputFormat': 'pdf',
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
315 'attributes': {
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
316 'title': 'Auszug aus LADA',
938
fe85a4d23370 LadaPrint removed superfluous debug message and made printer more generic. In theory it should also be capable of printing messprogramme without further changes.
Dustin Demuth <dustin@intevation.de>
parents: 937
diff changeset
317 'displayName': displayName,
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
318 'table': {
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
319 'columns': columnNames,
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
320 'data': data
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
321 }
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
322 }
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
323 }
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
324
923
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
325 Ext.Ajax.request({
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
326 url: 'lada-printer/buildreport.pdf',
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
327 //configure a proxy in apache conf!
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
328 jsonData: printData,
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
329 binary: true,
923
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
330 success: function(response) {
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
331 var content = response.responseBytes;
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
332 var filetype = response.getResponseHeader('Content-Type');
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
333 var blob = new Blob([content],{type: filetype});
923
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
334 saveAs(blob, 'lada-print.pdf');
939
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
335 button.enable();
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
336 button.setLoading(false);
923
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
337 },
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
338 failure: function(response) {
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
339 console.log('failure');
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
340 // Error handling
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
341 // TODO
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
342 //console.log(response.responseText)
939
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
343 button.enable();
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
344 button.setLoading(false);
923
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
345 if (response.responseText) {
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
346 try {
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
347 var json = Ext.JSON.decode(response.responseText);
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
348 }
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
349 catch(e){
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
350 console.log(e);
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
351 }
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
352 }
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
353 if (json) {
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
354 if(json.errors.totalCount > 0 || json.warnings.totalCount > 0){
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
355 formPanel.setMessages(json.errors, json.warnings);
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
356 }
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
357 if(json.message){
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
358 Ext.Msg.alert(Lada.getApplication().bundle.getMsg('err.msg.generic.title')
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
359 +' #'+json.message,
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
360 Lada.getApplication().bundle.getMsg(json.message));
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
361 } else {
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
362 Ext.Msg.alert(i18n.getMsg('err.msg.generic.title'),
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
363 i18n.getMsg('err.msg.print.noContact'));
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
364 }
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
365 } else {
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
366 Ext.Msg.alert(i18n.getMsg('err.msg.generic.title'),
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
367 i18n.getMsg('err.msg.print.noContact'));
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
368 }
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
369 }
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
370 });
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
371 },
7cbbe0485d0d Added a Print-button which sends a selection of proben to a service which still has to be specified.
Dustin Demuth <dustin@intevation.de>
parents: 920
diff changeset
372
812
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
373 reload: function(btn) {
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
374 if (btn === 'yes') {
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
375 location.reload();
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
376 }
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
377 }
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
378 });

http://lada.wald.intevation.org