From 2a6f9c8445c400330baa2c550d8d6755bd0a542e Mon Sep 17 00:00:00 2001 From: Jude N Date: Tue, 4 Jul 2017 00:16:59 -0400 Subject: [PATCH] checkpoint: create/delete working now / existing tests passing / need moar tests --- TODO.md | 12 ++---- test/controllers/page_controller_test.exs | 2 +- .../radar_data_point_controller_test.exs | 4 +- test/models/radar_data_point_test.exs | 3 +- web/controllers/radar_controller.ex | 19 ++++++-- web/router.ex | 8 +++- web/static/vendor/base.css | 1 + web/templates/layout/radar.html.eex | 7 +-- web/templates/radar/index.html.eex | 43 ++++++++++--------- web/templates/radar_data_point/new.html.eex | 1 + web/templates/radar_data_point/show.html.eex | 4 +- 11 files changed, 57 insertions(+), 47 deletions(-) diff --git a/TODO.md b/TODO.md index 0eab2ab..d68841e 100644 --- a/TODO.md +++ b/TODO.md @@ -1,7 +1,5 @@ - Bugs: - - Top of 'Techniques is cut off' - - Right hand side is cut off a lot: only the 'H' of 'HOLD' is shown ! - - Bottom of the radar is truncated as well + - Why's the trial and adopt ections so much larger than the asses and hold ? - Big Features - The ability to drag and drop items within the map @@ -19,10 +17,6 @@ - Include 'ecto_enum' to support enums: https://github.com/gjaldon/ecto_enum#using-postgress-enum-type -- Get the d3.js libraries moved into the Phoenix framework +- Move new-items and ref-table divs to a sliding panal -- Update the tech-radar index form to generate the form based on the database contents - -- Update the /radar page to include input forms for each of the cycles - - Only show the form if a '+' button is clicked on the cycle row / 'clicking '-' hides the input row - - clicking '-' item next to a row deletes it / removes it from the radar +- Resize the radar so its reactive ( diff --git a/test/controllers/page_controller_test.exs b/test/controllers/page_controller_test.exs index 65703ec..bc1bd34 100644 --- a/test/controllers/page_controller_test.exs +++ b/test/controllers/page_controller_test.exs @@ -3,6 +3,6 @@ defmodule TechRadarEditor.PageControllerTest do test "GET /", %{conn: conn} do conn = get conn, "/" - assert html_response(conn, 200) =~ "Welcome to Phoenix!" + assert html_response(conn, 200) =~ "Pwan.co Radar" end end diff --git a/test/controllers/radar_data_point_controller_test.exs b/test/controllers/radar_data_point_controller_test.exs index fdc1540..d687e34 100644 --- a/test/controllers/radar_data_point_controller_test.exs +++ b/test/controllers/radar_data_point_controller_test.exs @@ -2,7 +2,7 @@ defmodule TechRadarEditor.RadarDataPointControllerTest do use TechRadarEditor.ConnCase alias TechRadarEditor.RadarDataPoint - @valid_attrs %{cycle: 42, description: "some content", is_new: true, name: "some content", quadrant: 42} + @valid_attrs %{cycle: 2, description: "some content", is_new: true, name: "some content", quadrant: 2} @invalid_attrs %{} test "lists all entries on index", %{conn: conn} do @@ -26,7 +26,7 @@ defmodule TechRadarEditor.RadarDataPointControllerTest do assert html_response(conn, 200) =~ "New radar data point" end - test "shows chosen resource", %{conn: conn} do + test "show s chosen resource", %{conn: conn} do radar_data_point = Repo.insert! %RadarDataPoint{} conn = get conn, radar_data_point_path(conn, :show, radar_data_point) assert html_response(conn, 200) =~ "Show radar data point" diff --git a/test/models/radar_data_point_test.exs b/test/models/radar_data_point_test.exs index 3430379..72fba9c 100644 --- a/test/models/radar_data_point_test.exs +++ b/test/models/radar_data_point_test.exs @@ -3,7 +3,7 @@ defmodule TechRadarEditor.RadarDataPointTest do alias TechRadarEditor.RadarDataPoint - @valid_attrs %{cycle: 42, description: "some content", is_new: true, name: "some content", quadrant: 42} + @valid_attrs %{cycle: 2, description: "some content", is_new: true, name: "some content", quadrant: 2} @invalid_attrs %{} test "changeset with valid attributes" do @@ -15,4 +15,5 @@ defmodule TechRadarEditor.RadarDataPointTest do changeset = RadarDataPoint.changeset(%RadarDataPoint{}, @invalid_attrs) refute changeset.valid? end + end diff --git a/web/controllers/radar_controller.ex b/web/controllers/radar_controller.ex index 44126db..916a24c 100644 --- a/web/controllers/radar_controller.ex +++ b/web/controllers/radar_controller.ex @@ -12,17 +12,30 @@ defmodule TechRadarEditor.RadarController do # http://www.cultivatehq.com/posts/how-to-set-different-layouts-in-phoenix/ def index(conn, _params) do + changeset = RadarDataPoint.changeset(%RadarDataPoint{}) radar_quadrants = _make_quadrants(Repo.all(RadarDataPoint)) - render conn, "index.html", radar_quadrants: radar_quadrants, layout: {TechRadarEditor.LayoutView, "radar.html"} + 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 - # UNTESTED 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.") + |> put_flash(:info, "Radar data point " <> id <> " successfully deleted.") |> redirect(to: radar_path(conn, :index), layout: {TechRadarEditor.LayoutView, "radar.html"} ) end diff --git a/web/router.ex b/web/router.ex index ca8c506..7b20d95 100644 --- a/web/router.ex +++ b/web/router.ex @@ -18,8 +18,12 @@ defmodule TechRadarEditor.Router do # get "/", PageController, :index # get "/radar", RadarController, :index - get "/original", PageController, :index - get "/", RadarController, :index + +# get "/original", PageController, :index +# get "/", RadarController, :index +# post "/", RadarController, :create # ???? + + resources "/", RadarController, only: [:index, :create, :delete] end scope "/admin", TechRadarEditor do diff --git a/web/static/vendor/base.css b/web/static/vendor/base.css index 7c56d53..2295b64 100644 --- a/web/static/vendor/base.css +++ b/web/static/vendor/base.css @@ -53,6 +53,7 @@ svg { fill: #000; display: none; } svg text.line-text { + font-size: 12px; font-weight: bold; text-transform: uppercase; fill: #000; } diff --git a/web/templates/layout/radar.html.eex b/web/templates/layout/radar.html.eex index ee4092b..88f6538 100644 --- a/web/templates/layout/radar.html.eex +++ b/web/templates/layout/radar.html.eex @@ -2,14 +2,9 @@ - Thoughtworks Radar 2014 + Pwan.co Radar 02017 - - - " rel="stylesheet" type="text/css" /> diff --git a/web/templates/radar/index.html.eex b/web/templates/radar/index.html.eex index e2892e4..28684e9 100644 --- a/web/templates/radar/index.html.eex +++ b/web/templates/radar/index.html.eex @@ -3,7 +3,7 @@
-
+ <%= form_for @changeset, radar_path(@conn, :create), fn f -> %> @@ -16,33 +16,24 @@
- + <%= select f, :quadrant, Enum.with_index(TechRadarEditor.RadarDataPoint.quadrants,1) %> - + <%= select f, :cycle, Enum.with_index(TechRadarEditor.RadarDataPoint.cycles,1) %> - + <%= text_input f, :name %> - + <%= text_input f, :description %> - + <%= hidden_input f, :is_new, value: "true" %> + <%= submit "Add", class: "btn btn-primary" %>
-
+ <% end %>
@@ -88,8 +79,12 @@ radar.setThirdQuadrant(platformsQuadrant); radar.setFourthQuadrant(languageFramework); - // var radarGraph = new tr.graphing.Radar(1080, radar); - var radarGraph = new tr.graphing.Radar(1100, radar); + var innerWidth = window.innerWidth; + var innerHeight = window.innerHeight; + + radarSize = Math.min(innerWidth-20, innerHeight-20, 1080); + + var radarGraph = new tr.graphing.Radar(radarSize, radar); radarGraph.init('#radar').plot(); var refTable = new tr.graphing.RefTable(radar); refTable.init('#ref-table').render(); @@ -98,8 +93,14 @@ for (var i = 0, trow; trow = ref_table.rows[i]; i++) { if (trow.cells.length == 3) { var blip_number = trow.cells[0].textContent; - var new_cell = trow.insertCell(-1); - new_cell.innerHTML = "Delete" + var new_cell = trow.insertCell(-1); + s_form = "
"; + s_form += ""; + s_form += "Delete"; + s_form += "\">"; + s_form += "
"; + // new_cell.innerHTML = "Delete"; + new_cell.innerHTML = s_form; }; }; diff --git a/web/templates/radar_data_point/new.html.eex b/web/templates/radar_data_point/new.html.eex index f0644cd..93f68e0 100644 --- a/web/templates/radar_data_point/new.html.eex +++ b/web/templates/radar_data_point/new.html.eex @@ -1,3 +1,4 @@ +

New radar data point

<%= render "form.html", changeset: @changeset, diff --git a/web/templates/radar_data_point/show.html.eex b/web/templates/radar_data_point/show.html.eex index 2e53795..a87eee9 100644 --- a/web/templates/radar_data_point/show.html.eex +++ b/web/templates/radar_data_point/show.html.eex @@ -4,12 +4,12 @@
  • Quadrant: - <%= Enum.at(TechRadarEditor.RadarDataPoint.quadrants, @radar_data_point.quadrant-1) %> + <%= if @radar_data_point.quadrant != nil, do: Enum.at(TechRadarEditor.RadarDataPoint.quadrants, @radar_data_point.quadrant-1), else: '' %>
  • Cycle: - <%= Enum.at(TechRadarEditor.RadarDataPoint.cycles, @radar_data_point.cycle-1) %> + <%= if @radar_data_point.cycle != nil, do: Enum.at(TechRadarEditor.RadarDataPoint.cycles, @radar_data_point.cycle-1), else: '' %>
  • -- 2.39.2