Skip to content
Snippets Groups Projects
Commit 48db94cc authored by Jan-Hendrik Willms's avatar Jan-Hendrik Willms
Browse files

fix and cleanup memcache administration vue component, fixes #4265

Closes #4265

Merge request !3516
parent 62ee91c9
Branches
No related tags found
1 merge request!3516fix and cleanup memcache administration vue component, fixes #4265
Pipeline #27794 passed
...@@ -3,33 +3,37 @@ ...@@ -3,33 +3,37 @@
<article v-for="(server, index) in serverConfig" :key="index" class="memcached-server"> <article v-for="(server, index) in serverConfig" :key="index" class="memcached-server">
<header> <header>
<h3> <h3>
<translate>Memcached-Server</translate> {{ index + 1 }} {{ $gettext('Memcached-Server') }} {{ index + 1 }}
<studip-icon shape="trash" class="remove-server" @click.prevent="removeServer($event, index)" <studip-icon shape="trash" class="remove-server"
@click.prevent="removeServer(index)"
:size="24"></studip-icon> :size="24"></studip-icon>
</h3> </h3>
</header> </header>
<section class="col-4"> <section class="col-4">
<label :for="'hostname-' + index"> <label>
<translate>Hostname</translate> {{ $gettext('Hostname') }}
<input type="text"
:name="`servers[${index}][hostname]`"
placeholder="localhost"
v-model.trim="server.hostname">
</label> </label>
<input type="text" :name="'servers[' + index + '][hostname]'" :id="'hostname-' + index"
placeholder="localhost" :value="server.hostname">
</section> </section>
<section class="col-2"> <section class="col-2">
<label :for="'port-' + index"> <label>
<translate>Port</translate> {{ $gettext('Port') }}
<input type="text"
:name="`servers[${index}][port]`"
placeholder="11211"
v-model.number="server.port">
</label> </label>
<input type="text" :name="'servers[' + index + '][port]'" :id="'port-' + index"
placeholder="11211" :value="server.port">
</section> </section>
</article> </article>
<label class="add-server" @click="addServer"> <label class="add-server" @click="addServer()">
<studip-icon shape="add" :size="20"></studip-icon> <studip-icon shape="add" :size="20"></studip-icon>
<translate>Server hinzufügen</translate> {{ $gettext('Server hinzufügen') }}
</label> </label>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name: 'MemcachedCacheConfig', name: 'MemcachedCacheConfig',
...@@ -41,17 +45,19 @@ export default { ...@@ -41,17 +45,19 @@ export default {
}, },
data () { data () {
return { return {
serverConfig: this.servers serverConfig: this.servers.concat([])
} }
}, },
methods: { methods: {
addServer () { addServer () {
this.serverConfig.push({ hostname: 'localhost', port: 11211 }) this.serverConfig.push({ hostname: 'localhost', port: 11211 })
}, },
removeServer (event, index) { removeServer (index) {
this.serverConfig.splice(index, 1) this.serverConfig.splice(index, 1)
}, }
isValid () { },
computed: {
isValid() {
return this.serverConfig.length > 0 return this.serverConfig.length > 0
&& this.serverConfig.every(server => { && this.serverConfig.every(server => {
return server.hostname.length > 0 return server.hostname.length > 0
...@@ -60,16 +66,16 @@ export default { ...@@ -60,16 +66,16 @@ export default {
} }
}, },
watch: { watch: {
servers: { serverConfig: {
handler (current) { handler () {
this.$emit('is-valid', this.isValid()); this.$emit('is-valid', this.isValid);
}, },
deep: true,
immediate: true immediate: true
} }
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.memcached-server { .memcached-server {
.remove-server { .remove-server {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment