mirror of
https://github.com/nextcloud/server.git
synced 2026-06-06 07:13:23 -04:00
Merge pull request #41759 from nextcloud/fix/dav/ooo-form-mandatory-message
fix(dav): Make ooo settings a form and the message required
This commit is contained in:
commit
4d2a32a79b
4 changed files with 41 additions and 11 deletions
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
4
dist/dav-settings-personal-availability.js
vendored
4
dist/dav-settings-personal-availability.js
vendored
File diff suppressed because one or more lines are too long
|
|
@ -1,3 +1,24 @@
|
|||
/*
|
||||
* @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||
*
|
||||
* @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||
*
|
||||
* @license AGPL-3.0-or-later
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @copyright Copyright (c) 2022 Richard Steinmetz <richard@steinmetz.cloud>
|
||||
*
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue