From e067f8611d36b2ebdee19995ff7e0523337f8314 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Wed, 28 Jun 2017 18:04:21 +0100 Subject: [PATCH] Add modal dialog for editing rules. Currently non-functional, work in progress --- .../admin-plugins-chat-provider.js.es6 | 15 ++++--- .../admin-plugins-chat-edit-rule.js.es6 | 15 +++++++ .../admin/models/filter-rule.js.es6 | 6 +++ .../modal/admin-plugins-chat-edit-rule.hbs | 42 +++++++++++++++++++ config/locales/client.en.yml | 1 + 5 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 assets/javascripts/admin/controllers/modals/admin-plugins-chat-edit-rule.js.es6 create mode 100644 assets/javascripts/admin/templates/modal/admin-plugins-chat-edit-rule.hbs diff --git a/assets/javascripts/admin/controllers/admin-plugins-chat-provider.js.es6 b/assets/javascripts/admin/controllers/admin-plugins-chat-provider.js.es6 index 9c88b03..4d286e1 100644 --- a/assets/javascripts/admin/controllers/admin-plugins-chat-provider.js.es6 +++ b/assets/javascripts/admin/controllers/admin-plugins-chat-provider.js.es6 @@ -1,14 +1,17 @@ import FilterRule from 'discourse/plugins/discourse-chat/admin/models/filter-rule' import { ajax } from 'discourse/lib/ajax'; import computed from "ember-addons/ember-computed-decorators"; +import showModal from 'discourse/lib/show-modal'; + export default Ember.Controller.extend({ - filters: [ - { id: 'watch', name: I18n.t('chat.filter.watch'), icon: 'exclamation-circle' }, - { id: 'follow', name: I18n.t('chat.filter.follow'), icon: 'circle'}, - { id: 'mute', name: I18n.t('chat.filter.mute'), icon: 'times-circle' } - ], - editing: FilterRule.create({}), + + actions:{ + edit(rule){ + console.log(rule.hasDirtyAttributes); + showModal('admin-plugins-chat-edit-rule', { model: rule, admin: true }); + }, + } }); \ No newline at end of file diff --git a/assets/javascripts/admin/controllers/modals/admin-plugins-chat-edit-rule.js.es6 b/assets/javascripts/admin/controllers/modals/admin-plugins-chat-edit-rule.js.es6 new file mode 100644 index 0000000..f4bde63 --- /dev/null +++ b/assets/javascripts/admin/controllers/modals/admin-plugins-chat-edit-rule.js.es6 @@ -0,0 +1,15 @@ +import FilterRule from 'discourse/plugins/discourse-chat/admin/models/filter-rule' +import { ajax } from 'discourse/lib/ajax'; + +export default Ember.Controller.extend({ + + model: FilterRule.create({}), + + actions: { + cancel: function(){ + this.set('model', null); + this.set('workingCopy', null); + this.send('closeModal'); + }, + } +}); \ No newline at end of file diff --git a/assets/javascripts/admin/models/filter-rule.js.es6 b/assets/javascripts/admin/models/filter-rule.js.es6 index c2bd045..3c2744b 100644 --- a/assets/javascripts/admin/models/filter-rule.js.es6 +++ b/assets/javascripts/admin/models/filter-rule.js.es6 @@ -3,6 +3,12 @@ import Category from 'discourse/models/category'; import computed from "ember-addons/ember-computed-decorators"; export default RestModel.extend({ + available_filters: [ + { id: 'watch', name: I18n.t('chat.filter.watch'), icon: 'exclamation-circle' }, + { id: 'follow', name: I18n.t('chat.filter.follow'), icon: 'circle'}, + { id: 'mute', name: I18n.t('chat.filter.mute'), icon: 'times-circle' } + ], + category_id: null, provider: '', channel: '', diff --git a/assets/javascripts/admin/templates/modal/admin-plugins-chat-edit-rule.hbs b/assets/javascripts/admin/templates/modal/admin-plugins-chat-edit-rule.hbs new file mode 100644 index 0000000..7f07fee --- /dev/null +++ b/assets/javascripts/admin/templates/modal/admin-plugins-chat-edit-rule.hbs @@ -0,0 +1,42 @@ +{{#d-modal-body title="chat.edit_rule_modal_title"}} + + +
+
+ + {{category-chooser + name="category" + value=model.categoryId + rootNoneLabel="slack.choose.all_categories" + rootNone=true}} +
+ + {{#if siteSettings.tagging_enabled}} +
+ + {{tag-chooser name="tags" tags=model.tags placeholderKey="slack.choose.tags"}} +
+ {{/if}} + +
+ + {{text-field + name="channel" + value=model.channel + placeholderKey="slack.choose.channel" + class="channel"}} +
+ +
+ + {{combo-box name="filter" content=model.available_filters value=model.filter}} +
+ +
+ +{{/d-modal-body}} + + \ No newline at end of file diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 9cb896f..a6bef80 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -10,6 +10,7 @@ en: delete: "Delete" test_notification: "Test Notification" reset_settings: "Reset Settings" + edit_rule_modal_title: "Edit Rule" integration: telegram: title: "Telegram"