From b1affe07a1ff0b7f10cdc94b91dfea97d92b015c Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 12 May 2017 12:54:10 +0100 Subject: Issue inline edit title field [ci skip] --- .../javascripts/issue_show/components/app.vue | 20 +++++++++++- .../issue_show/components/fields/title.vue | 32 +++++++++++++++++++ .../javascripts/issue_show/components/title.vue | 36 ++++++++++++++++------ app/assets/javascripts/issue_show/index.js | 17 ---------- app/assets/javascripts/issue_show/stores/index.js | 4 ++- spec/javascripts/issue_show/components/app_spec.js | 12 ++++++++ .../issue_show/components/fields/title_spec.js | 30 ++++++++++++++++++ .../issue_show/components/title_spec.js | 13 ++++++-- 8 files changed, 133 insertions(+), 31 deletions(-) create mode 100644 app/assets/javascripts/issue_show/components/fields/title.vue create mode 100644 spec/javascripts/issue_show/components/fields/title_spec.js diff --git a/app/assets/javascripts/issue_show/components/app.vue b/app/assets/javascripts/issue_show/components/app.vue index a9418dd0bb2..5c253bfd0c1 100644 --- a/app/assets/javascripts/issue_show/components/app.vue +++ b/app/assets/javascripts/issue_show/components/app.vue @@ -57,8 +57,14 @@ export default { store, state: store.state, formState: store.formState, + showForm: false, }; }, + computed: { + elementType() { + return this.showForm ? 'form' : 'div'; + }, + }, components: { descriptionComponent, titleComponent, @@ -90,6 +96,14 @@ export default { }); }, }, + methods: { + openForm() { + this.showForm = true; + this.store.formState = { + title: this.state.titleText, + }; + }, + }, created() { this.service = new Service(this.endpoint); this.poll = new Poll({ @@ -117,17 +131,21 @@ export default { eventHub.$on('delete.issuable', this.deleteIssuable); eventHub.$on('update.issuable', this.updateIssuable); + eventHub.$on('open.form', this.openForm); }, beforeDestroy() { eventHub.$off('delete.issuable', this.deleteIssuable); eventHub.$off('update.issuable', this.updateIssuable); + eventHub.$on('open.form', this.openForm); }, };