From 72ddfbe84d108f42611a08007f46b9c4b79a6d37 Mon Sep 17 00:00:00 2001
From: Volker Schukai <volker.schukai@schukai.com>
Date: Mon, 26 Feb 2024 14:29:11 +0100
Subject: [PATCH] fix: [3] is not the right way #151

---
 playground/issues/144.html                    | 14 +++++++++-----
 playground/issues/{main.js => 144.js}         |  2 +-
 playground/issues/{main.pcss => 144.pcss}     |  0
 source/components/datatable/change-button.mjs |  6 +++++-
 4 files changed, 15 insertions(+), 7 deletions(-)
 rename playground/issues/{main.js => 144.js} (95%)
 rename playground/issues/{main.pcss => 144.pcss} (100%)

diff --git a/playground/issues/144.html b/playground/issues/144.html
index cf0208d3f..4f76a0648 100644
--- a/playground/issues/144.html
+++ b/playground/issues/144.html
@@ -5,7 +5,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0">
 
     <title>Issues</title>
-    <script src="./main.js" type="module"></script>
+    <script src="./144.js" type="module"></script>
 </head>
 <body>
 
@@ -18,14 +18,18 @@
 
     <div style="width: 50px;">
         <monster-button-bar data-monster-option-popper-placement="left">
-            <div class="monster-button-group">
-                <monster-button data-alvine-role="linkButton" data-monster-option-popper-placement="left" slot="popper" title="ändern">
+           
+                <monster-button data-alvine-role="linkButton" 
+                                data-monster-option-popper-placement="left" 
+                                slot="popper" title="ändern">
                     <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-pencil-square" viewBox="0 0 16 16">
                         <path d="M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z"></path>
                         <path fill-rule="evenodd" d="M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z"></path>
                     </svg>
                 </monster-button>
-                <monster-confirm-button data-monster-option-popper-placement="left" slot="popper" data-alvine-role="deleteTaskButton" data-monster-attributes="data-alvine-id path:datatable-task-stream-row.id">
+                <monster-confirm-button data-monster-option-popper-placement="left" 
+                                        slot="popper" data-alvine-role="deleteTaskButton" 
+                                        data-monster-attributes="data-alvine-id path:datatable-task-stream-row.id">
                     <div>
                         <p>Are you sure you want to delete this task ?</p>
                     </div>
@@ -39,7 +43,7 @@
     
                     </div>
                 </monster-confirm-button>
-            </div>
+          
         </monster-button-bar>
     </div>
     
diff --git a/playground/issues/main.js b/playground/issues/144.js
similarity index 95%
rename from playground/issues/main.js
rename to playground/issues/144.js
index 24ab3a719..9d39663f6 100644
--- a/playground/issues/main.js
+++ b/playground/issues/144.js
@@ -5,7 +5,7 @@ import "../../source/components/style/link.pcss";
 import "../../source/components/style/button.pcss";
 import "../../source/components/style/theme.pcss";
 import "../../source/components/style/typography.pcss";
-import "./main.pcss";
+import "./144.pcss";
 import "../../source/components/form/confirm-button.mjs";
 
 
diff --git a/playground/issues/main.pcss b/playground/issues/144.pcss
similarity index 100%
rename from playground/issues/main.pcss
rename to playground/issues/144.pcss
diff --git a/source/components/datatable/change-button.mjs b/source/components/datatable/change-button.mjs
index 33565229d..c058e9db5 100644
--- a/source/components/datatable/change-button.mjs
+++ b/source/components/datatable/change-button.mjs
@@ -5,6 +5,8 @@
 
 import { instanceSymbol } from "../../constants.mjs";
 import { diff } from "../../data/diff.mjs";
+import {addAttributeToken} from "../../dom/attributes.mjs";
+import {ATTRIBUTE_ERRORMESSAGE} from "../../dom/constants.mjs";
 import {
 	assembleMethodSymbol,
 	CustomElement,
@@ -205,15 +207,17 @@ function getIndex() {
 
 	const row = this.closest("[data-monster-insert-reference]");
 	if (!row) {
+		addAttributeToken(this, ATTRIBUTE_ERRORMESSAGE, "no reference found");
 		return;
 	}
 
 	const ref = row.getAttribute("data-monster-insert-reference");
 	if (!ref) {
+		addAttributeToken(this, ATTRIBUTE_ERRORMESSAGE, "reference is missing or empty");
 		return;
 	}
 
-	const index = Number(ref.split("-")[3]);
+	const index = Number(ref.split("-").pop());
 	if (isNaN(index)) {
 		return;
 	}
-- 
GitLab