diff --git a/app/models/grid.rb b/app/models/grid.rb index 1f3b76d..b491fd8 100644 --- a/app/models/grid.rb +++ b/app/models/grid.rb @@ -1,5 +1,5 @@ class Grid < ActiveRecord::Base belongs_to :map - has_many :pathways + has_many :pathways, :dependent => :delete_all validates :name, presence: true, allow_blank: false end diff --git a/client/dashboard/organizers/OrganizersDashboardController.js b/client/dashboard/organizers/OrganizersDashboardController.js index 94c4392..d9a6459 100644 --- a/client/dashboard/organizers/OrganizersDashboardController.js +++ b/client/dashboard/organizers/OrganizersDashboardController.js @@ -10,7 +10,7 @@ angular.module('caac.dashboard.organizers.controller', [ var logger = $log.getInstance('OrganizersDashboardController'); TitleService.set('Organizers Dashboard'); - self.comingSoon= function() { + self.comingSoon = function() { alert('Coming soon!'); }; self.path = OrganizersService.path; diff --git a/client/dashboard/organizers/map/MapController.js b/client/dashboard/organizers/map/MapController.js index 74df7ae..a5e9796 100644 --- a/client/dashboard/organizers/map/MapController.js +++ b/client/dashboard/organizers/map/MapController.js @@ -56,11 +56,17 @@ angular.module('caac.dashboard.organizers.map.controller', [ // ====== self.editGrid = function(grid) { - alert("Edit" + grid.name); + var name = prompt("Okay! Let's edit '" + grid.name + "'. What should its new name be?"); + GridsService.edit(grid, name).then(function(res) { + grid.name = name; + }); }; self.editPathway = function(pathway) { - alert("Edit " + pathway.name); + var name = prompt("Okay! Let's edit '" + pathway.name + "'. What should its new name be?"); + PathwaysService.edit(pathway, name).then(function(res) { + pathway.name = name; + }); }; @@ -68,11 +74,23 @@ angular.module('caac.dashboard.organizers.map.controller', [ // ====== self.deleteGrid = function(grid) { - alert("Delete " + grid.name); + if (confirm("Really delete grid '" + grid.name + "'?")) { + GridsService.delete_(grid).then(function(res) { + var i = self.grids.indexOf(grid); + self.grids.splice(i, 1); + self.selectGrid(self.grids[i-1]); + }); + } }; self.deletePathway = function(pathway) { - alert("Delete " + pathway.name); + if (confirm("Really delete pathway '" + pathway.name + "'?")) { + PathwaysService.delete_(pathway).then(function(res) { + var i = self.currentGrid.pathways.indexOf(pathway); + self.currentGrid.pathways.splice(i, 1); + self.selectPathway(self.currentGrid.pathways[i-1]); + }); + } }; diff --git a/client/dashboard/organizers/map/MapView.html b/client/dashboard/organizers/map/MapView.html index d733791..5f7c475 100644 --- a/client/dashboard/organizers/map/MapView.html +++ b/client/dashboard/organizers/map/MapView.html @@ -5,13 +5,13 @@