diff --git a/lib/frenzy_web/controllers/pipeline_controller.ex b/lib/frenzy_web/controllers/pipeline_controller.ex index b459b52..5accbc5 100644 --- a/lib/frenzy_web/controllers/pipeline_controller.ex +++ b/lib/frenzy_web/controllers/pipeline_controller.ex @@ -3,6 +3,7 @@ defmodule FrenzyWeb.PipelineController do alias Frenzy.{Repo, Pipeline} alias FrenzyWeb.Endpoint import Ecto.Query + import Phoenix.LiveView.Controller plug :user_owns_pipeline @@ -77,7 +78,7 @@ defmodule FrenzyWeb.PipelineController do redirect(conn, to: Routes.pipeline_path(Endpoint, :index)) end - def edit(conn, _params) do + def edit(conn, %{"json" => _}) do pipeline = conn.assigns[:pipeline] {:ok, stages_json} = Jason.encode(pipeline.stages, pretty: true) @@ -89,6 +90,11 @@ defmodule FrenzyWeb.PipelineController do }) end + def edit(conn, _params) do + pipeline = conn.assigns[:pipeline] + live_render(conn, FrenzyWeb.EditPipelineLive, session: %{"pipeline_id" => pipeline.id}) + end + def update(conn, %{"pipeline" => %{"name" => name, "stages" => stages_json}}) do pipeline = conn.assigns[:pipeline] diff --git a/lib/frenzy_web/live/edit_pipeline_live.ex b/lib/frenzy_web/live/edit_pipeline_live.ex index 850eec8..7a3542f 100644 --- a/lib/frenzy_web/live/edit_pipeline_live.ex +++ b/lib/frenzy_web/live/edit_pipeline_live.ex @@ -12,7 +12,7 @@ defmodule FrenzyWeb.EditPipelineLive do def stages, do: @stages @impl true - def mount(%{"id" => pipeline_id}, _session, socket) do + def mount(_, %{"pipeline_id" => pipeline_id}, socket) do pipeline = Repo.get(Pipeline, pipeline_id) {:ok, diff --git a/lib/frenzy_web/live/edit_pipeline_live.html.leex b/lib/frenzy_web/live/edit_pipeline_live.html.leex index c39f493..3d44d58 100644 --- a/lib/frenzy_web/live/edit_pipeline_live.html.leex +++ b/lib/frenzy_web/live/edit_pipeline_live.html.leex @@ -1,5 +1,7 @@

Edit <%= @pipeline.name %>

+" class="btn btn-primary">Edit as JSON + <%= for {stage, index} <- Enum.with_index(@pipeline.stages) do %>
@@ -22,7 +24,7 @@
<% end %> -<%= f = form_for :stage, "#", [class: "mt-4", phx_submit: :add_stage] %> +<%= f = form_for :stage, "#", [class: "mt-4 mb-4", phx_submit: :add_stage] %>
diff --git a/lib/frenzy_web/router.ex b/lib/frenzy_web/router.ex index 43d3ed7..39c161e 100644 --- a/lib/frenzy_web/router.ex +++ b/lib/frenzy_web/router.ex @@ -54,8 +54,7 @@ defmodule FrenzyWeb.Router do resources "/feeds", FeedController, except: [:index, :new] post "/feeds/:id/refresh", FeedController, :refresh - resources "/pipelines", PipelineController, except: [:edit] - live "/pipelines/:id/edit", EditPipelineLive + resources "/pipelines", PipelineController resources "/items", ItemController, only: [:show] post "/items/:id/read", ItemController, :read diff --git a/lib/frenzy_web/templates/pipeline/edit.html.eex b/lib/frenzy_web/templates/pipeline/edit.html.eex index 1ad20fa..042b293 100644 --- a/lib/frenzy_web/templates/pipeline/edit.html.eex +++ b/lib/frenzy_web/templates/pipeline/edit.html.eex @@ -1,5 +1,7 @@

Edit Pipeline

+Edit UI + <%= form_tag Routes.pipeline_path(@conn, :update, @pipeline.id), method: :put do %>
diff --git a/lib/frenzy_web/templates/pipeline/show.html.eex b/lib/frenzy_web/templates/pipeline/show.html.eex index 582a73b..101dd2b 100644 --- a/lib/frenzy_web/templates/pipeline/show.html.eex +++ b/lib/frenzy_web/templates/pipeline/show.html.eex @@ -1,7 +1,7 @@

<%= @pipeline.name %>

Stages: <%= @pipeline.stages |> Enum.count() %>

-Edit Pipeline +Edit Pipeline <%= form_tag Routes.pipeline_path(@conn, :delete, @pipeline.id), method: :delete do %> <%= submit "Delete Pipeline", class: "btn btn-danger mt-2" %> <% end %>