Browse Source

Added the ability to add multiple values

SunRiseGC 4 years ago
parent
commit
615195a3ef
3 changed files with 19 additions and 5 deletions
  1. 1 1
      include/comboLookupEdit.hrl
  2. 1 1
      mix.exs
  3. 17 3
      src/elements/combo/element_comboLookupEdit.erl

+ 1 - 1
include/comboLookupEdit.hrl

@@ -2,6 +2,6 @@
 -define(COMBO_LOOKUP_EDIT_HRL, true).
 
 -include_lib("nitro/include/nitro.hrl").
--record(comboLookupEdit, {?ELEMENT_BASE(element_comboLookupEdit), input, disabled, form}).
+-record(comboLookupEdit, {?ELEMENT_BASE(element_comboLookupEdit), input, disabled, form, values, multiple}).
 
 -endif.

+ 1 - 1
mix.exs

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

+ 17 - 3
src/elements/combo/element_comboLookupEdit.erl

@@ -1,11 +1,13 @@
 -module(element_comboLookupEdit).
 -include_lib("nitro/include/comboLookupEdit.hrl").
 -include_lib("nitro/include/comboLookup.hrl").
+-include_lib("nitro/include/sortable_list.hrl").
 -include_lib("nitro/include/nitro.hrl").
 -include_lib("nitro/include/event.hrl").
 -export([render_element/1]).
 
-render_element(#comboLookupEdit{id=Id, input=Input, disabled=Disabled, validation=Validation, form=Form}) ->
+render_element(#comboLookupEdit{id=Id, input=Input, disabled=Disabled, validation=Validation, form=Form, values=Values, multiple=Multiple}) ->
+  ListId = form:atom([Id, "list"]),
   InputId = element(#element.id, Input),
   nitro:render(
     #panel{
@@ -17,6 +19,15 @@ render_element(#comboLookupEdit{id=Id, input=Input, disabled=Disabled, validatio
           style = "display: flex; position: relative; width: 100%; justify-content: center;",
           body =
             [ Input,
+              case Multiple of
+                true ->
+                  #link{
+                    class = [button, sgreen],
+                    style = "min-width: 40px; text-align: center; height: fit-content; margin-left: 5px;",
+                    onclick = nitro:jse("addSortableItemFrom('#" ++ ListId ++ "', '" ++ InputId ++ "')"),
+                    body = <<"+">>};
+                false -> []
+              end,
               case Disabled of
                 true -> [];
                 _ ->
@@ -24,5 +35,8 @@ render_element(#comboLookupEdit{id=Id, input=Input, disabled=Disabled, validatio
                     id = form:atom([InputId, "form"]),
                     class = ['dropdown-content'],
                     body = #panel{class = ['dropdown-item'], body = Form}
-                  } end ]}
-        ]}).
+                  } end ]},
+            case Multiple of
+              true -> #sortable_list{id = ListId, values = Values, closeable = true, disabled = Disabled};
+              false -> []
+            end ]}).