Mercurial > gemma
annotate client/src/components/Pdftool.vue @ 2968:8b32574bed09 unified_import
wip
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Mon, 01 Apr 2019 15:12:49 +0200 |
parents | 3063f1485ad6 |
children | a6eea3002e6e |
rev | line source |
---|---|
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
1 <template> |
1480 | 2 <div |
3 :class="[ | |
4 'box ui-element rounded bg-white text-nowrap', | |
5 { expanded: showPdfTool } | |
6 ]" | |
7 > | |
2260
531e776cb81d
client: reduced width of pdf-, profile- and identify-box
Markus Kottlaender <markus@intevation.de>
parents:
2259
diff
changeset
|
8 <div style="width: 18rem"> |
2387
f185503ef35a
client: unified box's header styles by creating a reusable component
Markus Kottlaender <markus@intevation.de>
parents:
2376
diff
changeset
|
9 <UIBoxHeader |
f185503ef35a
client: unified box's header styles by creating a reusable component
Markus Kottlaender <markus@intevation.de>
parents:
2376
diff
changeset
|
10 icon="file-pdf" |
2754
d0f6c222f4f9
client:correct a set of strings marking
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2737
diff
changeset
|
11 :title="generatePdfLable" |
2387
f185503ef35a
client: unified box's header styles by creating a reusable component
Markus Kottlaender <markus@intevation.de>
parents:
2376
diff
changeset
|
12 :closeCallback="close" |
f185503ef35a
client: unified box's header styles by creating a reusable component
Markus Kottlaender <markus@intevation.de>
parents:
2376
diff
changeset
|
13 /> |
2534
bb5286acfee2
client: reduced spacings between and inside boxes and more compact main menu
Markus Kottlaender <markus@intevation.de>
parents:
2387
diff
changeset
|
14 <div class="box-body"> |
2114 | 15 <select |
16 @change="applyTemplateToForm" | |
17 v-model="form.template" | |
18 class="form-control d-block mb-2 w-100 font-weight-bold" | |
19 > | |
2124 | 20 <option |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
21 v-for="template in templates" |
2214
5a4b0c85e7a8
values in template select are now the actual objects
Markus Kottlaender <markus@intevation.de>
parents:
2212
diff
changeset
|
22 :value="template" |
2124 | 23 :key="template.name" |
2114 | 24 > |
2754
d0f6c222f4f9
client:correct a set of strings marking
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2737
diff
changeset
|
25 {{ template.name }} |
2124 | 26 </option> |
2112
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
27 </select> |
2114 | 28 <select |
29 v-model="form.format" | |
30 class="form-control form-control-sm d-block mb-2 w-100" | |
31 > | |
1635
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
32 <option value="landscape"><translate>landscape</translate></option> |
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
33 <option value="portrait"><translate>portrait</translate></option> |
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
34 </select> |
2112
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
35 <div class="d-flex"> |
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
36 <div class="flex-fill mr-2"> |
2114 | 37 <select |
38 v-model="form.resolution" | |
39 class="form-control form-control-sm mb-2 d-block w-100" | |
40 > | |
2225
bc1780dd7cd1
PDF generation: changed option names in resolution select
Markus Kottlaender <markus@intevation.de>
parents:
2224
diff
changeset
|
41 <option value="80"><translate>80 dpi</translate></option> |
bc1780dd7cd1
PDF generation: changed option names in resolution select
Markus Kottlaender <markus@intevation.de>
parents:
2224
diff
changeset
|
42 <option value="120"><translate>120 dpi</translate></option> |
bc1780dd7cd1
PDF generation: changed option names in resolution select
Markus Kottlaender <markus@intevation.de>
parents:
2224
diff
changeset
|
43 <option value="200"><translate>200 dpi</translate></option> |
2112
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
44 </select> |
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
45 </div> |
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
46 <div class="flex-fill ml-2"> |
2114 | 47 <select |
48 v-model="form.paperSize" | |
49 class="form-control form-control-sm mb-2 d-block w-100" | |
50 > | |
2220
d926292d81b6
PDF generation: changed form labels/option texts
Markus Kottlaender <markus@intevation.de>
parents:
2219
diff
changeset
|
51 <option value="a4"><translate>A4</translate></option> |
d926292d81b6
PDF generation: changed form labels/option texts
Markus Kottlaender <markus@intevation.de>
parents:
2219
diff
changeset
|
52 <option value="a3"><translate>A3</translate></option> |
2112
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
53 </select> |
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
54 </div> |
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
55 </div> |
1361
ea3a89a1813a
remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1299
diff
changeset
|
56 <button |
ea3a89a1813a
remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1299
diff
changeset
|
57 @click="download" |
2275
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
58 :key="'downloadBtn'" |
1361
ea3a89a1813a
remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1299
diff
changeset
|
59 type="button" |
2275
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
60 v-if="readyToGenerate" |
2112
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
61 class="btn btn-sm btn-info d-block w-100 mt-2" |
1480 | 62 > |
63 <translate>Generate PDF</translate> | |
64 </button> | |
2275
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
65 <button |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
66 @click="cancel" |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
67 :key="'cancelBtn'" |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
68 type="button" |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
69 v-else |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
70 class="btn btn-sm btn-danger d-block w-100 mt-2" |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
71 > |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
72 <font-awesome-icon class="mr-1" icon="spinner" spin /> |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
73 <translate>Cancel</translate> |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
74 </button> |
1361
ea3a89a1813a
remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1299
diff
changeset
|
75 </div> |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
76 </div> |
1361
ea3a89a1813a
remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1299
diff
changeset
|
77 </div> |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
78 </template> |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
79 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
80 <script> |
1362
ca33ad696594
remove the first empyty lines
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1361
diff
changeset
|
81 /* This is Free Software under GNU Affero General Public License v >= 3.0 |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
82 * without warranty, see README.md and license for details. |
1361
ea3a89a1813a
remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1299
diff
changeset
|
83 * |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
84 * SPDX-License-Identifier: AGPL-3.0-or-later |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
85 * License-Filename: LICENSES/AGPL-3.0.txt |
1361
ea3a89a1813a
remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1299
diff
changeset
|
86 * |
1878
f030182f82f1
client: fix style warning for pdfexport
Bernhard Reiter <bernhard@intevation.de>
parents:
1876
diff
changeset
|
87 * Copyright (C) 2018, 2019 by via donau |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
88 * – Österreichische Wasserstraßen-Gesellschaft mbH |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
89 * Software engineering by Intevation GmbH |
1361
ea3a89a1813a
remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1299
diff
changeset
|
90 * |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
91 * Author(s): |
1635
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
92 * * Markus Kottländer <markus.kottlaender@intevation.de> |
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
93 * * Bernhard E. Reiter <bernhard@intevation.de> |
1878
f030182f82f1
client: fix style warning for pdfexport
Bernhard Reiter <bernhard@intevation.de>
parents:
1876
diff
changeset
|
94 * * Fadi Abbud <fadi.abbud@intevation.de> |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
95 */ |
1931
8fb1b1a8ea85
client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents:
1928
diff
changeset
|
96 import { mapGetters, mapState } from "vuex"; |
1874
bad32adafef2
client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents:
1635
diff
changeset
|
97 import jsPDF from "jspdf"; |
2240
c3cc21dee75d
client: pdf-gen add multi-language font
Bernhard Reiter <bernhard@intevation.de>
parents:
2227
diff
changeset
|
98 import "@/lib/font-linbiolinum.js"; |
1887
3ed036adc80f
client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1886
diff
changeset
|
99 import { getPointResolution } from "ol/proj.js"; |
1903
7247ac316cb7
client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents:
1897
diff
changeset
|
100 import locale2 from "locale2"; |
2247
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
101 import { HTTP } from "../lib/http"; |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
102 import { displayError } from "@/lib/errors.js"; |
2321
c00e3f7f5b17
client: use constant names instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2296
diff
changeset
|
103 import { LAYERS } from "@/store/map.js"; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
104 |
1635
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
105 var paperSizes = { |
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
106 // in millimeter, landscape [width, height] |
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
107 a3: [420, 297], |
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
108 a4: [297, 210] |
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
109 }; |
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
110 |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
111 export default { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
112 name: "pdftool", |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
113 data() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
114 return { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
115 form: { |
2112
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
116 template: null, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
117 format: "landscape", |
1635
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
118 paperSize: "a4", |
1881
f512cfb63e53
pdf-generation: add select box to pdf tool to choose the resolutions
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1879
diff
changeset
|
119 downloadType: "download", |
2220
d926292d81b6
PDF generation: changed form labels/option texts
Markus Kottlaender <markus@intevation.de>
parents:
2219
diff
changeset
|
120 resolution: "80" |
1947
4235fa8f59d7
clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents:
1936
diff
changeset
|
121 }, |
2265
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
122 templates: [ |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
123 { |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
124 name: "Default", |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
125 properties: { |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
126 format: "landscape", |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
127 paperSize: "a4", |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
128 resolution: "80" |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
129 }, |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
130 elements: [ |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
131 { |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
132 type: "scalebar", |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
133 position: "bottomright", |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
134 offset: { x: 2, y: 2 } |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
135 }, |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
136 { |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
137 type: "textbox", |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
138 position: "bottomleft", |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
139 offset: { x: 2, y: 2 }, |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
140 width: 60, |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
141 fontSize: 8, |
2284
9f327f197ddd
client: translation: mark some strings for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2275
diff
changeset
|
142 text: this.$gettext("Generated by") + " " + "{user}, {date}" |
2265
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
143 }, |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
144 { |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
145 type: "northarrow", |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
146 position: "topright", |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
147 offset: { x: 6, y: 4 }, |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
148 size: 2 |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
149 } |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
150 ] |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
151 } |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
152 ], |
2247
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
153 templateData: null, |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
154 pdf: { |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
155 doc: null, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
156 width: null, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
157 height: null |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
158 }, |
1947
4235fa8f59d7
clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents:
1936
diff
changeset
|
159 logoImageForPDF: null, // a HTMLImageElement instance |
2275
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
160 readyToGenerate: true, // if the user is allowed to press the button |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
161 rendercompleteListener: null, |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
162 mapSize: null, |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
163 mapExtent: null |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
164 }; |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
165 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
166 computed: { |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
167 ...mapState("application", ["showPdfTool", "logoForPDF"]), |
2137
a31c9fa47ab8
client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents:
2124
diff
changeset
|
168 ...mapState("bottlenecks", ["selectedBottleneck", "selectedSurvey"]), |
1928
76ca071cb006
client: pdf-gen: add legend graphic
Bernhard Reiter <bernhard@intevation.de>
parents:
1914
diff
changeset
|
169 ...mapState("map", ["openLayersMap", "isolinesLegendImgDataURL"]), |
1931
8fb1b1a8ea85
client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents:
1928
diff
changeset
|
170 ...mapGetters("map", ["getLayerByName"]), |
2376
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
171 ...mapState("user", ["user"]), |
2754
d0f6c222f4f9
client:correct a set of strings marking
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2737
diff
changeset
|
172 generatePdfLable() { |
d0f6c222f4f9
client:correct a set of strings marking
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2737
diff
changeset
|
173 return this.$gettext("Generate PDF"); |
d0f6c222f4f9
client:correct a set of strings marking
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2737
diff
changeset
|
174 }, |
2376
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
175 filename() { |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
176 let date = new Date() |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
177 .toISOString() |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
178 .slice(0, 10) |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
179 .replace(/-/g, ""); |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
180 let filename = "map"; |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
181 |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
182 if (this.selectedBottleneck) { |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
183 filename = this.selectedBottleneck; |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
184 if (this.selectedSurvey) { |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
185 filename += "-sr" + this.selectedSurvey.date_info.replace(/-/g, ""); |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
186 } |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
187 } |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
188 |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
189 filename = |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
190 filename |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
191 .replace(/[^\w-]/gi, "") // remove everything but wordchars and dash |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
192 .toLowerCase() + |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
193 "-exported" + |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
194 date + |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
195 ".pdf"; |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
196 |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
197 return filename; |
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
198 } |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
199 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
200 methods: { |
2387
f185503ef35a
client: unified box's header styles by creating a reusable component
Markus Kottlaender <markus@intevation.de>
parents:
2376
diff
changeset
|
201 close() { |
f185503ef35a
client: unified box's header styles by creating a reusable component
Markus Kottlaender <markus@intevation.de>
parents:
2376
diff
changeset
|
202 this.$store.commit("application/showPdfTool", false); |
f185503ef35a
client: unified box's header styles by creating a reusable component
Markus Kottlaender <markus@intevation.de>
parents:
2376
diff
changeset
|
203 }, |
2112
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
204 // When a template is chosen from the dropdown, its propoerties are |
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
205 // applied to the rest of the form. |
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
206 applyTemplateToForm() { |
2214
5a4b0c85e7a8
values in template select are now the actual objects
Markus Kottlaender <markus@intevation.de>
parents:
2212
diff
changeset
|
207 if (this.form.template) { |
2247
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
208 HTTP.get("/templates/print/" + this.form.template.name, { |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
209 headers: { |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
210 "X-Gemma-Auth": localStorage.getItem("token"), |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
211 "Content-type": "text/xml; charset=UTF-8" |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
212 } |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
213 }) |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
214 .then(response => { |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
215 this.templateData = response.data.template_data; |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
216 this.form.format = this.templateData.properties.format; |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
217 this.form.paperSize = this.templateData.properties.paperSize; |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
218 this.form.resolution = this.templateData.properties.resolution; |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
219 }) |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
220 .catch(e => { |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
221 const { status, data } = e.response; |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
222 displayError({ |
2284
9f327f197ddd
client: translation: mark some strings for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2275
diff
changeset
|
223 title: this.$gettext("Backend Error"), |
2247
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
224 message: `${status}: ${data.message || data}` |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
225 }); |
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
226 }); |
2112
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
227 } |
8c0a0f237c2d
improved behavior of pdf generation form
Markus Kottlaender <markus@intevation.de>
parents:
2111
diff
changeset
|
228 }, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
229 download() { |
1947
4235fa8f59d7
clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents:
1936
diff
changeset
|
230 // disable button while working on it |
4235fa8f59d7
clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents:
1936
diff
changeset
|
231 this.readyToGenerate = false; |
4235fa8f59d7
clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents:
1936
diff
changeset
|
232 |
1635
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
233 console.log( |
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
234 "will generate pdf with", |
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
235 this.form.paperSize, |
1884
59ef76d83de7
client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1883
diff
changeset
|
236 this.form.format, |
59ef76d83de7
client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1883
diff
changeset
|
237 this.form.resolution |
1635
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
238 ); |
1883
76a6d334e681
Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents:
1882
diff
changeset
|
239 |
1635
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
240 if (this.form.format !== "portrait") { |
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
241 // landscape, default |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
242 this.pdf.width = paperSizes[this.form.paperSize][0]; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
243 this.pdf.height = paperSizes[this.form.paperSize][1]; |
1635
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
244 } else { |
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
245 // switch width and height |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
246 this.pdf.width = paperSizes[this.form.paperSize][1]; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
247 this.pdf.height = paperSizes[this.form.paperSize][0]; |
1635
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
248 } |
1874
bad32adafef2
client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents:
1635
diff
changeset
|
249 |
bad32adafef2
client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents:
1635
diff
changeset
|
250 // FUTURE: consider margins |
1635
ca48145dba9c
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
1613
diff
changeset
|
251 |
1884
59ef76d83de7
client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1883
diff
changeset
|
252 // dots per mm = dots per inch / (25.4 mm/inch) |
59ef76d83de7
client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1883
diff
changeset
|
253 var pixelsPerMapMillimeter = this.form.resolution / 25.4; |
59ef76d83de7
client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1883
diff
changeset
|
254 var mapSizeForPrint = [ |
59ef76d83de7
client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1883
diff
changeset
|
255 // in pixel |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
256 Math.round(this.pdf.width * pixelsPerMapMillimeter), |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
257 Math.round(this.pdf.height * pixelsPerMapMillimeter) |
1884
59ef76d83de7
client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1883
diff
changeset
|
258 ]; |
59ef76d83de7
client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1883
diff
changeset
|
259 |
1883
76a6d334e681
Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents:
1882
diff
changeset
|
260 // generate PDF and open it |
76a6d334e681
Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents:
1882
diff
changeset
|
261 // our units are milimeters; width 0 x height 0 is left upper corner |
76a6d334e681
Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents:
1882
diff
changeset
|
262 |
76a6d334e681
Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents:
1882
diff
changeset
|
263 // Step 1 prepare and save current map extend |
76a6d334e681
Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents:
1882
diff
changeset
|
264 // Then add callback "rendercomplete" for Step 3 |
76a6d334e681
Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents:
1882
diff
changeset
|
265 // which will generate the pdf and resets the map view |
76a6d334e681
Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents:
1882
diff
changeset
|
266 // Step 2 which starts rendering a map with the necessary image size |
76a6d334e681
Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents:
1882
diff
changeset
|
267 |
1874
bad32adafef2
client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents:
1635
diff
changeset
|
268 var map = this.openLayersMap; |
2275
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
269 this.mapSize = map.getSize(); // size in pixels of the map in the DOM |
1874
bad32adafef2
client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents:
1635
diff
changeset
|
270 // Calculate the extent for the current view state and the passed size. |
bad32adafef2
client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents:
1635
diff
changeset
|
271 // The size is the pixel dimensions of the box into which the calculated |
bad32adafef2
client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents:
1635
diff
changeset
|
272 // extent should fit. |
2275
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
273 this.mapExtent = map.getView().calculateExtent(this.mapSize); |
1883
76a6d334e681
Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents:
1882
diff
changeset
|
274 |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
275 this.pdf.doc = new jsPDF(this.form.format, "mm", this.form.paperSize); |
1874
bad32adafef2
client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents:
1635
diff
changeset
|
276 // set a callback for after the next complete rendering of the map |
2275
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
277 this.rendercompleteListener = map.once("rendercomplete", event => { |
1874
bad32adafef2
client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents:
1635
diff
changeset
|
278 let canvas = event.context.canvas; |
1887
3ed036adc80f
client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1886
diff
changeset
|
279 |
3ed036adc80f
client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1886
diff
changeset
|
280 // because we are using Web Mercator, a pixel represents |
2240
c3cc21dee75d
client: pdf-gen add multi-language font
Bernhard Reiter <bernhard@intevation.de>
parents:
2227
diff
changeset
|
281 // a differently sized spot depending on the place of the map. |
1887
3ed036adc80f
client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1886
diff
changeset
|
282 // So we use a value calculated from the center of the current view. |
1884
59ef76d83de7
client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1883
diff
changeset
|
283 let view = map.getView(); |
1887
3ed036adc80f
client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1886
diff
changeset
|
284 let proj = view.getProjection(); |
3ed036adc80f
client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1886
diff
changeset
|
285 let metersPerPixel = // average meters (reality) per pixel (map) |
3ed036adc80f
client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1886
diff
changeset
|
286 getPointResolution(proj, view.getResolution(), view.getCenter()) * |
3ed036adc80f
client: pdf-gen: fix scale calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1886
diff
changeset
|
287 proj.getMetersPerUnit(); |
1897
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
288 // DEBUG console.log("metersPerPixel = ", metersPerPixel); |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
289 |
2767 | 290 let scaleDenominator = Math.round( |
1897
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
291 // the x in 1:x map scale |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
292 1000 * pixelsPerMapMillimeter * metersPerPixel |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
293 ); |
2767 | 294 console.log("scaleDenominator = ", scaleDenominator); |
1884
59ef76d83de7
client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1883
diff
changeset
|
295 |
1886
20fe31b4dd5d
client: pdf-gen: use jpeg, add scale number.
Bernhard Reiter <bernhard@intevation.de>
parents:
1884
diff
changeset
|
296 var data = canvas.toDataURL("image/jpeg"); |
2227
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
297 this.pdf.doc.addImage( |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
298 data, |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
299 "JPEG", |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
300 0, |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
301 0, |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
302 this.pdf.width, |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
303 this.pdf.height |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
304 ); |
1903
7247ac316cb7
client: pdf-gen: improve layout and ui
Bernhard Reiter <bernhard@intevation.de>
parents:
1897
diff
changeset
|
305 |
2247
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
306 if (this.templateData) { |
2240
c3cc21dee75d
client: pdf-gen add multi-language font
Bernhard Reiter <bernhard@intevation.de>
parents:
2227
diff
changeset
|
307 this.pdf.doc.setFont("linbiolinum", "normal"); |
c3cc21dee75d
client: pdf-gen add multi-language font
Bernhard Reiter <bernhard@intevation.de>
parents:
2227
diff
changeset
|
308 let defaultFontSize = 11, |
2247
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
309 defaultRounding = 2, |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
310 defaultTextColor = "black", |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
311 defaultBgColor = "white", |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
312 defaultPadding = 3, |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
313 defaultOffset = { x: 0, y: 0 }, |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
314 defaultBorderColor = "white"; |
2247
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
315 this.templateData.elements.forEach(e => { |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
316 switch (e.type) { |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
317 case "text": { |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
318 this.addText( |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
319 e.position, |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
320 e.offset || defaultOffset, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
321 e.width, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
322 e.fontSize || defaultFontSize, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
323 e.color || defaultTextColor, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
324 e.text |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
325 ); |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
326 break; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
327 } |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
328 case "box": { |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
329 this.addBox( |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
330 e.position, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
331 e.offset || defaultOffset, |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
332 e.width, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
333 e.height, |
2561
4d5f419a2318
client:pdf-gen: improve box drawing
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2539
diff
changeset
|
334 // handling the case when the rectangle not rounded (rounding = 0) |
4d5f419a2318
client:pdf-gen: improve box drawing
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2539
diff
changeset
|
335 e.rounding === 0 || e.rounding ? e.rounding : defaultRounding, |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
336 e.color || defaultBgColor, |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
337 e.brcolor || defaultBorderColor |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
338 ); |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
339 break; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
340 } |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
341 case "textbox": { |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
342 this.addTextBox( |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
343 e.position, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
344 e.offset || defaultOffset, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
345 e.width, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
346 e.height, |
2561
4d5f419a2318
client:pdf-gen: improve box drawing
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2539
diff
changeset
|
347 e.rounding === 0 || e.rounding ? e.rounding : defaultRounding, |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
348 e.padding || defaultPadding, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
349 e.fontSize || defaultFontSize, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
350 e.color || defaultTextColor, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
351 e.background || defaultBgColor, |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
352 e.text, |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
353 e.brcolor || defaultBorderColor |
2205
59c21dee6315
pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2124
diff
changeset
|
354 ); |
59c21dee6315
pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2124
diff
changeset
|
355 break; |
59c21dee6315
pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2124
diff
changeset
|
356 } |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
357 case "image": { |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
358 this.addImage( |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
359 e.url, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
360 e.format, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
361 e.position, |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
362 e.offset || defaultOffset, |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
363 e.width, |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
364 e.height |
2207
da902f0dac88
pdf-gen: add fixed coordinates and values
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2205
diff
changeset
|
365 ); |
2205
59c21dee6315
pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2124
diff
changeset
|
366 break; |
59c21dee6315
pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2124
diff
changeset
|
367 } |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
368 case "bottleneck": { |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
369 this.addBottleneckInfo( |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
370 e.position, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
371 e.offset || defaultOffset, |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
372 e.rounding === 0 || e.rounding ? e.rounding : defaultRounding, |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
373 e.color || defaultTextColor, |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
374 e.brcolor || defaultBorderColor |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
375 ); |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
376 break; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
377 } |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
378 case "legend": { |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
379 this.addLegend( |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
380 e.position, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
381 e.offset || defaultOffset, |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
382 e.rounding === 0 || e.rounding ? e.rounding : defaultRounding, |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
383 e.brcolor || defaultBorderColor |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
384 ); |
2205
59c21dee6315
pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2124
diff
changeset
|
385 break; |
59c21dee6315
pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2124
diff
changeset
|
386 } |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
387 case "scalebar": { |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
388 this.addScaleBar( |
2767 | 389 scaleDenominator, |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
390 e.position, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
391 e.offset || defaultOffset, |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
392 e.rounding === 0 || e.rounding ? e.rounding : defaultRounding, |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
393 e.brcolor || defaultBorderColor |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
394 ); |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
395 break; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
396 } |
2737
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
397 case "scale": { |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
398 this.addScale( |
2767 | 399 scaleDenominator, |
2737
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
400 e.position, |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
401 e.width, |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
402 e.offset || defaultOffset, |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
403 e.fontSize || defaultFontSize, |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
404 e.color || defaultTextColor |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
405 ); |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
406 break; |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
407 } |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
408 case "northarrow": { |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
409 this.addNorthArrow( |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
410 e.position, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
411 e.offset || defaultOffset, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
412 e.size |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
413 ); |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
414 break; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
415 } |
2205
59c21dee6315
pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2124
diff
changeset
|
416 } |
59c21dee6315
pdf-gen: improve pdftool to use value from template
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2124
diff
changeset
|
417 }); |
1928
76ca071cb006
client: pdf-gen: add legend graphic
Bernhard Reiter <bernhard@intevation.de>
parents:
1914
diff
changeset
|
418 |
2376
6efd7ecd3a7d
client: pdf-gen: generate more expressive filename
Markus Kottlaender <markus@intevation.de>
parents:
2325
diff
changeset
|
419 this.pdf.doc.save(this.filename); |
1931
8fb1b1a8ea85
client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents:
1928
diff
changeset
|
420 } |
2265
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
421 |
1874
bad32adafef2
client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents:
1635
diff
changeset
|
422 // reset to original size |
2275
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
423 map.setSize(this.mapSize); |
2325
7bbf9ccda701
client: fix resetting of zoom level after pdf-gen
Bernhard Reiter <bernhard@intevation.de>
parents:
2321
diff
changeset
|
424 map.getView().fit(this.mapExtent, { |
7bbf9ccda701
client: fix resetting of zoom level after pdf-gen
Bernhard Reiter <bernhard@intevation.de>
parents:
2321
diff
changeset
|
425 size: this.mapSize, |
7bbf9ccda701
client: fix resetting of zoom level after pdf-gen
Bernhard Reiter <bernhard@intevation.de>
parents:
2321
diff
changeset
|
426 // necessary to get to the previous zoom level in all cases |
7bbf9ccda701
client: fix resetting of zoom level after pdf-gen
Bernhard Reiter <bernhard@intevation.de>
parents:
2321
diff
changeset
|
427 // details see https://github.com/openlayers/openlayers/issues/9235 |
7bbf9ccda701
client: fix resetting of zoom level after pdf-gen
Bernhard Reiter <bernhard@intevation.de>
parents:
2321
diff
changeset
|
428 constrainResolution: false |
7bbf9ccda701
client: fix resetting of zoom level after pdf-gen
Bernhard Reiter <bernhard@intevation.de>
parents:
2321
diff
changeset
|
429 }); |
1874
bad32adafef2
client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents:
1635
diff
changeset
|
430 |
1947
4235fa8f59d7
clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents:
1936
diff
changeset
|
431 // as we are done: re-enable button |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
432 this.readyToGenerate = true; |
1874
bad32adafef2
client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents:
1635
diff
changeset
|
433 }); |
bad32adafef2
client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents:
1635
diff
changeset
|
434 |
bad32adafef2
client: add real pdf generation with jspdf
Bernhard Reiter <bernhard@intevation.de>
parents:
1635
diff
changeset
|
435 // trigger rendering |
2227
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
436 map.setSize(mapSizeForPrint); |
2275
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
437 map.getView().fit(this.mapExtent, { size: mapSizeForPrint }); |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
438 }, |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
439 cancel() { |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
440 this.openLayersMap.un( |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
441 this.rendercompleteListener.type, |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
442 this.rendercompleteListener.listener |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
443 ); |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
444 this.openLayersMap.setSize(this.mapSize); |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
445 this.openLayersMap.getView().fit(this.mapExtent, { size: this.mapSize }); |
a6cfa06c5983
client: pdf-gen: added cancel button
Markus Kottlaender <markus@intevation.de>
parents:
2265
diff
changeset
|
446 this.readyToGenerate = true; |
1876
e53924abb4a2
client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1874
diff
changeset
|
447 }, |
2737
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
448 // add the used map scale and papersize |
2767 | 449 addScale(scaleDenominator, position, width, offset, fontSize, color) { |
2737
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
450 //TODO: check the correctence of the scalnominator value here. |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
451 let str = |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
452 this.$gettext("Scale") + |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
453 " 1 : " + |
2767 | 454 scaleDenominator + |
2737
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
455 " " + |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
456 "(DIN" + |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
457 " " + |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
458 this.form.paperSize.toUpperCase() + |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
459 ")"; |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
460 this.addText(position, offset, width, fontSize, color, str); |
4a5c0e7cb75b
client:pdf-gen: add template element
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2714
diff
changeset
|
461 }, |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
462 addRoundedBox(x, y, w, h, color, rounding, brcolor) { |
1883
76a6d334e681
Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents:
1882
diff
changeset
|
463 // draws a rounded background box at (x,y) width x height |
76a6d334e681
Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents:
1882
diff
changeset
|
464 // using jsPDF units |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
465 this.pdf.doc.setDrawColor(brcolor); |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
466 this.pdf.doc.setFillColor(color); |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
467 this.pdf.doc.roundedRect(x, y, w, h, rounding, rounding, "FD"); |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
468 }, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
469 // add some text at specific coordinates and determine how many wrolds in single line |
2288
3f9847c89491
client: pdf-gen: removed unused parameter
Markus Kottlaender <markus@intevation.de>
parents:
2284
diff
changeset
|
470 addText(position, offset, width, fontSize, color, text) { |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
471 text = this.replacePlaceholders(text); |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
472 |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
473 // split the incoming string to an array, each element is a string of |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
474 // words in a single line |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
475 this.pdf.doc.setTextColor(color); |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
476 this.pdf.doc.setFontSize(fontSize); |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
477 var textLines = this.pdf.doc.splitTextToSize(text, width); |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
478 |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
479 // x/y defaults to offset for topleft corner (normal x/y coordinates) |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
480 let x = offset.x; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
481 let y = offset.y; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
482 |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
483 // if position is on the right, x needs to be calculate with pdf width and |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
484 // the size of the element |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
485 if (["topright", "bottomright"].indexOf(position) !== -1) { |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
486 x = this.pdf.width - offset.x - width; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
487 } |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
488 if (["bottomright", "bottomleft"].indexOf(position) !== -1) { |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
489 y = this.pdf.height - offset.y - this.getTextHeight(textLines.length); |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
490 } |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
491 |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
492 this.pdf.doc.text(textLines, x, y, { baseline: "hanging" }); |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
493 }, |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
494 addBox(position, offset, width, height, rounding, color, brcolor) { |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
495 // x/y defaults to offset for topleft corner (normal x/y coordinates) |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
496 let x = offset.x; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
497 let y = offset.y; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
498 |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
499 // if position is on the right, x needs to be calculate with pdf width and |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
500 // the size of the element |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
501 if (["topright", "bottomright"].indexOf(position) !== -1) { |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
502 x = this.pdf.width - offset.x - width; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
503 } |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
504 if (["bottomright", "bottomleft"].indexOf(position) !== -1) { |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
505 y = this.pdf.height - offset.y - height; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
506 } |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
507 |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
508 this.addRoundedBox(x, y, width, height, color, rounding, brcolor); |
1883
76a6d334e681
Client: pdf-gen: refactor addScaleBar
Bernhard Reiter <bernhard@intevation.de>
parents:
1882
diff
changeset
|
509 }, |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
510 // add some text at specific coordinates with a background box |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
511 addTextBox( |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
512 position, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
513 offset, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
514 width, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
515 height, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
516 rounding, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
517 padding, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
518 fontSize, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
519 color, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
520 background, |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
521 text, |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
522 brcolor |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
523 ) { |
2296
da6611071a58
client: pdf-gen: fixed width calculation of textbox
Markus Kottlaender <markus@intevation.de>
parents:
2292
diff
changeset
|
524 this.pdf.doc.setFontSize(fontSize); |
da6611071a58
client: pdf-gen: fixed width calculation of textbox
Markus Kottlaender <markus@intevation.de>
parents:
2292
diff
changeset
|
525 text = this.replacePlaceholders(text); |
da6611071a58
client: pdf-gen: fixed width calculation of textbox
Markus Kottlaender <markus@intevation.de>
parents:
2292
diff
changeset
|
526 |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
527 if (!width) { |
2296
da6611071a58
client: pdf-gen: fixed width calculation of textbox
Markus Kottlaender <markus@intevation.de>
parents:
2292
diff
changeset
|
528 width = this.pdf.doc.getTextWidth(text) + 2 * padding; |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
529 } |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
530 let textWidth = width - 2 * padding; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
531 if (!height) { |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
532 let textLines = this.pdf.doc.splitTextToSize(text, textWidth); |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
533 height = this.getTextHeight(textLines.length) + 2 * padding; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
534 } |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
535 |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
536 this.addBox( |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
537 position, |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
538 offset, |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
539 width, |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
540 height, |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
541 rounding, |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
542 background, |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
543 brcolor |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
544 ); |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
545 this.addText( |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
546 position, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
547 { x: offset.x + padding, y: offset.y + padding }, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
548 textWidth, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
549 fontSize, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
550 color, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
551 text |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
552 ); |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
553 }, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
554 addImage(url, format, position, offset, width, height) { |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
555 // x/y defaults to offset for topleft corner (normal x/y coordinates) |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
556 let x = offset.x; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
557 let y = offset.y; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
558 |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
559 // if position is on the right, x needs to be calculate with pdf width and |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
560 // the size of the element |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
561 if (["topright", "bottomright"].indexOf(position) !== -1) { |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
562 x = this.pdf.width - offset.x - width; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
563 } |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
564 if (["bottomright", "bottomleft"].indexOf(position) !== -1) { |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
565 y = this.pdf.height - offset.y - height; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
566 } |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
567 |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
568 let image = new Image(); |
2227
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
569 if (url) { |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
570 image.src = url; |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
571 } else { |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
572 if (this.logoForPDF) { |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
573 image.src = this.logoForPDF; |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
574 } else { |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
575 image.src = "/img/gemma-logo-for-pdf.png"; |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
576 } |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
577 } |
9b545e470b94
PDF generation: logo image, adjusted templates
Markus Kottlaender <markus@intevation.de>
parents:
2226
diff
changeset
|
578 |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
579 this.pdf.doc.addImage(image, x, y, width, height); |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
580 }, |
2767 | 581 addScaleBar(scaleDenominator, position, offset, rounding, brcolor) { |
582 // scaleDenominator is the x in 1:x of the map scale | |
1897
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
583 |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
584 // hardcode maximal width for now |
1933
1aa2921d8832
client: pdf-gen: make scalebar box size dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1931
diff
changeset
|
585 let maxWidth = 80; // in mm |
1aa2921d8832
client: pdf-gen: make scalebar box size dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1931
diff
changeset
|
586 |
1897
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
587 // reduce width until we'll find a nice number for printing |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
588 // strategy: |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
589 // 1. check which unit prefix we shall use to get [10:10000[ |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
590 // 2. using a mapping for the leading digit to get [1:10[ |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
591 // 3. select a smaller number which is nicely dividable |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
592 // 4. scale up again to get length in paper mm and to be shown |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
593 |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
594 // from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log10#Polyfill |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
595 let log10 = |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
596 Math.log10 || // more precise, but unsupported by IE |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
597 function(x) { |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
598 return Math.log(x) * Math.LOG10E; |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
599 }; |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
600 |
2767 | 601 let maxLength = maxWidth * scaleDenominator; |
1897
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
602 |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
603 let unit = "mm"; |
1914
3d2b55d2d8a6
client: pdf-gen: fix scale bar calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1903
diff
changeset
|
604 let unitConversionFactor = 1; |
3d2b55d2d8a6
client: pdf-gen: fix scale bar calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1903
diff
changeset
|
605 if (maxLength >= 1e7) { |
3d2b55d2d8a6
client: pdf-gen: fix scale bar calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1903
diff
changeset
|
606 // >= 10 km |
1897
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
607 unit = "km"; |
1914
3d2b55d2d8a6
client: pdf-gen: fix scale bar calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1903
diff
changeset
|
608 unitConversionFactor = 1e6; |
3d2b55d2d8a6
client: pdf-gen: fix scale bar calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1903
diff
changeset
|
609 } else if (maxLength >= 1e4) { |
3d2b55d2d8a6
client: pdf-gen: fix scale bar calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1903
diff
changeset
|
610 // >= 10 m |
1897
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
611 unit = "m"; |
1914
3d2b55d2d8a6
client: pdf-gen: fix scale bar calculation
Bernhard Reiter <bernhard@intevation.de>
parents:
1903
diff
changeset
|
612 unitConversionFactor = 1e3; |
1897
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
613 } |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
614 |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
615 maxLength /= unitConversionFactor; |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
616 |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
617 // DEBUG console.log(maxLength, unit); |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
618 let unroundedLength = maxLength; |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
619 let numberOfDigits = Math.floor(log10(unroundedLength)); |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
620 let factor = Math.pow(10, numberOfDigits); |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
621 let mapped = unroundedLength / factor; |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
622 // DEBUG console.log(mapped); |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
623 |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
624 var length = Math.floor(maxLength); // just to have an upper limit |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
625 |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
626 // manually only use numbers that are very nice to devide by 4 |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
627 // note that this is taken into account for rounding later |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
628 if (mapped > 8) { |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
629 length = 8 * factor; |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
630 } else if (mapped > 4) { |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
631 length = 4 * factor; |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
632 } else if (mapped > 2) { |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
633 length = 2 * factor; |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
634 } else { |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
635 length = factor; |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
636 } |
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
637 |
2767 | 638 let size = (length * unitConversionFactor) / scaleDenominator / 4; |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
639 let fullSize = size * 4; |
1933
1aa2921d8832
client: pdf-gen: make scalebar box size dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1931
diff
changeset
|
640 |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
641 // x/y defaults to offset for topleft corner (normal x/y coordinates) |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
642 let x = offset.x; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
643 let y = offset.y; |
1933
1aa2921d8832
client: pdf-gen: make scalebar box size dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1931
diff
changeset
|
644 |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
645 // if position is on the right, x needs to be calculate with pdf width and |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
646 // the size of the element |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
647 if (["topright", "bottomright"].indexOf(position) !== -1) { |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
648 x = this.pdf.width - offset.x - fullSize - 8; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
649 } |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
650 if (["bottomright", "bottomleft"].indexOf(position) !== -1) { |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
651 y = this.pdf.height - offset.y - 10; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
652 } |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
653 |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
654 // to give the outer white box 4mm padding |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
655 let scaleBarX = x + 4; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
656 let scaleBarY = y + 5; // 5 because above the scalebar will be the numbers |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
657 |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
658 // draw outer white box |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
659 this.addRoundedBox(x, y, fullSize + 8, 10, "white", rounding, brcolor); |
1897
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
660 |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
661 // draw first part of scalebar |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
662 this.pdf.doc.setDrawColor(0, 0, 0); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
663 this.pdf.doc.setFillColor(0, 0, 0); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
664 this.pdf.doc.rect(scaleBarX, scaleBarY, size, 1, "FD"); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
665 |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
666 // draw second part of scalebar |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
667 this.pdf.doc.setDrawColor(0, 0, 0); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
668 this.pdf.doc.setFillColor(255, 255, 255); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
669 this.pdf.doc.rect(scaleBarX + size, scaleBarY, size, 1, "FD"); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
670 |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
671 // draw third part of scalebar |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
672 this.pdf.doc.setDrawColor(0, 0, 0); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
673 this.pdf.doc.setFillColor(0, 0, 0); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
674 this.pdf.doc.rect(scaleBarX + size * 2, scaleBarY, size * 2, 1, "FD"); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
675 |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
676 // draw numeric labels above scalebar |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
677 this.pdf.doc.setTextColor("black"); |
2240
c3cc21dee75d
client: pdf-gen add multi-language font
Bernhard Reiter <bernhard@intevation.de>
parents:
2227
diff
changeset
|
678 this.pdf.doc.setFontSize(6); |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
679 this.pdf.doc.text(scaleBarX, scaleBarY - 1, "0"); |
1897
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
680 // /4 and could give 2.5. We still round, because of floating point arith |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
681 this.pdf.doc.text( |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
682 scaleBarX + size - 1, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
683 scaleBarY - 1, |
1897
c78efb1ddb02
client: pdf-gen: improve scalebar to show nice values
Bernhard Reiter <bernhard@intevation.de>
parents:
1887
diff
changeset
|
684 (Math.round((length * 10) / 4) / 10).toString() |
1884
59ef76d83de7
client: pdf-gen: make scalebar dynamic
Bernhard Reiter <bernhard@intevation.de>
parents:
1883
diff
changeset
|
685 ); |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
686 this.pdf.doc.text( |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
687 scaleBarX + size * 2 - 2, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
688 scaleBarY - 1, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
689 Math.round(length / 2).toString() |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
690 ); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
691 this.pdf.doc.text( |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
692 scaleBarX + size * 4 - 4, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
693 scaleBarY - 1, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
694 Math.round(length).toString() + " " + unit |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
695 ); |
1876
e53924abb4a2
client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1874
diff
changeset
|
696 }, |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
697 addNorthArrow(position, offset, size) { |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
698 // TODO: fix positioning |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
699 // x/y defaults to offset for topleft corner (normal x/y coordinates) |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
700 let x1 = offset.x; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
701 let y1 = offset.y; |
1876
e53924abb4a2
client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1874
diff
changeset
|
702 |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
703 // if position is on the right, x needs to be calculate with pdf width and |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
704 // the size of the element |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
705 if (["topright", "bottomright"].indexOf(position) !== -1) { |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
706 x1 = this.pdf.width - offset.x - size; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
707 } |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
708 if (["bottomright", "bottomleft"].indexOf(position) !== -1) { |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
709 y1 = this.pdf.height - offset.y - size; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
710 } |
2220
d926292d81b6
PDF generation: changed form labels/option texts
Markus Kottlaender <markus@intevation.de>
parents:
2219
diff
changeset
|
711 |
1876
e53924abb4a2
client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1874
diff
changeset
|
712 var y2 = y1 + size * 3; |
e53924abb4a2
client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1874
diff
changeset
|
713 var x3 = x1 - size * 2; |
e53924abb4a2
client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1874
diff
changeset
|
714 var y3 = y1 + size * 5; |
e53924abb4a2
client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1874
diff
changeset
|
715 var x4 = x1 + size * 2; |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
716 // white triangle |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
717 this.pdf.doc.setFillColor(255, 255, 255); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
718 this.pdf.doc.setDrawColor(255, 255, 255); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
719 this.pdf.doc.triangle( |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
720 x3 - 0.8, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
721 y3 + 1.2, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
722 x1, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
723 y1 - 1.2, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
724 x1, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
725 y2 + 0.6, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
726 "F" |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
727 ); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
728 this.pdf.doc.triangle( |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
729 x1, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
730 y1 - 1.2, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
731 x1, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
732 y2 + 0.6, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
733 x4 + 0.8, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
734 y3 + 1.2, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
735 "F" |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
736 ); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
737 |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
738 // north arrow |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
739 this.pdf.doc.setDrawColor(0, 0, 0); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
740 this.pdf.doc.setFillColor(255, 255, 255); |
2539
ad2a1d02ad1c
client:pdf-gen: improve north arrow drawing
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2534
diff
changeset
|
741 this.pdf.doc.triangle(x3, y3, x1 - 0.1, y1 + 0.2, x1 - 0.1, y2, "FD"); |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
742 this.pdf.doc.setFillColor(0, 0, 0); |
2539
ad2a1d02ad1c
client:pdf-gen: improve north arrow drawing
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2534
diff
changeset
|
743 this.pdf.doc.triangle(x1 + 0.1, y1 + 0.2, x1 + 0.1, y2, x4, y3, "FD"); |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
744 this.pdf.doc.setFontSize(size * 3.1); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
745 this.pdf.doc.setTextColor(255, 255, 255); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
746 this.pdf.doc.setFontStyle("bold"); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
747 this.pdf.doc.text(size < 3 ? x1 - 0.5 : x1 - 1.3, y3 + 1, "N"); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
748 this.pdf.doc.setFontSize(size * 3); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
749 this.pdf.doc.setTextColor(0, 0, 0); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
750 this.pdf.doc.setFontStyle("normal"); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
751 this.pdf.doc.text(size < 3 ? x1 - 0.5 : x1 - 1.3, y3 + 1, "N"); |
1876
e53924abb4a2
client: export some elements to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1874
diff
changeset
|
752 }, |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
753 addLegend(position, offset, rounding, brcolor) { |
2220
d926292d81b6
PDF generation: changed form labels/option texts
Markus Kottlaender <markus@intevation.de>
parents:
2219
diff
changeset
|
754 if ( |
d926292d81b6
PDF generation: changed form labels/option texts
Markus Kottlaender <markus@intevation.de>
parents:
2219
diff
changeset
|
755 this.selectedBottleneck && |
2259
7e378b38d302
client: pdf-gen: made selectedSurvey mandatory for displaying the bottleneck info box and iso line legend.
Markus Kottlaender <markus@intevation.de>
parents:
2258
diff
changeset
|
756 this.selectedSurvey && |
2321
c00e3f7f5b17
client: use constant names instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2296
diff
changeset
|
757 this.getLayerByName(LAYERS.BOTTLENECKISOLINE).isVisible |
2220
d926292d81b6
PDF generation: changed form labels/option texts
Markus Kottlaender <markus@intevation.de>
parents:
2219
diff
changeset
|
758 ) { |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
759 // transforming into an HTMLImageElement only to find out |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
760 // the width x height of the legend image |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
761 // FUTURE: find a better way to get the width and height |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
762 let legendImage = new Image(); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
763 legendImage.src = this.isolinesLegendImgDataURL; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
764 let aspectRatio = legendImage.width / legendImage.height; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
765 let width = 54; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
766 let height = width / aspectRatio; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
767 let padding = 2; |
2220
d926292d81b6
PDF generation: changed form labels/option texts
Markus Kottlaender <markus@intevation.de>
parents:
2219
diff
changeset
|
768 |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
769 // x/y defaults to offset for topleft corner (normal x/y coordinates) |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
770 let x = offset.x; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
771 let y = offset.y; |
1947
4235fa8f59d7
clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents:
1936
diff
changeset
|
772 |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
773 // if position is on the right, x needs to be calculate with pdf width and |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
774 // the size of the element |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
775 if (["topright", "bottomright"].indexOf(position) !== -1) { |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
776 x = this.pdf.width - offset.x - width; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
777 } |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
778 if (["bottomright", "bottomleft"].indexOf(position) !== -1) { |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
779 y = this.pdf.height - offset.y - height; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
780 } |
1947
4235fa8f59d7
clien: pdf-gen: load logo externally; add prepare step
Bernhard Reiter <bernhard@intevation.de>
parents:
1936
diff
changeset
|
781 |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
782 this.addRoundedBox(x, y, width, height, "white", rounding, brcolor); |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
783 this.pdf.doc.addImage( |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
784 legendImage, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
785 x + padding, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
786 y + padding, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
787 width - 2 * padding, |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
788 height - 2 * padding |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
789 ); |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
790 } |
1931
8fb1b1a8ea85
client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents:
1928
diff
changeset
|
791 }, |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
792 addBottleneckInfo(position, offset, rounding, color, brcolor) { |
2220
d926292d81b6
PDF generation: changed form labels/option texts
Markus Kottlaender <markus@intevation.de>
parents:
2219
diff
changeset
|
793 if ( |
d926292d81b6
PDF generation: changed form labels/option texts
Markus Kottlaender <markus@intevation.de>
parents:
2219
diff
changeset
|
794 this.selectedBottleneck && |
2259
7e378b38d302
client: pdf-gen: made selectedSurvey mandatory for displaying the bottleneck info box and iso line legend.
Markus Kottlaender <markus@intevation.de>
parents:
2258
diff
changeset
|
795 this.selectedSurvey && |
2321
c00e3f7f5b17
client: use constant names instead of strings
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2296
diff
changeset
|
796 this.getLayerByName(LAYERS.BOTTLENECKISOLINE).isVisible |
2220
d926292d81b6
PDF generation: changed form labels/option texts
Markus Kottlaender <markus@intevation.de>
parents:
2219
diff
changeset
|
797 ) { |
2258
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
798 let survey = this.selectedSurvey; |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
799 |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
800 // determine text dimensions |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
801 // this is a little bit cumbersome but we need to separate width |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
802 // calculations and writing |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
803 this.pdf.doc.setFontSize(10); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
804 this.pdf.doc.setTextColor(color); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
805 let textOptions = { baseline: "hanging" }; |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
806 let str1_1 = this.$gettext("Bottleneck") + ": "; |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
807 let str1_2 = this.selectedBottleneck; |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
808 let str2_1 = this.$gettext("Survey date") + ": "; |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
809 let str2_2 = survey.date_info; |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
810 let str3_1 = this.$gettext("Ref gauge") + ": "; |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
811 let str3_2 = survey.gauge_objname; |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
812 let str4_1 = this.$gettext("Depth relativ to") + ": "; |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
813 let str4_2 = |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
814 survey.depth_reference + |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
815 " = " + |
2291
60af456d01f0
client:pdf-gen:(minor) fix bottleneckinfo function
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2288
diff
changeset
|
816 (survey.hasOwnProperty("waterlevel_value") |
2258
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
817 ? survey.waterlevel_value + " cm" |
2291
60af456d01f0
client:pdf-gen:(minor) fix bottleneckinfo function
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2288
diff
changeset
|
818 : "?"); |
2258
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
819 |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
820 this.pdf.doc.setFontStyle("italic"); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
821 let w1_1 = this.pdf.doc.getTextWidth(str1_1); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
822 this.pdf.doc.setFontStyle("bold"); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
823 let w1_2 = this.pdf.doc.getTextWidth(str1_2); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
824 this.pdf.doc.setFontStyle("italic"); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
825 let w2_1 = this.pdf.doc.getTextWidth(str2_1); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
826 this.pdf.doc.setFontStyle("normal"); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
827 let w2_2 = this.pdf.doc.getTextWidth(str2_2); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
828 this.pdf.doc.setFontStyle("italic"); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
829 let w3_1 = this.pdf.doc.getTextWidth(str3_1); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
830 this.pdf.doc.setFontStyle("normal"); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
831 let w3_2 = this.pdf.doc.getTextWidth(str3_2); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
832 this.pdf.doc.setFontStyle("italic"); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
833 let w4_1 = this.pdf.doc.getTextWidth(str4_1); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
834 this.pdf.doc.setFontStyle("normal"); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
835 let w4_2 = this.pdf.doc.getTextWidth(str4_2); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
836 |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
837 let height = 21; |
2240
c3cc21dee75d
client: pdf-gen add multi-language font
Bernhard Reiter <bernhard@intevation.de>
parents:
2227
diff
changeset
|
838 let padding = 3; |
2258
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
839 let width = |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
840 Math.max(w1_1 + w1_2, w2_1 + w2_2, w3_1 + w3_2, w4_1 + w4_2) + |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
841 2 * padding; |
2220
d926292d81b6
PDF generation: changed form labels/option texts
Markus Kottlaender <markus@intevation.de>
parents:
2219
diff
changeset
|
842 |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
843 // x/y defaults to offset for topleft corner (normal x/y coordinates) |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
844 let x = offset.x; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
845 let y = offset.y; |
1931
8fb1b1a8ea85
client: pdf-gen: improve legend behaviour
Bernhard Reiter <bernhard@intevation.de>
parents:
1928
diff
changeset
|
846 |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
847 // if position is on the right, x needs to be calculate with pdf width and |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
848 // the size of the element |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
849 if (["topright", "bottomright"].indexOf(position) !== -1) { |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
850 x = this.pdf.width - offset.x - width; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
851 } |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
852 if (["bottomright", "bottomleft"].indexOf(position) !== -1) { |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
853 y = this.pdf.height - offset.y - height; |
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
854 } |
2137
a31c9fa47ab8
client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents:
2124
diff
changeset
|
855 |
2258
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
856 // white background box |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
857 this.addRoundedBox(x, y, width, height, "white", rounding, brcolor); |
2138
4a903d382901
client: pdf-gen: make bottleneck infos more fancy
Bernhard Reiter <bernhard@intevation.de>
parents:
2137
diff
changeset
|
858 |
2258
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
859 // bottleneck |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
860 this.pdf.doc.setFontStyle("italic"); |
2258
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
861 this.pdf.doc.text(x + padding, y + padding, str1_1, textOptions); |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
862 this.pdf.doc.setFontStyle("bold"); |
2258
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
863 this.pdf.doc.text(x + padding + w1_1, y + padding, str1_2, textOptions); |
2137
a31c9fa47ab8
client: pdf-gen: add bottleneck details
Bernhard Reiter <bernhard@intevation.de>
parents:
2124
diff
changeset
|
864 |
2258
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
865 // survey date |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
866 this.pdf.doc.setFontStyle("italic"); |
2258
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
867 this.pdf.doc.text(x + padding, y + padding + 4, str2_1, textOptions); |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
868 this.pdf.doc.setFontStyle("normal"); |
2258
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
869 this.pdf.doc.text( |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
870 x + padding + w2_1, |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
871 y + padding + 4, |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
872 str2_2, |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
873 textOptions |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
874 ); |
2247
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
875 |
2258
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
876 // ref gauge |
2247
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
877 this.pdf.doc.setFontStyle("italic"); |
2258
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
878 this.pdf.doc.text(x + padding, y + padding + 8, str3_1, textOptions); |
2247
e6fba449aa3c
merged pdf-export in default
Markus Kottlaender <markus@intevation.de>
parents:
2240
diff
changeset
|
879 this.pdf.doc.setFontStyle("normal"); |
2258
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
880 this.pdf.doc.text( |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
881 x + padding + w3_1, |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
882 y + padding + 8, |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
883 str3_2, |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
884 textOptions |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
885 ); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
886 |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
887 // depth relative to |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
888 this.pdf.doc.setFontStyle("italic"); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
889 this.pdf.doc.text(x + padding, y + padding + 12, str4_1, textOptions); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
890 this.pdf.doc.setFontStyle("normal"); |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
891 this.pdf.doc.text( |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
892 x + padding + w4_1, |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
893 y + padding + 12, |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
894 str4_2, |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
895 textOptions |
24cafd6b1a55
client: pdf-gen: width of bottleneck info box is calculated based on its content now
Markus Kottlaender <markus@intevation.de>
parents:
2257
diff
changeset
|
896 ); |
2218
631ca0412db9
adjusted positioning of pdf elements
Markus Kottlaender <markus@intevation.de>
parents:
2215
diff
changeset
|
897 } |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
898 }, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
899 replacePlaceholders(text) { |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
900 if (text.includes("{date}")) { |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
901 text = text.replace("{date}", new Date().toLocaleString(locale2)); |
2167
40f26fbc505f
client: pdf-gen: add reference_water_level to details
Bernhard Reiter <bernhard@intevation.de>
parents:
2154
diff
changeset
|
902 } |
2714
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
903 //get only day,month and year from the Date object |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
904 if (text.includes("{date-minor}")) { |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
905 var date = new Date(); |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
906 var dt = |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
907 (date.getDate() < 10 ? "0" : "") + |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
908 date.getDate() + |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
909 "." + |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
910 (date.getMonth() + 1 < 10 ? "0" : "") + |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
911 (date.getMonth() + 1) + |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
912 "." + |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
913 date.getFullYear(); |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
914 text = text.replace("{date-minor}", dt.toLocaleString(locale2)); |
4dd38840d74b
client:pdf-gen:imporve some template elements
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2561
diff
changeset
|
915 } |
2223
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
916 if (text.includes("{user}")) { |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
917 text = text.replace("{user}", this.user); |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
918 } |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
919 return text; |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
920 }, |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
921 getTextHeight(numberOfLines) { |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
922 return ( |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
923 numberOfLines * |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
924 ((this.pdf.doc.getFontSize() * 25.4) / parseInt(this.form.resolution)) * |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
925 this.pdf.doc.getLineHeightFactor() |
85142493096c
PDF generation: improved positioning, prepared demo templates
Markus Kottlaender <markus@intevation.de>
parents:
2222
diff
changeset
|
926 ); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
927 } |
2212
733cfc3db48a
started pdf template administration
Markus Kottlaender <markus@intevation.de>
parents:
2207
diff
changeset
|
928 }, |
733cfc3db48a
started pdf template administration
Markus Kottlaender <markus@intevation.de>
parents:
2207
diff
changeset
|
929 mounted() { |
2265
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
930 this.form.template = this.templates[0]; |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
931 this.templateData = this.form.template; |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
932 HTTP.get("/templates/print", { |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
933 headers: { |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
934 "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
|
935 "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
|
936 } |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
937 }) |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
938 .then(response => { |
2265
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
939 if (response.data.length) { |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
940 this.templates = response.data; |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
941 this.form.template = this.templates[0]; |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
942 this.applyTemplateToForm(); |
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2260
diff
changeset
|
943 } |
2257
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
944 }) |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
945 .catch(e => { |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
946 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
|
947 displayError({ |
2284
9f327f197ddd
client: translation: mark some strings for translations
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2275
diff
changeset
|
948 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
|
949 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
|
950 }); |
ce6fd3d4a3a2
client: pdf-gen: moved template handling from store to components
Markus Kottlaender <markus@intevation.de>
parents:
2247
diff
changeset
|
951 }); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
952 } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
953 }; |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
954 </script> |