Browse Source

comboLookupVec fix for disabled

SunRiseGC 3 years ago
parent
commit
8a4923599b

+ 1 - 1
mix.exs

@@ -4,7 +4,7 @@ defmodule NITRO.Mixfile do
   def project do
     [
       app: :nitro,
-      version: "6.10.3",
+      version: "6.10.4",
       description: "NITRO Nitrogen Web Framework",
       package: package(),
       deps: deps()

+ 3 - 2
priv/js/sortable.js

@@ -180,7 +180,8 @@ function () {
     key: "getValues",
     value: function getValues() {
       return Array.from(this.items.map(function(item) {
-        let text = item.children[1].firstChild.innerHTML;
+        let list = Array.from(item.children).find(x => x.getAttribute("list-item-content"));
+        let text = list.firstChild.innerHTML;
         let bind = item.getAttribute('data-bind');
         if (bind) return { 'text': text, 'bind': bind };
         return text;
@@ -223,7 +224,7 @@ function appendItemFromBind(dom,value,bind) {
   template.innerHTML =
     '<div class="list__item" data-sortable-item="data-sortable-item" style="" data-bind="'+ bind + '">' +
        '<div class="list__item-close" onclick="removeSortableItem(\'#' + sortable.list.id + '\', this.parentNode);"></div>' +
-       '<div class="list__item-content"><div class="list__item-title">' + value + '</div></div>' +
+       '<div class="list__item-content" list-item-content="list-item-content"><div class="list__item-title">' + value + '</div></div>' +
        '<div class="list__item-handle" data-sortable-handle="data-sortable-handle"></div>' +
     '</div>'
   var new_item = template.content.firstChild;

+ 22 - 26
src/elements/combo/element_sortable_item.erl

@@ -5,33 +5,29 @@
 -export([render_element/1]).
 
 render_element(#sortable_item{list_id=ListId, value=Value, bind=Bind, closeable=Close, disabled=Disabled}) ->
-  Item = case Disabled of
-    true ->
+  Item =
+    #panel{
+      class = <<"list__item">>,
+      data_fields = [ {<<"data-sortable-item">>,<<"data-sortable-item">>} |
+        case Bind of
+          [] -> [];
+          _ -> [{<<"data-bind">>, base64:encode(term_to_binary(Bind))}] end ],
+      body = [
+        case Close of
+          true ->
+            #panel{
+              class = <<"list__item-close">>,
+              onclick = nitro:jse("removeSortableItem('#" ++ ListId ++ "', this.parentNode);")};
+          _ -> [] end,
       #panel{
-        class = <<"list__item">>,
-        body = #panel{
-            class = <<"list__item-content">>,
-            style = <<"width:100%">>,
-            body = #panel{ class = <<"list__item-title">>, body = Value}}};
-    _ ->
-      #panel{
-        class = <<"list__item">>,
-        data_fields = [ {<<"data-sortable-item">>,<<"data-sortable-item">>} |
-          case Bind of
-            [] -> [];
-            _ -> [{<<"data-bind">>, base64:encode(term_to_binary(Bind))}] end ],
-        body = [
-          case Close of
-            true -> 
-              #panel{
-                class = <<"list__item-close">>,
-                onclick = nitro:jse("removeSortableItem('#" ++ ListId ++ "', this.parentNode);")};
-            _ -> [] end,
-          #panel{
-            class = <<"list__item-content">>,
-            style = case Close of true -> []; _ -> <<"width:100% - 40px">> end,
-            body = #panel{ class = <<"list__item-title">>, body = Value}},
+        class = <<"list__item-content">>,
+        data_fields = [{<<"list-item-content">>,<<"list-item-content">>}],
+        style = case Close of true -> []; _ -> <<"width:100% - 40px">> end,
+        body = #panel{ class = <<"list__item-title">>, body = Value}},
+      case Disabled of
+        true -> [];
+        _ ->
           #panel{
             class = <<"list__item-handle">>,
-            data_fields = [{<<"data-sortable-handle">>,<<"data-sortable-handle">>}]}]} end,
+            data_fields = [{<<"data-sortable-handle">>,<<"data-sortable-handle">>}]} end]},
   nitro:render(Item).

+ 1 - 0
src/elements/combo/element_sortable_list.erl

@@ -8,6 +8,7 @@
 render_element(#sortable_list{id = Id, values = Values, closeable = Close, disabled = Disabled}) ->
   case Disabled of
     true ->
+      nitro:wire("createSortable('#" ++ Id ++ "');"),
       Closeable = false;
     _ ->
       nitro:wire("createSortable('#" ++ Id ++ "');"),