|
|
|
@ -21,24 +21,26 @@
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
<template>
|
|
|
|
|
<div class="absence">
|
|
|
|
|
<form class="absence" @submit.prevent="saveForm">
|
|
|
|
|
<div class="absence__dates">
|
|
|
|
|
<NcDateTimePickerNative id="absence-first-day"
|
|
|
|
|
v-model="firstDay"
|
|
|
|
|
:label="$t('dav', 'First day')"
|
|
|
|
|
class="absence__dates__picker" />
|
|
|
|
|
class="absence__dates__picker"
|
|
|
|
|
:required="true" />
|
|
|
|
|
<NcDateTimePickerNative id="absence-last-day"
|
|
|
|
|
v-model="lastDay"
|
|
|
|
|
:label="$t('dav', 'Last day (inclusive)')"
|
|
|
|
|
class="absence__dates__picker" />
|
|
|
|
|
class="absence__dates__picker"
|
|
|
|
|
:required="true" />
|
|
|
|
|
</div>
|
|
|
|
|
<NcTextField :value.sync="status" :label="$t('dav', 'Short absence status')" />
|
|
|
|
|
<NcTextArea :value.sync="message" :label="$t('dav', 'Long absence Message')" />
|
|
|
|
|
<NcTextField :value.sync="status" :label="$t('dav', 'Short absence status')" :required="true" />
|
|
|
|
|
<NcTextArea :value.sync="message" :label="$t('dav', 'Long absence Message')" :required="true" />
|
|
|
|
|
|
|
|
|
|
<div class="absence__buttons">
|
|
|
|
|
<NcButton :disabled="loading || !valid"
|
|
|
|
|
type="primary"
|
|
|
|
|
@click="saveForm">
|
|
|
|
|
native-type="submit">
|
|
|
|
|
{{ $t('dav', 'Save') }}
|
|
|
|
|
</NcButton>
|
|
|
|
|
<NcButton :disabled="loading || !valid"
|
|
|
|
@ -47,7 +49,7 @@
|
|
|
|
|
{{ $t('dav', 'Disable absence') }}
|
|
|
|
|
</NcButton>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
@ -59,7 +61,9 @@ import { generateUrl } from '@nextcloud/router'
|
|
|
|
|
import axios from '@nextcloud/axios'
|
|
|
|
|
import { formatDateAsYMD } from '../utils/date.js'
|
|
|
|
|
import { loadState } from '@nextcloud/initial-state'
|
|
|
|
|
import { showError } from '@nextcloud/dialogs'
|
|
|
|
|
import { showError, showSuccess } from '@nextcloud/dialogs'
|
|
|
|
|
|
|
|
|
|
import logger from '../service/logger.js'
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
name: 'AbsenceForm',
|
|
|
|
@ -88,6 +92,7 @@ export default {
|
|
|
|
|
return !!this.firstDay
|
|
|
|
|
&& !!this.lastDay
|
|
|
|
|
&& !!this.status
|
|
|
|
|
&& !!this.message
|
|
|
|
|
&& this.lastDay > this.firstDay
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
@ -111,8 +116,10 @@ export default {
|
|
|
|
|
status: this.status,
|
|
|
|
|
message: this.message,
|
|
|
|
|
})
|
|
|
|
|
showSuccess(this.$t('dav', 'Absence saved'))
|
|
|
|
|
} catch (error) {
|
|
|
|
|
showError(this.$t('dav', 'Failed to save your absence settings'))
|
|
|
|
|
logger.error('Could not save absence', { error })
|
|
|
|
|
} finally {
|
|
|
|
|
this.loading = false
|
|
|
|
|
}
|
|
|
|
@ -122,8 +129,10 @@ export default {
|
|
|
|
|
try {
|
|
|
|
|
await axios.delete(generateUrl('/apps/dav/settings/absence'))
|
|
|
|
|
this.resetForm()
|
|
|
|
|
showSuccess(this.$t('dav', 'Absence cleared'))
|
|
|
|
|
} catch (error) {
|
|
|
|
|
showError(this.$t('dav', 'Failed to clear your absence settings'))
|
|
|
|
|
logger.error('Could not clear absence', { error })
|
|
|
|
|
} finally {
|
|
|
|
|
this.loading = false
|
|
|
|
|
}
|
|
|
|
|