From 64397708fdd706d28918cee8859c68ab8ed925c8 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 6 Jul 2019 18:14:50 +0900 Subject: MisskeyPagesにイベント送信ボタンを追加 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/pages/page-editor/els/page-editor.el.button.vue | 11 ++++++++++- src/client/app/common/views/pages/page/page.button.vue | 10 ++++++++++ src/client/app/common/views/pages/page/page.vue | 6 ++++-- 3 files changed, 24 insertions(+), 3 deletions(-) (limited to 'src/client') diff --git a/src/client/app/common/views/pages/page-editor/els/page-editor.el.button.vue b/src/client/app/common/views/pages/page-editor/els/page-editor.el.button.vue index f89279f05a..579de6a8fc 100644 --- a/src/client/app/common/views/pages/page-editor/els/page-editor.el.button.vue +++ b/src/client/app/common/views/pages/page-editor/els/page-editor.el.button.vue @@ -8,8 +8,15 @@ + - {{ $t('blocks._button._action._dialog.content') }} + + @@ -43,6 +50,8 @@ export default Vue.extend({ if (this.value.text == null) Vue.set(this.value, 'text', ''); if (this.value.action == null) Vue.set(this.value, 'action', 'dialog'); if (this.value.content == null) Vue.set(this.value, 'content', null); + if (this.value.event == null) Vue.set(this.value, 'event', null); + if (this.value.message == null) Vue.set(this.value, 'message', null); }, }); diff --git a/src/client/app/common/views/pages/page/page.button.vue b/src/client/app/common/views/pages/page/page.button.vue index 3747be96ce..9f760bf48c 100644 --- a/src/client/app/common/views/pages/page/page.button.vue +++ b/src/client/app/common/views/pages/page/page.button.vue @@ -27,6 +27,16 @@ export default Vue.extend({ } else if (this.value.action === 'resetRandom') { this.script.aiScript.updateRandomSeed(Math.random()); this.script.eval(); + } else if (this.value.action === 'pushEvent') { + this.$root.api('page-push', { + pageId: this.script.page.id, + event: this.value.event + }); + + this.$root.dialog({ + type: 'success', + text: this.script.interpolate(this.value.message) + }); } } } diff --git a/src/client/app/common/views/pages/page/page.vue b/src/client/app/common/views/pages/page/page.vue index 96a2cfafb7..a93d5316d5 100644 --- a/src/client/app/common/views/pages/page/page.vue +++ b/src/client/app/common/views/pages/page/page.vue @@ -35,8 +35,10 @@ class Script { public aiScript: ASEvaluator; private onError: any; public vars: Record; + public page: Record; - constructor(aiScript, onError) { + constructor(page, aiScript, onError) { + this.page = page; this.aiScript = aiScript; this.onError = onError; this.eval(); @@ -113,7 +115,7 @@ export default Vue.extend({ icon: faStickyNote }); const pageVars = this.getPageVars(); - this.script = new Script(new ASEvaluator(this.page.variables, pageVars, { + this.script = new Script(this.page, new ASEvaluator(this.page.variables, pageVars, { randomSeed: Math.random(), user: page.user, visitor: this.$store.state.i, -- cgit v1.2.3-freya