From 2cd445d201f4e4e62b8c94d73ed59087fca20495 Mon Sep 17 00:00:00 2001 From: Jonas Rittershofer Date: Mon, 20 Apr 2020 13:51:48 +0200 Subject: [PATCH] Clean Expires Signed-off-by: Jonas Rittershofer --- lib/Controller/ApiController.php | 2 +- lib/Controller/PageController.php | 9 +- lib/Db/Form.php | 25 +---- .../Version010200Date20200323141300.php | 4 +- src/components/AppNavigationForm.vue | 3 +- src/components/Questions/Question.vue | 10 +- src/components/Questions/QuestionLong.vue | 7 +- src/components/Questions/QuestionMultiple.vue | 9 +- src/components/Questions/QuestionShort.vue | 7 +- src/mixins/QuestionMixin.js | 15 ++- src/views/Create.vue | 98 +++++++++---------- src/views/Sidebar.vue | 38 +++---- 12 files changed, 106 insertions(+), 121 deletions(-) diff --git a/lib/Controller/ApiController.php b/lib/Controller/ApiController.php index 52acbdc..e0332b7 100644 --- a/lib/Controller/ApiController.php +++ b/lib/Controller/ApiController.php @@ -131,7 +131,7 @@ class ApiController extends Controller { 'id' => $form->getId(), 'hash' => $form->getHash(), 'title' => $form->getTitle(), - 'expired' => $form->getExpired(), + 'expires' => $form->getExpires(), ]; } diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php index 8962e40..9028145 100644 --- a/lib/Controller/PageController.php +++ b/lib/Controller/PageController.php @@ -173,13 +173,8 @@ class PageController extends Controller { return new TemplateResponse('forms', 'no.acc.tmpl', []); } - if ($form->getExpiresTimestamp() === 0) { - $expired = false; - } else { - $expired = time() > $form->getExpiresTimestamp(); - } - - if ($expired) { + // If form expired, return Expired-Template + if ( ($form->getExpires() !== 0) && (time() > $form->getExpires()) ) { return new TemplateResponse('forms', 'expired.tmpl'); } diff --git a/lib/Db/Form.php b/lib/Db/Form.php index 82fd931..9941bee 100644 --- a/lib/Db/Form.php +++ b/lib/Db/Form.php @@ -41,8 +41,8 @@ use OCP\AppFramework\Db\Entity; * @method void setAccess(array $value) * @method integer getCreated() * @method void setCreated(integer $value) - * @method integer getExpiresTimestamp() - * @method void setExpiresTimestamp(integer $value) + * @method integer getExpires() + * @method void setExpires(integer $value) * @method integer getIsAnonymous() * @method void setIsAnonymous(bool $value) * @method integer getSubmitOnce() @@ -56,7 +56,7 @@ class Form extends Entity { protected $ownerId; protected $accessJson; protected $created; - protected $expiresTimestamp; + protected $expires; protected $isAnonymous; protected $submitOnce; @@ -65,7 +65,7 @@ class Form extends Entity { */ public function __construct() { $this->addType('created', 'integer'); - $this->addType('expiresTimestamp', 'integer'); + $this->addType('expires', 'integer'); $this->addType('isAnonymous', 'bool'); $this->addType('submitOnce', 'bool'); } @@ -80,20 +80,6 @@ class Form extends Entity { $this->setAccessJson(json_encode($access)); } - // Get virtual column expires. Set should only be done by setExpiresTimestamp(). - public function getExpires(): bool { - return (bool) $this->getExpiresTimestamp(); - } - - // Get virtual column expired. Set should only be done by setExpiresTimestamp(). - public function getExpired(): bool { - if ($this->getExpires()) { - return time() > $this->getExpiresTimestamp(); - } - // else - does not expire - return false; - } - // Read full form public function read() { return [ @@ -102,12 +88,9 @@ class Form extends Entity { 'title' => $this->getTitle(), 'description' => $this->getDescription(), 'ownerId' => $this->getOwnerId(), - 'ownerDisplayName' => \OC_User::getDisplayName($this->getOwnerId()), 'created' => $this->getCreated(), 'access' => $this->getAccess(), 'expires' => $this->getExpires(), - 'expired' => $this->getExpired(), - 'expiresTimestamp' => $this->getExpiresTimestamp(), 'isAnonymous' => $this->getIsAnonymous(), 'submitOnce' => $this->getSubmitOnce() ]; diff --git a/lib/Migration/Version010200Date20200323141300.php b/lib/Migration/Version010200Date20200323141300.php index 15cca03..e236b02 100644 --- a/lib/Migration/Version010200Date20200323141300.php +++ b/lib/Migration/Version010200Date20200323141300.php @@ -105,7 +105,7 @@ class Version010200Date20200323141300 extends SimpleMigrationStep { 'notnull' => false, 'comment' => 'unix-timestamp', ]); - $table->addColumn('expires_timestamp', Type::INTEGER, [ + $table->addColumn('expires', Type::INTEGER, [ 'notnull' => false, 'default' => 0, 'comment' => 'unix-timestamp', @@ -237,7 +237,7 @@ class Version010200Date20200323141300 extends SimpleMigrationStep { 'owner_id' => $qb_restore->createNamedParameter($event['owner'], IQueryBuilder::PARAM_STR), 'access_json' => $qb_restore->createNamedParameter($newAccessJSON, IQueryBuilder::PARAM_STR), 'created' => $qb_restore->createNamedParameter($this->convertDateTime($event['created']), IQueryBuilder::PARAM_INT), - 'expires_timestamp' => $qb_restore->createNamedParameter($this->convertDateTime($event['expire']), IQueryBuilder::PARAM_INT), + 'expires' => $qb_restore->createNamedParameter($this->convertDateTime($event['expire']), IQueryBuilder::PARAM_INT), 'is_anonymous' => $qb_restore->createNamedParameter($event['is_anonymous'], IQueryBuilder::PARAM_BOOL), 'submit_once' => $qb_restore->createNamedParameter($event['unique'], IQueryBuilder::PARAM_BOOL) ]); diff --git a/src/components/AppNavigationForm.vue b/src/components/AppNavigationForm.vue index 5b57bf7..988993f 100644 --- a/src/components/AppNavigationForm.vue +++ b/src/components/AppNavigationForm.vue @@ -66,6 +66,7 @@ import ActionSeparator from '@nextcloud/vue/dist/Components/ActionSeparator' import AppNavigationIconBullet from '@nextcloud/vue/dist/Components/AppNavigationIconBullet' import AppNavigationItem from '@nextcloud/vue/dist/Components/AppNavigationItem' import axios from '@nextcloud/axios' +import moment from '@nextcloud/moment' import Vue from 'vue' import VueClipboard from 'vue-clipboard2' @@ -106,7 +107,7 @@ export default { */ bulletColor() { const style = getComputedStyle(document.body) - if (this.form.expired) { + if (this.form.expires && moment().unix() > this.form.expires) { return style.getPropertyValue('--color-error').slice(-6) } return style.getPropertyValue('--color-success').slice(-6) diff --git a/src/components/Questions/Question.vue b/src/components/Questions/Question.vue index 567b534..6fde335 100644 --- a/src/components/Questions/Question.vue +++ b/src/components/Questions/Question.vue @@ -36,14 +36,14 @@ -

+

{{ t('forms', 'Delete question') }} @@ -82,7 +82,7 @@ export default { type: Number, required: true, }, - title: { + text: { type: String, required: true, }, @@ -94,7 +94,7 @@ export default { methods: { onInput({ target }) { - this.$emit('update:title', target.value) + this.$emit('update:text', target.value) }, /** @@ -115,7 +115,7 @@ export default { * Delete this question */ onDelete() { - this.$emit('delete', this.id) + this.$emit('delete') }, }, } diff --git a/src/components/Questions/QuestionLong.vue b/src/components/Questions/QuestionLong.vue index 98c6c04..fa582c5 100644 --- a/src/components/Questions/QuestionLong.vue +++ b/src/components/Questions/QuestionLong.vue @@ -23,13 +23,14 @@