Version 1.0.3
This commit is contained in:
parent
da21b60ef0
commit
1fce2a39fb
30 changed files with 174 additions and 1006 deletions
|
|
@ -41,12 +41,8 @@ use OCP\Security\ISecureRandom;
|
|||
|
||||
use OCA\Forms\Db\Event;
|
||||
use OCA\Forms\Db\EventMapper;
|
||||
use OCA\Forms\Db\Option;
|
||||
use OCA\Forms\Db\OptionMapper;
|
||||
use OCA\Forms\Db\Vote;
|
||||
use OCA\Forms\Db\VoteMapper;
|
||||
use OCA\Forms\Db\Comment;
|
||||
use OCA\Forms\Db\CommentMapper;
|
||||
use OCA\Forms\Db\Notification;
|
||||
use OCA\Forms\Db\NotificationMapper;
|
||||
|
||||
|
|
@ -62,9 +58,7 @@ class ApiController extends Controller {
|
|||
private $groupManager;
|
||||
private $userManager;
|
||||
private $eventMapper;
|
||||
private $optionMapper;
|
||||
private $voteMapper;
|
||||
private $commentMapper;
|
||||
private $questionMapper;
|
||||
private $answerMapper;
|
||||
|
||||
|
|
@ -76,9 +70,7 @@ class ApiController extends Controller {
|
|||
* @param IUserManager $userManager
|
||||
* @param string $userId
|
||||
* @param EventMapper $eventMapper
|
||||
* @param OptionMapper $optionMapper
|
||||
* @param VoteMapper $voteMapper
|
||||
* @param CommentMapper $commentMapper
|
||||
* @param QuestionMapper $questionMapper
|
||||
* @param AnswerMapper $answerMapper
|
||||
*/
|
||||
|
|
@ -89,9 +81,7 @@ class ApiController extends Controller {
|
|||
IUserManager $userManager,
|
||||
$userId,
|
||||
EventMapper $eventMapper,
|
||||
OptionMapper $optionMapper,
|
||||
VoteMapper $voteMapper,
|
||||
CommentMapper $commentMapper,
|
||||
QuestionMapper $questionMapper,
|
||||
AnswerMapper $answerMapper
|
||||
) {
|
||||
|
|
@ -100,9 +90,7 @@ class ApiController extends Controller {
|
|||
$this->groupManager = $groupManager;
|
||||
$this->userManager = $userManager;
|
||||
$this->eventMapper = $eventMapper;
|
||||
$this->optionMapper = $optionMapper;
|
||||
$this->voteMapper = $voteMapper;
|
||||
$this->commentMapper = $commentMapper;
|
||||
$this->questionMapper = $questionMapper;
|
||||
$this->answerMapper = $answerMapper;
|
||||
}
|
||||
|
|
@ -209,23 +197,6 @@ class ApiController extends Controller {
|
|||
return $grantAccessAs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read all options of a form based on the form id
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
* @param Integer $formId
|
||||
* @return Array
|
||||
*/
|
||||
public function getOptions($formId) {
|
||||
$optionList = array();
|
||||
$options = $this->optionMapper->findByForm($formId);
|
||||
foreach ($options as $optionElement) {
|
||||
$optionList[] = $optionElement->read();
|
||||
}
|
||||
|
||||
return $optionList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read all votes of a form based on the form id
|
||||
* @NoAdminRequired
|
||||
|
|
@ -234,6 +205,17 @@ class ApiController extends Controller {
|
|||
* @return Array
|
||||
*/
|
||||
public function getVotes($formId) {
|
||||
if (!\OC::$server->getUserSession()->getUser() instanceof IUser) {
|
||||
$currentUser = '';
|
||||
} else {
|
||||
$currentUser = \OC::$server->getUserSession()->getUser()->getUID();
|
||||
}
|
||||
|
||||
$event = $this->getEvent($formId);
|
||||
|
||||
$accessList = $this->convertAccessList($event['access']);
|
||||
|
||||
if ($event['owner'] == $currentUser) {
|
||||
$votesList = array();
|
||||
$votes = $this->voteMapper->findByForm($formId);
|
||||
|
||||
|
|
@ -243,24 +225,9 @@ class ApiController extends Controller {
|
|||
|
||||
return $votesList;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read all comments of a form based on the form id
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
* @param Integer $formId
|
||||
* @return Array
|
||||
*/
|
||||
public function getComments($formId) {
|
||||
$commentsList = array();
|
||||
$comments = $this->commentMapper->findByForm($formId);
|
||||
|
||||
foreach ($comments as $commentElement) {
|
||||
$commentsList[] = $commentElement->read();
|
||||
}
|
||||
|
||||
return $commentsList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read an entire form based on form id
|
||||
|
|
@ -382,7 +349,6 @@ class ApiController extends Controller {
|
|||
'grantedAs' => $this->grantAccessAs($event, $shares),
|
||||
'mode' => $mode,
|
||||
'event' => $event,
|
||||
'comments' => $this->getComments($event['id']),
|
||||
'votes' => $this->getVotes($event['id']),
|
||||
'shares' => $shares,
|
||||
'options' => [
|
||||
|
|
@ -436,7 +402,6 @@ class ApiController extends Controller {
|
|||
if ($this->userId !== $formToDelete->getOwner() && !$this->groupManager->isAdmin($this->userId)) {
|
||||
return new DataResponse(null, Http::STATUS_UNAUTHORIZED);
|
||||
}
|
||||
$this->commentMapper->deleteByForm($id);
|
||||
$this->voteMapper->deleteByForm($id);
|
||||
// $this->notificationMapper->deleteByForm($id);
|
||||
$this->questionMapper->deleteByForm($id);
|
||||
|
|
@ -473,8 +438,6 @@ class ApiController extends Controller {
|
|||
$newEvent->setDescription($event['description']);
|
||||
|
||||
$newEvent->setIsAnonymous($event['isAnonymous']);
|
||||
$newEvent->setFullAnonymous($event['fullAnonymous']);
|
||||
$newEvent->setAllowMaybe($event['allowMaybe']);
|
||||
|
||||
if ($event['access'] === 'select') {
|
||||
$shareAccess = '';
|
||||
|
|
|
|||
|
|
@ -27,14 +27,10 @@
|
|||
|
||||
namespace OCA\Forms\Controller;
|
||||
|
||||
use OCA\Forms\Db\Comment;
|
||||
use OCA\Forms\Db\CommentMapper;
|
||||
use OCA\Forms\Db\Event;
|
||||
use OCA\Forms\Db\EventMapper;
|
||||
use OCA\Forms\Db\Notification;
|
||||
use OCA\Forms\Db\NotificationMapper;
|
||||
// use OCA\Forms\Db\Option;
|
||||
// use OCA\Forms\Db\OptionMapper;
|
||||
use OCA\Forms\Db\Vote;
|
||||
use OCA\Forms\Db\VoteMapper;
|
||||
|
||||
|
|
@ -68,10 +64,8 @@ class PageController extends Controller {
|
|||
|
||||
private $userId;
|
||||
private $config;
|
||||
private $commentMapper;
|
||||
private $eventMapper;
|
||||
private $notificationMapper;
|
||||
// private $optionMapper;
|
||||
private $voteMapper;
|
||||
|
||||
private $questionMapper;
|
||||
|
|
@ -99,8 +93,6 @@ class PageController extends Controller {
|
|||
* @param IFactory $transFactory
|
||||
* @param IURLGenerator $urlGenerator
|
||||
* @param string $userId
|
||||
* @param CommentMapper $commentMapper
|
||||
* @param OptionMapper $optionMapper
|
||||
* @param EventMapper $eventMapper
|
||||
*
|
||||
* @param QuestionMapper $questionMapper
|
||||
|
|
@ -122,8 +114,6 @@ class PageController extends Controller {
|
|||
IFactory $transFactory,
|
||||
IURLGenerator $urlGenerator,
|
||||
$userId,
|
||||
CommentMapper $commentMapper,
|
||||
// OptionMapper $optionMapper,
|
||||
EventMapper $eventMapper,
|
||||
|
||||
QuestionMapper $questionMapper,
|
||||
|
|
@ -144,8 +134,6 @@ class PageController extends Controller {
|
|||
$this->transFactory = $transFactory;
|
||||
$this->urlGenerator = $urlGenerator;
|
||||
$this->userId = $userId;
|
||||
$this->commentMapper = $commentMapper;
|
||||
// $this->optionMapper = $optionMapper;
|
||||
$this->eventMapper = $eventMapper;
|
||||
|
||||
$this->questionMapper = $questionMapper;
|
||||
|
|
@ -358,9 +346,7 @@ class PageController extends Controller {
|
|||
}
|
||||
$form = new Event();
|
||||
$form->setId($formId);
|
||||
$this->commentMapper->deleteByForm($formId);
|
||||
$this->voteMapper->deleteByForm($formId);
|
||||
// $this->optionMapper->deleteByForm($formId);
|
||||
$this->eventMapper->delete($form);
|
||||
$url = $this->urlGenerator->linkToRoute('forms.page.index');
|
||||
return new RedirectResponse($url);
|
||||
|
|
@ -379,71 +365,50 @@ class PageController extends Controller {
|
|||
* @return RedirectResponse
|
||||
*/
|
||||
public function insertVote($id, $userId, $answers, $questions) {
|
||||
|
||||
$form = $this->eventMapper->find($id);
|
||||
$count_answers = count($answers);
|
||||
$count = 1;
|
||||
$anonID = "anon-user-". hash('md5', (time() + rand()));
|
||||
|
||||
for ($i = 0; $i < $count_answers; $i++) {
|
||||
if($questions[$i]['type'] == "checkbox"){
|
||||
foreach (($answers[$questions[$i]['text']]) as $value) {
|
||||
$vote = new Vote();
|
||||
$vote->setFormId($id);
|
||||
$vote->setUserId($userId);
|
||||
if($form->getIsAnonymous()){
|
||||
$vote->setUserId($anonID);
|
||||
|
||||
}else{
|
||||
$vote->setUserId($userId);
|
||||
}
|
||||
$vote->setVoteOptionText(htmlspecialchars($questions[$i]['text']));
|
||||
$vote->setVoteAnswer($value);
|
||||
$vote->setVoteOptionId($count);
|
||||
$vote->setVoteOptionType($questions[$i]['type']);
|
||||
$this->voteMapper->insert($vote);
|
||||
}
|
||||
$count++;
|
||||
} else {
|
||||
$vote = new Vote();
|
||||
$vote->setFormId($id);
|
||||
$vote->setUserId($userId);
|
||||
if($form->getIsAnonymous()){
|
||||
$vote->setUserId($anonID);
|
||||
}else{
|
||||
$vote->setUserId($userId);
|
||||
}
|
||||
$vote->setVoteOptionText(htmlspecialchars($questions[$i]['text']));
|
||||
$vote->setVoteAnswer($answers[$questions[$i]['text']]);
|
||||
$vote->setVoteOptionId($count++);
|
||||
$vote->setVoteOptionType($questions[$i]['type']);
|
||||
$this->voteMapper->insert($vote);
|
||||
}
|
||||
}
|
||||
|
||||
$hash = $form->getHash();
|
||||
$url = $this->urlGenerator->linkToRoute('forms.page.goto_form', ['hash' => $hash]);
|
||||
return new RedirectResponse($url);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
* @PublicPage
|
||||
* @param int $formId
|
||||
* @param string $userId
|
||||
* @param string $commentBox
|
||||
* @return JSONResponse
|
||||
*/
|
||||
public function insertComment($formId, $userId, $commentBox) {
|
||||
$comment = new Comment();
|
||||
$comment->setFormId($formId);
|
||||
$comment->setUserId($userId);
|
||||
$comment->setComment($commentBox);
|
||||
$comment->setDt(date('Y-m-d H:i:s'));
|
||||
$this->commentMapper->insert($comment);
|
||||
$this->sendNotifications($formId, $userId);
|
||||
$timeStamp = time();
|
||||
$displayName = $userId;
|
||||
$user = $this->userMgr->get($userId);
|
||||
if ($user !== null) {
|
||||
$displayName = $user->getDisplayName();
|
||||
}
|
||||
return new JSONResponse(array(
|
||||
'userId' => $userId,
|
||||
'displayName' => $displayName,
|
||||
'timeStamp' => $timeStamp * 100,
|
||||
'date' => date('Y-m-d H:i:s', $timeStamp),
|
||||
'relativeNow' => $this->trans->t('just now'),
|
||||
'comment' => $commentBox
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue