diff options
author | dartcafe <github@dartcafe.de> | 2020-03-31 08:26:00 +0300 |
---|---|---|
committer | dartcafe <github@dartcafe.de> | 2020-03-31 08:26:00 +0300 |
commit | b49239636c35915916de47393c8ea12b1206e7fc (patch) | |
tree | a865c11c7121b37588b51c56509fe512469a529f /lib | |
parent | 0efaebda115fec53350c5959019d57ad902351b6 (diff) |
force options order by timestamp in date polls
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Controller/OptionController.php | 27 | ||||
-rw-r--r-- | lib/Db/Option.php | 15 |
2 files changed, 35 insertions, 7 deletions
diff --git a/lib/Controller/OptionController.php b/lib/Controller/OptionController.php index d6708746..798a3edf 100644 --- a/lib/Controller/OptionController.php +++ b/lib/Controller/OptionController.php @@ -40,6 +40,7 @@ use OCA\Polls\Db\Option; use OCA\Polls\Db\OptionMapper; use OCA\Polls\Service\LogService; use OCA\Polls\Model\Acl; +use OCP\ILogger; class OptionController extends Controller { @@ -50,6 +51,7 @@ class OptionController extends Controller { private $pollMapper; private $logService; private $acl; + private $logger; /** * OptionController constructor. @@ -71,7 +73,8 @@ class OptionController extends Controller { IGroupManager $groupManager, PollMapper $pollMapper, LogService $logService, - Acl $acl + Acl $acl, + ILogger $logger ) { parent::__construct($appName, $request); $this->userId = $UserId; @@ -80,7 +83,8 @@ class OptionController extends Controller { $this->pollMapper = $pollMapper; $this->logService = $logService; $this->acl = $acl; - } + $this->logger = $logger; +} /** @@ -134,17 +138,23 @@ class OptionController extends Controller { public function add($option) { try { - $this->acl->setPollId($option['pollId']); - + // $this->acl->setPollId($option['pollId']); if (!$this->acl->setPollId($option['pollId'])->getAllowEdit()) { return new DataResponse(null, Http::STATUS_UNAUTHORIZED); } + $this->logger->alert(json_encode($this->acl)); + $NewOption = new Option(); $NewOption->setPollId($option['pollId']); $NewOption->setPollOptionText(trim(htmlspecialchars($option['pollOptionText']))); $NewOption->setTimestamp($option['timestamp']); - $NewOption->setOrder($option['order']); + + if ($option['timestamp'] === 0) { + $NewOption->setOrder($option['order']); + } else { + $NewOption->setOrder($option['timestamp']); + } $this->mapper->insert($NewOption); $this->logService->setLog($option['pollId'], 'addOption'); @@ -173,7 +183,12 @@ class OptionController extends Controller { $updateOption->setPollOptionText(trim(htmlspecialchars($option['pollOptionText']))); $updateOption->setTimestamp($option['timestamp']); - $updateOption->setOrder($option['order']); + + if ($option['timestamp'] === 0) { + $NewOption->setOrder($option['order']); + } else { + $NewOption->setOrder($option['timestamp']); + } $this->mapper->update($updateOption); $this->logService->setLog($option['pollId'], 'updateOption'); diff --git a/lib/Db/Option.php b/lib/Db/Option.php index 9f673725..48e47be9 100644 --- a/lib/Db/Option.php +++ b/lib/Db/Option.php @@ -69,8 +69,21 @@ class Option extends Entity implements JsonSerializable { 'pollId' => intval($this->pollId), 'pollOptionText' => htmlspecialchars_decode($this->pollOptionText), 'timestamp' => intval($timestamp), - 'order' => intval($this->order) + 'order' => setOrder($this->timestamp, $this->order) ]; } + + /** + * Temporary fix + * Make sure, order is eqal to timestamp in date polls + */ + // TODO: remove by time + private function setOrder($timestamp, $order) { + if ($timestamp > 0) { + return intval($timestamp); + } else { + return intval($order); + } + } } |