|
15 | 15 | </.header>
|
16 | 16 |
|
17 | 17 | <.table id="links" rows={@streams.links} phx-hook="Sorting">
|
18 |
| - <:col :let={{_id, _link}}> |
19 |
| - <% publish_future = _link.publish_at && DateTime.compare(_link.publish_at, DateTime.utc_now()) == :gt %> |
| 18 | + <:col :let={{_id, link}} > |
| 19 | + <% publish_future = publish_in_future?(link) %> |
20 | 20 | <.icon name="hero-bars-3 cursor-pointer ml-4" class={"handle w-5 h-5 #{if publish_future, do: "opacity-50"}"} />
|
21 | 21 | </:col>
|
| 22 | + |
22 | 23 | <:col :let={{_id, link}} label="Name">
|
23 |
| - <% publish_future = link.publish_at && DateTime.compare(link.publish_at, DateTime.utc_now()) == :gt %> |
| 24 | + <% publish_future = publish_in_future?(link) %> |
24 | 25 | <p class={"font-semibold text-zinc-900 #{if publish_future, do: "opacity-50"}"}><%= link.name %></p>
|
25 | 26 | </:col>
|
| 27 | + |
26 | 28 | <:col :let={{_id, link}} label="Emoji">
|
27 |
| - <% publish_future = link.publish_at && DateTime.compare(link.publish_at, DateTime.utc_now()) == :gt %> |
| 29 | + <% publish_future = publish_in_future?(link) %> |
28 | 30 | <span class={if publish_future, do: "opacity-50"}>
|
29 | 31 | <.emoji code={link.emoji} />
|
30 | 32 | </span>
|
31 | 33 | </:col>
|
| 34 | + |
32 | 35 | <:col :let={{_id, link}} label="URL">
|
33 |
| - <% publish_future = link.publish_at && DateTime.compare(link.publish_at, DateTime.utc_now()) == :gt %> |
| 36 | + <% publish_future = publish_in_future?(link) %> |
34 | 37 | <.link target="_blank" class={"hover:text-brand hover:underline #{if publish_future, do: "opacity-50"}"} navigate={link.url}>
|
35 | 38 | <%= truncate_elipsis(link.url, 50) %>
|
36 | 39 | </.link>
|
37 | 40 | </:col>
|
| 41 | + |
| 42 | + <:col :let={{_id, link}} label="Time Left"> |
| 43 | + <% publish_future = publish_in_future?(link) %> |
| 44 | + <%= if publish_future do %> |
| 45 | + <div |
| 46 | + id="timer-countdown" |
| 47 | + phx-hook="Timer" |
| 48 | + data-finish-time={DateTime.to_unix(link.publish_at)}> |
| 49 | + 00:00:00 |
| 50 | + </div> |
| 51 | + <% else %> |
| 52 | + <h1>No time</h1> |
| 53 | + <% end %> |
| 54 | + </:col> |
| 55 | + |
38 | 56 | <:col :let={{_id, link}} label="Clicks">
|
39 |
| - <% publish_future = link.publish_at && DateTime.compare(link.publish_at, DateTime.utc_now()) == :gt %> |
| 57 | + <% publish_future = publish_in_future?(link) %> |
40 | 58 | <p class={if publish_future, do: "opacity-50"}>
|
41 | 59 | <%= link.visits %>
|
42 | 60 | </p>
|
43 | 61 | </:col>
|
| 62 | + |
44 | 63 | <:col :let={{_id, link}} label="Attention">
|
45 |
| - <% publish_future = link.publish_at && DateTime.compare(link.publish_at, DateTime.utc_now()) == :gt %> |
| 64 | + <% publish_future = publish_in_future?(link) %> |
46 | 65 | <input type="checkbox" disabled={true} checked={link.attention} class={"self-center block rounded-md text-gray-600 #{if publish_future, do: "opacity-50"}"} />
|
47 |
| - </:col> |
48 |
| - <:action :let={{_id, link}}> |
49 |
| - <% publish_future = link.publish_at && DateTime.compare(link.publish_at, DateTime.utc_now()) == :gt %> |
| 66 | + </:col> |
| 67 | + |
| 68 | + <:action :let={{_id, link}} > |
| 69 | + <% publish_future = publish_in_future?(link) %> |
50 | 70 | <.link patch={~p"/admin/links/#{link}/edit"}>
|
51 | 71 | <.icon name="hero-pencil" class={"w-5 h-5 #{if publish_future, do: "opacity-50"}"} />
|
52 | 72 | </.link>
|
53 | 73 | </:action>
|
54 |
| - <:action :let={{_id, link}}> |
55 |
| - <% publish_future = link.publish_at && DateTime.compare(link.publish_at, DateTime.utc_now()) == :gt %> |
| 74 | + |
| 75 | + <:action :let={{_id, link}} > |
| 76 | + <% publish_future = publish_in_future?(link) %> |
56 | 77 | <.link patch={~p"/admin/links/#{link}/archive"}>
|
57 | 78 | <.icon name="hero-archive-box" class={"w-5 h-5 #{if publish_future, do: "opacity-50"}"} />
|
58 | 79 | </.link>
|
59 | 80 | </:action>
|
60 | 81 | </.table>
|
61 | 82 |
|
| 83 | + |
62 | 84 | <.modal :if={@live_action in [:new, :edit]} id="link-modal" show on_cancel={JS.patch(~p"/admin/links")}>
|
63 | 85 | <.live_component module={CesiumLinkWeb.LinkLive.FormComponent} id={@link.id || :new} title={@page_title} action={@live_action} link={@link} patch={~p"/admin/links"} />
|
64 | 86 | </.modal>
|
|
0 commit comments