Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion lib/cesium_link/links.ex
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,11 @@ defmodule CesiumLink.Links do

"""
def list_unarchived_links_by_index do
Repo.all(from l in Link, where: l.archived == false, order_by: [asc: l.index])
Link
|> where([l], fragment("? <= now() OR ? IS NULL", l.publish_at, l.publish_at))
|> where([l], not l.archived)
|> order_by([l], asc: l.index)
|> Repo.all()
end

@doc """
Expand Down
3 changes: 2 additions & 1 deletion lib/cesium_link/links/link.ex
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ defmodule CesiumLink.Links.Link do
use CesiumLink.Schema

@required_fields ~w(name emoji url attention edited_at)a
@optional_fields ~w(index archived visits)a
@optional_fields ~w(index archived visits publish_at)a

schema "links" do
field :archived, :boolean, default: false
Expand All @@ -16,6 +16,7 @@ defmodule CesiumLink.Links.Link do
field :url, :string
field :visits, :integer, default: 0
field :edited_at, :utc_datetime
field :publish_at, :utc_datetime

timestamps(type: :utc_datetime)
end
Expand Down
3 changes: 3 additions & 0 deletions lib/cesium_link_web/live/link_live/form_component.ex
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ defmodule CesiumLinkWeb.LinkLive.FormComponent do
<.input field={@form[:emoji]} type="emoji" label="Emoji" />
<.input field={@form[:url]} type="text" label="URL" />
<.input field={@form[:attention]} type="checkbox" label="Attention" />
<%= if @action == :new do %>
<.input field={@form[:publish_at]} type="datetime-local" label="Publish At" />
<% end %>
<:actions>
<.button phx-disable-with="Saving...">Save Link</.button>
</:actions>
Expand Down
9 changes: 9 additions & 0 deletions priv/repo/migrations/20240918181533_add_link_scheduling.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
defmodule CesiumLink.Repo.Migrations.AddLinkScheduling do
use Ecto.Migration

def change do
alter table(:links) do
add :publish_at, :utc_datetime
end
end
end