Skip to content

Commit

Permalink
MoveIssueTimetracks: avaiable in edit_team
Browse files Browse the repository at this point in the history
  • Loading branch information
lbayle committed Dec 4, 2016
1 parent 5da543d commit 691f799
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 5 deletions.
27 changes: 27 additions & 0 deletions admin/edit_team.php
Expand Up @@ -281,6 +281,33 @@ protected function display() {

$teamGeneralPrefs = $this->getTeamGeneralPrefs($team);
$this->smartyHelper->assign('teamGeneralPrefs', $teamGeneralPrefs);

// feed the PluginDataProvider
$dashboardDomain = IndicatorPluginInterface::DOMAIN_TEAM_ADMIN;
$pluginDataProvider = PluginDataProvider::getInstance();
$pluginDataProvider->setParam(PluginDataProviderInterface::PARAM_SESSION_USER_ID, $this->session_userid);
$pluginDataProvider->setParam(PluginDataProviderInterface::PARAM_TEAM_ID, $displayed_teamid);
$pluginDataProvider->setParam(PluginDataProviderInterface::PARAM_DOMAIN, $dashboardDomain);

$dashboardName = 'EditTeam'; // same settings for all teams

// save the DataProvider for Ajax calls
$_SESSION[PluginDataProviderInterface::SESSION_ID.$dashboardName] = serialize($pluginDataProvider);

// create the Dashboard
$dashboard = new Dashboard($dashboardName);
$dashboard->setDomain($dashboardDomain);
$dashboard->setCategories(array(
IndicatorPluginInterface::CATEGORY_ADMIN,
));
$dashboard->setTeamid($this->teamid);
$dashboard->setUserid($this->session_userid);

$data = $dashboard->getSmartyVariables($this->smartyHelper);
foreach ($data as $smartyKey => $smartyVariable) {
$this->smartyHelper->assign($smartyKey, $smartyVariable);
}

}
}
}
Expand Down
1 change: 1 addition & 0 deletions classes/IndicatorPluginInterface.class.php
Expand Up @@ -36,6 +36,7 @@ interface IndicatorPluginInterface {
const DOMAIN_TASK = 'Task';
const DOMAIN_IMPORT_EXPORT = 'Import_Export';
const DOMAIN_ADMIN = 'Admin';
const DOMAIN_TEAM_ADMIN = 'TeamAdmin';

// KPI category
// A dashboard can display multiple categorues
Expand Down
1 change: 1 addition & 0 deletions classes/PluginDataProviderInterface.php
Expand Up @@ -40,6 +40,7 @@ interface PluginDataProviderInterface {
* Note: all params will not always be avalable,
* it is context dependent (see IndicatorPlugin domain).
*/
const PARAM_DOMAIN = 'domain';
const PARAM_TEAM_ID = 'teamid';
const PARAM_PROJECT_ID = 'projectid';
const PARAM_SESSION_USER_ID = 'sessionUserId';
Expand Down
17 changes: 13 additions & 4 deletions plugins/MoveIssueTimetracks/MoveIssueTimetracks.class.php
Expand Up @@ -32,6 +32,7 @@ class MoveIssueTimetracks extends IndicatorPluginAbstract {
// params from PluginDataProvider

private $teamid;
private $domain;
private $sessionUserId;
// internal
protected $execData;
Expand All @@ -46,6 +47,8 @@ public static function staticInit() {
// A plugin can be displayed in multiple domains
self::$domains = array(
self::DOMAIN_ADMIN,
self::DOMAIN_TEAM_ADMIN,
#self::DOMAIN_USER, // warn, needs to check which timetrack the user is allowed to move
);
// A plugin should have only one category
self::$categories = array(
Expand All @@ -58,7 +61,7 @@ public static function getName() {
}

public static function getDesc($isShortDesc = true) {
return T_('Move timetracks of issues');
return T_('Move timetracks from one issue to another');
}

public static function getAuthor() {
Expand Down Expand Up @@ -116,6 +119,11 @@ public function initialize(PluginDataProviderInterface $pluginDataProv) {
} else {
throw new Exception("Missing parameter: ".PluginDataProviderInterface::PARAM_TEAM_ID);
}
if (NULL != $pluginDataProv->getParam(PluginDataProviderInterface::PARAM_DOMAIN)) {
$this->domain = $pluginDataProv->getParam(PluginDataProviderInterface::PARAM_DOMAIN);
} else {
$this->domain = 'unknown';
}

// set default pluginSettings
}
Expand Down Expand Up @@ -179,6 +187,7 @@ public function getTimetracks($users, $beginDate, $endDate, $task)
'date' => date('Y-m-d', $tt->getDate()),
'job' => $jobs->getJobName($tt->getJobId()),
'duration' => $tt->getDuration(),
//'timetrackNote' => $tt->getNote(),
'committer' => $committer_name,
'commit_date' => $commit_date,
'task_id' => $issue->getId(),
Expand Down Expand Up @@ -239,15 +248,15 @@ public function moveTimetracks($timetracksIds, $destBugId)

/**
*
* Table Repartition du temps par status
*
*/
public function execute() {

$team = TeamCache::getInstance()->getTeam($this->teamid);
$session_user = UserCache::getInstance()->getUser($this->sessionUserId);
$isAdmin = $session_user->isTeamMember(Config::getInstance()->getValue(Config::id_adminTeamId));

if ($isAdmin) {
if ($isAdmin && (IndicatorPluginInterface::DOMAIN_TEAM_ADMIN !== $this->domain)) {
// Administrators can manage all teams
$teamList = Team::getTeams(true);
$teamMembers = $team->getMembers();
Expand All @@ -256,7 +265,7 @@ public function execute() {
$teamList = array($this->teamid => $team->getName());

if (($team->getLeaderId() === $this->sessionUserId) ||
($session_user->isTeamManager($this->teamid))) {
($session_user->isTeamManager($this->teamid)) || $isAdmin) {
// teamLeader & managers can manage all team members
$teamMembers = $team->getMembers();
} else {
Expand Down
2 changes: 1 addition & 1 deletion plugins/MoveIssueTimetracks/MoveIssueTimetracks_cfg.html
@@ -1,6 +1,6 @@
<table class="invisible">
<tr>
<td>{t}Title{/t}:</td>
<td><input class="pluginAttribute" name="widgetTitle" value="{t}Issue timetracks move{/t}"></td>
<td><input class="pluginAttribute" name="widgetTitle" value="{t}Move issue timetracks{/t}"></td>
</tr>
</table>
4 changes: 4 additions & 0 deletions tpl/edit_team.html
Expand Up @@ -32,6 +32,7 @@
<li class="{$ui_tabs_jquery_li}"><a href="#tabPreferences">{t}Preferences{/t}</a></li>
<li class="{$ui_tabs_jquery_li}"><a href="#tabDuration">{t}Timetrack Durations{/t}</a></li>
<li class="{$ui_tabs_jquery_li}"><a href="#tabOnDuty">{t}OnDuty tasks{/t}</a></li>
<li class="{$ui_tabs_jquery_li}"><a href="#tabTools">{t}Tools{/t}</a></li>
</ul>

<div id="tabGeneral">
Expand Down Expand Up @@ -272,6 +273,9 @@ <h2>{t}Create SideTasksProject{/t}</h2>
</form>
</div>
</div>
<div id="tabTools">
{include file="tools/dashboard.html"}
</div>

<div id="tabPreferences">
<h2>{t}General{/t}</h2>
Expand Down

0 comments on commit 691f799

Please sign in to comment.