public function testSetValue() { $value = 'some value'; $path = 'some path'; $configData = $this->getConfigDataMock('setValue'); $configData->expects($this->once())->method('setValue')->with($this->equalTo($path), $this->equalTo($value)); $this->sectionPool->expects($this->once())->method('getScope')->with($this->equalTo('default'), $this->isNull())->will($this->returnValue($configData)); $this->model->setValue($path, $value); }
/** * Realizar backup de la BBDD y aplicación. * * @return bool */ public static function doBackup() { $siteName = Util::getAppInfo('appname'); $backupDir = Init::$SERVERROOT; // Generar hash unico para evitar descargas no permitidas $backupUniqueHash = uniqid(); Config::setValue('backup_hash', $backupUniqueHash); $backupDstDir = $backupDir . DIRECTORY_SEPARATOR . 'backup'; $bakFileApp = $backupDstDir . DIRECTORY_SEPARATOR . $siteName . '-' . $backupUniqueHash . '.tar'; $bakFileDB = $backupDstDir . DIRECTORY_SEPARATOR . $siteName . '_db-' . $backupUniqueHash . '.sql'; try { self::checkBackupDir($backupDstDir); self::deleteOldBackups($backupDstDir); self::backupTables('*', $bakFileDB); self::backupApp($bakFileApp); } catch (\Exception $e) { Log::writeNewLogAndEmail(__FUNCTION__, $e->getMessage()); return false; } return true; }
/** * Migrar valores de configuración. * * @param int $version El número de versión * @return bool */ public static function upgradeConfig($version) { $mapParams = array('files_allowed_exts' => 'allowed_exts', 'files_allowed_size' => 'allowed_size', 'demo_enabled' => 'demoenabled', 'files_enabled' => 'filesenabled', 'ldap_base' => 'ldapbase', 'ldap_bindpass' => 'ldapbindpass', 'ldap_binduser' => 'ldapbinduser', 'ldap_enabled' => 'ldapenabled', 'ldap_group' => 'ldapgroup', 'ldap_server' => 'ldapserver', 'log_enabled' => 'logenabled', 'mail_enabled' => 'mailenabled', 'mail_from' => 'mailfrom', 'mail_pass' => 'mailpass', 'mail_port' => 'mailport', 'mail_requestsenabled' => 'mailrequestsenabled', 'mail_security' => 'mailsecurity', 'mail_server' => 'mailserver', 'mail_user' => 'mailuser', 'wiki_enabled' => 'wikienabled', 'wiki_filter' => 'wikifilter', 'wiki_pageurl' => 'wikipageurl', 'wiki_searchurl' => 'wikisearchurl'); $currData = Config::getKeys(true); foreach ($mapParams as $newParam => $oldParam) { if (array_key_exists($oldParam, $currData)) { Config::setValue($newParam, $currData[$oldParam]); Config::deleteParam($oldParam); } } Log::writeNewLog(_('Actualizar Configuración'), _('Actualización de la Configuración realizada correctamente.') . ' (v' . $version . ')'); return true; }
/** * called by include/dashboard_ajax.php * * save dashboard settings for [team, user] * * Note: the dashboard can contain the same plugin * multiple times, each one having specific attributes. * ex: ProgressHistoryIndic for Cmd1, Cmd2, Cmd2 * * settings = array ( * 'dashboardTitle' => 'dashboard title' * 'displayedPlugins' => array( * array( * 'pluginClassName' => <pluginClassName>, * 'plugin_attr1' => 'val', * 'plugin_attr2' => 'val', * ) * ) * ) * * @param array $settings containing dashboard & plugin attributes. * @param int $teamid * @param int $userid if NULL, default settings for team will be saved. */ public function saveSettings($settings, $teamid, $userid = NULL) { if (!is_array($settings)) { self::$logger->error("saveSettings: not an array !"); return false; } if (!array_key_exists(self::SETTINGS_DISPLAYED_PLUGINS, $settings)) { self::$logger->error("saveSettings: missing key: " . self::SETTINGS_DISPLAYED_PLUGINS); return false; } if (!array_key_exists(self::SETTINGS_DASHBOARD_TITLE, $settings)) { self::$logger->error("saveSettings: missing key: " . self::SETTINGS_DASHBOARD_TITLE); return false; } $jsonSettings = json_encode($settings); if (self::$logger->isDebugEnabled()) { self::$logger->debug("saveSettings: save ok: " . $jsonSettings); } Config::setValue(Config::id_dashboard . $this->id, $jsonSettings, Config::configType_string, NULL, 0, $userid, $teamid); }
/** * @param array $checkList ('checkName' => [0,1] isEnabled) */ function setGeneralPrefsList(array $checkList) { $this->generalPrefsList = $checkList; $keyvalue = Tools::doubleImplode(':', ',', $this->generalPrefsList); if (self::$logger->isDebugEnabled()) { self::$logger->debug("Write team {$this->id} generalPrefsList : {$keyvalue}"); } // save new settings Config::setValue(Config::id_teamGeneralPreferences, $keyvalue, Config::configType_keyValue, NULL, 0, 0, $this->id); }
/** old style usage with $value, $user_id, $key as params * still works but is deprecated * * @see lib/classes/Config::setValue() */ function setValue($field, $value) { $args = func_get_args(); if (count($args) > 2) { list($value, $user_id, $key) = $args; if ($user_id !== null && $key !== null) { $ret = UserConfig::get($user_id)->store($key, $value); } if ($user_id === null && $key !== null) { $ret = $this->store($key, $value); } trigger_error('deprecated use of ' . __METHOD__, E_USER_NOTICE); return $ret; } return parent::setValue($field, $value); }
/** * Genera el nombre del archivo usado para la exportación. */ private function setExportFile() { // Generar hash unico para evitar descargas no permitidas $exportUniqueHash = uniqid(); Config::setValue('export_hash', $exportUniqueHash); $this->_exportFile = $this->_exportDir . DIRECTORY_SEPARATOR . Util::getAppInfo('appname') . '-' . $exportUniqueHash . '.xml'; }
/** * Migrar la configuración desde phpPMS. * * @return array resultado */ private static function migrateConfig() { // Obtener la configuración actual self::getSourceConfig(); $skip = array('version', 'installed', 'install', 'dbhost', 'dbname', 'dbuser', 'dbpass', 'siteroot', 'sitelang', 'sitename', 'siteshortname', 'md5_pass', 'password_show', 'lastupdatempass', 'passwordsalt'); $totalParams = count(self::$_oldConfig); $num = 0; // Guardar la nueva configuración foreach (self::$_oldConfig as $key => $value) { if (array_key_exists($key, $skip)) { continue; } Config::setValue($key, $value); $num++; } $log = new Log(_('Importar Configuración')); $log->addDescription('OK'); $log->addDescription(_('Registros') . ': ' . $num . '/' . $totalParams); $log->writeLog(); }
if ($isJob3) { Jobs::create($job3, Job::type_commonJob, $job3_color); } if ($isJob4) { Jobs::create($job4, Job::type_commonJob, $job4_color); } if ($isJob5) { Jobs::create($job5, Job::type_commonJob, $job5_color); } // Set default Issue tooltip content echo "<script type=\"text/javascript\">console.log(\"DEBUG set default content for Issue tooltip\");</script>"; $customField_type = Config::getInstance()->getValue(Config::id_customField_type); $backlogField = Config::getInstance()->getValue(Config::id_customField_backlog); $fieldList = array('project_id', 'category_id', 'custom_' . $customField_type, 'status', 'codevtt_elapsed', 'custom_' . $backlogField, 'codevtt_drift'); $serialized = serialize($fieldList); Config::setValue(Config::id_issueTooltipFields, $serialized, Config::configType_string, 'fields to be displayed in issue tooltip'); // Add custom fields to existing projects echo "<script type=\"text/javascript\">console.log(\"DEBUG prepare existing projects\");</script>"; if (isset($_POST['projects']) && !empty($_POST['projects'])) { $selectedProjects = $_POST['projects']; foreach ($selectedProjects as $projectid) { $project = ProjectCache::getInstance()->getProject($projectid); echo "<script type=\"text/javascript\">console.log(\" prepare project: " . $project->getName() . "\");</script>"; Project::prepareProjectToCodev($projectid); } } echo "<script type=\"text/javascript\">console.log(\"DEBUG install Mantis plugin: CodevTT\");</script>"; $errStr = installMantisPlugin('CodevTT', true); if (NULL !== $errStr) { echo "<script type=\"text/javascript\">console.error(\"{$errStr}\");</script>"; $errMsg .= $errStr . '<br>';
/** * Configurar la base de datos. * Esta función crea la base de datos y el usuario necesario para sysPass. * * @throws SPException */ private static function setupMySQLDatabase() { // Si no es modo hosting se crea un hash para la clave y un usuario con prefijo "sp_" para la DB if (!self::$_isHostingMode) { self::setDbpass(md5(time() . self::$_password)); self::setDbuser(substr('sp_' . self::$_username, 0, 16)); // Comprobar si el usuario sumistrado existe $query = "SELECT COUNT(*) FROM mysql.user WHERE user='******' AND host='" . self::$_dbhost . "'"; try { // Si no existe el usuario, se intenta crear if (intval(self::$_dbc->query($query)->fetchColumn()) === 0) { // Se comprueba si el nuevo usuario es distinto del creado en otra instalación if (self::$_dbuser != Config::getValue('dbuser')) { self::createDBUser(); } } } catch (\PDOException $e) { throw new SPException(SPException::SP_CRITICAL, _('No es posible comprobar el usuario de sysPass') . ' (' . self::$_username . ')', _('Compruebe los permisos del usuario de conexión a la BD')); } } // Guardar el nuevo usuario/clave de conexión a la BD Config::setValue('dbuser', self::$_dbuser); Config::setValue('dbpass', self::$_dbpass); try { self::createMySQLDatabase(); self::createDBStructure(); } catch (SPException $e) { throw $e; } }
/** * store fields to display in the Issue tooltip * * fields can be * - mantis_bug_table columns (ex: project_id, status) * - customField id prefixed with 'custom_' (ex: custom_23) * - CodevTT fields prefixed with 'codevtt_' (ex: codevtt_commands) * * if $fieldList == NULL, delete IssueTooltip custo for this project * * @param array $fieldList * @param int $teamid * @param int $userid */ public function setIssueTooltipFields($fieldList = NULL, $teamid = 0, $userid = 0) { if (!is_null($fieldList)) { $serialized = serialize($fieldList); Config::setValue('issue_tooltip_fields', $serialized, Config::configType_string, 'fields to be displayed in issue tooltip', $this->id, $userid, $teamid); $key = 'team' . $teamid . '_user' . $userid; if (is_null($this->issueTooltipFieldsCache)) { $this->issueTooltipFieldsCache = array(); } $this->issueTooltipFieldsCache[$key] = $fieldList; } else { // if $fieldList NULL, remove issueTooltip custo fot this project Config::deleteValue(Config::id_issueTooltipFields, array($userid, $this->id, $teamid, 0, 0, 0)); unset($this->issueTooltipFieldsCache[$key]); } }
/** * * @param int $team_id * @param array $planningOptions as key:value */ public function setPlanningOptions($team_id, $planningOptions) { $this->planningOptions = $planningOptions; $keyvalue = Tools::doubleImplode(':', ',', $this->planningOptions); if (self::$logger->isDebugEnabled()) { self::$logger->debug("Write user {$this->id}, team {$team_id}, planningOptions = {$keyvalue}"); } // save new settings Config::setValue(Config::id_planningOptions, $keyvalue, Config::configType_keyValue, NULL, 0, $this->id, $team_id); }
/** * Test * * @return void */ public function testSetValueWithEmptyIdentifier() { $this->assertFalse($this->object->setValue('', 'string_result_insert_value')); }
if ($isJob3) { Jobs::create($job3, Job::type_commonJob, $job3_color); } if ($isJob4) { Jobs::create($job4, Job::type_commonJob, $job4_color); } if ($isJob5) { Jobs::create($job5, Job::type_commonJob, $job5_color); } // Set default Issue tooltip content echo "DEBUG 14/16 Set default content for Issue tooltip <br/>"; $customField_type = Config::getInstance()->getValue(Config::id_customField_type); $backlogField = Config::getInstance()->getValue(Config::id_customField_backlog); $fieldList = array('project_id', 'category_id', 'custom_' . $customField_type, 'codevtt_elapsed', 'custom_' . $backlogField, 'codevtt_drift'); $serialized = serialize($fieldList); Config::setValue('issue_tooltip_fields', $serialized, Config::configType_string, 'fields to be displayed in issue tooltip'); // Add custom fields to existing projects echo "DEBUG 15/16 Prepare existing projects<br/>"; if (isset($_POST['projects']) && !empty($_POST['projects'])) { $selectedProjects = $_POST['projects']; foreach ($selectedProjects as $projectid) { $project = ProjectCache::getInstance()->getProject($projectid); echo "DEBUG prepare project: " . $project->getName() . "<br/>"; Project::prepareProjectToCodev($projectid); } } echo "DEBUG 16/16 Install Mantis plugins<br/>"; installMantisPlugin('CodevTT', true); installMantisPlugin('FilterBugList', false); echo "DEBUG done.<br/>"; // load homepage
public function changeConfigTable($definition) { try { $change = new SimpleXMLElement($definition); $operation = $change->operation; $operation = trim($operation . ""); switch ($operation) { case 'UPDATE': $key = trim($change->key . ""); $value = trim($change->value . ""); $result = $this->_setConfigValue($key, $value); break; case 'ADD': $key = trim($change->key . ""); $value = trim($change->value . ""); $config = new Config(); $config->setProperty($key); $config->setValue($value); $config->save(); default: } } catch (Exception $exc) { echo $exc->getTraceAsString(); } }
/** * update 0.99.19 to 0.99.20 (DB v10 to DB v11) * * there is no .sql script to run, but db version is increased to 11 (add default issue_tooltip_fields) * */ function update_v10_to_v11() { // add default issue tooltips $customField_type = Config::getInstance()->getValue(Config::id_customField_type); $backlogField = Config::getInstance()->getValue(Config::id_customField_backlog); $fieldList = array('project_id', 'category_id', 'custom_' . $customField_type, 'codevtt_elapsed', 'custom_' . $backlogField, 'codevtt_drift'); $serialized = serialize($fieldList); Config::setValue('issue_tooltip_fields', $serialized, Config::configType_string, 'fields to be displayed in issue tooltip'); $query = "UPDATE `codev_config_table` SET `value`='11' WHERE `config_id`='database_version';"; $result = execQuery($query); }
protected function display() { if (Tools::isConnectedUser()) { $teamList = NULL; // leadedTeams only, except Admins: they can edit all teams if ($this->session_user->isTeamMember(Config::getInstance()->getValue(Config::id_adminTeamId))) { $teamList = Team::getTeams(true); } else { $teamList = $this->session_user->getLeadedTeamList(true); } if (count($teamList) > 0) { if (isset($_POST['deletedteam'])) { $teamidToDelete = Tools::getSecurePOSTIntValue("deletedteam"); if (array_key_exists($teamidToDelete, $teamList)) { $retCode = Team::delete($teamidToDelete); if (!$retCode) { $this->smartyHelper->assign('error', T_("Couldn't delete the team")); } else { if ($teamidToDelete == $_SESSION['teamid']) { unset($_SESSION['teamid']); $this->updateTeamSelector(); } unset($teamList[$teamidToDelete]); } } } // use the teamid set in the form, if not defined (first page call) use session teamid if (isset($_POST['displayed_teamid'])) { $displayed_teamid = Tools::getSecurePOSTIntValue('displayed_teamid'); } else { if (isset($_SESSION['teamid']) && array_key_exists($_SESSION['teamid'], $teamList)) { $displayed_teamid = $_SESSION['teamid']; } else { $teamIds = array_keys($teamList); if (count($teamIds) > 0) { $displayed_teamid = $teamIds[0]; } else { $displayed_teamid = 0; } } } $this->smartyHelper->assign('availableTeams', SmartyTools::getSmartyArray($teamList, $displayed_teamid)); if (array_key_exists($displayed_teamid, $teamList)) { $team = TeamCache::getInstance()->getTeam($displayed_teamid); if ($displayed_teamid != Config::getInstance()->getValue(Config::id_adminTeamId)) { $this->smartyHelper->assign('allowDeleteTeam', 1); } // ----------- actions ---------- $action = isset($_POST['action']) ? $_POST['action'] : ''; if ($action == "updateTeamLeader") { $teamleader_id = Tools::getSecurePOSTIntValue('leaderid'); if (!$team->setLeader($teamleader_id)) { $this->smartyHelper->assign('error', T_("Couldn't update the team leader")); } else { // --- add teamLeader as Mantis manager of the SideTaskProject //$leader = UserCache::getInstance()->getUser($teamleader_id); //$access_level = 70; // TODO mantis manager //$leader->setProjectAccessLevel($stproj_id, $access_level); } } elseif ($action == "updateTeamCreationDate") { $formatedDate = Tools::getSecurePOSTStringValue("date_createTeam"); $date_create = Tools::date2timestamp($formatedDate); if (!$team->setCreationDate($date_create)) { $this->smartyHelper->assign('error', T_("Couldn't update the creation date")); } } elseif ($action == "setTeamEnabled") { $isTeamEnabled = 0 == Tools::getSecurePOSTIntValue("isTeamEnabled") ? false : true; if (!$team->setEnabled($isTeamEnabled)) { $this->smartyHelper->assign('error', T_("Couldn't enable/disable team")); } } elseif ($action == "addTeamMember") { $memberid = Tools::getSecurePOSTIntValue('memberid'); $memberAccess = Tools::getSecurePOSTIntValue('member_access'); $formatedDate = Tools::getSecurePOSTStringValue("date1"); $arrivalTimestamp = Tools::date2timestamp($formatedDate); try { // save to DB $team->addMember($memberid, $arrivalTimestamp, $memberAccess); // CodevTT administrators can manage ExternalTasksProject in Mantis if (Config::getInstance()->getValue(Config::id_adminTeamId) == $team->getId()) { $newUser = UserCache::getInstance()->getUser($memberid); $extProjId = Config::getInstance()->getValue(Config::id_externalTasksProject); $access_level = 70; // TODO mantis manager $newUser->setProjectAccessLevel($extProjId, $access_level); } } catch (Exception $e) { $this->smartyHelper->assign('error', "Couldn't add user {$memberid} to the team"); } } elseif ($action == "setMemberDepartureDate") { $formatedDate = Tools::getSecurePOSTStringValue("date2"); $departureTimestamp = Tools::date2timestamp($formatedDate); $memberid = Tools::getSecurePOSTIntValue('memberid'); $team->setMemberDepartureDate($memberid, $departureTimestamp); } elseif ($action == 'addMembersFrom') { $src_teamid = Tools::getSecurePOSTIntValue('f_src_teamid'); // add all members declared in Team $src_teamid (same dates, same access) // except if already declared $team->addMembersFrom($src_teamid); } elseif ($action == 'removeIssueTooltip') { $projectid = Tools::getSecurePOSTIntValue('projectid'); $project = ProjectCache::getInstance()->getProject($projectid); $project->setIssueTooltipFields(NULL, $displayed_teamid); } elseif ($action == 'setConsistencyCheck') { $keyvalue = Tools::getSecurePOSTStringValue('checkItems'); $checkList = Tools::doubleExplode(':', ',', $keyvalue); $team->setConsistencyCheckList($checkList); } elseif ($action == 'setGeneralPrefs') { $keyvalue = Tools::getSecurePOSTStringValue('checkItems'); $checkList = Tools::doubleExplode(':', ',', $keyvalue); $team->setGeneralPrefsList($checkList); } elseif ($action == 'createSideTaskProject') { $stprojName = Tools::getSecurePOSTStringValue('stprojName'); $stproj_id = $team->createSideTaskProject($stprojName); if ($stproj_id > 0) { $stproj = ProjectCache::getInstance()->getProject($stproj_id); // add teamLeader as Mantis manager of the SideTaskProject $leader = UserCache::getInstance()->getUser($team->getLeaderId()); $access_level = 70; // TODO mantis manager $leader->setProjectAccessLevel($stproj_id, $access_level); // add SideTaskProject Categories $stproj->addCategoryProjManagement(T_("Project Management")); $stproj->addCategoryInactivity(T_("Inactivity")); $stproj->addCategoryIncident(T_("Incident")); $stproj->addCategoryTools(T_("Tools")); $stproj->addCategoryWorkshop(T_("Team Workshop")); } } elseif (isset($_POST["deleteValue"])) { $duration = TimeTrackingTools::getDurationList($displayed_teamid); $duration_value = Tools::getSecurePOSTStringValue('deleteValue'); unset($duration[$duration_value]); if (count($duration) == 0) { Config::deleteValue(Config::id_durationList, array(0, 0, $displayed_teamid, 0, 0, 0)); } else { Config::setValue(Config::id_durationList, Tools::doubleImplode(":", ",", $duration), Config::configType_keyValue, NULL, 0, 0, $displayed_teamid); } } elseif (isset($_POST["addValue"])) { $duration = TimeTrackingTools::getDurationList($displayed_teamid); $duration_value = Tools::getSecurePOSTStringValue('addValue'); $duration_display = Tools::getSecurePOSTStringValue('addDisplay'); $duration[$duration_value] = $duration_display; Config::setValue(Config::id_durationList, Tools::doubleImplode(":", ",", $duration), Config::configType_keyValue, NULL, 0, 0, $displayed_teamid); } elseif (isset($_POST["updateValue"])) { $duration = TimeTrackingTools::getDurationList($displayed_teamid); $duration_value = Tools::getSecurePOSTStringValue('updateValue'); $duration_display = Tools::getSecurePOSTStringValue('updateDisplay'); $duration[$duration_value] = $duration_display; Config::setValue(Config::id_durationList, Tools::doubleImplode(":", ",", $duration), Config::configType_keyValue, NULL, 0, 0, $displayed_teamid); } elseif (isset($_POST["deletememberid"])) { $memberid = Tools::getSecurePOSTIntValue('deletememberid'); $query = "DELETE FROM `codev_team_user_table` WHERE id = {$memberid};"; $result = SqlWrapper::getInstance()->sql_query($query); if (!$result) { $this->smartyHelper->assign('error', T_("Couldn't delete the member of the team")); } } elseif (isset($_POST['addedprojectid'])) { $projectid = Tools::getSecurePOSTIntValue('addedprojectid'); if (0 != $projectid) { $projecttype = Tools::getSecurePOSTIntValue('project_type'); try { // prepare Project to CoDev (associate with CoDev customFields if needed) // WARN: Project constructor cannot be used in here. Project::prepareProjectToCodev($projectid); // save to DB if (!$team->addProject($projectid, $projecttype)) { $this->smartyHelper->assign('error', T_("Couldn't add the project to the team")); } } catch (Exception $e) { $this->smartyHelper->assign('error', T_("Couldn't add the project to the team")); } } } elseif (isset($_POST['deletedprojectid'])) { $projectid = Tools::getSecurePOSTIntValue('deletedprojectid'); if (!$team->removeProject($projectid)) { $this->smartyHelper->assign('error', T_("Could NOT remove the project from the team")); } } elseif (isset($_POST['addedastreinte_id'])) { $onduty_id = Tools::getSecurePOSTIntValue('addedastreinte_id'); if (0 != $onduty_id) { $team->addOnDutyTask($onduty_id); } } elseif (isset($_POST['deletedastreinte_id'])) { $onduty_id = Tools::getSecurePOSTIntValue('deletedastreinte_id'); $team->removeOnDutyTask($onduty_id); } $this->smartyHelper->assign('team', $team); $smartyUserList = array(); $userList = User::getUsers(); $selectedUserid = $team->getLeaderId(); foreach ($userList as $id => $name) { $u = UserCache::getInstance()->getUser($id); $uname = $u->getRealname(); if (empty($uname)) { $uname = $name; } $smartyUserList[$id] = array('id' => $id, 'name' => $uname, 'selected' => $id == $selectedUserid); } $this->smartyHelper->assign('users', $smartyUserList); $this->smartyHelper->assign('date', date("Y-m-d", $team->getDate())); $this->smartyHelper->assign('accessLevel', Team::$accessLevelNames); $this->smartyHelper->assign('arrivalDate', date("Y-m-d", time())); $this->smartyHelper->assign('departureDate', date("Y-m-d", time())); $this->smartyHelper->assign('teamMembers', $this->getTeamMembers($displayed_teamid)); $this->smartyHelper->assign('teamEnabled', $team->isEnabled()); $this->smartyHelper->assign('otherProjects', $team->getOtherProjects()); $this->smartyHelper->assign('typeNames', Project::$typeNames); $this->smartyHelper->assign('teamProjects', $this->getTeamProjects($displayed_teamid)); $this->smartyHelper->assign('onDutyCandidates', $this->getOnDutyCandidates($team, $team->getTrueProjects())); $this->smartyHelper->assign('onDutyTasks', $this->getOnDutyTasks($team)); $this->smartyHelper->assign('duration', TimeTrackingTools::getDurationList($displayed_teamid)); $projectList = $this->getTooltipProjectCandidates($team); $this->smartyHelper->assign('tooltipProjectCandidates', $projectList); $this->smartyHelper->assign('issueTooltips', $this->getIssueTooltips($projectList, $displayed_teamid)); $this->smartyHelper->assign('itemSelection_openDialogBtLabel', T_('Configure Tooltips')); $consistencyChecks = $this->getConsistencyChecks($team); $this->smartyHelper->assign('consistencyChecks', $consistencyChecks); $teamGeneralPrefs = $this->getTeamGeneralPrefs($team); $this->smartyHelper->assign('teamGeneralPrefs', $teamGeneralPrefs); } } } }