Ejemplo n.º 1
0
 protected function updateTeamSelector()
 {
     if (Tools::isConnectedUser()) {
         // use the teamid set in the form, if not defined (first page call) use session teamid
         if (isset($_GET['teamid'])) {
             $this->teamid = Tools::getSecureGETIntValue('teamid');
             $_SESSION['teamid'] = $this->teamid;
         } else {
             $this->teamid = isset($_SESSION['teamid']) ? $_SESSION['teamid'] : 0;
         }
         $this->smartyHelper->assign('teamid', $this->teamid);
         $this->session_userid = $_SESSION['userid'];
         $this->session_user = UserCache::getInstance()->getUser($_SESSION['userid']);
         $this->teamList = $this->session_user->getTeamList();
         if (count($this->teamList) > 0) {
             $this->smartyHelper->assign('teams', SmartyTools::getSmartyArray($this->teamList, $_SESSION['teamid']));
         }
         $this->session_user->setDefaultTeam($this->teamid);
         // used to disable some menu items
         if ($this->session_user->isTeamMember(Config::getInstance()->getValue(Config::id_adminTeamId))) {
             $this->smartyHelper->assign('isAdmin', true);
         }
     }
 }
Ejemplo n.º 2
0
        // TODO do not log exception if date = 01-01-1970
        $startTimestamp = Tools::date2timestamp(Tools::getSecureGETStringValue("loadPerUser_startdate"));
        $endTimestamp = Tools::date2timestamp(Tools::getSecureGETStringValue("loadPerUser_enddate"));
        $attributesJsonStr = Tools::getSecureGETStringValue('attributesJsonStr');
        $attributesArray = json_decode(stripslashes($attributesJsonStr), true);
        $showSidetasks = 'on' != $attributesArray[LoadPerUserIndicator::OPTION_SHOW_SIDETASKS] ? false : true;
        //$logger->error("showSidetasks = ".var_export($showSidetasks, true).' attr '.$attributesArray[LoadPerUserIndicator::OPTION_SHOW_SIDETASKS]);
        // update dataProvider
        $pluginDataProvider->setParam(PluginDataProviderInterface::PARAM_START_TIMESTAMP, $startTimestamp);
        $pluginDataProvider->setParam(PluginDataProviderInterface::PARAM_END_TIMESTAMP, $endTimestamp);
        $indicator = new LoadPerUserIndicator($pluginDataProvider);
        // override plugin settings with current attributes
        $indicator->setPluginSettings(array(LoadPerUserIndicator::OPTION_SHOW_SIDETASKS => $showSidetasks));
        $indicator->execute();
        $data = $indicator->getSmartyVariablesForAjax();
        // construct the html table
        foreach ($data as $smartyKey => $smartyVariable) {
            $smartyHelper->assign($smartyKey, $smartyVariable);
            #$logger->debug("key $smartyKey = ".var_export($smartyVariable, true));
        }
        $html = $smartyHelper->fetch(LoadPerUserIndicator::getSmartySubFilename());
        $data['loadPerUser_htmlContent'] = $html;
        // return html & chart data
        $jsonData = json_encode($data);
        echo $jsonData;
    } else {
        Tools::sendNotFoundAccess();
    }
} else {
    Tools::sendUnauthorizedAccess();
}
Ejemplo n.º 3
0
   CoDev-Timetracking is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with CoDev-Timetracking.  If not, see <http://www.gnu.org/licenses/>.
