Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/polls.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authordartcafe <github@dartcafe.de>2020-03-31 08:26:00 +0300
committerdartcafe <github@dartcafe.de>2020-03-31 08:26:00 +0300
commitb49239636c35915916de47393c8ea12b1206e7fc (patch)
treea865c11c7121b37588b51c56509fe512469a529f /lib
parent0efaebda115fec53350c5959019d57ad902351b6 (diff)
force options order by timestamp in date polls
Diffstat (limited to 'lib')
-rw-r--r--lib/Controller/OptionController.php27
-rw-r--r--lib/Db/Option.php15
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);
+ }
+ }
}