diff options
author | Phil Hughes <me@iamphill.com> | 2017-05-30 11:58:50 +0100 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2017-05-30 11:58:50 +0100 |
commit | df7c90116ba1203f1cb1150bb99fa5a4c99e0280 (patch) | |
tree | 85c6c5ed86f2372ff3ebdfc6a888cbf7540a44dc /app/assets/javascripts | |
parent | 3465e1e52c812a4a4f4fe941ab04569ebf2a2c12 (diff) | |
download | gitlab-ce-df7c90116ba1203f1cb1150bb99fa5a4c99e0280.tar.gz |
fixed issuable shortcuts not working
moved setstate method into store
Diffstat (limited to 'app/assets/javascripts')
6 files changed, 27 insertions, 7 deletions
diff --git a/app/assets/javascripts/issue_show/components/app.vue b/app/assets/javascripts/issue_show/components/app.vue index ed367c780c6..800bb9f1fe8 100644 --- a/app/assets/javascripts/issue_show/components/app.vue +++ b/app/assets/javascripts/issue_show/components/app.vue @@ -108,7 +108,7 @@ export default { openForm() { if (!this.showForm) { this.showForm = true; - this.store.formState = Object.assign(this.store.formState, { + this.store.setFormState({ title: this.state.titleText, confidential: this.isConfidential, description: this.state.descriptionText, @@ -126,7 +126,9 @@ export default { confirm('Are you sure you want to move this issue to another project?') : true; // eslint-disable-line no-alert if (!canPostUpdate) { - this.store.formState.updateLoading = false; + this.store.setFormState({ + updateLoading: false, + }); return; } diff --git a/app/assets/javascripts/issue_show/mixins/animate.js b/app/assets/javascripts/issue_show/mixins/animate.js index eda6302aa8b..4816393da1f 100644 --- a/app/assets/javascripts/issue_show/mixins/animate.js +++ b/app/assets/javascripts/issue_show/mixins/animate.js @@ -4,7 +4,7 @@ export default { this.preAnimation = true; this.pulseAnimation = false; - this.$nextTick(() => { + setTimeout(() => { this.preAnimation = false; this.pulseAnimation = true; }); diff --git a/app/assets/javascripts/issue_show/stores/index.js b/app/assets/javascripts/issue_show/stores/index.js index fbb95866671..4a16c3cb4dc 100644 --- a/app/assets/javascripts/issue_show/stores/index.js +++ b/app/assets/javascripts/issue_show/stores/index.js @@ -38,4 +38,8 @@ export default class Store { description: this.state.descriptionText !== data.description_text, }; } + + setFormState(state) { + this.formState = Object.assign(this.formState, state); + } } diff --git a/app/assets/javascripts/shortcuts_issuable.js b/app/assets/javascripts/shortcuts_issuable.js index dace03554e8..51448252c0f 100644 --- a/app/assets/javascripts/shortcuts_issuable.js +++ b/app/assets/javascripts/shortcuts_issuable.js @@ -77,7 +77,9 @@ import './shortcuts_navigation'; ShortcutsIssuable.prototype.editIssue = function() { var $editBtn; $editBtn = $('.issuable-edit'); - return gl.utils.visitUrl($editBtn.attr('href')); + // Need to click the element as on issues, editing is inline + // on merge request, editing is on a different page + $editBtn.get(0).click(); }; ShortcutsIssuable.prototype.openSidebarDropdown = function(name) { diff --git a/app/assets/javascripts/vue_shared/components/markdown/field.vue b/app/assets/javascripts/vue_shared/components/markdown/field.vue index fe9f4993d33..e6977681e96 100644 --- a/app/assets/javascripts/vue_shared/components/markdown/field.vue +++ b/app/assets/javascripts/vue_shared/components/markdown/field.vue @@ -69,7 +69,7 @@ <template> <div - class="md-area prepend-top-default append-bottom-default" + class="md-area prepend-top-default append-bottom-default js-vue-markdown-field" ref="gl-form"> <markdown-header :preview-markdown="previewMarkdown" diff --git a/app/assets/javascripts/vue_shared/components/markdown/header.vue b/app/assets/javascripts/vue_shared/components/markdown/header.vue index 7884b25c5ef..1a11f493b7f 100644 --- a/app/assets/javascripts/vue_shared/components/markdown/header.vue +++ b/app/assets/javascripts/vue_shared/components/markdown/header.vue @@ -16,12 +16,24 @@ toolbarButton, }, methods: { - toggleMarkdownPreview(e) { - e.target.blur(); + toggleMarkdownPreview(e, form) { + if (form && !form.find('.js-vue-markdown-field').length) { + return; + } else if (e.target.blur) { + e.target.blur(); + } this.$emit('toggle-markdown'); }, }, + mounted() { + $(document).on('markdown-preview:show.vue', this.toggleMarkdownPreview); + $(document).on('markdown-preview:hide.vue', this.toggleMarkdownPreview); + }, + beforeDestroy() { + $(document).on('markdown-preview:show.vue', this.toggleMarkdownPreview); + $(document).off('markdown-preview:hide.vue', this.toggleMarkdownPreview); + }, }; </script> |