Skip to content
Snippets Groups Projects
Commit ab746308 authored by Tim Steiner's avatar Tim Steiner
Browse files

Add a "hide" link to completed requests.

parent 2167c399
Branches
No related tags found
No related merge requests found
...@@ -71,8 +71,10 @@ class Requests_IndexController extends App_Controller_Action ...@@ -71,8 +71,10 @@ class Requests_IndexController extends App_Controller_Action
$request['comments'] = $requestComments[$requestId]; $request['comments'] = $requestComments[$requestId];
if ($requestViewTimes[$requestId] instanceof Requests_ViewTimeModel) { if ($requestViewTimes[$requestId] instanceof Requests_ViewTimeModel) {
$request['viewTime'] = $requestViewTimes[$requestId]->getTime(); $request['viewTime'] = $requestViewTimes[$requestId]->getTime();
$request['hidden'] = $requestViewTimes[$requestId]->isHidden();
} else { } else {
$request['viewTime'] = 0; $request['viewTime'] = 0;
$request['hidden'] = false;
} }
if ($requestVotes[$requestId] instanceof Requests_ApproverVoteModel) { if ($requestVotes[$requestId] instanceof Requests_ApproverVoteModel) {
$request['vote'] = $requestVotes[$requestId]; $request['vote'] = $requestVotes[$requestId];
...@@ -150,8 +152,10 @@ class Requests_IndexController extends App_Controller_Action ...@@ -150,8 +152,10 @@ class Requests_IndexController extends App_Controller_Action
$request['comments'] = $requestComments[$requestId]; $request['comments'] = $requestComments[$requestId];
if ($requestViewTimes[$requestId] instanceof Requests_ViewTimeModel) { if ($requestViewTimes[$requestId] instanceof Requests_ViewTimeModel) {
$request['viewTime'] = $requestViewTimes[$requestId]->getTime(); $request['viewTime'] = $requestViewTimes[$requestId]->getTime();
$request['hidden'] = $requestViewTimes[$requestId]->isHidden();
} else { } else {
$request['viewTime'] = 0; $request['viewTime'] = 0;
$request['hidden'] = false;
} }
foreach ($session->sortBy as $key => $sortBy) { foreach ($session->sortBy as $key => $sortBy) {
if ($sortBy == 'courseCode') { if ($sortBy == 'courseCode') {
...@@ -244,4 +248,26 @@ class Requests_IndexController extends App_Controller_Action ...@@ -244,4 +248,26 @@ class Requests_IndexController extends App_Controller_Action
$this->_redirect('/requests'); $this->_redirect('/requests');
} }
public function hideRequestPostAction()
{
$requestId = $this->getRequest()->getParam('id');
$user = Auth_UserModel::findCurrentUser();
$request = Requests_RequestModel::find($requestId);
if ($request && $user) {
$viewTime = Requests_ViewTimeModel::findByUserAndRequest($user, $request);
if (!$viewTime) {
$viewTime = Requests_ViewTimeModel::fetchNew();
$viewTime->setUser($user);
$viewTime->setRequest($request);
}
$viewTime->setHidden();
$collection = new Unl_Model_Collection('Requests_ViewTimeModel');
$collection[] = $viewTime;
Requests_ViewTimeModel::save($collection);
}
$this->_redirect('/requests');
}
} }
...@@ -100,7 +100,8 @@ class Requests_ViewTimeModel extends Unl_Model ...@@ -100,7 +100,8 @@ class Requests_ViewTimeModel extends Unl_Model
$data = array( $data = array(
'request' => null, 'request' => null,
'user' => null, 'user' => null,
'viewTime' => null 'viewTime' => 0,
'hidden' => 'no'
); );
$new = new self($data); $new = new self($data);
$new->_setClean(); $new->_setClean();
...@@ -156,7 +157,8 @@ class Requests_ViewTimeModel extends Unl_Model ...@@ -156,7 +157,8 @@ class Requests_ViewTimeModel extends Unl_Model
$sqlParts[] = $db->quoteInto('(?, ', $model->_data['requestViewTimeId']) $sqlParts[] = $db->quoteInto('(?, ', $model->_data['requestViewTimeId'])
. $db->quoteInto('?, ' , $model->_data['request']) . $db->quoteInto('?, ' , $model->_data['request'])
. $db->quoteInto('?, ' , $model->_data['user']) . $db->quoteInto('?, ' , $model->_data['user'])
. $db->quoteInto('?)' , $model->_data['viewTime']); . $db->quoteInto('?, ' , $model->_data['viewTime'])
. $db->quoteInto('?)' , $model->_data['hidden']);
} }
$sql .= implode(', ', $sqlParts); $sql .= implode(', ', $sqlParts);
$db->query($sql); $db->query($sql);
...@@ -165,7 +167,8 @@ class Requests_ViewTimeModel extends Unl_Model ...@@ -165,7 +167,8 @@ class Requests_ViewTimeModel extends Unl_Model
. ' creqRequestViewTimesUpdate AS b ' . ' creqRequestViewTimesUpdate AS b '
. 'SET a.request = b.request, ' . 'SET a.request = b.request, '
. ' a.user = b.user, ' . ' a.user = b.user, '
. ' a.viewTime = b.viewTime ' . ' a.viewTime = b.viewTime, '
. ' a.hidden = b.hidden '
. 'WHERE a.requestViewTimeId = b.requestViewTimeId '; . 'WHERE a.requestViewTimeId = b.requestViewTimeId ';
$db->query($sql); $db->query($sql);
} }
...@@ -174,12 +177,13 @@ class Requests_ViewTimeModel extends Unl_Model ...@@ -174,12 +177,13 @@ class Requests_ViewTimeModel extends Unl_Model
{ {
$db = Zend_Registry::get('db'); $db = Zend_Registry::get('db');
$sql = 'INSERT INTO creqRequestViewTimes (request, user, viewTime) VALUES '; $sql = 'INSERT INTO creqRequestViewTimes (request, user, viewTime, hidden) VALUES ';
$sqlParts = array(); $sqlParts = array();
foreach ($models as $model) { foreach ($models as $model) {
$sqlParts[] = $db->quoteInto('(?, ', $model->_data['request']) $sqlParts[] = $db->quoteInto('(?, ', $model->_data['request'])
. $db->quoteInto('?, ' , $model->_data['user']) . $db->quoteInto('?, ' , $model->_data['user'])
. $db->quoteInto('?)' , $model->_data['viewTime']); . $db->quoteInto('?, ' , $model->_data['viewTime'])
. $db->quoteInto('?)' , $model->_data['hidden']);
} }
$sql .= implode(', ', $sqlParts); $sql .= implode(', ', $sqlParts);
$db->query($sql); $db->query($sql);
...@@ -226,4 +230,18 @@ class Requests_ViewTimeModel extends Unl_Model ...@@ -226,4 +230,18 @@ class Requests_ViewTimeModel extends Unl_Model
{ {
$this->_data['viewTime'] = $date->getTimestamp(); $this->_data['viewTime'] = $date->getTimestamp();
} }
public function isHidden()
{
return (bool) ($this->_data['hidden'] == 'yes');
}
public function setHidden($hidden = true)
{
if ($hidden) {
$this->_data['hidden'] = 'yes';
} else {
$this->_data['hidden'] = 'no';
}
}
} }
...@@ -148,6 +148,10 @@ ...@@ -148,6 +148,10 @@
} }
} }
} }
if ($request->isComplete() && $requestData['hidden']) {
continue;
}
?> ?>
<tr <?php echo (++$row % 2 ? 'class="odd"' : ''); ?>> <tr <?php echo (++$row % 2 ? 'class="odd"' : ''); ?>>
<!-- td><input type="checkbox" /></td --> <!-- td><input type="checkbox" /></td -->
...@@ -181,6 +185,9 @@ ...@@ -181,6 +185,9 @@
<?php if ($request->isEditable() || $request->isSubmitterAttentionRequired()) { ?> <?php if ($request->isEditable() || $request->isSubmitterAttentionRequired()) { ?>
/ /
<a class="requestLink<?php echo $linkClass; ?>" href="<?php echo $this->baseUrl(); ?>/requests/edit/load/id/<?php echo $request->getId(); ?>">Edit</a> <a class="requestLink<?php echo $linkClass; ?>" href="<?php echo $this->baseUrl(); ?>/requests/edit/load/id/<?php echo $request->getId(); ?>">Edit</a>
<?php } else if ($request->isComplete()) { ?>
/
<a class="requestLink<?php echo $linkClass; ?>" href="<?php echo $this->baseUrl(); ?>/requests/index/hide-request.post/id/<?php echo $request->getId(); ?>">Hide</a>
<?php } ?> <?php } ?>
</td> </td>
<td> <td>
...@@ -386,6 +393,10 @@ foreach($this->roles as $roleData) { ...@@ -386,6 +393,10 @@ foreach($this->roles as $roleData) {
} else { } else {
$linkClass = 'New'; $linkClass = 'New';
} }
if ($request->isComplete() && $requestData['hidden']) {
continue;
}
?> ?>
<tr <?php echo (++$row % 2 ? 'class="odd"' : ''); ?>> <tr <?php echo (++$row % 2 ? 'class="odd"' : ''); ?>>
<!-- td><input type="checkbox" /></td --> <!-- td><input type="checkbox" /></td -->
...@@ -406,6 +417,10 @@ foreach($this->roles as $roleData) { ...@@ -406,6 +417,10 @@ foreach($this->roles as $roleData) {
</td> </td>
<td> <td>
<a class="requestLink<?php echo $linkClass; ?>" href="<?php echo $this->baseUrl(); ?>/requests/view/index/id/<?php echo $request->getId(); ?>/role/<?php echo $role->getId(); ?>/list/watching">View</a> <a class="requestLink<?php echo $linkClass; ?>" href="<?php echo $this->baseUrl(); ?>/requests/view/index/id/<?php echo $request->getId(); ?>/role/<?php echo $role->getId(); ?>/list/watching">View</a>
<?php if ($request->isComplete()) { ?>
/
<a class="requestLink<?php echo $linkClass; ?>" href="<?php echo $this->baseUrl(); ?>/requests/index/hide-request.post/id/<?php echo $request->getId(); ?>">Hide</a>
<?php } ?>
</td> </td>
<td> <td>
<?php <?php
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment