Changeset View
Changeset View
Standalone View
Standalone View
src/resources/vue/SharedFolder/Info.vue
Show First 20 Lines • Show All 47 Lines • ▼ Show 20 Lines | <div class="container"> | ||||
<div v-if="domains.length" class="row mb-3"> | <div v-if="domains.length" class="row mb-3"> | ||||
<label for="domain" class="col-sm-4 col-form-label">{{ $t('form.domain') }}</label> | <label for="domain" class="col-sm-4 col-form-label">{{ $t('form.domain') }}</label> | ||||
<div v-if="domains.length" class="col-sm-8"> | <div v-if="domains.length" class="col-sm-8"> | ||||
<select class="form-select" v-model="folder.domain"> | <select class="form-select" v-model="folder.domain"> | ||||
<option v-for="_domain in domains" :key="_domain.id" :value="_domain.namespace">{{ _domain.namespace }}</option> | <option v-for="_domain in domains" :key="_domain.id" :value="_domain.namespace">{{ _domain.namespace }}</option> | ||||
</select> | </select> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div v-if="folder.email" class="row mb-3"> | <div class="row mb-3" v-if="folder.type == 'mail'"> | ||||
<label for="email" class="col-sm-4 col-form-label">{{ $t('form.email') }}</label> | <label for="aliases-input" class="col-sm-4 col-form-label">{{ $t('form.emails') }}</label> | ||||
<div class="col-sm-8"> | <div class="col-sm-8"> | ||||
<input type="text" class="form-control" id="email" disabled v-model="folder.email"> | <list-input id="aliases" :list="folder.aliases"></list-input> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<btn class="btn-primary" type="submit" icon="check">{{ $t('btn.submit') }}</btn> | <btn class="btn-primary" type="submit" icon="check">{{ $t('btn.submit') }}</btn> | ||||
</form> | </form> | ||||
</div> | </div> | ||||
<div class="tab-pane" id="settings" role="tabpanel" aria-labelledby="tab-settings"> | <div class="tab-pane" id="settings" role="tabpanel" aria-labelledby="tab-settings"> | ||||
<form @submit.prevent="submitSettings" class="card-body"> | <form @submit.prevent="submitSettings" class="card-body"> | ||||
<div class="row mb-3"> | <div class="row mb-3"> | ||||
Show All 12 Lines | <div class="container"> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import AclInput from '../Widgets/AclInput' | import AclInput from '../Widgets/AclInput' | ||||
import ListInput from '../Widgets/ListInput' | |||||
import StatusComponent from '../Widgets/Status' | import StatusComponent from '../Widgets/Status' | ||||
export default { | export default { | ||||
components: { | components: { | ||||
AclInput, | AclInput, | ||||
ListInput, | |||||
StatusComponent | StatusComponent | ||||
}, | }, | ||||
data() { | data() { | ||||
return { | return { | ||||
domains: [], | domains: [], | ||||
folder_id: null, | folder_id: null, | ||||
folder: { type: 'mail', config: {} }, | folder: { type: 'mail', config: {}, aliases: [] }, | ||||
status: {}, | status: {}, | ||||
types: [ 'mail', 'event', 'task', 'contact', 'note', 'file' ] | types: [ 'mail', 'event', 'task', 'contact', 'note', 'file' ] | ||||
} | } | ||||
}, | }, | ||||
created() { | created() { | ||||
this.folder_id = this.$route.params.folder | this.folder_id = this.$route.params.folder | ||||
if (this.folder_id != 'new') { | if (this.folder_id != 'new') { | ||||
Show All 40 Lines | export default { | ||||
let method = 'post' | let method = 'post' | ||||
let location = '/api/v4/shared-folders' | let location = '/api/v4/shared-folders' | ||||
if (this.folder_id !== 'new') { | if (this.folder_id !== 'new') { | ||||
method = 'put' | method = 'put' | ||||
location += '/' + this.folder_id | location += '/' + this.folder_id | ||||
} | } | ||||
const post = this.$root.pick(this.folder, ['id', 'name', 'domain', 'type']) | const post = this.$root.pick(this.folder, ['id', 'name', 'domain', 'type', 'aliases']) | ||||
if (post.type != 'mail') { | |||||
delete post.aliases | |||||
} | |||||
axios[method](location, post) | axios[method](location, post) | ||||
.then(response => { | .then(response => { | ||||
this.$toast.success(response.data.message) | this.$toast.success(response.data.message) | ||||
this.$router.push({ name: 'shared-folders' }) | this.$router.push({ name: 'shared-folders' }) | ||||
}) | }) | ||||
}, | }, | ||||
submitSettings() { | submitSettings() { | ||||
Show All 11 Lines |