alias TechRadarEditor.RadarDataPoint
+ def _make_quadrants(radar_data_points) do
+ List.foldl(radar_data_points,
+ %{1 => [], 2 => [], 3 => [], 4 => []},
+ fn(p, acc) -> %{acc | p.quadrant => acc[p.quadrant] ++ [p]} end
+ )
+ end
+
# http://www.cultivatehq.com/posts/how-to-set-different-layouts-in-phoenix/
def index(conn, _params) do
- radar_data_points = Repo.all(RadarDataPoint)
- render conn, "index.html", radar_data_points: radar_data_points, layout: {TechRadarEditor.LayoutView, "radar.html"}
+ changeset = RadarDataPoint.changeset(%RadarDataPoint{})
+ radar_quadrants = _make_quadrants(Repo.all(RadarDataPoint))
+ render conn, "index.html", radar_quadrants: radar_quadrants, changeset: changeset, layout: {TechRadarEditor.LayoutView, "radar.html"}
+ end
+
+ def create(conn, %{"radar_data_point" => radar_data_point_params}) do
+ changeset = RadarDataPoint.changeset(%RadarDataPoint{}, radar_data_point_params)
+
+ case Repo.insert(changeset) do
+ {:ok, _radar_data_point} ->
+ conn
+ |> put_flash(:info, "Radar data point created successfully.")
+ |> redirect(to: radar_path(conn, :index), layout: {TechRadarEditor.LayoutView, "radar.html"} )
+ {:error, changeset} ->
+ render(conn, "new.html", changeset: changeset)
+ end
end
+
+ def delete(conn, %{"id" => id}) do
+ radar_data_point = Repo.get!(RadarDataPoint, id)
+ Repo.delete!(radar_data_point)
+
+ conn
+ |> put_flash(:info, "Radar data point " <> id <> " successfully deleted.")
+ |> redirect(to: radar_path(conn, :index), layout: {TechRadarEditor.LayoutView, "radar.html"} )
+ end
+
end