From 9dbd2f3e1d76a455d8c0bd158a2cc7dab53e2f5a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alexa=20Valentov=C3=A1?= <git@imaniti.org>
Date: Thu, 3 Apr 2025 12:01:03 +0200
Subject: [PATCH] semi-finish makeawish template

---
 VERSION                                       |   2 +-
 .../background_inverted.png                   | Bin 0 -> 27227 bytes
 .../make_a_wish_banner/MakeAWishBanner.vue    |  14 ++++++-
 .../src/views/make_a_wish_banner/canvas.js    |  37 ++++++++++++------
 4 files changed, 39 insertions(+), 14 deletions(-)
 create mode 100644 frontend/src/assets/template/make_a_wish_banner/background_inverted.png

diff --git a/VERSION b/VERSION
index b70ae75..68e69e4 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.14.1
+2.15.0
diff --git a/frontend/src/assets/template/make_a_wish_banner/background_inverted.png b/frontend/src/assets/template/make_a_wish_banner/background_inverted.png
new file mode 100644
index 0000000000000000000000000000000000000000..cfc2af3d4e9169892a32a63e2dc02fe69b8478ff
GIT binary patch
literal 27227
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
I&MBb@0Os~E)&Kwi

literal 0
HcmV?d00001

diff --git a/frontend/src/views/make_a_wish_banner/MakeAWishBanner.vue b/frontend/src/views/make_a_wish_banner/MakeAWishBanner.vue
index 3485406..af59fee 100644
--- a/frontend/src/views/make_a_wish_banner/MakeAWishBanner.vue
+++ b/frontend/src/views/make_a_wish_banner/MakeAWishBanner.vue
@@ -51,11 +51,23 @@ export default {
   data() {
     const predefinedColors = {
       base: {
-        name: "Základní barvy",
+        name: "Černé pozadí",
         colors: {
           background: COLORS.black,
           highlight: COLORS.yellow1,
           baseText: COLORS.white,
+          nameText: COLORS.yellow1,
+          highlightedText: COLORS.black,
+          contractedByText: COLORS.gray1,
+        },
+      },
+      white: {
+        name: "Bílé pozadí",
+        colors: {
+          background: COLORS.white,
+          highlight: COLORS.yellow1,
+          baseText: COLORS.black,
+          nameText: COLORS.black,
           highlightedText: COLORS.black,
           contractedByText: COLORS.gray1,
         },
diff --git a/frontend/src/views/make_a_wish_banner/canvas.js b/frontend/src/views/make_a_wish_banner/canvas.js
index 41d2c33..620de28 100644
--- a/frontend/src/views/make_a_wish_banner/canvas.js
+++ b/frontend/src/views/make_a_wish_banner/canvas.js
@@ -7,6 +7,8 @@ import {
 } from "../../components/canvas/utils";
 import { PaddedHighlightingTextbox } from "../../components/canvas/textbox";
 import backgroundURL from "../../assets/template/make_a_wish_banner/background.png";
+import backgroundURLInverted from "../../assets/template/make_a_wish_banner/background_inverted.png";
+import COLORS from "../../colors";
 
 let mainTextBox = null;
 
@@ -15,6 +17,7 @@ let personPositionText = null;
 
 let mainImage = null;
 let backgroundImage = null;
+let previousBackgroundImageColor = null;
 
 let contractedByTextbox = null;
 
@@ -47,10 +50,11 @@ const redraw = async (canvas, options) => {
   const nameTextMarginBottom = Math.ceil(canvas.height * 0.1);
   const nameTextMarginLeft = Math.ceil(canvas.width * 0.05);
   const nameTextExtraBottomMargin = Math.ceil(canvas.height * 0.05);
+  const nameTextMaxWidth = Math.ceil(canvas.width * 0.15);
   const positionTextSideGap = nameTextMarginLeft;
   const positionTextMarginBottom = Math.ceil(canvas.height * 0.06);
   const positionTextSeparatorWidth = Math.ceil(canvas.width * 0.0035);
-  const positionTextMaxWidth = Math.ceil(canvas.width * 0.4);
+  const positionTextMaxWidth = Math.ceil(canvas.width * 0.15);
 
   const contractedByTextSize = Math.ceil(canvas.height * 0.02);
   const contractedByTextMaxWidth = Math.ceil(canvas.width * 0.9);
@@ -59,7 +63,7 @@ const redraw = async (canvas, options) => {
   if (options.mainText !== null) {
     /* BEGIN Background render */
 
-    if (backgroundImage === null) {
+    if (backgroundImage === null || options.colors.background.value != previousBackgroundImageColor.value) {
       backgroundImage = new Image();
 
       await new Promise((resolve) => {
@@ -67,17 +71,23 @@ const redraw = async (canvas, options) => {
           resolve();
         };
 
-        backgroundImage.src = backgroundURL;
+        if (options.colors.background.value == COLORS.black.value) {
+          backgroundImage.src = backgroundURL;
+        } else {
+          backgroundImage.src = backgroundURLInverted;
+        }
       });
 
       backgroundImage = new fabric.Image(backgroundImage, {
         top: canvas.height - backgroundImage.height, // FIXME: Why???? Fabric.js, what are you trying to tell me?!
         left: -20,
-        zIndex: 0,
+        zIndex: 10,
         selectable: false,
       });
       backgroundImage.scaleToWidth(canvas.width + 22);
 
+      previousBackgroundImageColor = options.colors.background;
+
       canvas.add(backgroundImage);
     }
 
@@ -99,17 +109,20 @@ const redraw = async (canvas, options) => {
       }
       */
 
-      personNameText = new fabric.Text(options.personName, {
+      personNameText = new fabric.Textbox(options.personName, {
         left: nameTextMarginLeft,
         top: canvas.height - bottomTextSize - nameTextMarginBottom,
+        width: nameTextMaxWidth,
         fontFamily: "Bebas Neue",
         fontSize: bottomTextSize,
         styles: styles,
-        fill: options.colors.highlight.value,
+        fill: options.colors.nameText.value,
         selectable: false,
-        zIndex: 10,
+        zIndex: 20,
       });
 
+      checkTextBoxHeight(personNameText, 1);
+
       if (options.personPosition !== null) {
         personPositionText = new fabric.Textbox(options.personPosition, {
           left: positionTextSideGap,
@@ -119,10 +132,10 @@ const redraw = async (canvas, options) => {
           fontSize: positionTextSize,
           fill: options.colors.baseText.value,
           selectable: false,
-          zIndex: 10,
+          zIndex: 20,
         });
 
-        checkTextBoxHeight(personPositionText, 2);
+        checkTextBoxHeight(personPositionText, 1);
 
         if (personPositionText._textLines.length === 2) {
           mainTextMarginBottom += nameTextExtraBottomMargin;
@@ -169,10 +182,10 @@ const redraw = async (canvas, options) => {
       styles: highlightedData.styles,
       selectable: false,
       highlightPadding: canvas.height * 0.003,
-      zIndex: 10,
+      zIndex: 20,
     });
 
-    checkTextBoxHeight(mainTextBox, 3);
+    checkTextBoxHeight(mainTextBox, 1);
 
     canvas.add(mainTextBox);
 
@@ -198,7 +211,7 @@ const redraw = async (canvas, options) => {
       textAlign: "left",
       fill: options.colors.contractedByText.value,
       selectable: false,
-      zIndex: 10,
+      zIndex: 20,
     });
 
     checkTextBoxHeight(contractedByTextbox, 1);
-- 
GitLab