summaryrefslogtreecommitdiff
path: root/src/client/app/common/views/pages/page
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-04-30 06:40:02 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-04-30 06:40:02 +0900
commit2e8e5c2751aba86a03c564dc7aa2dc7e595caac5 (patch)
tree1e4725871dc04d45a955328a23482640bee150a7 /src/client/app/common/views/pages/page
parentFix ogp (diff)
downloadmisskey-2e8e5c2751aba86a03c564dc7aa2dc7e595caac5.tar.gz
misskey-2e8e5c2751aba86a03c564dc7aa2dc7e595caac5.tar.bz2
misskey-2e8e5c2751aba86a03c564dc7aa2dc7e595caac5.zip
Improve MisskeyPages
* ifブロック を追加 * ボタンやスイッチなどのテキストに変数使えるようにした
Diffstat (limited to 'src/client/app/common/views/pages/page')
-rw-r--r--src/client/app/common/views/pages/page/page.block.vue3
-rw-r--r--src/client/app/common/views/pages/page/page.button.vue2
-rw-r--r--src/client/app/common/views/pages/page/page.if.vue30
-rw-r--r--src/client/app/common/views/pages/page/page.input.vue2
-rw-r--r--src/client/app/common/views/pages/page/page.switch.vue2
-rw-r--r--src/client/app/common/views/pages/page/page.vue1
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();