diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2019-04-30 06:40:02 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2019-04-30 06:40:02 +0900 |
| commit | 2e8e5c2751aba86a03c564dc7aa2dc7e595caac5 (patch) | |
| tree | 1e4725871dc04d45a955328a23482640bee150a7 /src/client/app/common/views/pages/page | |
| parent | Fix ogp (diff) | |
| download | misskey-2e8e5c2751aba86a03c564dc7aa2dc7e595caac5.tar.gz misskey-2e8e5c2751aba86a03c564dc7aa2dc7e595caac5.tar.bz2 misskey-2e8e5c2751aba86a03c564dc7aa2dc7e595caac5.zip | |
Improve MisskeyPages
* ifブロック を追加
* ボタンやスイッチなどのテキストに変数使えるようにした
Diffstat (limited to 'src/client/app/common/views/pages/page')
6 files changed, 36 insertions, 4 deletions
diff --git a/src/client/app/common/views/pages/page/page.block.vue b/src/client/app/common/views/pages/page/page.block.vue index 48a89f9de7..e3a758ed4e 100644 --- a/src/client/app/common/views/pages/page/page.block.vue +++ b/src/client/app/common/views/pages/page/page.block.vue @@ -10,10 +10,11 @@ import XImage from './page.image.vue'; import XButton from './page.button.vue'; import XInput from './page.input.vue'; import XSwitch from './page.switch.vue'; +import XIf from './page.if.vue'; export default Vue.extend({ components: { - XText, XSection, XImage, XButton, XInput, XSwitch + XText, XSection, XImage, XButton, XInput, XSwitch, XIf }, props: { 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 5063d27122..b77d856d5d 100644 --- a/src/client/app/common/views/pages/page/page.button.vue +++ b/src/client/app/common/views/pages/page/page.button.vue @@ -1,6 +1,6 @@ <template> <div> - <ui-button class="kudkigyw" @click="click()">{{ value.text }}</ui-button> + <ui-button class="kudkigyw" @click="click()">{{ script.interpolate(value.text) }}</ui-button> </div> </template> diff --git a/src/client/app/common/views/pages/page/page.if.vue b/src/client/app/common/views/pages/page/page.if.vue new file mode 100644 index 0000000000..9dbeaf64fb --- /dev/null +++ b/src/client/app/common/views/pages/page/page.if.vue @@ -0,0 +1,30 @@ +<template> +<div v-show="script.vars.find(x => x.name === value.var).value"> + <x-block v-for="child in value.children" :value="child" :page="page" :script="script" :key="child.id" :h="h"/> +</div> +</template> + +<script lang="ts"> +import Vue from 'vue'; + +export default Vue.extend({ + props: { + value: { + required: true + }, + script: { + required: true + }, + page: { + required: true + }, + h: { + required: true + } + }, + + beforeCreate() { + this.$options.components.XBlock = require('./page.block.vue').default + }, +}); +</script> diff --git a/src/client/app/common/views/pages/page/page.input.vue b/src/client/app/common/views/pages/page/page.input.vue index cda5550337..9f4cfd91f3 100644 --- a/src/client/app/common/views/pages/page/page.input.vue +++ b/src/client/app/common/views/pages/page/page.input.vue @@ -1,6 +1,6 @@ <template> <div> - <ui-input class="kudkigyw" v-model="v" :type="value.inputType">{{ value.text }}</ui-input> + <ui-input class="kudkigyw" v-model="v" :type="value.inputType">{{ script.interpolate(value.text) }}</ui-input> </div> </template> diff --git a/src/client/app/common/views/pages/page/page.switch.vue b/src/client/app/common/views/pages/page/page.switch.vue index 962ab84bb5..d36ecbfba1 100644 --- a/src/client/app/common/views/pages/page/page.switch.vue +++ b/src/client/app/common/views/pages/page/page.switch.vue @@ -1,6 +1,6 @@ <template> <div class="hkcxmtwj"> - <ui-switch v-model="v">{{ value.text }}</ui-switch> + <ui-switch v-model="v">{{ script.interpolate(value.text) }}</ui-switch> </div> </template> diff --git a/src/client/app/common/views/pages/page/page.vue b/src/client/app/common/views/pages/page/page.vue index e7e8f76d53..7cbd3ed81b 100644 --- a/src/client/app/common/views/pages/page/page.vue +++ b/src/client/app/common/views/pages/page/page.vue @@ -38,6 +38,7 @@ class Script { } public interpolate(str: string) { + if (str == null) return null; return str.replace(/\{(.+?)\}/g, match => { const v = this.vars.find(x => x.name === match.slice(1, -1).trim()).value; return v == null ? 'NULL' : v.toString(); |