diff --git a/lib/Controller/ApiController.php b/lib/Controller/ApiController.php index 4bf44b1..52acbdc 100644 --- a/lib/Controller/ApiController.php +++ b/lib/Controller/ApiController.php @@ -95,7 +95,7 @@ class ApiController extends Controller { } catch (DoesNotExistException $e) { //handle silently - }finally{ + } finally { return $optionList; } } @@ -119,6 +119,7 @@ class ApiController extends Controller { /** * @NoAdminRequired + * * Read Form-List only with necessary information for Listing. */ public function getForms(): Http\JSONResponse { @@ -150,7 +151,7 @@ class ApiController extends Controller { } $result = $form->read(); - $result['questions'] = getQuestions(); + $result['questions'] = $this->getQuestions($id); return new Http\JSONResponse($result); } @@ -241,7 +242,7 @@ class ApiController extends Controller { // Delete Submissions(incl. Answers), Questions(incl. Options) and Form. $this->submissionMapper->deleteByForm($id); $this->questionMapper->deleteByForm($id); - $this->formMapper->delete($formToDelete); + $this->formMapper->delete($form); return new Http\JSONResponse($id); } @@ -291,10 +292,8 @@ class ApiController extends Controller { $question = $this->questionMapper->insert($question); - $response = [ - 'id' => $question->getId(), - 'order' => $question->getOrder() - ]; + $response = $question->read(); + $response['options'] = []; return new Http\JSONResponse($response); } diff --git a/lib/Migration/Version010200Date20200323141300.php b/lib/Migration/Version010200Date20200323141300.php index 461b68c..15cca03 100644 --- a/lib/Migration/Version010200Date20200323141300.php +++ b/lib/Migration/Version010200Date20200323141300.php @@ -107,6 +107,7 @@ class Version010200Date20200323141300 extends SimpleMigrationStep { ]); $table->addColumn('expires_timestamp', Type::INTEGER, [ 'notnull' => false, + 'default' => 0, 'comment' => 'unix-timestamp', ]); $table->addColumn('is_anonymous', Type::BOOLEAN, [ @@ -140,7 +141,7 @@ class Version010200Date20200323141300 extends SimpleMigrationStep { ]); $table->addColumn('mandatory', Type::BOOLEAN, [ 'notnull' => true, - 'default' => 1, + 'default' => 0, ]); $table->addColumn('text', Type::STRING, [ 'notnull' => true, diff --git a/package-lock.json b/package-lock.json index 68590fd..21e96ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1415,11 +1415,11 @@ } }, "@babel/runtime": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz", - "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", "requires": { - "regenerator-runtime": "^0.13.2" + "regenerator-runtime": "^0.13.4" } }, "@babel/template": { @@ -1518,13 +1518,6 @@ "requires": { "@nextcloud/event-bus": "^1.1.3", "core-js": "^3.6.4" - }, - "dependencies": { - "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" - } } }, "@nextcloud/axios": { @@ -1586,9 +1579,9 @@ } }, "@nextcloud/event-bus": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@nextcloud/event-bus/-/event-bus-1.1.4.tgz", - "integrity": "sha512-It27KzmUaSQ7w22nHFwOn8XgeVG0HYYOSNG9gs4UkP5VqcZ16m4ydt3GkMpWcyFec4OUjJc+yf7omRc3pNxsSw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nextcloud/event-bus/-/event-bus-1.1.3.tgz", + "integrity": "sha512-/f3OMh9Tu3bn17sCc1Sb5AaC/fjegP9bjFmlsPDFNcCAHrKKM5B2X+2eUDF2osLirYaBjVqypBmD87zyiE0WjQ==", "requires": { "@types/semver": "^6.2.1", "core-js": "^3.6.2", @@ -1596,9 +1589,9 @@ }, "dependencies": { "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==" }, "semver": { "version": "6.3.0", @@ -1614,16 +1607,6 @@ "requires": { "core-js": "^3.6.4", "node-gettext": "^3.0.0" - }, - "dependencies": { - "node-gettext": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/node-gettext/-/node-gettext-3.0.0.tgz", - "integrity": "sha512-/VRYibXmVoN6tnSAY2JWhNRhWYJ8Cd844jrZU/DwLVoI4vBI6ceYbd8i42sYZ9uOgDH3S7vslIKOWV/ZrT2YBA==", - "requires": { - "lodash.get": "^4.4.2" - } - } } }, "@nextcloud/moment": { @@ -1657,16 +1640,13 @@ } } }, - "core-js": { -<<<<<<< HEAD - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", - "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==" -======= - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.1.tgz", - "integrity": "sha512-186WjSik2iTGfDjfdCZAxv2ormxtKgemjC3SI6PL31qOA0j5LhTDVjHChccoc7brwLvpvLPiMyRlcO88C4l1QQ==" ->>>>>>> f89f534... fixup! New question ui + "node-gettext": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-gettext/-/node-gettext-2.1.0.tgz", + "integrity": "sha512-vsHImHl+Py0vB7M2UXcFEJ5NJ3950gcja45YclBFtYxYeZiqdfQdcu+G9s4L7jpRFSh/J/7VoS3upR4JM1nS+g==", + "requires": { + "lodash.get": "^4.4.2" + } } } }, @@ -2873,14 +2853,14 @@ }, "dependencies": { "caniuse-lite": { - "version": "1.0.30001040", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001040.tgz", - "integrity": "sha512-Ep0tEPeI5wCvmJNrXjE3etgfI+lkl1fTDU6Y3ZH1mhrjkPlVI9W4pcKbMo+BQLpEWKVYYp2EmYaRsqpPC3k7lQ==" + "version": "1.0.30001042", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001042.tgz", + "integrity": "sha512-igMQ4dlqnf4tWv0xjaaE02op9AJ2oQzXKjWf4EuAHFN694Uo9/EfPVIPJcmn2WkU9RqozCxx5e2KPcVClHDbDw==" }, "electron-to-chromium": { - "version": "1.3.403", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.403.tgz", - "integrity": "sha512-JaoxV4RzdBAZOnsF4dAlZ2ijJW72MbqO5lNfOBHUWiBQl3Rwe+mk2RCUMrRI3rSClLJ8HSNQNqcry12H+0ZjFw==" + "version": "1.3.412", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.412.tgz", + "integrity": "sha512-4bVdSeJScR8fT7ERveLWbxemY5uXEHVseqMRyORosiKcTUSGtVwBkV8uLjXCqoFLeImA57Z9hbz3TOid01U4Hw==" } } }, @@ -3475,15 +3455,9 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { -<<<<<<< HEAD - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" -======= "version": "3.6.4", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==" ->>>>>>> f89f534... fixup! New question ui }, "core-js-compat": { "version": "3.6.5", @@ -3658,12 +3632,6 @@ "supports-color": "^6.1.0" } }, - "postcss-value-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz", - "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==", - "dev": true - }, "schema-utils": { "version": "2.6.5", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz", @@ -7835,9 +7803,9 @@ "dev": true }, "node-gettext": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/node-gettext/-/node-gettext-2.0.0.tgz", - "integrity": "sha1-8dwSN83FRvUVk9o0AwS4vrpbhSU=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-gettext/-/node-gettext-3.0.0.tgz", + "integrity": "sha512-/VRYibXmVoN6tnSAY2JWhNRhWYJ8Cd844jrZU/DwLVoI4vBI6ceYbd8i42sYZ9uOgDH3S7vslIKOWV/ZrT2YBA==", "requires": { "lodash.get": "^4.4.2" } @@ -8824,9 +8792,9 @@ } }, "postcss-value-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", - "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz", + "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==", "dev": true }, "prelude-ls": { diff --git a/src/Forms.vue b/src/Forms.vue index e77c025..ceb5b6e 100644 --- a/src/Forms.vue +++ b/src/Forms.vue @@ -52,7 +52,7 @@ @@ -105,9 +105,16 @@ export default { return this.$route.params.hash }, - selectedForm() { - // TODO: replace with form.hash - return this.forms.find(form => form.form.hash === this.hash) + selectedForm: { + get() { + return this.forms.find(form => form.hash === this.hash) + }, + set(form) { + const index = this.forms.findIndex(search => search.hash === this.hash) + if (index > -1) { + this.$set(this.forms, index, form) + } + }, }, }, @@ -141,7 +148,7 @@ export default { const response = await axios.post(generateUrl('/apps/forms/api/v1/form')) const newForm = response.data this.forms.push(newForm) - this.$router.push({ name: 'edit', params: { hash: newForm.form.hash } }) + this.$router.push({ name: 'edit', params: { hash: newForm.hash } }) } catch (error) { showError(t('forms', 'Unable to create a new form')) console.error(error) diff --git a/src/components/Questions/Question.vue b/src/components/Questions/Question.vue index dd2fd98..567b534 100644 --- a/src/components/Questions/Question.vue +++ b/src/components/Questions/Question.vue @@ -23,25 +23,43 @@ -