Skip to content

Commit 34ab171

Browse files
committed
Timetracking: adapt filters to lazy load
1 parent dfb900d commit 34ab171

6 files changed

Lines changed: 30 additions & 38 deletions

File tree

classes/config.class.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ class Config {
126126
const id_userGroups = 'userGroups';
127127
const id_importRelationshipTreeToCommandOptions = 'importRelationshipTreeToCommandOptions';
128128

129-
const default_timetrackingFilters = "onlyAssignedTo:0,hideResolved:0,hideForbidenStatus:1,hideNoActivitySince:3";
129+
const default_timetrackingFilters = "onlyAssignedTo:0,hideResolved:0,hideForbidenStatus:1";
130130
const default_timetrackingForbidenStatusList = "90"; // 90:closed (do not include 'new')
131131

132132
// TODO Move to a more appropriate class

classes/team.class.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1549,8 +1549,9 @@ public function getUdcValue($userid, $timestamp, $targetCurrency=NULL, $isRaw=FA
15491549
*
15501550
* @return array of status_id => status_name
15511551
*/
1552-
function getTimetrackingForbidenStatusList($project_id = 0) {
1552+
function getTimetrackingForbidenStatusList($project_id) {
15531553

1554+
$timetrackingForbidenStatusList= array();
15541555
$keyExists = Config::keyExists(Config::id_timetrackingForbidenStatusList, array(0, $project_id, $this->id, 0, 0, 0));
15551556

15561557
// externalTasks should not be edited, but only allowed status is 'closed'

classes/user.class.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1099,7 +1099,7 @@ public function getAvailableTime($timestamp) {
10991099
* if not found, use defaults settings defined in constants.php
11001100
*
11011101
* id = 'id_timetrackingFilters'
1102-
* type = keyValue "onlyAssignedTo:0,hideResolved:1,hideForbidenStatus:0,hideNoActivitySince:3"
1102+
* type = keyValue "onlyAssignedTo:0,hideResolved:1,hideForbidenStatus:0"
11031103
*
11041104
* @param string $filterName 'onlyAssignedTo'
11051105
* @return unknown_type returns filterValue

timetracking/time_tracking.php

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -103,17 +103,8 @@ protected function display() {
103103
$isFilter_hideResolved = isset($_POST["cb_hideResolved"]) ? '1' : '0';
104104
//$isFilter_hideForbidenStatus = isset($_POST["cb_hideForbidenStatus"]) ? '1' : '0';
105105

106-
$isFilter_hideNoActivitySince = isset($_POST["cb_hideNoActivitySince"]) ? '1' : '0';
107-
if (!$isFilter_hideNoActivitySince) {
108-
// if unchecked, then hide none
109-
$hideNoActivitySince = 0;
110-
} else {
111-
$hideNoActivitySince = Tools::getSecurePOSTIntValue('hideNoActivitySince');
112-
}
113-
114106
$managed_user->setTimetrackingFilter('onlyAssignedTo', $isFilter_onlyAssignedTo);
115107
$managed_user->setTimetrackingFilter('hideResolved', $isFilter_hideResolved);
116-
$managed_user->setTimetrackingFilter('hideNoActivitySince', $hideNoActivitySince);
117108
//$managed_user->setTimetrackingFilter('hideForbidenStatus', $isFilter_hideForbidenStatus);
118109

119110
}
@@ -154,19 +145,6 @@ protected function display() {
154145
$isHideForbidenStatus = ('0' == $managed_user->getTimetrackingFilter('hideForbidenStatus')) ? false : true;
155146
$this->smartyHelper->assign('isHideForbidenStatus', $isHideForbidenStatus);
156147

157-
$hideNoActivitySince = $managed_user->getTimetrackingFilter('hideNoActivitySince');
158-
if (0 == $hideNoActivitySince) {
159-
// uncheck, but set value to default (instead of zero)
160-
$this->smartyHelper->assign('isHideNoActivitySince', false);
161-
$defaultFilters = Tools::doubleExplode(':', ',', Config::default_timetrackingFilters);
162-
$hideNoActivitySince = $defaultFilters['hideNoActivitySince'];
163-
} else {
164-
$this->smartyHelper->assign('isHideNoActivitySince', true);
165-
}
166-
$this->smartyHelper->assign('hideNoActivitySince', $hideNoActivitySince);
167-
168-
//$availableIssues = TimeTrackingTools::getIssues($this->teamid, $defaultProjectid, $isOnlyAssignedTo, $managed_user->getId(), $projList, $isHideResolved, $isHideForbidenStatus, $defaultBugid, $hideNoActivitySince);
169-
170148
$this->smartyHelper->assign('jobs', SmartyTools::getSmartyArray(TimeTrackingTools::getJobs($defaultProjectid, $this->teamid), $job));
171149
$this->smartyHelper->assign('duration', SmartyTools::getSmartyArray(TimeTrackingTools::getDurationList($this->teamid),$duration));
172150

timetracking/time_tracking_ajax.php

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,6 @@
4949
$isHideResolved = ('0' == $managedUser->getTimetrackingFilter('hideResolved')) ? false : true;
5050
//$isHideForbidenStatus = ('0' == $managedUser->getTimetrackingFilter('hideForbidenStatus')) ? false : true;
5151
$isHideForbidenStatus=true;
52-
$hideNoActivitySince = $managedUser->getTimetrackingFilter('hideNoActivitySince');
53-
// $availableIssues = TimeTrackingTools::getIssues($teamid, $defaultProjectid, $isOnlyAssignedTo, $managedUserid, $projList, $isHideResolved, $isHideForbidenStatus, 0, $hideNoActivitySince);
54-
5552

5653
$data = array();
5754
try {
@@ -61,9 +58,33 @@
6158
$projList = array ();
6259
$projectidList = array_keys($team->getProjects(true, false, true));
6360
}
61+
6462
$issueList = Issue::search($searchStr, $projectidList);
65-
// https://select2.org/data-sources/formats
6663
foreach ($issueList as $issue) {
64+
65+
$project1 = ProjectCache::getInstance()->getProject($issue->getProjectId());
66+
67+
// except for SideTask & ExternalTask
68+
if ((false == $project1->isExternalTasksProject()) &&
69+
(false == $project1->isSideTasksProject(array($teamid)))) {
70+
71+
if ($isOnlyAssignedTo && ($managedUserid != $issue->getHandlerId())) {
72+
//$logger->error("isOnlyAssignedTo : ".$issue->getId()." handler=".$issue->getHandlerId() );
73+
continue;
74+
}
75+
if ($isHideResolved && $issue->isResolved()) {
76+
//$logger->error("isHideResolved : ".$issue->getId()." status=".$issue->getStatus() );
77+
continue;
78+
}
79+
if ($isHideForbidenStatus) {
80+
$ttForbidenStatusList = array_keys($team->getTimetrackingForbidenStatusList($issue->getProjectId()));
81+
if (in_array($issue->getStatus(), $ttForbidenStatusList)) {
82+
//$logger->error("forbidden : ".$issue->getId()." status=".$issue->getStatus() );
83+
continue;
84+
}
85+
}
86+
}
87+
// https://select2.org/data-sources/formats
6788
$data[] = array('id'=>$issue->getId(), 'text'=>$issue->getFormattedIds().' : '.$issue->getSummary());
6889
}
6990
}

tpl/time_tracking.html

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ <h2>{$managedUser_realname}</h2>
4848
</select>
4949
{/if}
5050
<a title="{t}Set filters{/t}" id="filters" style="text-decoration: none" href="{$page}">
51-
{if $isOnlyAssignedTo || $isHideResolved || ($isHideNoActivitySince)}
51+
{if $isOnlyAssignedTo || $isHideResolved}
5252
<img border="0" width="16" height="12" align="absmiddle" src="images/im-filter-active.png" alt="{t}Set filters{/t}" />
5353
{else}
5454
<img border="0" width="16" height="12" align="absmiddle" src="images/im-filter.png" alt="{t}Set filters{/t}" />
@@ -125,14 +125,6 @@ <h2>{$managedUser_realname}</h2>
125125
<fieldset>
126126

127127
<table class="invisible">
128-
<tr>
129-
<td><input type="checkbox" id="cb_hideNoActivitySince" name="cb_hideNoActivitySince" {if ($isHideNoActivitySince)} checked="checked" {/if}/></td>
130-
<td>
131-
<label>{t}Hide tasks with no activity since{/t} </label>
132-
<input id="hideNoActivitySince" name="hideNoActivitySince" value="{$hideNoActivitySince}" style="width:20px;"/>
133-
<label>{t}month{/t}</label>
134-
</td>
135-
</tr>
136128
<tr>
137129
<td><input type="checkbox" id="cb_onlyAssignedTo" name="cb_onlyAssignedTo" {if $isOnlyAssignedTo} checked="checked" {/if}/></td>
138130
<td><label for="cb_onlyAssignedTo">{t}Hide tasks not assigned to me{/t}</label></td>

0 commit comments

Comments
 (0)