diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 6666e630a3..e63d501651 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -2035,6 +2035,8 @@ pages: _pushEvent: event: "イベント名" message: "押したときに表示するメッセージ" + variable: "送信する変数" + no-variable: "なし" script: categories: 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 04001d8560..6a82b0eec9 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 @@ -17,6 +17,17 @@ @@ -39,6 +50,9 @@ export default Vue.extend({ value: { required: true }, + aiScript: { + required: true, + }, }, data() { @@ -53,7 +67,8 @@ export default Vue.extend({ 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); - if (this.value.message == null) Vue.set(this.value, 'primary', false); + if (this.value.primary == null) Vue.set(this.value, 'primary', false); + if (this.value.var == null) Vue.set(this.value, 'var', 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 d3f0307625..4dc6570019 100644 --- a/src/client/app/common/views/pages/page/page.button.vue +++ b/src/client/app/common/views/pages/page/page.button.vue @@ -30,7 +30,10 @@ export default Vue.extend({ } else if (this.value.action === 'pushEvent') { this.$root.api('page-push', { pageId: this.script.page.id, - event: this.value.event + event: this.value.event, + ...(this.value.var ? { + var: this.script.vars[this.value.var] + } : {}) }); this.$root.dialog({ diff --git a/src/server/api/endpoints/page-push.ts b/src/server/api/endpoints/page-push.ts index 300df7c250..f5e1a4d1eb 100644 --- a/src/server/api/endpoints/page-push.ts +++ b/src/server/api/endpoints/page-push.ts @@ -16,6 +16,10 @@ export const meta = { event: { validator: $.str + }, + + var: { + validator: $.optional.nullable.any } }, @@ -37,6 +41,7 @@ export default define(meta, async (ps, user) => { publishMainStream(user.id, 'pageEvent', { pageId: ps.pageId, event: ps.event, + var: ps.var, user: await Users.pack(user, page.userId, { detail: true })