Mercurial > gemma
annotate client/src/components/systemconfiguration/PDFTemplates.vue @ 3678:8f58851927c0
client: make layer factory only return new layer config for individual maps
instead of each time it is invoked. The purpose of the factory was to support multiple maps with individual layers.
But returning a new config each time it is invoked leads to bugs that rely on the layer's state. Now this factory
reuses the same objects it created before, per map.
author | Markus Kottlaender <markus@intevation.de> |
---|---|
date | Mon, 17 Jun 2019 17:31:35 +0200 |
parents | f96def15847e |
children | 851c0ccba59b |
rev | line source |
---|---|
2213 | 1 <template> |
3597
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
2 <div class="d-flex flex-column pb-4 border-bottom"> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
3 <h5 class="py-2 px-3 m-0"><translate>PDF-Templates</translate></h5> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
4 <input |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
5 @change="uploadTemplate" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
6 id="uploadTemplate" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
7 ref="uploadTemplate" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
8 type="file" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
9 style="visibility: hidden; position: absolute;" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
10 /> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
11 <UITableHeader |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
12 :columns="[ |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
13 { id: 'name', title: `${nameLabel}`, class: 'col-3' }, |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
14 { id: 'time', title: `${dateLabel}`, class: 'col-3' }, |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
15 { id: 'type', title: `${typeLabel}`, class: 'col-2' }, |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
16 { id: 'country', title: `${countryLabel}`, class: 'col-2' } |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
17 ]" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
18 /> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
19 <UITableBody :data="templates | sortTable(sortColumn, sortDirection)"> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
20 <template v-slot:row="{ item: template }"> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
21 <div class="py-1 col-3">{{ template.name }}</div> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
22 <div class="py-1 col-3">{{ template.time }}</div> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
23 <div class="py-1 col-2">{{ template.type }}</div> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
24 <div class="py-1 col-2" v-if="template.country"> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
25 {{ template.country }} |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
26 </div> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
27 <div class="py-1 col-2" v-else><i>global</i></div> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
28 <div class="col py-1 text-right"> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
29 <button |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
30 class="btn btn-xs btn-info mr-1" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
31 ref="downloadTemplate" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
32 @click="downloadTemplate(template)" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
33 > |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
34 <font-awesome-icon icon="download" fixed-width /> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
35 </button> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
36 <button class="btn btn-xs btn-dark" @click="deleteTemplate(template)"> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
37 <font-awesome-icon icon="trash" fixed-width /> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
38 </button> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
39 </div> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
40 </template> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
41 </UITableBody> |
3608
f96def15847e
client: configuration: pdf templates: adjusted padding
Markus Kottlaender <markus@intevation.de>
parents:
3597
diff
changeset
|
42 <div class="px-3 mt-2"> |
3597
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
43 <button |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
44 class="btn btn-info btn-sm mr-2" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
45 @click=" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
46 type = 'map'; |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
47 $refs.uploadTemplate.click(); |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
48 " |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
49 > |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
50 <font-awesome-icon |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
51 icon="spinner" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
52 class="fa-spin fa-fw" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
53 v-if="uploading" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
54 /> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
55 <font-awesome-icon icon="upload" class="fa-fw" v-else /> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
56 <translate>Upload new map template</translate> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
57 </button> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
58 <button |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
59 class="btn btn-info btn-sm" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
60 @click=" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
61 type = 'diagram'; |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
62 $refs.uploadTemplate.click(); |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
63 " |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
64 > |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
65 <font-awesome-icon |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
66 icon="spinner" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
67 class="fa-spin fa-fw" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
68 v-if="uploading" |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
69 /> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
70 <font-awesome-icon icon="upload" class="fa-fw" v-else /> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
71 <translate>Upload new diagram template</translate> |
d1bbfb9635ca
client: configuration: unified styles of different config components
Markus Kottlaender <markus@intevation.de>
parents:
3594
diff
changeset
|
72 </button> |
2213 | 73 </div> |
74 </div> | |
75 </template> | |
76 | |
2323
5b53be76080c
client: adjusted table and delete button styles
Markus Kottlaender <markus@intevation.de>
parents:
2290
diff
changeset
|
77 <style lang="scss" scoped> |
5b53be76080c
client: adjusted table and delete button styles
Markus Kottlaender <markus@intevation.de>
parents:
2290
diff
changeset
|
78 .table th, |
5b53be76080c
client: adjusted table and delete button styles
Markus Kottlaender <markus@intevation.de>
parents:
2290
diff
changeset
|
79 td { |
5b53be76080c
client: adjusted table and delete button styles
Markus Kottlaender <markus@intevation.de>
parents:
2290
diff
changeset
|
80 font-size: $smaller; |
5b53be76080c
client: adjusted table and delete button styles
Markus Kottlaender <markus@intevation.de>
parents:
2290
diff
changeset
|
81 border-top: 0px !important; |
5b53be76080c
client: adjusted table and delete button styles
Markus Kottlaender <markus@intevation.de>
parents:
2290
diff
changeset
|
82 text-align: left; |
5b53be76080c
client: adjusted table and delete button styles
Markus Kottlaender <markus@intevation.de>
parents:
2290
diff
changeset
|
83 padding: $small-offset !important; |
5b53be76080c
client: adjusted table and delete button styles
Markus Kottlaender <markus@intevation.de>
parents:
2290
diff
changeset
|
84 } |
5b53be76080c
client: adjusted table and delete button styles
Markus Kottlaender <markus@intevation.de>
parents:
2290
diff
changeset
|
85 </style> |
5b53be76080c
client: adjusted table and delete button styles
Markus Kottlaender <markus@intevation.de>
parents:
2290
diff
changeset
|
86 |
2213 | 87 <script> |
88 /* This is Free Software under GNU Affero General Public License v >= 3.0 | |
89 * without warranty, see README.md and license for details. | |
90 * | |
91 * SPDX-License-Identifier: AGPL-3.0-or-later | |
92 * License-Filename: LICENSES/AGPL-3.0.txt | |
93 * | |
2527
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
94 * Copyright (C) 2018, 2019 by via donau |
2213 | 95 * – Österreichische Wasserstraßen-Gesellschaft mbH |
96 * Software engineering by Intevation GmbH | |
97 * | |
98 * Author(s): | |
99 * Markus Kottländer <markus@intevation.de> | |
2527
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
100 * Fadi Abbud <fadi.abbud@intevation.de> |
2213 | 101 */ |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
102 import { HTTP } from "@/lib/http"; |
2738
add2d47c2567
client: tables: implemented simple default sorting
Markus Kottlaender <markus@intevation.de>
parents:
2640
diff
changeset
|
103 import { displayError, displayInfo } from "@/lib/errors"; |
add2d47c2567
client: tables: implemented simple default sorting
Markus Kottlaender <markus@intevation.de>
parents:
2640
diff
changeset
|
104 import { sortTable } from "@/lib/mixins"; |
2213 | 105 |
106 export default { | |
107 name: "pdftemplates", | |
2738
add2d47c2567
client: tables: implemented simple default sorting
Markus Kottlaender <markus@intevation.de>
parents:
2640
diff
changeset
|
108 mixins: [sortTable], |
2216
585373d33f8f
prepared pdf template administration
Markus Kottlaender <markus@intevation.de>
parents:
2213
diff
changeset
|
109 data() { |
585373d33f8f
prepared pdf template administration
Markus Kottlaender <markus@intevation.de>
parents:
2213
diff
changeset
|
110 return { |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
111 templates: [], |
3227
6d4d8e7ef881
client: adjust route for pdftemplate,pdftool and add check type to uploaded templates
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3222
diff
changeset
|
112 uploading: false, |
3243
e9c143436432
client: diagram-template: improve Pdf-templates systemconfiguration
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3234
diff
changeset
|
113 type: null |
2216
585373d33f8f
prepared pdf template administration
Markus Kottlaender <markus@intevation.de>
parents:
2213
diff
changeset
|
114 }; |
585373d33f8f
prepared pdf template administration
Markus Kottlaender <markus@intevation.de>
parents:
2213
diff
changeset
|
115 }, |
2782
615b0a9b8098
Client: correct strings marking for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2738
diff
changeset
|
116 computed: { |
615b0a9b8098
Client: correct strings marking for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2738
diff
changeset
|
117 nameLabel() { |
615b0a9b8098
Client: correct strings marking for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2738
diff
changeset
|
118 return this.$gettext("Name"); |
615b0a9b8098
Client: correct strings marking for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2738
diff
changeset
|
119 }, |
615b0a9b8098
Client: correct strings marking for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2738
diff
changeset
|
120 dateLabel() { |
615b0a9b8098
Client: correct strings marking for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2738
diff
changeset
|
121 return this.$gettext("Date"); |
615b0a9b8098
Client: correct strings marking for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2738
diff
changeset
|
122 }, |
615b0a9b8098
Client: correct strings marking for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2738
diff
changeset
|
123 countryLabel() { |
615b0a9b8098
Client: correct strings marking for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2738
diff
changeset
|
124 return this.$gettext("Country"); |
3232
86231e847762
client: add type field for pdf-templates configuration
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3230
diff
changeset
|
125 }, |
86231e847762
client: add type field for pdf-templates configuration
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3230
diff
changeset
|
126 typeLabel() { |
3234 | 127 return this.$gettext("Type"); |
2782
615b0a9b8098
Client: correct strings marking for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2738
diff
changeset
|
128 } |
615b0a9b8098
Client: correct strings marking for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2738
diff
changeset
|
129 }, |
2216
585373d33f8f
prepared pdf template administration
Markus Kottlaender <markus@intevation.de>
parents:
2213
diff
changeset
|
130 methods: { |
2527
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
131 downloadTemplate(template) { |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
132 if (template) { |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
133 var templateData = ""; |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
134 var element = document.createElement("a"); |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
135 element.style.display = "none"; |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
136 element.setAttribute("download", template.name + ".json"); |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
137 document.body.appendChild(element); |
3227
6d4d8e7ef881
client: adjust route for pdftemplate,pdftool and add check type to uploaded templates
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3222
diff
changeset
|
138 HTTP.get(`/templates/${template.type}/${template.name}`, { |
2527
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
139 headers: { |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
140 "X-Gemma-Auth": localStorage.getItem("token"), |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
141 "Content-type": "text/xml; charset=UTF-8" |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
142 } |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
143 }) |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
144 .then(response => { |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
145 templateData = response.data.template_data; |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
146 element.setAttribute( |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
147 "href", |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
148 "data:text/json;charset=utf-8," + |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
149 encodeURIComponent( |
2531
47b9a4f9a05c
client:pdf-gen: change the formatting of the downloaded json file
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2527
diff
changeset
|
150 JSON.stringify( |
47b9a4f9a05c
client:pdf-gen: change the formatting of the downloaded json file
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2527
diff
changeset
|
151 { |
47b9a4f9a05c
client:pdf-gen: change the formatting of the downloaded json file
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2527
diff
changeset
|
152 name: templateData.name, |
47b9a4f9a05c
client:pdf-gen: change the formatting of the downloaded json file
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2527
diff
changeset
|
153 properties: templateData.properties, |
47b9a4f9a05c
client:pdf-gen: change the formatting of the downloaded json file
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2527
diff
changeset
|
154 elements: templateData.elements |
47b9a4f9a05c
client:pdf-gen: change the formatting of the downloaded json file
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2527
diff
changeset
|
155 }, |
47b9a4f9a05c
client:pdf-gen: change the formatting of the downloaded json file
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2527
diff
changeset
|
156 null, |
47b9a4f9a05c
client:pdf-gen: change the formatting of the downloaded json file
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2527
diff
changeset
|
157 2 |
47b9a4f9a05c
client:pdf-gen: change the formatting of the downloaded json file
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2527
diff
changeset
|
158 ) |
2527
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
159 ) |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
160 ); |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
161 element.click(); |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
162 }) |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
163 .catch(e => { |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
164 const { status, data } = e.response; |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
165 displayError({ |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
166 title: this.$gettext("Backend Error"), |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
167 message: `${status}: ${data.message || data}` |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
168 }); |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
169 }) |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
170 .finally(() => { |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
171 document.body.removeChild(element); |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
172 }); |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
173 } |
1a6553da9078
client:pdf-gen : add download-template functionality
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2522
diff
changeset
|
174 }, |
2384
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
175 uploadTemplate() { |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
176 const reader = new FileReader(); |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
177 reader.onload = event => { |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
178 let template; |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
179 try { |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
180 template = JSON.parse(event.target.result); |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
181 } catch (e) { |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
182 displayError({ |
2284
9f327f197ddd
client: translation: mark some strings for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2257
diff
changeset
|
183 title: this.$gettext("Format Error"), |
9f327f197ddd
client: translation: mark some strings for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2257
diff
changeset
|
184 message: this.$gettext( |
9f327f197ddd
client: translation: mark some strings for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2257
diff
changeset
|
185 "Uploaded file does not contain valid json data." |
9f327f197ddd
client: translation: mark some strings for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2257
diff
changeset
|
186 ) |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
187 }); |
3243
e9c143436432
client: diagram-template: improve Pdf-templates systemconfiguration
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3234
diff
changeset
|
188 // allow the user to upload the same file |
e9c143436432
client: diagram-template: improve Pdf-templates systemconfiguration
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3234
diff
changeset
|
189 // if user wants to upload the same file after edit it. |
2802
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
190 this.$refs.uploadTemplate.value = null; |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
191 } |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
192 if (template.name) { |
3243
e9c143436432
client: diagram-template: improve Pdf-templates systemconfiguration
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3234
diff
changeset
|
193 // check if an element in the uploaded file does not match the predefind template-elements |
2802
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
194 let checkElement = false; |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
195 template.elements.forEach(e => { |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
196 if ( |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
197 [ |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
198 "text", |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
199 "box", |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
200 "textbox", |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
201 "image", |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
202 "bottleneck", |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
203 "legend", |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
204 "scalebar", |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
205 "scale", |
3138
106e1d011a5d
client: pdf-gen: include the diagram elements in the upload template constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2874
diff
changeset
|
206 "northarrow", |
106e1d011a5d
client: pdf-gen: include the diagram elements in the upload template constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2874
diff
changeset
|
207 "diagramlegend", |
3160
94935895e6d7
client: add diagram-element to template (waterlevel)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3138
diff
changeset
|
208 "diagramtitle", |
94935895e6d7
client: add diagram-element to template (waterlevel)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3138
diff
changeset
|
209 "diagram" |
2802
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
210 ].indexOf(e.type) === -1 |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
211 ) { |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
212 checkElement = true; |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
213 displayError({ |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
214 title: this.$gettext("Invalid element"), |
2459
408e0f4d4008
clinet:pdf-gen template:unifiy feedback messages for template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2448
diff
changeset
|
215 message: |
2802
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
216 e.type + |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
217 this.$gettext(" does not match any template's element") |
2459
408e0f4d4008
clinet:pdf-gen template:unifiy feedback messages for template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2448
diff
changeset
|
218 }); |
3243
e9c143436432
client: diagram-template: improve Pdf-templates systemconfiguration
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3234
diff
changeset
|
219 // allow the user to upload the same file |
2802
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
220 this.$refs.uploadTemplate.value = null; |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
221 } |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
222 }); |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
223 |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
224 if (!checkElement) { |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
225 this.uploading = true; |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
226 HTTP.post( |
3227
6d4d8e7ef881
client: adjust route for pdftemplate,pdftool and add check type to uploaded templates
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3222
diff
changeset
|
227 "/templates/" + this.type + "/" + template.name, |
2802
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
228 { |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
229 template_name: template.name, |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
230 template_data: template |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
231 }, |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
232 { |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
233 headers: { |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
234 "X-Gemma-Auth": localStorage.getItem("token"), |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
235 "Content-type": "text/xml; charset=UTF-8" |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
236 } |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
237 } |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
238 ) |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
239 .then(() => { |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
240 this.loadTemplates(); |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
241 displayInfo({ |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
242 message: |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
243 template.name + " " + this.$gettext("uploaded successfully") |
2522
24bab584f0a1
client: improved error message format for pdf-template uploads
Markus Kottlaender <markus@intevation.de>
parents:
2462
diff
changeset
|
244 }); |
2802
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
245 }) |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
246 .catch(e => { |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
247 const { status, data } = e.response; |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
248 if (status === 400) { |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
249 displayError({ |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
250 title: this.$gettext("Error"), |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
251 message: `${data.message || data}` |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
252 }); |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
253 } else { |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
254 displayError({ |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
255 title: this.$gettext("Backend Error"), |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
256 message: `${status}: ${data.message || data}` |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
257 }); |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
258 } |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
259 }) |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
260 .finally(() => { |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
261 this.uploading = false; |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
262 this.$refs.uploadTemplate.value = null; |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
263 }); |
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
264 } |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
265 } else { |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
266 displayError({ |
2284
9f327f197ddd
client: translation: mark some strings for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2257
diff
changeset
|
267 title: this.$gettext("Format Error"), |
9f327f197ddd
client: translation: mark some strings for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2257
diff
changeset
|
268 message: this.$gettext( |
9f327f197ddd
client: translation: mark some strings for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2257
diff
changeset
|
269 "The provided template has no name property." |
9f327f197ddd
client: translation: mark some strings for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2257
diff
changeset
|
270 ) |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
271 }); |
3243
e9c143436432
client: diagram-template: improve Pdf-templates systemconfiguration
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3234
diff
changeset
|
272 // allow the user to upload the same file |
2802
9adbe0633bf9
client:pdf-gen: improve template upload constraint
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2782
diff
changeset
|
273 this.$refs.uploadTemplate.value = null; |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
274 } |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
275 }; |
3243
e9c143436432
client: diagram-template: improve Pdf-templates systemconfiguration
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3234
diff
changeset
|
276 |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
277 reader.onerror = error => console.log(error); |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
278 reader.readAsText(this.$refs.uploadTemplate.files[0]); |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
279 }, |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
280 loadTemplates() { |
3222
83e8e1ea0aff
print_templates: changed route /templates/print to /templates and /templates/print/... to /templates/
Thomas Junk <thomas.junk@intevation.de>
parents:
3160
diff
changeset
|
281 HTTP.get("/templates", { |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
282 headers: { |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
283 "X-Gemma-Auth": localStorage.getItem("token"), |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
284 "Content-type": "text/xml; charset=UTF-8" |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
285 } |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
286 }) |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
287 .then(response => { |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
288 this.templates = response.data; |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
289 }) |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
290 .catch(e => { |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
291 const { status, data } = e.response; |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
292 displayError({ |
2284
9f327f197ddd
client: translation: mark some strings for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2257
diff
changeset
|
293 title: this.$gettext("Backend Error"), |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
294 message: `${status}: ${data.message || data}` |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
295 }); |
2216
585373d33f8f
prepared pdf template administration
Markus Kottlaender <markus@intevation.de>
parents:
2213
diff
changeset
|
296 }); |
585373d33f8f
prepared pdf template administration
Markus Kottlaender <markus@intevation.de>
parents:
2213
diff
changeset
|
297 }, |
2384
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
298 deleteTemplate(template) { |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
299 this.$store.commit("application/popup", { |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
300 icon: "trash", |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
301 title: this.$gettext("Delete Template"), |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
302 content: |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
303 this.$gettext( |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
304 "Do you really want to delete the following template:" |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
305 ) + |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
306 `<br> |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
307 <b>${template.name}</b>`, |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
308 confirm: { |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
309 label: this.$gettext("Delete"), |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
310 icon: "trash", |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
311 callback: () => { |
3227
6d4d8e7ef881
client: adjust route for pdftemplate,pdftool and add check type to uploaded templates
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3222
diff
changeset
|
312 HTTP.delete(`/templates/${template.type}/${template.name}`, { |
2384
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
313 headers: { |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
314 "X-Gemma-Auth": localStorage.getItem("token"), |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
315 "Content-type": "text/xml; charset=UTF-8" |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
316 } |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
317 }).then(() => { |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
318 let removeIndex = this.templates.findIndex( |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
319 t => t.name === template.name |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
320 ); |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
321 if (removeIndex !== -1) { |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
322 this.templates.splice(removeIndex, 1); |
2459
408e0f4d4008
clinet:pdf-gen template:unifiy feedback messages for template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2448
diff
changeset
|
323 displayInfo({ |
408e0f4d4008
clinet:pdf-gen template:unifiy feedback messages for template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2448
diff
changeset
|
324 message: |
408e0f4d4008
clinet:pdf-gen template:unifiy feedback messages for template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2448
diff
changeset
|
325 template.name + " " + this.$gettext("deleted successfully") |
408e0f4d4008
clinet:pdf-gen template:unifiy feedback messages for template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2448
diff
changeset
|
326 }); |
2384
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
327 } |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
328 }); |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
329 } |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
330 }, |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
331 cancel: { |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
332 label: this.$gettext("Cancel"), |
c06b001dc26b
client: improved popup implementation
Markus Kottlaender <markus@intevation.de>
parents:
2357
diff
changeset
|
333 icon: "times" |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
334 } |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
335 }); |
2216
585373d33f8f
prepared pdf template administration
Markus Kottlaender <markus@intevation.de>
parents:
2213
diff
changeset
|
336 } |
2247
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2216
diff
changeset
|
337 }, |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2216
diff
changeset
|
338 mounted() { |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
339 this.loadTemplates(); |
2213 | 340 } |
341 }; | |
342 </script> |