Skip to content
Snippets Groups Projects
Commit bd1355d5 authored by Erwan Rouchet's avatar Erwan Rouchet Committed by Bastien Abadie
Browse files

Require corpus admin access to edit element types

parent 7ee7db9a
No related branches found
No related tags found
1 merge request!1077Require corpus admin access to edit element types
......@@ -40,6 +40,15 @@
</template>
</td>
<td><input type="checkbox" v-model="updateFields.folder" /></td>
<td>
<button
class="button is-success"
:disabled="!allowUpdate"
v-on:click="save"
>
<i class="icon-check"></i>
</button>
</td>
</template>
<!-- Display mode -->
......@@ -53,28 +62,24 @@
disabled
/>
</td>
<td>
<button
class="button"
:disabled="!canEdit"
v-on:click="edit(type)"
>
<i class="icon-edit has-text-primary"></i>
</button>
</td>
</template>
<!-- Common icon -->
<td>
<button
class="button"
:class="{ 'is-success': updateFields.id === type.id }"
:disabled="!canAdmin(corpus)"
v-on:click="updateFields.id === type.id ? save() : edit(type)"
>
<i :class="updateFields.id === type.id ? 'icon-check' : 'icon-edit has-text-primary'"></i>
</button>
</td>
</tr>
<!-- Empty line to add new type -->
<tr>
</tr><tr>
<td>
<input
class="input"
type="text"
:disabled="loading"
:disabled="!canEdit"
v-model="createFields.display_name"
/>
<template v-if="createErrors.display_name">
......@@ -86,16 +91,22 @@
class="input"
type="text"
pattern="[-a-zA-Z0-9_]+"
:disabled="loading"
:disabled="!canEdit"
v-model="createFields.slug"
/>
<template v-if="createErrors.slug">
<p class="help is-danger" v-for="err in createErrors.slug" :key="err">{{ err }}</p>
</template>
</td>
<td><input type="checkbox" v-model="createFields.folder" /></td>
<td>
<button class="button is-primary" v-on:click="create" :disabled="!canAdmin(corpus) && !allowCreate">
<input
type="checkbox"
v-model="createFields.folder"
:disabled="!canEdit"
/>
</td>
<td>
<button class="button is-primary" v-on:click="create" :disabled="!allowCreate">
<i class="icon-plus"></i>
</button>
</td>
......@@ -135,16 +146,19 @@ export default {
sortedTypes () {
return orderBy(this.corpus.types, t => t.slug)
},
canEdit () {
return this.canAdmin(this.corpus) && !this.loading
},
allowUpdate () {
return this.updateFields.id &&
this.updateFields.display_name.trim() &&
/^[-a-zA-Z0-9_]+$/.test(this.updateFields.slug) &&
!this.loading
this.canEdit
},
allowCreate () {
return this.createFields.display_name.trim() &&
/^[-a-zA-Z0-9_]+$/.test(this.createFields.slug) &&
!this.loading
this.canEdit
}
},
methods: {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment