changeset 3241:ecfa09241437

client: pdf-template: add a set of template-elements (fairwayprofile)
author Fadi Abbud <fadi.abbud@intevation.de>
date Fri, 10 May 2019 13:11:24 +0200
parents 5240f5440b62
children 3b770f8273b6
files client/src/components/fairway/Fairwayprofile.vue
diffstat 1 files changed, 61 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/client/src/components/fairway/Fairwayprofile.vue	Fri May 10 12:09:24 2019 +0200
+++ b/client/src/components/fairway/Fairwayprofile.vue	Fri May 10 13:11:24 2019 +0200
@@ -146,6 +146,7 @@
       "waterLevels"
     ]),
     ...mapState("application", ["paneSetup"]),
+    ...mapState("user", ["user"]),
     title() {
       let dates = [this.selectedSurvey.date_info];
       if (this.additionalSurvey) dates.push(this.additionalSurvey.date_info);
@@ -267,8 +268,15 @@
           this.templateData.properties.paperSize === "a3" ? 420 : 297;
         this.pdf.height =
           this.templateData.properties.paperSize === "a3" ? 297 : 210;
-        let defaultOffset = { x: 0, Y: 0 },
-          defaultColor = "black";
+        // default values if some are missing in template
+        let defaultFontSize = 11,
+          defaultWidth = 70,
+          defaultTextColor = "black",
+          defaultBorderColor = "white",
+          defaultBgColor = "white",
+          defaultRounding = 2,
+          defaultPadding = 2,
+          defaultOffset = { x: 0, y: 0 };
         this.templateData.elements.forEach(e => {
           switch (e.type) {
             case "diagram": {
@@ -284,7 +292,7 @@
               this.addDiagramLegend(
                 e.position,
                 e.offset || defaultOffset,
-                e.color || defaultColor
+                e.color || defaultTextColor
               );
               break;
             }
@@ -292,6 +300,56 @@
               this.addDiagramTitle(e.position, e.offset, e.fontsize, e.color);
               break;
             }
+            case "image": {
+              this.addImage(
+                e.url,
+                e.format,
+                e.position,
+                e.offset || defaultOffset,
+                e.width,
+                e.height
+              );
+              break;
+            }
+            case "text": {
+              this.addText(
+                e.position,
+                e.offset || defaultOffset,
+                e.width || defaultWidth,
+                e.fontsize || defaultFontSize,
+                e.color || defaultTextColor,
+                e.text
+              );
+              break;
+            }
+            case "box": {
+              this.addBox(
+                e.position,
+                e.offset,
+                e.width,
+                e.height,
+                e.rounding === 0 || e.rounding ? e.rounding : defaultRounding,
+                e.color || defaultBgColor,
+                e.brcolor || defaultBorderColor
+              );
+              break;
+            }
+            case "textbox": {
+              this.addTextBox(
+                e.position,
+                e.offset || defaultOffset,
+                e.width,
+                e.height,
+                e.rounding === 0 || e.rounding ? e.rounding : defaultRounding,
+                e.padding || defaultPadding,
+                e.fontsize || defaultFontSize,
+                e.color || defaultTextColor,
+                e.background || defaultBgColor,
+                e.text,
+                e.brcolor || defaultBorderColor
+              );
+              break;
+            }
           }
         });
       }