summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-04-18 21:29:19 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-04-18 21:29:19 +0900
commit8b92feac7174558ea2e4d2e0c69dffa69c6aac5d (patch)
treee232ac25f8be84a39dc7680f6c10b2606ef9f8ad /src
parentFix #4734 (#4745) (diff)
downloadsharkey-8b92feac7174558ea2e4d2e0c69dffa69c6aac5d.tar.gz
sharkey-8b92feac7174558ea2e4d2e0c69dffa69c6aac5d.tar.bz2
sharkey-8b92feac7174558ea2e4d2e0c69dffa69c6aac5d.zip
Resolve #4732
Diffstat (limited to 'src')
-rw-r--r--src/client/app/common/views/components/settings/api.vue12
-rw-r--r--src/client/app/common/views/components/ui/input.vue12
-rw-r--r--src/server/api/endpoints/endpoints.ts15
3 files changed, 36 insertions, 3 deletions
diff --git a/src/client/app/common/views/components/settings/api.vue b/src/client/app/common/views/components/settings/api.vue
index 4f1b755857..74e3eb0661 100644
--- a/src/client/app/common/views/components/settings/api.vue
+++ b/src/client/app/common/views/components/settings/api.vue
@@ -14,7 +14,7 @@
<section>
<header><fa icon="terminal"/> {{ $t('console.title') }}</header>
- <ui-input v-model="endpoint">
+ <ui-input v-model="endpoint" :datalist="endpoints">
<span>{{ $t('console.endpoint') }}</span>
</ui-input>
<ui-textarea v-model="body">
@@ -39,15 +39,23 @@ import * as JSON5 from 'json5';
export default Vue.extend({
i18n: i18n('common/views/components/api-settings.vue'),
+
data() {
return {
endpoint: '',
body: '{}',
res: null,
- sending: false
+ sending: false,
+ endpoints: []
};
},
+ created() {
+ this.$root.api('endpoints').then(endpoints => {
+ this.endpoints = endpoints;
+ });
+ },
+
methods: {
regenerateToken() {
this.$root.dialog({
diff --git a/src/client/app/common/views/components/ui/input.vue b/src/client/app/common/views/components/ui/input.vue
index ae9ce249de..bcb87398ba 100644
--- a/src/client/app/common/views/components/ui/input.vue
+++ b/src/client/app/common/views/components/ui/input.vue
@@ -23,6 +23,7 @@
@focus="focused = true"
@blur="focused = false"
@keydown="$emit('keydown', $event)"
+ :list="id"
>
<input v-else ref="input"
:type="type"
@@ -37,7 +38,11 @@
@focus="focused = true"
@blur="focused = false"
@keydown="$emit('keydown', $event)"
+ :list="id"
>
+ <datalist :id="id" v-if="datalist">
+ <option v-for="data in datalist" :value="data"/>
+ </datalist>
</template>
<template v-else>
<input ref="input"
@@ -130,6 +135,10 @@ export default Vue.extend({
required: false,
default: false
},
+ datalist: {
+ type: Array,
+ required: false,
+ },
inline: {
type: Boolean,
required: false,
@@ -147,7 +156,8 @@ export default Vue.extend({
return {
v: this.value,
focused: false,
- passwordStrength: ''
+ passwordStrength: '',
+ id: Math.random().toString()
};
},
computed: {
diff --git a/src/server/api/endpoints/endpoints.ts b/src/server/api/endpoints/endpoints.ts
new file mode 100644
index 0000000000..d1e4edaa21
--- /dev/null
+++ b/src/server/api/endpoints/endpoints.ts
@@ -0,0 +1,15 @@
+import define from '../define';
+import endpoints from '../endpoints';
+
+export const meta = {
+ requireCredential: false,
+
+ tags: ['meta'],
+
+ params: {
+ },
+};
+
+export default define(meta, async () => {
+ return endpoints.map(x => x.name);
+});