diff --git a/lib/frenzy/rule.ex b/lib/frenzy/rule.ex index d347f85..b303507 100644 --- a/lib/frenzy/rule.ex +++ b/lib/frenzy/rule.ex @@ -7,7 +7,6 @@ defmodule Frenzy.Rule do field :property, :string field :param, :string field :weight, :integer - field :delete, :boolean, virtual: true belongs_to :filter, Frenzy.Filter @@ -17,16 +16,7 @@ defmodule Frenzy.Rule do @doc false def changeset(rule, attrs) do rule - |> cast(attrs, [:mode, :property, :param, :weight, :delete]) - |> set_delete_action() + |> cast(attrs, [:mode, :property, :param, :weight]) |> validate_required([:mode, :property, :param, :weight]) end - - def set_delete_action(changeset) do - if get_change(changeset, :delete) do - %{changeset | action: :delete} - else - changeset - end - end end diff --git a/lib/frenzy_web/controllers/filter_controller.ex b/lib/frenzy_web/controllers/filter_controller.ex index 5ea28e1..690bda1 100644 --- a/lib/frenzy_web/controllers/filter_controller.ex +++ b/lib/frenzy_web/controllers/filter_controller.ex @@ -33,4 +33,10 @@ defmodule FrenzyWeb.FilterController do redirect(conn, to: Routes.filter_path(Endpoint, :edit, id)) end + + def remove_rule(conn, %{"id" => id, "rule_id" => rule_id}) do + rule = Repo.get(Rule, rule_id) + Repo.delete(rule) + redirect(conn, to: Routes.filter_path(Endpoint, :edit, id)) + end end diff --git a/lib/frenzy_web/router.ex b/lib/frenzy_web/router.ex index 9456985..5b3a71c 100644 --- a/lib/frenzy_web/router.ex +++ b/lib/frenzy_web/router.ex @@ -27,6 +27,7 @@ defmodule FrenzyWeb.Router do resources "/filters", FilterController, only: [:edit, :update] post "/filters/:id/add_rule", FilterController, :add_rule + post "/filters/:id/remove_rule", FilterController, :remove_rule resources "/items", ItemController, only: [:show] post "/items/:id/read", ItemController, :read diff --git a/lib/frenzy_web/templates/filter/edit.html.eex b/lib/frenzy_web/templates/filter/edit.html.eex index aa0f269..f8739c4 100644 --- a/lib/frenzy_web/templates/filter/edit.html.eex +++ b/lib/frenzy_web/templates/filter/edit.html.eex @@ -15,7 +15,6 @@