diff --git a/lib/Controller/ApiController.php b/lib/Controller/ApiController.php
index 92978b4..bf9ca62 100644
--- a/lib/Controller/ApiController.php
+++ b/lib/Controller/ApiController.php
@@ -174,6 +174,7 @@ class ApiController extends Controller {
$form->setAccess([
'type' => 'public'
]);
+ $form->setSubmitOnce(true);
$this->formMapper->insert($form);
diff --git a/src/views/Sidebar.vue b/src/views/Sidebar.vue
index 56ed6b8..89298a9 100644
--- a/src/views/Sidebar.vue
+++ b/src/views/Sidebar.vue
@@ -23,22 +23,64 @@
-
-
- {{ t('forms', 'Copy share link') }}
-
-
+
+
+
{{ t('forms', 'Settings') }}
-
- {{ t('forms', 'Sharing') }}
-
@@ -135,7 +130,6 @@ import { generateUrl } from '@nextcloud/router'
import { getLocale, getDayNamesShort, getMonthNamesShort } from '@nextcloud/l10n'
import { subscribe, unsubscribe } from '@nextcloud/event-bus'
import { showError, showSuccess } from '@nextcloud/dialogs'
-import ActionLink from '@nextcloud/vue/dist/Components/ActionLink'
import AppSidebar from '@nextcloud/vue/dist/Components/AppSidebar'
import DatetimePicker from '@nextcloud/vue/dist/Components/DatetimePicker'
import moment from '@nextcloud/moment'
@@ -147,7 +141,6 @@ export default {
name: 'Sidebar',
components: {
- ActionLink,
AppSidebar,
DatetimePicker,
ShareDiv,
@@ -177,6 +170,19 @@ export default {
return window.location.protocol + '//' + window.location.host + generateUrl(`/apps/forms/${this.form.hash}`)
},
+ // Inverting submitOnce for UI here. Adapt downto Db for V3, if this imposes for longterm.
+ submitMultiple: {
+ get() {
+ if (this.form.access.type === 'public' || this.form.isAnonymous) {
+ return true
+ }
+ return !this.form.submitOnce
+ },
+ set(submitMultiple) {
+ this.form.submitOnce = !submitMultiple
+ },
+ },
+
formExpires: {
get() {
return this.form.expires !== 0
@@ -337,7 +343,12 @@ export default {