diff options
| author | mo khan <mo@mokhan.ca> | 2014-11-10 20:14:59 -0700 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2014-11-10 20:14:59 -0700 |
| commit | 59dc5a5a76b0bdedfee1f2de609a0a69e2e84061 (patch) | |
| tree | 9b06cef55a57e1a997663e7050c15a357be10d55 | |
| parent | 9705e4a5b7233df19072d6186dbaf402551b3066 (diff) | |
add ability to delete a service.
| -rw-r--r-- | app/assets/javascripts/controllers/service.js.coffee | 6 | ||||
| -rw-r--r-- | app/assets/javascripts/controllers/services_new.js.coffee | 2 | ||||
| -rw-r--r-- | app/assets/javascripts/templates/service.hbs | 2 | ||||
| -rw-r--r-- | app/controllers/services_controller.rb | 7 | ||||
| -rw-r--r-- | app/models/service.rb | 2 | ||||
| -rw-r--r-- | app/views/services/create.json.jbuilder | 2 | ||||
| -rw-r--r-- | config/routes.rb | 2 | ||||
| -rw-r--r-- | spec/controllers/services_controller_spec.rb | 9 |
8 files changed, 26 insertions, 6 deletions
diff --git a/app/assets/javascripts/controllers/service.js.coffee b/app/assets/javascripts/controllers/service.js.coffee index 057b6ee..7d0fbbc 100644 --- a/app/assets/javascripts/controllers/service.js.coffee +++ b/app/assets/javascripts/controllers/service.js.coffee @@ -1 +1,5 @@ -App.ServiceController = Ember.ObjectController.extend() +App.ServiceController = Ember.ObjectController.extend + actions: + deleteService: -> + @get('model').destroyRecord().then => + @transitionToRoute('services') diff --git a/app/assets/javascripts/controllers/services_new.js.coffee b/app/assets/javascripts/controllers/services_new.js.coffee index cbf9f39..4b52a87 100644 --- a/app/assets/javascripts/controllers/services_new.js.coffee +++ b/app/assets/javascripts/controllers/services_new.js.coffee @@ -5,6 +5,6 @@ App.ServicesNewController = Ember.Controller.extend if App.Service.valid(fields) service = @store.createRecord('service', @get('fields')) service.save().then => - @transitionTo('services', service) + @transitionTo('services') else @set('showError', true) diff --git a/app/assets/javascripts/templates/service.hbs b/app/assets/javascripts/templates/service.hbs index 0e3c38d..64d2012 100644 --- a/app/assets/javascripts/templates/service.hbs +++ b/app/assets/javascripts/templates/service.hbs @@ -1,4 +1,6 @@ <h3>{{name}}</h3> +<a href="#" {{action "deleteService"}}>delete</a> {{#link-to 'service.environments' this}}environments{{/link-to}} + {{outlet}} diff --git a/app/controllers/services_controller.rb b/app/controllers/services_controller.rb index d7875fe..b24b1fe 100644 --- a/app/controllers/services_controller.rb +++ b/app/controllers/services_controller.rb @@ -4,7 +4,12 @@ class ServicesController < ApplicationController end def create - Service.create!(application_params) + @service = Service.create!(application_params) + end + + def destroy + Service.find(params[:id]).destroy! + render json: {} end private diff --git a/app/models/service.rb b/app/models/service.rb index 1d65f8b..6244cc1 100644 --- a/app/models/service.rb +++ b/app/models/service.rb @@ -1,3 +1,3 @@ class Service < ActiveRecord::Base - has_many :environments + has_many :environments, dependent: :destroy end diff --git a/app/views/services/create.json.jbuilder b/app/views/services/create.json.jbuilder index ada7a83..f19d9c1 100644 --- a/app/views/services/create.json.jbuilder +++ b/app/views/services/create.json.jbuilder @@ -1,3 +1,3 @@ json.service do - json.partial! service, service: @service + json.partial! @service, service: @service end diff --git a/config/routes.rb b/config/routes.rb index 5b87c30..3b840d4 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,7 +1,7 @@ Erkell::Application.routes.draw do resources :sessions, only: [:new, :create, :destroy] resources :videos, only: [:index, :create, :update, :destroy] - resources :services, only: [:index, :create] + resources :services, only: [:index, :create, :destroy] resources :environments, only: [:index, :show, :create, :destroy] get 'dashboard', to: 'dashboard#index' diff --git a/spec/controllers/services_controller_spec.rb b/spec/controllers/services_controller_spec.rb index 3655674..209a447 100644 --- a/spec/controllers/services_controller_spec.rb +++ b/spec/controllers/services_controller_spec.rb @@ -25,4 +25,13 @@ describe ServicesController do expect(Service.last.name).to eql('blah') end end + + describe "#destroy" do + let(:service) { create(:service) } + + it 'deletes the services' do + xhr :delete, :destroy, id: service.id + expect(Service.count).to eql(0) + end + end end |
