From 55d4f1b2c2cf0c16fcdac45106ec7a87c60f741e Mon Sep 17 00:00:00 2001 From: Harshad Sharma Date: Thu, 16 May 2024 03:29:20 +0530 Subject: [PATCH] Add items() to liliform and service live page --- lib/freedive_web/live/liliform_live.ex | 13 +++++++-- lib/freedive_web/live/service_live.ex | 40 +++++++++++++++++++++++--- 2 files changed, 47 insertions(+), 6 deletions(-) diff --git a/lib/freedive_web/live/liliform_live.ex b/lib/freedive_web/live/liliform_live.ex index d9cb8b1..8e51d32 100644 --- a/lib/freedive_web/live/liliform_live.ex +++ b/lib/freedive_web/live/liliform_live.ex @@ -1,7 +1,16 @@ defmodule FreediveWeb.LiliformLive do - defmacro __using__(_) do - quote do + defmacro __using__(opts) do + quote location: :keep, bind_quoted: [opts: opts] do use FreediveWeb, :live_view + @behaviour FreediveWeb.LiliformLive + + def mount(_params, _session, socket) do + socket = assign(socket, :opts, unquote(opts)) + socket = assign(socket, :items, items()) + {:ok, socket} + end end end + + @callback items() :: [map] end diff --git a/lib/freedive_web/live/service_live.ex b/lib/freedive_web/live/service_live.ex index 5651999..06718c7 100644 --- a/lib/freedive_web/live/service_live.ex +++ b/lib/freedive_web/live/service_live.ex @@ -1,13 +1,45 @@ defmodule FreediveWeb.ServiceLive do - use FreediveWeb.LiliformLive + use FreediveWeb.LiliformLive, + opts: [ + name: "Services" + ] def render(assigns) do ~H""" - Hello, World! + <%= inspect(@items) %> """ end - def mount(_params, _session, socket) do - {:ok, socket} + def items() do + [ + %{ + name: "sshd", + icon: "blocks", + description: "Secure Shell Daemon", + enabled: true, + running: true + }, + %{ + name: "pf", + icon: "shield", + description: "Packet Filter", + enabled: true, + running: true + }, + %{ + name: "ntpdate", + icon: "clock", + description: "Network Time Protocol Daemon", + enabled: true, + running: false + }, + %{ + name: "httpd", + icon: "globe", + description: "Hypertext Transfer Protocol Daemon", + enabled: false, + running: false + } + ] end end