public function __construct() { parent::__construct(self::B2DBNAME, self::ID); parent::_addForeignKeyColumn(self::UID, TBGUsersTable::getTable(), TBGUsersTable::ID); parent::_addForeignKeyColumn(self::TID, B2DB::getTable('TBGTeamsTable'), TBGTeamsTable::ID); parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID); }
public function __construct() { parent::__construct(self::B2DBNAME, self::ID); parent::_addForeignKeyColumn(self::EDITION, B2DB::getTable('TBGEditionsTable'), TBGEditionsTable::ID); parent::_addForeignKeyColumn(self::COMPONENT, B2DB::getTable('TBGComponentsTable'), TBGComponentsTable::ID); parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID); }
public static function setUserViews($uid, $views) { B2DB::getTable('TBGUserDashboardViewsTable')->clearViews($uid); foreach ($views as $key => $view) { B2DB::getTable('TBGUserDashboardViewsTable')->addView($uid, $view); } }
/** * Return a custom data type option by value and key * * @param string|integer $value * @param string $key * * @return TBGCustomDatatypeOption */ public static function getByValueAndKey($value, $key) { $row = B2DB::getTable('TBGCustomFieldOptionsTable')->getByValueAndKey($value, $key); if ($row) { return TBGContext::factory()->TBGCustomDatatypeOption($row->get(TBGCustomFieldOptionsTable::ID), $row); } return null; }
public function __construct() { parent::__construct(self::B2DBNAME, self::ID); parent::_addForeignKeyColumn(self::ISSUE_ID, TBGIssuesTable::getTable(), TBGIssuesTable::ID); parent::_addForeignKeyColumn(self::CUSTOMFIELDS_ID, B2DB::getTable('TBGCustomFieldsTable'), TBGCustomFieldsTable::ID); parent::_addText(self::OPTION_VALUE, false); parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID); }
public function __construct() { parent::__construct(self::B2DBNAME, self::ID); parent::_addVarchar(self::VALUE, 200); parent::_addVarchar(self::OPERATOR, 40); parent::_addVarchar(self::FILTER_KEY, 100); parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID); parent::_addForeignKeyColumn(self::SEARCH_ID, B2DB::getTable('TBGSavedSearchesTable'), TBGSavedSearchesTable::ID); }
public function __construct() { parent::__construct(self::B2DBNAME, self::ID); parent::_addInteger(self::TARGET_TYPE, 5); parent::_addForeignKeyColumn(self::EDITION_ID, B2DB::getTable('TBGEditionsTable'), TBGEditionsTable::ID); parent::_addForeignKeyColumn(self::UID, TBGUsersTable::getTable(), TBGUsersTable::ID); parent::_addForeignKeyColumn(self::TID, B2DB::getTable('TBGTeamsTable'), TBGTeamsTable::ID); parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID); }
public function __construct() { parent::__construct(self::B2DBNAME, self::ID); parent::_addBoolean(self::CONFIRMED); parent::_addForeignKeyColumn(self::COMPONENT, B2DB::getTable('TBGComponentsTable'), TBGComponentsTable::ID); parent::_addForeignKeyColumn(self::ISSUE, TBGIssuesTable::getTable(), TBGIssuesTable::ID); parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID); parent::_addForeignKeyColumn(self::STATUS, TBGListTypesTable::getTable(), TBGListTypesTable::ID); }
public function __construct() { parent::__construct(self::B2DBNAME, self::ID); parent::_addVarchar(self::MODULE_NAME, 50); parent::_addBoolean(self::ALLOWED); parent::_addForeignKeyColumn(self::UID, TBGUsersTable::getTable(), TBGUsersTable::ID); parent::_addForeignKeyColumn(self::GID, TBGGroupsTable::getTable(), TBGGroupsTable::ID); parent::_addForeignKeyColumn(self::TID, B2DB::getTable('TBGTeamsTable'), TBGTeamsTable::ID); parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID); }
public function _preDelete() { $crit = new B2DBCriteria(); $crit->addWhere(TBGIssueAffectsComponentTable::COMPONENT, $this->getID()); B2DB::getTable('TBGIssueAffectsComponentTable')->doDelete($crit); $crit = new B2DBCriteria(); $crit->addWhere(TBGEditionComponentsTable::COMPONENT, $this->getID()); B2DB::getTable('TBGEditionComponentsTable')->doDelete($crit); $crit = new B2DBCriteria(); $crit->addWhere(TBGComponentAssigneesTable::COMPONENT_ID, $this->getID()); $crit->addWhere(TBGComponentAssigneesTable::SCOPE, TBGContext::getScope()->getID()); B2DB::getTable('TBGComponentAssigneesTable')->doDelete($crit); }
public function getSpentTimesByDateAndIssueIDs($startdate, $enddate, $issue_ids) { $points_retarr = array(); $hours_retarr = array(); $sd = $startdate; while ($sd <= $enddate) { $points_retarr[date('md', $sd)] = array(); $hours_retarr[date('md', $sd)] = array(); $sd += 86400; } if (count($issue_ids)) { $crit = $this->getCriteria(); $crit->addWhere(self::EDITED_AT, $enddate, B2DBCriteria::DB_LESS_THAN_EQUAL); $crit->addWhere(self::ISSUE_ID, $issue_ids, B2DBCriteria::DB_IN); $crit->addOrderBy(self::EDITED_AT, B2DBCriteria::SORT_ASC); if ($res = $this->doSelect($crit)) { while ($row = $res->getNextRow()) { $date = date('md', $row->get(self::EDITED_AT) >= $startdate ? $row->get(self::EDITED_AT) : $startdate); foreach ($points_retarr as $key => &$details) { if ($key >= $date) { $details[$row->get(self::ISSUE_ID)] = $row->get(self::SPENT_POINTS); } } } } $crit = $this->getCriteria(); $crit->addWhere(self::EDITED_AT, $enddate, B2DBCriteria::DB_LESS_THAN_EQUAL); $crit->addJoin(B2DB::getTable('TBGIssueRelationsTable'), TBGIssueRelationsTable::PARENT_ID, self::ISSUE_ID); $crit->addWhere(TBGIssueRelationsTable::PARENT_ID, $issue_ids, B2DBCriteria::DB_IN); $crit->addOrderBy(self::EDITED_AT, B2DBCriteria::SORT_ASC); $res = $this->doSelect($crit); if ($res = $this->doSelect($crit)) { while ($row = $res->getNextRow()) { $date = date('md', $row->get(self::EDITED_AT) >= $startdate ? $row->get(self::EDITED_AT) : $startdate); foreach ($hours_retarr as $key => &$details) { if ($key >= $date) { $details[$row->get(self::ISSUE_ID)] = $row->get(self::SPENT_HOURS); } } } } } foreach ($points_retarr as $key => $vals) { $points_retarr[$key] = count($vals) ? array_sum($vals) : 0; } foreach ($hours_retarr as $key => $vals) { $hours_retarr[$key] = count($vals) ? array_sum($vals) : 0; } return array('points' => $points_retarr, 'hours' => $hours_retarr); }
public function __construct() { parent::__construct(self::B2DBNAME, self::ID); parent::_addVarchar(self::MODULE_NAME, 50); parent::_addInteger(self::NOTIFY_TYPE, 5); parent::_addInteger(self::TARGET_ID, 10); parent::_addVarchar(self::TITLE, 100); parent::_addText(self::CONTENTS, false); parent::_addInteger(self::STATUS, 5); parent::_addForeignKeyColumn(self::UID, TBGUsersTable::getTable(), TBGUsersTable::ID); parent::_addForeignKeyColumn(self::GID, TBGGroupsTable::getTable(), TBGGroupsTable::ID); parent::_addForeignKeyColumn(self::TID, B2DB::getTable('TBGTeamsTable'), TBGTeamsTable::ID); parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID); }
public function __construct() { parent::__construct(self::B2DBNAME, self::ID); parent::_addVarchar(self::NAME, 100); parent::_addInteger(self::VERSION_MAJOR, 3); parent::_addInteger(self::VERSION_MINOR, 3); parent::_addInteger(self::VERSION_REVISION, 5); parent::_addInteger(self::RELEASE_DATE, 10); parent::_addBoolean(self::RELEASED); parent::_addBoolean(self::LOCKED); parent::_addForeignKeyColumn(self::EDITION, B2DB::getTable('TBGEditionsTable'), TBGEditionsTable::ID); parent::_addForeignKeyColumn(self::PROJECT, TBGProjectsTable::getTable(), TBGProjectsTable::ID); parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID); }
public function __construct() { parent::__construct(self::B2DBNAME, self::ID); parent::_addVarchar(self::UNAME, 50); parent::_addVarchar(self::PASSWORD, 50); parent::_addVarchar(self::BUDDYNAME, 50); parent::_addVarchar(self::REALNAME, 100); parent::_addVarchar(self::EMAIL, 200); parent::_addForeignKeyColumn(self::USERSTATE, B2DB::getTable('TBGUserStateTable'), TBGUserStateTable::ID); parent::_addBoolean(self::CUSTOMSTATE); parent::_addVarchar(self::HOMEPAGE, 250, ''); parent::_addVarchar(self::LANGUAGE, 100, ''); parent::_addInteger(self::LASTSEEN, 10); parent::_addInteger(self::QUOTA); parent::_addBoolean(self::ACTIVATED); parent::_addBoolean(self::ENABLED); parent::_addBoolean(self::DELETED); parent::_addVarchar(self::AVATAR, 30, ''); parent::_addBoolean(self::USE_GRAVATAR, true); parent::_addBoolean(self::PRIVATE_EMAIL); parent::_addInteger(self::JOINED, 10); parent::_addForeignKeyColumn(self::GROUP_ID, TBGGroupsTable::getTable(), TBGGroupsTable::ID); parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID); }
/** * Add or delete an issue field option * * @param TBGRequest $request */ public function runConfigureIssuefieldsAction(TBGRequest $request) { $i18n = TBGContext::getI18n(); $this->forward403unless($this->access_level == TBGSettings::ACCESS_FULL); $types = TBGDatatype::getTypes(); switch ($request->getParameter('mode')) { case 'add': if ($request->getParameter('name')) { if (array_key_exists($request->getParameter('type'), $types)) { $type_name = $types[$request->getParameter('type')]; $item = new $type_name(); $item->setName($request->getParameter('name')); $item->setItemdata($request->getParameter('itemdata')); $item->save(); } else { $customtype = TBGCustomDatatype::getByKey($request->getParameter('type')); $item = $customtype->createNewOption($request->getParameter('name'), $request->getParameter('value'), $request->getParameter('itemdata')); } return $this->renderJSON(array('failed' => false, 'title' => TBGContext::getI18n()->__('The option was added'), 'content' => $this->getTemplateHTML('issuefield', array('item' => $item, 'access_level' => $this->access_level, 'type' => $request->getParameter('type'))))); } return $this->renderJSON(array('failed' => true, 'error' => TBGContext::getI18n()->__('Please provide a valid name'))); case 'edit': if ($request->getParameter('name')) { if (array_key_exists($request->getParameter('type'), $types)) { $labname = $types[$request->getParameter('type')]; $item = TBGContext::factory()->{$labname}($request->getParameter('id')); } else { $customtype = TBGCustomDatatype::getByKey($request->getParameter('type')); $item = TBGContext::factory()->TBGCustomDatatypeOption($request->getParameter('id')); } if ($item instanceof TBGDatatypeBase && $item->getItemtype() == $item->getType()) { $item->setName($request->getParameter('name')); $item->setItemdata($request->getParameter('itemdata')); if (!$item->isBuiltin()) { $item->setValue($request->getParameter('value')); } $item->save(); return $this->renderJSON(array('failed' => false, 'title' => TBGContext::getI18n()->__('The option was updated'))); } else { return $this->renderJSON(array('failed' => true, 'error' => TBGContext::getI18n()->__('Please provide a valid id'))); } } return $this->renderJSON(array('failed' => true, 'error' => TBGContext::getI18n()->__('Please provide a valid name'))); case 'delete': if ($request->hasParameter('id')) { if (array_key_exists($request->getParameter('type'), $types)) { $classname = 'TBG' . ucfirst($request->getParameter('type')); $item = TBGContext::factory()->{$classname}($request->getParameter('id'))->delete(); return $this->renderJSON(array('failed' => false, 'title' => $i18n->__('The option was deleted'))); } else { B2DB::getTable('TBGCustomFieldOptionsTable')->doDeleteById($request->getParameter('id')); return $this->renderJSON(array('failed' => false, 'title' => $i18n->__('The option was deleted'))); } } return $this->renderJSON(array('failed' => true, 'error' => $i18n->__('Invalid id or type'))); break; } }
/** * Return an array specifying visibility, requirement and choices for fields in issues * * @param integer $issue_type * @param boolean $reportable[optional] Whether to only include fields that can be reported * * @return array */ protected function _getFieldsArray($issue_type, $reportable = true) { $issue_type = is_object($issue_type) ? $issue_type->getID() : $issue_type; if (!isset($this->_fieldsarrays[$issue_type][(int) $reportable])) { $retval = array(); $res = B2DB::getTable('TBGIssueFieldsTable')->getBySchemeIDandIssuetypeID($this->getIssuetypeScheme()->getID(), $issue_type); if ($res) { $builtin_types = TBGDatatype::getAvailableFields(true); while ($row = $res->getNextRow()) { if (!$reportable || (bool) $row->get(TBGIssueFieldsTable::REPORTABLE) == true) { if ($reportable) { if (in_array($row->get(TBGIssueFieldsTable::FIELD_KEY), $builtin_types) && (!$this->fieldPermissionCheck($row->get(TBGIssueFieldsTable::FIELD_KEY), $reportable) && !($row->get(TBGIssueFieldsTable::REQUIRED) && $reportable))) { continue; } elseif (!in_array($row->get(TBGIssueFieldsTable::FIELD_KEY), $builtin_types) && (!$this->fieldPermissionCheck($row->get(TBGIssueFieldsTable::FIELD_KEY), $reportable, true) && !($row->get(TBGIssueFieldsTable::REQUIRED) && $reportable))) { continue; } } $field_key = $row->get(TBGIssueFieldsTable::FIELD_KEY); $retval[$field_key] = array('required' => (bool) $row->get(TBGIssueFieldsTable::REQUIRED), 'additional' => (bool) $row->get(TBGIssueFieldsTable::ADDITIONAL)); if (!in_array($field_key, $builtin_types)) { $retval[$field_key]['custom'] = true; $custom_type = TBGCustomDatatype::getByKey($field_key); if ($custom_type instanceof TBGCustomDatatype) { $retval[$field_key]['custom_type'] = $custom_type->getType(); } else { unset($retval[$field_key]); } } } } if (array_key_exists('user_pain', $retval)) { $retval['pain_bug_type'] = array('required' => $retval['user_pain']['required']); $retval['pain_likelihood'] = array('required' => $retval['user_pain']['required']); $retval['pain_effect'] = array('required' => $retval['user_pain']['required']); } if ($reportable) { foreach ($retval as $key => $return_details) { if ($key == 'edition' || array_key_exists('custom', $return_details) && $return_details['custom'] && in_array($return_details['custom_type'], array(TBGCustomDatatype::EDITIONS_LIST, TBGCustomDatatype::EDITIONS_CHOICE))) { $retval[$key]['values'] = array(); $retval[$key]['values'][''] = TBGContext::getI18n()->__('None'); foreach ($this->getEditions() as $edition) { $retval[$key]['values'][$edition->getID()] = $edition->getName(); } if (!$this->isEditionsEnabled() || empty($retval[$key]['values'])) { if (!$retval[$key]['required']) { unset($retval[$key]); } else { unset($retval[$key]['values']); } } if (array_key_exists($key, $retval) && array_key_exists('values', $retval[$key])) { asort($retval[$key]['values'], SORT_STRING); } } elseif ($key == 'status' || array_key_exists('custom', $return_details) && $return_details['custom'] && in_array($return_details['custom_type'], array(TBGCustomDatatype::EDITIONS_LIST, TBGCustomDatatype::STATUS_CHOICE))) { $retval[$key]['values'] = array(); foreach (TBGStatus::getAll() as $status) { $retval[$key]['values'][$status->getID()] = $status->getName(); } if (empty($retval[$key]['values'])) { if (!$retval[$key]['required']) { unset($retval[$key]); } else { unset($retval[$key]['values']); } } if (array_key_exists($key, $retval) && array_key_exists('values', $retval[$key])) { asort($retval[$key]['values'], SORT_STRING); } } elseif ($key == 'component' || array_key_exists('custom', $return_details) && $return_details['custom'] && in_array($return_details['custom_type'], array(TBGCustomDatatype::COMPONENTS_LIST, TBGCustomDatatype::COMPONENTS_CHOICE))) { $retval[$key]['values'] = array(); $retval[$key]['values'][''] = TBGContext::getI18n()->__('None'); foreach ($this->getComponents() as $component) { $retval[$key]['values'][$component->getID()] = $component->getName(); } if (!$this->isComponentsEnabled() || empty($retval[$key]['values'])) { if (!$retval[$key]['required']) { unset($retval[$key]); } else { unset($retval[$key]['values']); } } if (array_key_exists($key, $retval) && array_key_exists('values', $retval[$key])) { asort($retval[$key]['values'], SORT_STRING); } } elseif ($key == 'build' || array_key_exists('custom', $return_details) && $return_details['custom'] && in_array($return_details['custom_type'], array(TBGCustomDatatype::RELEASES_LIST, TBGCustomDatatype::RELEASES_CHOICE))) { $retval[$key]['values'] = array(); $retval[$key]['values'][''] = TBGContext::getI18n()->__('None'); foreach ($this->getBuilds() as $build) { $retval[$key]['values'][$build->getID()] = $build->getName() . ' (' . $build->getVersion() . ')'; } if (!$this->isBuildsEnabled() || empty($retval[$key]['values'])) { if (!$retval[$key]['required']) { unset($retval[$key]); } else { unset($retval[$key]['values']); } } } } } } $this->_fieldsarrays[$issue_type][(int) $reportable] = $retval; } return $this->_fieldsarrays[$issue_type][(int) $reportable]; }
/** * Return an instance of TBGModulesTable * * @return TBGModulesTable */ public static function getTable() { return B2DB::getTable('TBGModulesTable'); }
/** * Return an instance of this table * * @return TBGCustomFieldsTable */ public static function getTable() { return B2DB::getTable('TBGCustomFieldsTable'); }
/** * Return an instance of this table * * @return TBGArticleLinksTable */ public static function getTable() { return B2DB::getTable('TBGArticleLinksTable'); }
public static function getAllModulePermissions($module, $uid, $tid, $gid) { $crit = new B2DBCriteria(); $crit->addWhere(TBGModulePermissionsTable::MODULE_NAME, $module); //$sql = "select b2mp.allowed from tbg_2_modulepermissions b2mp where b2mp.module_name = '$module'"; switch (true) { case $uid != 0: //$sql .= " and uid = $uid"; $crit->addWhere(TBGModulePermissionsTable::UID, $uid); case $tid != 0: //$sql .= " and tid = $tid"; $crit->addWhere(TBGModulePermissionsTable::TID, $tid); case $gid != 0: //$sql .= " and gid = $gid"; $crit->addWhere(TBGModulePermissionsTable::GID, $gid); } if ($uid + $tid + $gid == 0) { //$sql .= " and uid = $uid and tid = $tid and gid = $gid"; $crit->addWhere(TBGModulePermissionsTable::UID, $uid); $crit->addWhere(TBGModulePermissionsTable::TID, $tid); $crit->addWhere(TBGModulePermissionsTable::GID, $gid); } //$sql .= " AND b2mp.scope = " . TBGContext::getScope()->getID(); $crit->addWhere(TBGModulePermissionsTable::SCOPE, TBGContext::getScope()->getID()); //$res = b2db_sql_query($sql, B2DB::getDBlink()); #print $sql; $permissions = array(); $res = B2DB::getTable('TBGModulePermissionsTable')->doSelect($crit); while ($row = $res->getNextRow()) { $permissions[] = array('allowed' => $row->get(TBGModulePermissionsTable::ALLOWED)); } return $permissions; }
/** * Adds this build to all open issues in this edition or project * Returns true if any issues were updated, false if not * * @param integer $limit_status Limit to only a specific status type * @param integer $limit_category Limit to only a specific category * @param integer $limit_issuetype Limit to only a specific issue type * * @return boolean */ public function addToOpenParentIssues($limit_status = null, $limit_category = null, $limit_issuetype = null) { if ($this->isEditionBuild()) { $res = B2DB::getTable('TBGIssueAffectsEditionTable')->getOpenAffectedIssuesByEditionID($this->getParent()->getID(), $limit_status, $limit_category, $limit_issuetype); } else { $res = TBGIssuesTable::getTable()->getOpenAffectedIssuesByProjectID($this->getParent()->getID(), $limit_status, $limit_category, $limit_issuetype); } $retval = false; if ($res) { while ($row = $res->getNextRow()) { $issue_id = $row->get(TBGIssuesTable::ID); if (B2DB::getTable('TBGIssueAffectsBuildTable')->setIssueAffected($issue_id, $this->getID())) { $retval = true; } } } return $retval; }
public function _preDelete() { B2DB::getTable('TBGEditionAssigneesTable')->deleteByEditionID($this->getID()); }
/** * Return an instance of this table * * @return TBGIssueFilesTable */ public static function getTable() { return B2DB::getTable('TBGIssueFilesTable'); }
public static function findClients($details) { $crit = new B2DBCriteria(); $crit->addWhere(TBGClientsTable::NAME, "%{$details}%", B2DBCriteria::DB_LIKE); $clients = array(); if ($res = B2DB::getTable('TBGClientsTable')->doSelect($crit)) { while ($row = $res->getNextRow()) { $clients[$row->get(TBGClientsTable::ID)] = TBGContext::factory()->TBGClient($row->get(TBGClientsTable::ID), $row); } } return $clients; }
public function getViews() { $crit = new B2DBCriteria(); $crit->addWhere(TBGArticleViewsTable::ARTICLE_ID, $this->getID()); return B2DB::getTable('TBGArticleViewsTable')->doCount($crit); }
/** * Get all the projects a team is associated with * * @return array */ public function getAssociatedProjects() { if ($this->_associated_projects === null) { $this->_associated_projects = array(); $projects = B2DB::getTable('TBGProjectAssigneesTable')->getProjectsByTeamID($this->getID()); $edition_projects = B2DB::getTable('TBGEditionAssigneesTable')->getProjectsByTeamID($this->getID()); $component_projects = B2DB::getTable('TBGComponentAssigneesTable')->getProjectsByTeamID($this->getID()); $project_ids = array_merge(array_keys($projects), array_keys($edition_projects), array_keys($component_projects)); foreach ($project_ids as $project_id) { $this->_associated_projects[$project_id] = TBGContext::factory()->TBGProject($project_id); } } return $this->_associated_projects; }
private static function _loadSetting($name, $module = 'core', $scope = 0) { $crit = new B2DBCriteria(); $crit->addWhere(TBGSettingsTable::NAME, $name); $crit->addWhere(TBGSettingsTable::MODULE, $module); if ($scope == 0) { throw new Exception('BUGS has not been correctly installed. Please check that the default scope exists'); } $crit->addWhere(TBGSettingsTable::SCOPE, $scope); $res = B2DB::getTable('TBGSettingsTable')->doSelect($crit); if ($res->count() > 0) { $retarr = array(); while ($row = $res->getNextRow()) { $retarr[$row->get(TBGSettingsTable::UID)] = $row->get(TBGSettingsTable::VALUE); } return $retarr; } else { return null; } }
/** * Performs the "find issues" action * * @param TBGRequest $request */ public function runFindIssues(TBGRequest $request) { $this->_getSearchDetailsFromRequest($request); if ($request->isMethod(TBGRequest::POST) && !$request->getParameter('quicksearch')) { if ($request->getParameter('delete_saved_search')) { try { $search = TBGSavedSearchesTable::getTable()->getByID($request->getParameter('saved_search_id')); if ($search->get(TBGSavedSearchesTable::UID) == TBGContext::getUser()->getID() || $search->get(TBGSavedSearchesTable::IS_PUBLIC) && TBGContext::getUser()->canCreatePublicSearches()) { TBGSavedSearchesTable::getTable()->doDeleteById($request->getParameter('saved_search_id')); return $this->renderJSON(array('failed' => false, 'message' => TBGContext::getI18n()->__('The saved search was deleted successfully'))); } } catch (Exception $e) { return $this->renderJSON(array('failed' => true, 'message' => TBGContext::getI18n()->__('Cannot delete this saved search'))); } } elseif ($request->getParameter('saved_search_name') != '') { $project_id = TBGContext::isProjectContext() ? TBGContext::getCurrentProject()->getID() : 0; TBGSavedSearchesTable::getTable()->saveSearch($request->getParameter('saved_search_name'), $request->getParameter('saved_search_description'), $request->getParameter('saved_search_public'), $this->filters, $this->groupby, $this->grouporder, $this->ipp, $this->templatename, $this->template_parameter, $project_id, $request->getParameter('saved_search_id')); if ($request->getParameter('saved_search_id')) { TBGContext::setMessage('search_message', TBGContext::getI18n()->__('The saved search was updated')); } else { TBGContext::setMessage('search_message', TBGContext::getI18n()->__('The saved search has been created')); } $params = array(); } else { TBGContext::setMessage('search_error', TBGContext::getI18n()->__('You have to specify a name for the saved search')); $params = array('filters' => $this->filters, 'groupby' => $this->groupby, 'grouporder' => $this->grouporder, 'templatename' => $this->templatename, 'saved_search' => $request->getParameter('saved_search_id'), 'issues_per_page' => $this->ipp); } if (TBGContext::isProjectContext()) { $route = 'project_issues'; $params['project_key'] = TBGContext::getCurrentProject()->getKey(); } else { $route = 'search'; } $this->forward(TBGContext::getRouting()->generate($route, $params)); } else { $this->doSearch($request); $this->issues = $this->foundissues; if ($request->getParameter('quicksearch') == true) { $this->redirect('quicksearch'); } } $this->search_error = TBGContext::getMessageAndClear('search_error'); $this->search_message = TBGContext::getMessageAndClear('search_message'); $this->appliedfilters = $this->filters; $this->templates = $this->getTemplates(); $this->savedsearches = B2DB::getTable('TBGSavedSearchesTable')->getAllSavedSearchesByUserIDAndPossiblyProjectID(TBGContext::getUser()->getID(), TBGContext::isProjectContext() ? TBGContext::getCurrentProject()->getID() : 0); }
public function getBillboardPosts($target_board = 0, $posts = 5) { $crit = new B2DBCriteria(); $crit->addWhere(TBGBillboardPostsTable::SCOPE, TBGContext::getScope()->getID()); $crit->addWhere(TBGBillboardPostsTable::IS_DELETED, 0); $crit->setLimit($posts); $crit->addOrderBy(TBGBillboardPostsTable::DATE, 'desc'); if (is_array($target_board)) { $crit->addWhere(TBGBillboardPostsTable::TARGET_BOARD, $target_board, B2DBCriteria::DB_IN); } else { $crit->addWhere(TBGBillboardPostsTable::TARGET_BOARD, $target_board); } $posts = array(); $res = B2DB::getTable('TBGBillboardPostsTable')->doSelect($crit); while ($row = $res->getNextRow()) { $posts[] = new PublishBillboardPost($row); } return $posts; }
/** * Return an instance of this table * * @return TBGSettingsTable */ public static function getTable() { return B2DB::getTable('TBGSettingsTable'); }