Skip to content

Commit

Permalink
fix(dav): Make ooo settings a form and the message required
Browse files Browse the repository at this point in the history
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
  • Loading branch information
ChristophWurst committed Nov 27, 2023
1 parent c13b748 commit ecc1576
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 11 deletions.
25 changes: 17 additions & 8 deletions apps/dav/src/components/AbsenceForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -47,7 +49,7 @@
{{ $t('dav', 'Disable absence') }}
</NcButton>
</div>
</div>
</form>
</template>

<script>
Expand All @@ -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',
Expand Down Expand Up @@ -88,6 +92,7 @@ export default {
return !!this.firstDay
&& !!this.lastDay
&& !!this.status
&& !!this.message
&& this.lastDay > this.firstDay
},
},
Expand All @@ -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
}
Expand All @@ -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
}
Expand Down
4 changes: 2 additions & 2 deletions dist/dav-settings-personal-availability.js

Large diffs are not rendered by default.

21 changes: 21 additions & 0 deletions dist/dav-settings-personal-availability.js.LICENSE.txt
Original file line number Diff line number Diff line change
@@ -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>
*
Expand Down
2 changes: 1 addition & 1 deletion dist/dav-settings-personal-availability.js.map

Large diffs are not rendered by default.

0 comments on commit ecc1576

Please sign in to comment.