16 import(
'lib.pkp.classes.form.Form');
38 function __construct($actionArgs, $query, $user, $noteId =
null) {
39 parent::__construct(
'controllers/grid/queries/form/queryNoteForm.tpl');
40 $this->_actionArgs = $actionArgs;
43 if ($noteId ===
null) {
46 $note = $noteDao->newDataObject();
47 $note->setAssocType(ASSOC_TYPE_QUERY);
48 $note->setAssocId($query->getId());
49 $note->setUserId($user->getId());
51 $this->_noteId = $noteDao->insertObject($note);
54 $this->_noteId = $noteId;
55 $this->_isNew =
false;
59 $this->
addCheck(
new FormValidator($this,
'comment',
'required',
'submission.queries.messageRequired'));
80 $this->_query = $query;
96 function fetch($request, $template =
null, $display =
false) {
98 $templateMgr->assign(array(
99 'actionArgs' => $this->_actionArgs,
100 'noteId' => $this->_noteId,
101 'csrfToken' => $request->getSession()->getCSRFToken(),
103 return parent::fetch($request, $template, $display);
110 function execute(...$functionArgs) {
112 $user = $request->getUser();
116 $note = $noteDao->getById($this->_noteId);
117 $note->setUserId($request->getUser()->getId());
118 $note->setContents($this->
getData(
'comment'));
119 $noteDao->updateObject($note);
123 if ($query->getIsClosed()) {
124 $headNote = $query->getHeadNote();
125 if ($user->getId() != $headNote->getUserId()) {
127 $query->setIsClosed(
false);
129 $queryDao->updateObject($query);
137 if (!in_array($user->getId(), $queryDao->getParticipantIds($query->getId()))) {
138 $queryDao->insertParticipant($query->getId(), $user->getId());
142 foreach ($queryDao->getParticipantIds($query->getId()) as $userId) {
144 $notificationDao->deleteByAssoc(
145 ASSOC_TYPE_QUERY, $query->getId(),
146 $userId, NOTIFICATION_TYPE_QUERY_ACTIVITY,
147 $request->getContext()->getId()
151 if ($userId == $user->getId())
continue;
154 $notificationManager->createNotification(
157 NOTIFICATION_TYPE_QUERY_ACTIVITY,
158 $request->getContext()->getId(),
161 NOTIFICATION_LEVEL_TASK
165 parent::execute(...$functionArgs);