*/
require 'path.inc.php';
if (Tools::isConnectedUser() && (isset($_GET['action']) || isset($_POST['action']))) {
    if (isset($_GET['action'])) {
        $smartyHelper = new SmartyHelper();
        if ($_GET['action'] == 'getTeamProjects') {
            $withDisabled = '1' == Tools::getSecureGETIntValue('withDisabledProjects', 1) ? true : false;
            $projects = TeamCache::getInstance()->getTeam(Tools::getSecureGETIntValue('teamid'))->getProjects(false, $withDisabled);
            $smartyHelper->assign('projects', SmartyTools::getSmartyArray($projects, 0));
            $smartyHelper->display('form/projectSelector');
        } elseif ($_GET['action'] == 'getTeamAllProjects') {
            $withDisabled = '1' == Tools::getSecureGETIntValue('withDisabledProjects', 1) ? true : false;
            $projects[0] = T_('All projects');
            $projects += $projects = TeamCache::getInstance()->getTeam(Tools::getSecureGETIntValue('teamid'))->getProjects(false, $withDisabled);
            $smartyHelper->assign('projects', SmartyTools::getSmartyArray($projects, 0));
            $smartyHelper->display('form/projectSelector');
        } elseif ($_GET['action'] == 'getProjectIssues') {
            $user = UserCache::getInstance()->getUser($_SESSION['userid']);
            $withDisabled = '1' == Tools::getSecureGETIntValue('withDisabledProjects', 1) ? true : false;
            // --- define the list of tasks the user can display
            // All projects from teams where I'm a Developper or Manager AND Observer
            $allProject[0] = T_('(all)');
            $dTeamList = $user->getDevTeamList();
            $devProjList = count($dTeamList) > 0 ? $user->getProjectList($dTeamList, true, $withDisabled) : array();
Ejemplo n.º 4
0
 /**
  * @param SmartyHelper $smartyHelper
  * @param Command $cmd
  */
 public static function displayCommand(SmartyHelper $smartyHelper, Command $cmd, $isManager, $selectedFilters = '')
 {
     if ($isManager) {
         $smartyHelper->assign('isManager', true);
     }
     $smartyHelper->assign('cmdid', $cmd->getId());
     $smartyHelper->assign('cmdName', $cmd->getName());
     $smartyHelper->assign('cmdReference', $cmd->getReference());
     $smartyHelper->assign('cmdVersion', $cmd->getVersion());
     $smartyHelper->assign('cmdReporter', $cmd->getReporter());
     $smartyHelper->assign('cmdStateList', self::getCommandStateList($cmd));
     $smartyHelper->assign('cmdState', Command::$stateNames[$cmd->getState()]);
     $smartyHelper->assign('cmdAverageDailyRate', $cmd->getAverageDailyRate());
     $smartyHelper->assign('cmdCurrency', $cmd->getCurrency());
     if (!is_null($cmd->getStartDate())) {
         $smartyHelper->assign('cmdStartDate', date("Y-m-d", $cmd->getStartDate()));
     }
     if (!is_null($cmd->getDeadline())) {
         $smartyHelper->assign('cmdDeadline', date("Y-m-d", $cmd->getDeadline()));
     }
     $smartyHelper->assign('cmdDesc', $cmd->getDesc());
     $smartyHelper->assign('cmdProvisionList', self::getProvisionList($cmd));
     $smartyHelper->assign('cmdProvisionTypeMngt', CommandProvision::provision_mngt);
     $smartyHelper->assign('cmdProvisionTotalList', self::getProvisionTotalList($cmd));
     $cmdTotalSoldDays = $cmd->getTotalSoldDays();
     $smartyHelper->assign('cmdTotalSoldDays', $cmdTotalSoldDays);
     // --------------
     // TODO math should not be in here !
     $mgrEE = $cmd->getIssueSelection()->mgrEffortEstim;
     $cmdProvAndMeeCost = $mgrEE * $cmd->getAverageDailyRate() + $cmd->getProvisionBudget(TRUE);
     $smartyHelper->assign('cmdProvAndMeeCost', round($cmdProvAndMeeCost, 2));
     $cmdProvAndMeeDays = $mgrEE + $cmd->getProvisionDays(TRUE);
     $smartyHelper->assign('cmdProvAndMeeDays', round($cmdProvAndMeeDays, 2));
     // TODO math should not be in here !
     $cmdTotalReestimated = $cmd->getIssueSelection()->getReestimated();
     $smartyHelper->assign('cmdTotalReestimated', $cmdTotalReestimated);
     $cmdTotalReestimatedCost = $cmdTotalReestimated * $cmd->getAverageDailyRate();
     $smartyHelper->assign('cmdTotalReestimatedCost', $cmdTotalReestimatedCost);
     // TODO math should not be in here !
     #$cmdTotalElapsed = $cmd->getIssueSelection()->getElapsed();
     #$cmdOutlayCost = $cmdTotalElapsed * $cmd->getAverageDailyRate();
     #$smartyHelper->assign('cmdOutlayCost',$cmdOutlayCost);
     #$smartyHelper->assign('cmdTotalElapsed',$cmdTotalElapsed);
     // TODO math should not be in here !
     $cmdTotalDrift = round($cmdTotalReestimated - $cmdProvAndMeeDays, 2);
     $cmdTotalDriftCost = round($cmdTotalReestimatedCost - $cmdProvAndMeeCost, 2);
     $cmdTotalDriftPercent = 0 == $cmdProvAndMeeDays ? 0 : round($cmdTotalDrift * 100 / $cmdProvAndMeeDays, 2);
     $smartyHelper->assign('cmdTotalDrift', $cmdTotalDrift);
     $smartyHelper->assign('cmdTotalDriftCost', $cmdTotalDriftCost);
     $smartyHelper->assign('cmdTotalDriftPercent', $cmdTotalDriftPercent);
     #$color1 = ($cmdOutlayCost > $cmdProvAndMeeCost) ? "fcbdbd" : "bdfcbd";
     #$smartyHelper->assign('cmdOutlayCostColor', $color1);
     #$color2 = ($cmdTotalElapsed > $cmdProvAndMeeDays) ? "fcbdbd" : "bdfcbd";
     #$smartyHelper->assign('cmdTotalElapsedColor',$color2);
     $color3 = $cmdTotalReestimated > $cmdProvAndMeeDays ? "fcbdbd" : "bdfcbd";
     $smartyHelper->assign('cmdTotalReestimatedColor', $color3);
     $color4 = $cmdTotalReestimatedCost > $cmdProvAndMeeCost ? "fcbdbd" : "bdfcbd";
     $smartyHelper->assign('cmdTotalReestimatedCostColor', $color4);
     $color5 = $cmdTotalDrift >= 0 ? "fcbdbd" : "bdfcbd";
     $smartyHelper->assign('cmdTotalDriftColor', $color5);
     // --------------
     // set CommandSets I belong to
     $smartyHelper->assign('parentCmdSets', self::getParentCommandSets($cmd));
     // set task list
     $cmdIssueSel = $cmd->getIssueSelection();
     $smartyHelper->assign('cmdNbIssues', $cmdIssueSel->getNbIssues());
     $smartyHelper->assign('cmdIssues', self::getCommandIssues($cmd));
     // used to create mantis link to view_all_bug_page.php:
     // view_all_set.php?type=1&temporary=y&FilterBugList_list=5079,5073,5108,5107,49396,5006
     $mantisFilterBugList = implode(',', array_keys($cmdIssueSel->getIssueList()));
     $smartyHelper->assign('mantisFilterBugList', $mantisFilterBugList);
     // --------------
     // Indicators & statistics
     // DetailedChargesIndicator
     $data = self::getDetailedCharges($cmd, $isManager, $selectedFilters);
     foreach ($data as $smartyKey => $smartyVariable) {
         $smartyHelper->assign($smartyKey, $smartyVariable);
     }
 }
Ejemplo n.º 5
0
 /**
  * @param SmartyHelper $smartyHelper
  * @param ServiceContract $servicecontract
  */
 public static function displayServiceContract(SmartyHelper $smartyHelper, $servicecontract, $isManager, $selectedFilters = '')
 {
     #$smartyHelper->assign('servicecontractId', $servicecontract->getId());
     $smartyHelper->assign('teamid', $servicecontract->getTeamid());
     $smartyHelper->assign('servicecontractName', $servicecontract->getName());
     $smartyHelper->assign('servicecontractReference', $servicecontract->getReference());
     $smartyHelper->assign('servicecontractVersion', $servicecontract->getVersion());
     $smartyHelper->assign('servicecontractReporter', $servicecontract->getReporter());
     $smartyHelper->assign('servicecontractDesc', $servicecontract->getDesc());
     if (!is_null($servicecontract->getStartDate())) {
         $smartyHelper->assign('servicecontractStartDate', date("Y-m-d", $servicecontract->getStartDate()));
     }
     if (!is_null($servicecontract->getEndDate())) {
         $smartyHelper->assign('servicecontractEndDate', date("Y-m-d", $servicecontract->getEndDate()));
     }
     // Note: StateList is empty, uncomment following lines if ServiceContract::$stateNames is used
     //$smartyHelper->assign('servicecontractStateList', self::getServiceContractStateList($servicecontract));
     //$smartyHelper->assign('servicecontractState', ServiceContract::$stateNames[$servicecontract->getState()]);
     $smartyHelper->assign('cmdsetList', self::getServiceContractCommandSets($servicecontract->getId(), CommandSet::type_general, Command::type_general));
     $smartyHelper->assign('cmdsetTotalDetailedMgr', self::getServiceContractCmdsetTotalDetailedMgr($servicecontract->getId(), CommandSet::type_general, Command::type_general));
     $smartyHelper->assign('cmdList', self::getServiceContractCommands($servicecontract->getId(), CommandSet::type_general, Command::type_general));
     $provDaysByType = $servicecontract->getProvisionDaysByType(CommandSet::type_general, Command::type_general);
     $smartyHelper->assign('sidetasksDetailedMgr', self::getContractSidetasksDetailedMgr($servicecontract->getId(), $provDaysByType));
     $issueSelection = self::getContractSidetasksSelection($servicecontract->getId(), $provDaysByType);
     $smartyHelper->assign('sidetasksTotalDetailedMgr', self::getContractSidetasksTotalDetailedMgr($issueSelection));
     $smartyHelper->assign('sidetasksList', SmartyTools::getIssueListInfo($issueSelection));
     $smartyHelper->assign('nbSidetasksList', $issueSelection->getNbIssues());
     $smartyHelper->assign('cmdProvisionList', self::getProvisionList($servicecontract));
     $smartyHelper->assign('cmdProvisionTotalList', self::getProvisionTotalList($servicecontract));
     $smartyHelper->assign('servicecontractTotalDetailedMgr', self::getContractTotalDetailedMgr($servicecontract->getId(), $provDaysByType));
     // DetailedChargesIndicator
     $data = self::getDetailedCharges($servicecontract, $isManager, $selectedFilters);
     foreach ($data as $smartyKey => $smartyVariable) {
         $smartyHelper->assign($smartyKey, $smartyVariable);
     }
 }
Ejemplo n.º 6
0
 /**
  * 
  * @param PluginDataProvider $pluginDataProvider
  * @param SmartyHelper $smartyHelper
  * @param array $pluginAttributes
  * @param int $idx
  * @return array
  */
 public static function getWidget($pluginDataProvider, $smartyHelper, $pluginAttributes, $idx)
 {
     $pluginClassName = $pluginAttributes['pluginClassName'];
     // Plugin may not exist...
     if (!class_exists($pluginClassName)) {
         $e = new Exception('getWidget: class ' . $pluginClassName . ' not found !');
         throw $e;
     }
     $r = new ReflectionClass($pluginClassName);
     $indicator = $r->newInstanceArgs(array($pluginDataProvider));
     // examples: isGraphOnly, dateRange(defaultRange|currentWeek|currentMonth|noDateLimit), ...
     $indicator->setPluginSettings($pluginAttributes);
     $indicator->execute();
     $data = $indicator->getSmartyVariables();
     foreach ($data as $smartyKey => $smartyVariable) {
         $smartyHelper->assign($smartyKey, $smartyVariable);
     }
     //self::$logger->error("Indic classname: ".$pluginClassName);
     //self::$logger->error("Indic SmartyFilename: ".$pluginClassName::getSmartyFilename());
     $indicatorHtmlContent = $smartyHelper->fetch($pluginClassName::getSmartyFilename());
     // update inettuts attributes from pluginAttributes
     $widgetTitle = array_key_exists('widgetTitle', $pluginAttributes) ? $pluginAttributes['widgetTitle'] : $pluginClassName::getName();
     $color = array_key_exists('color', $pluginAttributes) ? $pluginAttributes['color'] : 'color-white';
     unset($pluginAttributes['widgetTitle']);
     unset($pluginAttributes['color']);
     // set indicator result in a dashboard widget
     $widget = array('id' => 'w_' . $idx, 'color' => $color, 'title' => $widgetTitle, 'desc' => $pluginClassName::getDesc(), 'category' => implode(',', $pluginClassName::getCategories()), 'pClassName' => $pluginClassName, 'attributesJsonStr' => json_encode($pluginAttributes), 'jsFiles' => $pluginClassName::getJsFiles(), 'cssFiles' => $pluginClassName::getCssFiles(), 'content' => $indicatorHtmlContent);
     return $widget;
 }
Ejemplo n.º 7
0
 /**
  * @param SmartyHelper $smartyHelper
  * @param CommandSet $commandset
  */
 public static function displayCommandSet(SmartyHelper $smartyHelper, CommandSet $commandset, $isManager, $selectedFilters = '')
 {
     #$smartyHelper->assign('commandsetId', $commandset->getId());
     $smartyHelper->assign('teamid', $commandset->getTeamid());
     $smartyHelper->assign('commandsetName', $commandset->getName());
     $smartyHelper->assign('commandsetReference', $commandset->getReference());
     $smartyHelper->assign('commandsetDesc', $commandset->getDesc());
     $smartyHelper->assign('commandsetBudget', $commandset->getBudgetDays());
     $smartyHelper->assign('commandsetCost', $commandset->getCost());
     $smartyHelper->assign('commandsetCurrency', $commandset->getCurrency());
     if (!is_null($commandset->getDate())) {
         $smartyHelper->assign('commandsetDate', Tools::formatDate("%Y-%m-%d", $commandset->getDate()));
     }
     $smartyHelper->assign('cmdList', self::getCommandSetCommands($commandset->getId(), Command::type_general));
     $smartyHelper->assign('cmdsetDetailedMgr', self::getCommandSetDetailedMgr($commandset->getId(), Command::type_general));
     // Budget
     $cmdList = $commandset->getCommands(Command::type_general);
     $cmdsProvAndMeeCost = 0;
     foreach ($cmdList as $cmd) {
         // TODO math should not be in here !
         $mgrEE = $cmd->getIssueSelection()->mgrEffortEstim;
         $cmdProvAndMeeCost = $mgrEE * $cmd->getAverageDailyRate() + $cmd->getProvisionBudget(TRUE);
         $cmdsProvAndMeeCost += $cmdProvAndMeeCost;
     }
     $smartyHelper->assign('cmdsProvAndMeeCost', $cmdsProvAndMeeCost);
     $color1 = $cmdProvAndMeeCost > $commandset->getCost() ? "fcbdbd" : "bdfcbd";
     $smartyHelper->assign('cmdsProvAndMeeCostColor', $color1);
     //$cmdTotalElapsed = $commandset->getIssueSelection()->getElapsed($cmd->$commandset(), $commandset->getDeadline());
     $csetTotalElapsed = $commandset->getIssueSelection(Command::type_general)->getElapsed();
     $smartyHelper->assign('commandsetTotalElapsed', $csetTotalElapsed);
     $smartyHelper->assign('cmdProvisionList', self::getProvisionList($commandset));
     $smartyHelper->assign('cmdProvisionTotalList', self::getProvisionTotalList($commandset));
     // DetailedChargesIndicator
     $data = self::getDetailedCharges($commandset, $isManager, $selectedFilters);
     foreach ($data as $smartyKey => $smartyVariable) {
         $smartyHelper->assign($smartyKey, $smartyVariable);
     }
 }
Ejemplo n.º 8
0
require '../path.inc.php';
// Note: i18n is included by the Controler class, but Ajax dos not use it...
require_once 'i18n/i18n.inc.php';
if (Tools::isConnectedUser() && filter_input(INPUT_GET, 'action')) {
    $action = Tools::getSecureGETStringValue('action', 'none');
    $logger = Logger::getLogger("IssueInfo_ajax");
    $smartyHelper = new SmartyHelper();
    if ('getGeneralInfo' == $action) {
        $issue = IssueCache::getInstance()->getIssue(Tools::getSecureGETIntValue('bugid'));
        $user = UserCache::getInstance()->getUser($_SESSION['userid']);
        $managedTeamList = $user->getManagedTeamList();
        $managedProjList = count($managedTeamList) > 0 ? $user->getProjectList($managedTeamList, true, false) : array();
        $oTeamList = $user->getObservedTeamList();
        $observedProjList = count($oTeamList) > 0 ? $user->getProjectList($oTeamList, true, false) : array();
        $teamid = $_SESSION['teamid'];
        $smartyHelper->assign('isManager', $user->isTeamManager($teamid));
        $smartyHelper->assign('isObserver', $user->isTeamObserver($teamid));
        $isManagerView = array_key_exists($issue->getProjectId(), $managedProjList) ? true : false;
        $isObserverView = array_key_exists($issue->getProjectId(), $observedProjList) ? true : false;
        $smartyHelper->assign('issueGeneralInfo', IssueInfoTools::getIssueGeneralInfo($issue, $isManagerView || $isObserverView));
        $smartyHelper->display('ajax/issueGeneralInfo');
    } else {
        if ('removeFromCmd' == $action) {
            $cmdid = Tools::getSecureGETIntValue('cmdid');
            $bugid = Tools::getSecureGETIntValue('bugid');
            $userid = $_SESSION['userid'];
            try {
                // cmd,user,issue must exist
                // user must be manager in the cmd's team
                $user = UserCache::getInstance()->getUser($userid);
                $cmd = CommandCache::getInstance()->getCommand($cmdid);
Ejemplo n.º 9
0
// Note: i18n is included by the Controler class, but Ajax dos not use it...
require_once 'i18n/i18n.inc.php';
if (Tools::isConnectedUser() && filter_input(INPUT_GET, 'action')) {
    $action = Tools::getSecureGETStringValue('action', 'none');
    $logger = Logger::getLogger("IssueInfo_ajax");
    $smartyHelper = new SmartyHelper();
    if ('getGeneralInfo' == $action) {
        $issue = IssueCache::getInstance()->getIssue(Tools::getSecureGETIntValue('bugid'));
        $user = UserCache::getInstance()->getUser($_SESSION['userid']);
        $managedTeamList = $user->getManagedTeamList();
        $managedProjList = count($managedTeamList) > 0 ? $user->getProjectList($managedTeamList, true, false) : array();
        $oTeamList = $user->getObservedTeamList();
        $observedProjList = count($oTeamList) > 0 ? $user->getProjectList($oTeamList, true, false) : array();
        $isManager = array_key_exists($issue->getProjectId(), $managedProjList) ? true : false;
        $isObserver = array_key_exists($issue->getProjectId(), $observedProjList) ? true : false;
        $smartyHelper->assign('issueGeneralInfo', IssueInfoTools::getIssueGeneralInfo($issue, $isManager || $isObserver));
        $smartyHelper->display('ajax/issueGeneralInfo');
    } else {
        if ('removeFromCmd' == $action) {
            $cmdid = Tools::getSecureGETIntValue('cmdid');
            $bugid = Tools::getSecureGETIntValue('bugid');
            $userid = $_SESSION['userid'];
            try {
                // cmd,user,issue must exist
                // user must be manager in the cmd's team
                $user = UserCache::getInstance()->getUser($userid);
                $cmd = CommandCache::getInstance()->getCommand($cmdid);
                $cmdTeamid = $cmd->getTeamid();
                if ($user->isTeamManager($cmdTeamid)) {
                    $cmd->removeIssue($bugid);
                    $jsonData = json_encode(array('statusMsg' => 'SUCCESS', 'cmdid' => $cmdid));