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);
 }
Ejemplo n.º 10
0
 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);
 }
Ejemplo n.º 15
0
 /**
  * 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;
     }
 }
Ejemplo n.º 16
0
 /**
  * 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');
 }
Ejemplo n.º 20
0
 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;
 }
Ejemplo n.º 21
0
 /**
  * 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;
 }
Ejemplo n.º 22
0
 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');
 }
Ejemplo n.º 24
0
 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);
 }
Ejemplo n.º 26
0
 /**
  * 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;
 }
Ejemplo n.º 27
0
 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;
     }
 }
Ejemplo n.º 28
0
 /**
  * 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);
 }
Ejemplo n.º 29
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');
 }