diff options
author | Clement Ho <ClemMakesApps@gmail.com> | 2017-05-05 13:23:31 -0500 |
---|---|---|
committer | Clement Ho <ClemMakesApps@gmail.com> | 2017-05-05 13:23:31 -0500 |
commit | 48e4991907aa9046c25323af53afc3b7eaa895c4 (patch) | |
tree | da2fc72eeb92f3b4a94d4a64062f32c796f82228 /app/assets | |
parent | 933447e0da19f9d0be8574185500cabb5d7ab012 (diff) | |
download | gitlab-ce-48e4991907aa9046c25323af53afc3b7eaa895c4.tar.gz |
Add sidebar specsadd-sidebar-specs
Diffstat (limited to 'app/assets')
4 files changed, 22 insertions, 13 deletions
diff --git a/app/assets/javascripts/sidebar/components/time_tracking/sidebar_time_tracking.js b/app/assets/javascripts/sidebar/components/time_tracking/sidebar_time_tracking.js index e2dba1fb0c2..244b67b3ad9 100644 --- a/app/assets/javascripts/sidebar/components/time_tracking/sidebar_time_tracking.js +++ b/app/assets/javascripts/sidebar/components/time_tracking/sidebar_time_tracking.js @@ -17,15 +17,21 @@ export default { }, methods: { listenForSlashCommands() { - $(document).on('ajax:success', '.gfm-form', (e, data) => { - const subscribedCommands = ['spend_time', 'time_estimate']; - const changedCommands = data.commands_changes + $(document).on('ajax:success', '.gfm-form', this.slashCommandListened); + }, + slashCommandListened(e, data) { + const subscribedCommands = ['spend_time', 'time_estimate']; + let changedCommands; + if (data !== undefined) { + changedCommands = data.commands_changes ? Object.keys(data.commands_changes) : []; - if (changedCommands && _.intersection(subscribedCommands, changedCommands).length) { - this.mediator.fetch(); - } - }); + } else { + changedCommands = []; + } + if (changedCommands && _.intersection(subscribedCommands, changedCommands).length) { + this.mediator.fetch(); + } }, }, mounted() { diff --git a/app/assets/javascripts/sidebar/sidebar_bundle.js b/app/assets/javascripts/sidebar/sidebar_bundle.js index 2ce53c2ed30..2b02af87d8a 100644 --- a/app/assets/javascripts/sidebar/sidebar_bundle.js +++ b/app/assets/javascripts/sidebar/sidebar_bundle.js @@ -4,7 +4,7 @@ import sidebarAssignees from './components/assignees/sidebar_assignees'; import Mediator from './sidebar_mediator'; -document.addEventListener('DOMContentLoaded', () => { +function domContentLoaded() { const mediator = new Mediator(gl.sidebarOptions); mediator.fetch(); @@ -17,5 +17,8 @@ document.addEventListener('DOMContentLoaded', () => { } new Vue(sidebarTimeTracking).$mount('#issuable-time-tracker'); -}); +} +document.addEventListener('DOMContentLoaded', domContentLoaded); + +export default domContentLoaded; diff --git a/app/assets/javascripts/sidebar/sidebar_mediator.js b/app/assets/javascripts/sidebar/sidebar_mediator.js index c13f3391f0d..5ccfb4ee9c1 100644 --- a/app/assets/javascripts/sidebar/sidebar_mediator.js +++ b/app/assets/javascripts/sidebar/sidebar_mediator.js @@ -30,8 +30,8 @@ export default class SidebarMediator { this.service.get() .then((response) => { const data = response.json(); - this.store.processAssigneeData(data); - this.store.processTimeTrackingData(data); + this.store.setAssigneeData(data); + this.store.setTimeTrackingData(data); }) .catch(() => new Flash('Error occured when fetching sidebar data')); } diff --git a/app/assets/javascripts/sidebar/stores/sidebar_store.js b/app/assets/javascripts/sidebar/stores/sidebar_store.js index 94408c4d715..2d44c05bb8d 100644 --- a/app/assets/javascripts/sidebar/stores/sidebar_store.js +++ b/app/assets/javascripts/sidebar/stores/sidebar_store.js @@ -17,13 +17,13 @@ export default class SidebarStore { return SidebarStore.singleton; } - processAssigneeData(data) { + setAssigneeData(data) { if (data.assignees) { this.assignees = data.assignees; } } - processTimeTrackingData(data) { + setTimeTrackingData(data) { this.timeEstimate = data.time_estimate; this.totalTimeSpent = data.total_time_spent; this.humanTimeEstimate = data.human_time_estimate; |