From 2fe6f4c17482ecd779b5fee7cbd7c0521859853f Mon Sep 17 00:00:00 2001 From: Adam Piontek Date: Thu, 25 Mar 2021 20:31:32 -0400 Subject: [PATCH] fixing page titles, fleshing out readme --- README.md | 81 ++++++++++++++++++- .../controllers/user_shifts_csv_controller.ex | 2 +- .../live/shift_assign_live/index.ex | 1 + .../live/shift_import_live/index.ex | 1 + lib/shift73k_web/live/shift_live/index.ex | 2 +- .../live/shift_template_live/index.ex | 2 +- lib/shift73k_web/live/user/settings.ex | 1 + .../templates/layout/root.html.leex | 2 +- 8 files changed, 86 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e825e73c..6c9be698 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,83 @@ Calendaring app for shift-worker shift tracking, with support for CSV export and sharing work schedule with others. -## Tech +Written in Elixir & Phoenix LiveView, with Bootstrap v5. -Written in Elixir & Phoenix LiveView. +## TODO + +- [ ] Ability to edit shifts? +- [ ] Proper modal to delete shifts? +- [ ] Allow all-day items for notes, or require hours even for sick days? + +## Deploying + +### New versions + +When improvements are made, we can update the deployed version like so: + +```shell +cd /opt/shift73k +git pull 73k master +mix deps.get --only prod +MIX_ENV=prod mix compile +# might not be needed: +MIX_ENV=prod mix ecto.migrate +# rebuild static assets: +rm -rf priv/static/ +npm run deploy --prefix ./assets +MIX_ENV=prod mix phx.digest +MIX_ENV=prod mix release --overwrite +# test starting it: +MIX_ENV=prod _build/prod/rel/shift73k/bin/shift73k start +``` + +### systemd unit: + +```ini +[Unit] +Description=Shift73k service +After=local-fs.target network.target + +[Service] +Type=simple +User=runuser +Group=runuser +WorkingDirectory=/opt/shift73k/_build/prod/rel/shift73k +ExecStart=/opt/shift73k/_build/prod/rel/shift73k/bin/shift73k start +ExecStop=/opt/shift73k/_build/prod/rel/shift73k/bin/shift73k stop +#EnvironmentFile=/etc/default/myApp.env +Environment=LANG=en_US.utf8 +Environment=MIX_ENV=prod +#Environment=PORT=4000 +LimitNOFILE=65535 +UMask=0027 +SyslogIdentifier=shift73k +Restart=always + +[Install] +WantedBy=multi-user.target +``` + +### nginx config: + +```conf +upstream phoenix { + server 127.0.0.1:4000 max_fails=5 fail_timeout=60s; +} +server { + location / { + allow all; + # Proxy Headers + proxy_http_version 1.1; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header X-Cluster-Client-Ip $remote_addr; + proxy_set_header X-Real-IP $remote_addr; + proxy_redirect off; + # WebSockets + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_pass http://phoenix; + } +} +``` \ No newline at end of file diff --git a/lib/shift73k_web/controllers/user_shifts_csv_controller.ex b/lib/shift73k_web/controllers/user_shifts_csv_controller.ex index 7c1099e2..61ecffe9 100644 --- a/lib/shift73k_web/controllers/user_shifts_csv_controller.ex +++ b/lib/shift73k_web/controllers/user_shifts_csv_controller.ex @@ -5,7 +5,7 @@ defmodule Shift73kWeb.UserShiftsCsvController do alias Shift73k.Shifts.Shift def new(conn, _params) do - render(conn, "new.html") + render(conn, "new.html", page_title: "CSV Export") end def export(conn, %{"csv_export" => request_params}) do diff --git a/lib/shift73k_web/live/shift_assign_live/index.ex b/lib/shift73k_web/live/shift_assign_live/index.ex index 4d12c2e5..613e1404 100644 --- a/lib/shift73k_web/live/shift_assign_live/index.ex +++ b/lib/shift73k_web/live/shift_assign_live/index.ex @@ -13,6 +13,7 @@ defmodule Shift73kWeb.ShiftAssignLive.Index do def mount(_params, session, socket) do socket |> assign_defaults(session) + |> assign(:page_title, "Schedule Shifts") |> assign(:custom_shift, @custom_shift) |> assign(:show_template_btn_active, false) |> assign(:show_template_details, false) diff --git a/lib/shift73k_web/live/shift_import_live/index.ex b/lib/shift73k_web/live/shift_import_live/index.ex index 710e6b60..7cff996c 100644 --- a/lib/shift73k_web/live/shift_import_live/index.ex +++ b/lib/shift73k_web/live/shift_import_live/index.ex @@ -13,6 +13,7 @@ defmodule Shift73kWeb.ShiftImportLive.Index do socket |> assign_defaults(session) + |> assign(:page_title, "iCal Import") |> assign(:url_valid, false) |> assign(:url_validated, false) |> assign(:tz_valid, true) diff --git a/lib/shift73k_web/live/shift_live/index.ex b/lib/shift73k_web/live/shift_live/index.ex index 7346cd62..fed63da0 100644 --- a/lib/shift73k_web/live/shift_live/index.ex +++ b/lib/shift73k_web/live/shift_live/index.ex @@ -35,7 +35,7 @@ defmodule Shift73kWeb.ShiftLive.Index do defp apply_action(socket, :index, _params) do socket - |> assign(:page_title, "Listing Shifts") + |> assign(:page_title, "My Shifts") |> assign(:shift, nil) end diff --git a/lib/shift73k_web/live/shift_template_live/index.ex b/lib/shift73k_web/live/shift_template_live/index.ex index 8cea1922..708279a2 100644 --- a/lib/shift73k_web/live/shift_template_live/index.ex +++ b/lib/shift73k_web/live/shift_template_live/index.ex @@ -59,7 +59,7 @@ defmodule Shift73kWeb.ShiftTemplateLive.Index do defp apply_action(socket, :index, _params) do socket - |> assign(:page_title, "Listing Shift templates") + |> assign(:page_title, "My Shift Templates") |> assign(:shift_template, nil) end diff --git a/lib/shift73k_web/live/user/settings.ex b/lib/shift73k_web/live/user/settings.ex index 1e48ff26..76bdfb42 100644 --- a/lib/shift73k_web/live/user/settings.ex +++ b/lib/shift73k_web/live/user/settings.ex @@ -8,6 +8,7 @@ defmodule Shift73kWeb.UserLive.Settings do def mount(_params, session, socket) do socket |> assign_defaults(session) + |> assign(:page_title, "User Settings") |> alert_email_verified?() |> live_okreply() end diff --git a/lib/shift73k_web/templates/layout/root.html.leex b/lib/shift73k_web/templates/layout/root.html.leex index 0650e836..5e83ab33 100644 --- a/lib/shift73k_web/templates/layout/root.html.leex +++ b/lib/shift73k_web/templates/layout/root.html.leex @@ -5,7 +5,7 @@ <%= csrf_meta_tag() %> - <%= live_title_tag assigns[:page_title] || "Shift73k", suffix: " · Phoenix Framework" %> + <%= live_title_tag assigns[:page_title] || "", suffix: assigns[:page_title] && " · Shift73k" || "Shift73k" %> "/>