File tree Expand file tree Collapse file tree 4 files changed +52
-1
lines changed
nerves_hub_web/live/support_scripts Expand file tree Collapse file tree 4 files changed +52
-1
lines changed Original file line number Diff line number Diff line change @@ -20,4 +20,12 @@ defmodule NervesHub.AuditLogs.ProductTemplates do
2020
2121 AuditLogs . audit! ( user , product , description )
2222 end
23+
24+ @ spec audit_script_deleted ( User . t ( ) , Product . t ( ) , Script . t ( ) ) :: AuditLog . t ( )
25+ def audit_script_deleted ( user , product , script ) do
26+ description =
27+ "User #{ user . name } removed script named #{ script . name } from product #{ product . name } "
28+
29+ AuditLogs . audit! ( user , product , description )
30+ end
2331end
Original file line number Diff line number Diff line change @@ -87,4 +87,20 @@ defmodule NervesHub.Scripts do
8787 { :error , changeset }
8888 end
8989 end
90+
91+ @ spec delete ( non_neg_integer ( ) , Product . t ( ) , User . t ( ) ) ::
92+ { :ok , Ecto.Schema . t ( ) } | { :error , Ecto.Changeset . t ( ) }
93+ def delete ( id , product , user ) do
94+ get_by_product_and_id! ( product , id )
95+ |> Repo . delete ( )
96+ |> case do
97+ { :ok , script } ->
98+ ProductTemplates . audit_script_deleted ( user , product , script )
99+
100+ { :ok , script }
101+
102+ err ->
103+ err
104+ end
105+ end
90106end
Original file line number Diff line number Diff line change 4545 < div class = "text-xs tracking-wide text-zinc-400 " > Make sure this is valid Elixir and will not crash the device</ div >
4646 </ div >
4747 </ div >
48- < div class = "flex justify-between items-center h-14 px-4 border-t border-zinc-700 " >
48+ < div class = "flex justify-start gap-4 items-center h-14 px-4 border-t border-zinc-700 " >
4949 < . button style = "secondary " type = "submit " >
5050 < . icon name = "save " /> Save changes
5151 </ . button >
52+
53+ < . button style = "danger " phx-click = "delete-script " phx-value-id = { @ script . id } data-confirm = "Are you sure you want to delete this script? " >
54+ < . icon name = "trash " /> Delete Script
55+ </ . button >
5256 </ div >
5357 </ div >
5458 </ . form >
Original file line number Diff line number Diff line change @@ -42,4 +42,27 @@ defmodule NervesHubWeb.Live.SupportScripts.Edit do
4242 |> noreply ( )
4343 end
4444 end
45+
46+ @ impl Phoenix.LiveView
47+ def handle_event (
48+ "delete-script" ,
49+ % { "id" => id } ,
50+ % { assigns: % { org: org , org_user: org_user , product: product } } = socket
51+ ) do
52+ authorized! ( :"support_script:delete" , org_user )
53+
54+ case Scripts . delete ( id , product , org_user . user ) do
55+ { :ok , _ } ->
56+ socket
57+ |> put_flash ( :info , "Support Script deleted" )
58+ |> send_toast ( :info , "Support Script deleted successfully." )
59+ |> push_navigate ( to: ~p" /org/#{ org . name } /#{ product . name } /scripts" )
60+ |> noreply ( )
61+
62+ { :error , _ } ->
63+ socket
64+ |> send_toast ( :error , "There was an error deleting the Support Script." )
65+ |> noreply ( )
66+ end
67+ end
4568end
You can’t perform that action at this time.
0 commit comments