From 3cb8bbb851daba2df857e1345cc809e5e154ddfc Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan <tgx_world@hotmail.com> Date: Tue, 5 Jul 2016 22:14:59 +0800 Subject: [PATCH] UX: Automatically generate poll name for poll builder. --- .../discourse/components/d-editor.js.es6 | 1 + .../javascripts/controllers/poll-ui-builder.js.es6 | 13 ++++++++----- .../discourse/templates/modals/poll-ui-builder.hbs | 5 ----- plugins/poll/config/locales/client.en.yml | 3 --- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/app/assets/javascripts/discourse/components/d-editor.js.es6 b/app/assets/javascripts/discourse/components/d-editor.js.es6 index 08fc9a55210..d26bdb47b55 100644 --- a/app/assets/javascripts/discourse/components/d-editor.js.es6 +++ b/app/assets/javascripts/discourse/components/d-editor.js.es6 @@ -487,6 +487,7 @@ export default Ember.Component.extend({ applySurround: (head, tail, exampleKey) => this._applySurround(selected, head, tail, exampleKey), applyList: (head, exampleKey) => this._applyList(selected, head, exampleKey), addText: text => this._addText(selected, text), + getText: () => this.get('value'), }; if (button.sendAction) { diff --git a/plugins/poll/assets/javascripts/controllers/poll-ui-builder.js.es6 b/plugins/poll/assets/javascripts/controllers/poll-ui-builder.js.es6 index f7ccb2395b1..2a1bd3b864e 100644 --- a/plugins/poll/assets/javascripts/controllers/poll-ui-builder.js.es6 +++ b/plugins/poll/assets/javascripts/controllers/poll-ui-builder.js.es6 @@ -91,12 +91,17 @@ export default Ember.Controller.extend({ return this._comboboxOptions(1, (parseInt(pollMax) || 1) + 1); }, - @computed("isNumber", "showMinMax", "pollName", "pollType", "publicPoll", "pollOptions", "pollMin", "pollMax", "pollStep") - pollOutput(isNumber, showMinMax, pollName, pollType, publicPoll, pollOptions, pollMin, pollMax, pollStep) { + @computed("isNumber", "showMinMax", "pollType", "publicPoll", "pollOptions", "pollMin", "pollMax", "pollStep") + pollOutput(isNumber, showMinMax, pollType, publicPoll, pollOptions, pollMin, pollMax, pollStep) { let pollHeader = '[poll'; let output = ''; - if (pollName) pollHeader += ` name=${pollName.trim().replace(/\s/g, '-')}`; + const match = this.get("toolbarEvent").getText().match(/\[poll(\s+name=[^\s\]]+)*.*\]/igm); + + if (match) { + pollHeader += ` name=poll${match.length + 1}`; + }; + if (pollType) pollHeader += ` type=${pollType}`; if (pollMin && showMinMax) pollHeader += ` min=${pollMin}`; if (pollMax) pollHeader += ` max=${pollMax}`; @@ -137,8 +142,6 @@ export default Ember.Controller.extend({ _setupPoll() { this.setProperties({ - pollName: '', - pollNamePlaceholder: I18n.t("poll.ui_builder.poll_name.placeholder"), pollType: null, publicPoll: false, pollOptions: '', diff --git a/plugins/poll/assets/javascripts/discourse/templates/modals/poll-ui-builder.hbs b/plugins/poll/assets/javascripts/discourse/templates/modals/poll-ui-builder.hbs index 5177357ab90..ed01df734d7 100644 --- a/plugins/poll/assets/javascripts/discourse/templates/modals/poll-ui-builder.hbs +++ b/plugins/poll/assets/javascripts/discourse/templates/modals/poll-ui-builder.hbs @@ -1,10 +1,5 @@ <div class="modal-body poll-ui-builder"> <form class="poll-ui-builder-form form-horizontal"> - <div class="input-group"> - <label class="input-group-label">{{i18n 'poll.ui_builder.poll_name.label'}}</label> - {{input name="poll-name" value=pollName placeholder=pollNamePlaceholder}} - </div> - <div class="input-group"> <label class="input-group-label">{{i18n 'poll.ui_builder.poll_type.label'}}</label> {{combo-box content=pollTypes diff --git a/plugins/poll/config/locales/client.en.yml b/plugins/poll/config/locales/client.en.yml index a723028a734..d70520a375e 100644 --- a/plugins/poll/config/locales/client.en.yml +++ b/plugins/poll/config/locales/client.en.yml @@ -74,9 +74,6 @@ en: insert: Insert Poll help: options_count: Enter at least 2 options - poll_name: - label: Name - placeholder: Enter Name poll_type: label: Type regular: Single Choice