annotate app/controller/FilterResult.js @ 944:1f1467713c3f

Status grid modified
author Michael Stanko <mstanko@bfs.de>
date Fri, 16 Oct 2015 08:15:36 +0200
parents 1e2895bfa410
children f73ca04d73a7
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',
940
1e2895bfa410 Added Require Statement for GenProbenFromMessprogramm
Dustin Demuth <dustin@intevation.de>
parents: 939
diff changeset
16 'Lada.view.window.Messprogramm',
1e2895bfa410 Added Require Statement for GenProbenFromMessprogramm
Dustin Demuth <dustin@intevation.de>
parents: 939
diff changeset
17 'Lada.view.window.GenProbenFromMessprogramm'
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 ],
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
20 /**
810
a5373ee662e2 Created a loading Animation for the Filterresultgrid
Dustin Demuth <dustin@intevation.de>
parents: 809
diff changeset
21 * Initialize the Controller with listeners
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
22 */
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 init: function() {
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 this.control({
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 'filterresultgrid': {
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 itemdblclick: this.editItem
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 },
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
28 '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
29 click: this.addProbeItem
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 },
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
31 '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
32 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
33 },
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
34 '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
35 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
36 },
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 'filterresultgrid toolbar button[action=import]': {
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 click: this.uploadFile
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 },
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 'filterresultgrid toolbar button[action=export]': {
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 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
42 },
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 '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
44 click: this.printSelection
548
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 });
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 this.callParent(arguments);
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 },
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
50 /**
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
51 * 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
52 * {@link Lada.view.grid.FilterResult}
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
53 * was double-clicked.
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
54 * The function opens a {@link Lada.view.window.ProbeEdit}
895
2b7bcb778f0a Jsduck debug
Dustin Demuth <dustin@intevation.de>
parents: 887
diff changeset
55 * 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
56 * 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
57 * analyse the records modelname.
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
58 */
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 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
60 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
61 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
62
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 //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
64 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
65 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
66 }
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
67 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
68 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
69 }
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 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
71 var win = Ext.create(winname, {
814
af54733a6d48 Fix for IE8 compatibility
Dustin Demuth <dustin@intevation.de>
parents: 812
diff changeset
72 record: record,
af54733a6d48 Fix for IE8 compatibility
Dustin Demuth <dustin@intevation.de>
parents: 812
diff changeset
73 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
74 });
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.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
76 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
77 }
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 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
79 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
80 +'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
81 +'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
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 /**
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 * 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
88 * {@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
89 */
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 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
91 var win = Ext.create('Lada.view.window.ProbeCreate');
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 win.show();
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 win.initData();
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 },
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
96 /**
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
97 * This function opens a new window to create a Probe
895
2b7bcb778f0a Jsduck debug
Dustin Demuth <dustin@intevation.de>
parents: 887
diff changeset
98 * {@link Lada.view.window.Messprogramm}
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
99 */
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
100 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
101 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
102 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
103 win.initData();
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
104 },
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
105
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
106 /**
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
107 * 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
108 * 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
109 */
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 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
111 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
112 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
113 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
114 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
115 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
116 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
117 }
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 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
119
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 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
121 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
122 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
123 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
124 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
125 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
126 // 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
127 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
128 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
129 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
130 },
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 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
132 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
133
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 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
135 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
136 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
137 });
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.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
139 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
140 },
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 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
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
03f39ddae596 Restructured Filterresultgrid button-dock, added button to generate Proben from a selection of messprogramme.
Dustin Demuth <dustin@intevation.de>
parents: 825
diff changeset
146 /**
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
147 * 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
148 * window to upload a LAF-File
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
149 */
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
150 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
151 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
152 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
153 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
154 });
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
155
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
156 win.show();
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
157 },
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
158
742
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
159 /**
6e28ebbe1a73 added documentation for Form and Grid controllers
Dustin Demuth <dustin@intevation.de>
parents: 727
diff changeset
160 * 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
161 * 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
162 * 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
163 */
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
164 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
165 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
166 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
167 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
168 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
169 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
170 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
171 }
825
426829f27b02 fixed scope for reload
Dustin Demuth <dustin@intevation.de>
parents: 814
diff changeset
172 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
173 Ext.Ajax.request({
727
e002234d7da5 Corrected URL for lada-server in export and import
Dustin Demuth <dustin@intevation.de>
parents: 725
diff changeset
174 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
175 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
176 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
177 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
178 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
179 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
180 },
812
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
181 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
182 /*
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
183 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
184 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
185 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
186 is true.
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
187 */
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
188 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
189 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
190 '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
191 '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
192 '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
193 '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
194 }
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
195 // further error handling
812
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
196 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
197 if (json) {
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
198 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
199 formPanel.setMessages(json.errors, json.warnings);
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
200 }
920
f220ba587c89 Adopted Client to SSO, detect a Sessiontimeout and reload the application
Dustin Demuth <dustin@intevation.de>
parents: 895
diff changeset
201 if(json.message){
812
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
202 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
203 +' #'+json.message,
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
204 Lada.getApplication().bundle.getMsg(json.message));
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
205 } else {
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
206 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
207 i18n.getMsg('err.msg.laf.filecreatefailed'));
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
208 }
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
209 } else {
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
210 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
211 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
212 }
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
213 }
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
214 });
812
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
215 },
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
216
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
217 /**
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 * 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
219 */
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
220 printSelection: function(button) {
939
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
221
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
222 //disable Button and setLoading...
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
223 button.disable();
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
224 button.setLoading(true);
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
225
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
226 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
227 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
228 var i18n = Lada.getApplication().bundle;
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
229 var me = this;
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
230 var columns = [];
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
231 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
232 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
233 var displayName = '';
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
234 var data = [];
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
235
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
236 // Write the columns to an array
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
237 try {
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
238 for (key in selection[0].data) {
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
239 // Do not write owner or readonly or id
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
240 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
241 columns.push(key);
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
242 }
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
243 }
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
244 }
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
245 catch (e) {
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
246 console.log(e);
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
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
249 //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
250 // and set displayName
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
251 try {
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
252 var grid = button.up('filterresultgrid');
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
253 var cman = grid.columnManager;
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
254 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
255
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 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
257
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
258 for (key in cols) {
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
259 if (cols[key].dataIndex) {
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
260 visibleColumns[cols[key].dataIndex] = cols[key].text;
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 }
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
264 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
265 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
266 }
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
267
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
268
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
269 // Retrieve Data from selection
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
270 try {
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
271 for (item in selection) {
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
272 var row = selection[item].data;
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
273 var out = [];
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
274 //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
275 for (key in columns){
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
276 var attr = columns[key];
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
277 //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
278 if (row[attr] != null &&
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
279 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
280 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
281 }
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
282 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
283 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
284 }
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
285 }
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
286 data.push(out);
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
287 }
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
288 }
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
289 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
290 console.log(e);
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
291 }
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
292
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
293 //Retrieve the names of the columns.
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
294 try {
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
295 var grid = button.up('filterresultgrid');
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
296 var cman = grid.columnManager;
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
297 var cols = cman.getColumns();
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
298 //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
299 // 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
300 for (key in columns){
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
301 for (k in cols){
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
302 if (cols[k].dataIndex == columns[key]){
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
303 columnNames.push(cols[k].text);
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
304 break;
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 }
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
309 catch (e) {
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
310 console.log(e);
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
311 }
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
312
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
313 var printData = {
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
314 'layout': 'A4 landscape',
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
315 'outputFormat': 'pdf',
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
316 'attributes': {
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
317 '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
318 'displayName': displayName,
937
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
319 'table': {
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
320 'columns': columnNames,
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
321 'data': data
6739bfdb743e LadaPrint enabled dynamic printing of tables.
Dustin Demuth <dustin@intevation.de>
parents: 936
diff changeset
322 }
934
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 }
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
325
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
326 Ext.Ajax.request({
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
327 url: 'lada-printer/buildreport.pdf',
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
328 //configure a proxy in apache conf!
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
329 jsonData: printData,
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
330 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
331 success: function(response) {
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
332 var content = response.responseBytes;
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
333 var filetype = response.getResponseHeader('Content-Type');
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
334 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
335 saveAs(blob, 'lada-print.pdf');
939
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
336 button.enable();
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
337 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
338 },
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 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
340 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
341 // 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
342 // TODO
934
3e3e737050b7 Added Print function to talk with mapfish
Dustin Demuth <dustin@intevation.de>
parents: 923
diff changeset
343 //console.log(response.responseText)
939
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
344 button.enable();
cbc0c3fdada6 LadaPrint: Give Feedback when printing is in Progress
Dustin Demuth <dustin@intevation.de>
parents: 938
diff changeset
345 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
346 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
347 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
348 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
349 }
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 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
351 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
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 }
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) {
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 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
356 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
357 }
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 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
359 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
360 +' #'+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 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
362 } 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
363 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
364 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
365 }
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 } 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
367 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
368 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
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 },
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
373
812
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
374 reload: function(btn) {
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
375 if (btn === 'yes') {
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
376 location.reload();
188a9faf96e0 Added Errorhandling for AJAX-Requests, especially Authentication Issues.
Dustin Demuth <dustin@intevation.de>
parents: 811
diff changeset
377 }
548
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
378 }
d47ee7439f44 Added new js files.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
379 });

http://lada.wald.intevation.org