From 77a50eac42d1a3142c2937d9ffbc020cc8a7fd30 Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Thu, 2 Mar 2017 12:49:35 +1100 Subject: [PATCH] Show confirmation message when creating/updating/deleting Schedules --- .../admin/resources/services/schedules.js.coffee | 5 ++++- config/locales/en.yml | 3 +++ spec/features/admin/schedules_spec.rb | 9 +++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/admin/resources/services/schedules.js.coffee b/app/assets/javascripts/admin/resources/services/schedules.js.coffee index d8fb5eca26..ae31375d07 100644 --- a/app/assets/javascripts/admin/resources/services/schedules.js.coffee +++ b/app/assets/javascripts/admin/resources/services/schedules.js.coffee @@ -1,4 +1,4 @@ -angular.module("admin.resources").factory "Schedules", ($q, $injector, RequestMonitor, ScheduleResource, OrderCycles, Dereferencer) -> +angular.module("admin.resources").factory "Schedules", ($q, $injector, RequestMonitor, ScheduleResource, OrderCycles, Dereferencer, StatusMessage) -> new class Schedules # all: [] byID: {} @@ -17,6 +17,7 @@ angular.module("admin.resources").factory "Schedules", ($q, $injector, RequestMo @byID[schedule.id] = schedule if schedule.id? Dereferencer.dereference(schedule.order_cycles, OrderCycles.byID) orderCycle.schedules.push(schedule) for orderCycle in schedule.order_cycles + StatusMessage.display 'success', "#{t('admin.order_cycles.index.created_schedule')}: '#{schedule.name}'" update: (params) => ScheduleResource.update params, (schedule) => @@ -28,6 +29,7 @@ angular.module("admin.resources").factory "Schedules", ($q, $injector, RequestMo for orderCycle in schedule.order_cycles when orderCycle.id not in @byID[schedule.id].order_cycle_ids orderCycle.schedules.push(@byID[schedule.id]) angular.extend(@byID[schedule.id], schedule) + StatusMessage.display 'success', "#{t('admin.order_cycles.index.updated_schedule')}: '#{schedule.name}'" remove: (schedule) -> params = id: schedule.id @@ -36,6 +38,7 @@ angular.module("admin.resources").factory "Schedules", ($q, $injector, RequestMo if orderCycle.schedules # Only if we need to update the schedules orderCycle.schedules.splice(i, 1) for s, i in orderCycle.schedules by -1 when s.id == schedule.id delete @byID[schedule.id] + StatusMessage.display 'success', "#{t('admin.order_cycles.index.deleted_schedule')}: '#{schedule.name}'" , (response) => errors = response.data.errors if errors? diff --git a/config/locales/en.yml b/config/locales/en.yml index 0328aa4ff2..2dea4fe9ff 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -704,6 +704,9 @@ en: create_schedule: Create Schedule update_schedule: Update Schedule delete_schedule: Delete Schedule + created_schedule: Created schedule + updated_schedule: Updated schedule + deleted_schedule: Deleted schedule schedule_name_placeholder: Schedule Name name_required_error: Please enter a name for this schedule no_order_cycles_error: Please select at least one order cycle (drag and drop) diff --git a/spec/features/admin/schedules_spec.rb b/spec/features/admin/schedules_spec.rb index b3f995bcea..b842942612 100644 --- a/spec/features/admin/schedules_spec.rb +++ b/spec/features/admin/schedules_spec.rb @@ -41,6 +41,9 @@ feature 'Schedules', js: true do click_button "Create Schedule" end + save_bar = find("#save-bar") + expect(save_bar).to have_content "Created schedule: 'Fortnightly'" + within ".order-cycle-#{oc1.id} td.schedules" do expect(page).to have_selector "a", text: "Weekly" expect(page).to have_selector "a", text: "Fortnightly" @@ -74,6 +77,9 @@ feature 'Schedules', js: true do click_button "Update Schedule" end + save_bar = find("#save-bar") + expect(save_bar).to have_content "Updated schedule: 'Weekly'" + within ".order-cycle-#{oc1.id} td.schedules" do expect(page).to have_selector "a", text: "Weekly" expect(page).to have_selector "a", text: "Fortnightly" @@ -103,6 +109,9 @@ feature 'Schedules', js: true do click_button "Delete Schedule" end + save_bar = find("#save-bar") + expect(save_bar).to have_content "Deleted schedule: 'Weekly'" + within ".order-cycle-#{oc1.id} td.schedules" do expect(page).to have_no_selector "a", text: "Weekly" end