Show a text cursor while the item list accepts items
authorAlexander Ebert <ebert@woltlab.com>
Thu, 26 May 2022 11:45:20 +0000 (13:45 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Thu, 26 May 2022 11:45:20 +0000 (13:45 +0200)
ts/WoltLabSuite/Core/Ui/ItemList.ts
wcfsetup/install/files/js/WoltLabSuite/Core/Ui/ItemList.js
wcfsetup/install/files/style/ui/itemListInput.scss

index a9990cd35e81d38976cde9c859a7b8d063ffa78d..6807bc1609db307d18fe911c2738ef5ca1007759 100644 (file)
@@ -26,6 +26,7 @@ function createUI(element: ItemListInputElement, options: ItemListOptions): UiDa
 
   const list = document.createElement("ol");
   list.className = "inputItemList" + (element.disabled ? " disabled" : "");
+  list.dataset.acceptsNewItems = "true";
   list.dataset.elementId = element.id;
   list.addEventListener("click", (event) => {
     if (event.target === list) {
@@ -123,9 +124,11 @@ function handleLimit(elementId: string): void {
   if (acceptsNewItems(elementId)) {
     DomUtil.show(data.element);
     DomUtil.hide(data.limitReached);
+    data.list.dataset.acceptsNewItems = "true";
   } else {
     DomUtil.hide(data.element);
     DomUtil.show(data.limitReached);
+    data.list.dataset.acceptsNewItems = "false";
   }
 }
 
index 28a7853c56ae800f50903dcadbe9153937842b56..0ead64c283a83534a234c17694541ee19cb8497c 100644 (file)
@@ -25,6 +25,7 @@ define(["require", "exports", "tslib", "../Core", "../Dom/Traverse", "../Languag
         const parentElement = element.parentElement;
         const list = document.createElement("ol");
         list.className = "inputItemList" + (element.disabled ? " disabled" : "");
+        list.dataset.acceptsNewItems = "true";
         list.dataset.elementId = element.id;
         list.addEventListener("click", (event) => {
             if (event.target === list) {
@@ -109,10 +110,12 @@ define(["require", "exports", "tslib", "../Core", "../Dom/Traverse", "../Languag
         if (acceptsNewItems(elementId)) {
             Util_1.default.show(data.element);
             Util_1.default.hide(data.limitReached);
+            data.list.dataset.acceptsNewItems = "true";
         }
         else {
             Util_1.default.hide(data.element);
             Util_1.default.show(data.limitReached);
+            data.list.dataset.acceptsNewItems = "false";
         }
     }
     /**
index 02902a8f814193a046fc63d334d1806af31bbf9b..314758798771eb444f6eb8857c7007c0b9f2b108 100644 (file)
@@ -6,6 +6,10 @@
        padding-bottom: 0;
        padding-top: 5px;
 
+       &[data-accepts-new-items="true"] {
+               cursor: text;
+       }
+
        > .item,
        > .input {
                flex: 0 0 auto;