コード例 #1
0
ファイル: class.issue.php プロジェクト: dabielkabuto/eventum
 /**
  * Move the issue to a new project
  *
  * @param integer $issue_id
  * @param integer $new_prj_id
  * @return integer 1 on success, -1 otherwise
  */
 public function moveIssue($issue_id, $new_prj_id)
 {
     $stmt = 'UPDATE
           {{%issue}}
       SET
           iss_prj_id = ?
       WHERE
           iss_id = ?';
     try {
         DB_Helper::getInstance()->query($stmt, array($new_prj_id, $issue_id));
     } catch (DbException $e) {
         return -1;
     }
     $currentDetails = self::getDetails($issue_id);
     // set new category
     $new_iss_prc_list = Category::getAssocList($new_prj_id);
     $iss_prc_title = Category::getTitle($currentDetails['iss_prc_id']);
     $new_prc_id = array_search($iss_prc_title, $new_iss_prc_list);
     if ($new_prc_id === false) {
         // use the first category listed in the new project
         $new_prc_id = key($new_iss_prc_list);
     }
     // set new priority
     $new_iss_pri_list = Priority::getAssocList($new_prj_id);
     $iss_pri_title = Priority::getTitle($currentDetails['iss_pri_id']);
     $new_pri_id = array_search($iss_pri_title, $new_iss_pri_list);
     if ($new_pri_id === false) {
         // use the first category listed in the new project
         $new_pri_id = key($new_iss_pri_list);
     }
     // XXX: Set status if needed when moving issue
     $stmt = 'UPDATE
           {{%issue}}
       SET
           iss_prc_id=?,
           iss_pri_id=?
       WHERE
           iss_id=?';
     DB_Helper::getInstance()->query($stmt, array($new_prc_id, $new_pri_id, $issue_id));
     // clear project cache
     self::getProjectID($issue_id, true);
     Notification::notifyNewIssue($new_prj_id, $issue_id);
     return 1;
 }
コード例 #2
0
ファイル: new.php プロジェクト: korusdipl/eventum
        if (count($item) == 1) {
            $email_details = Support::getEmailDetails(Email_Account::getAccountByEmail($item[0]), $item[0]);
            $tpl->assign(array('issue_summary' => $email_details['sup_subject'], 'issue_description' => $email_details['seb_body']));
            // also auto pre-fill the customer contact text fields
            if (CRM::hasCustomerIntegration($prj_id)) {
                $sender_email = Mail_Helper::getEmailAddress($email_details['sup_from']);
                try {
                    $contact = $crm->getContactByEmail($sender_email);
                    $tpl->assign('contact_details', $contact->getDetails());
                } catch (CRMException $e) {
                }
            }
        }
    }
}
$tpl->assign(array('cats' => Category::getAssocList($prj_id), 'priorities' => Priority::getAssocList($prj_id), 'severities' => Severity::getList($prj_id), 'users' => Project::getUserAssocList($prj_id, 'active', User::getRoleID('Customer')), 'releases' => Release::getAssocList($prj_id), 'custom_fields' => Custom_Field::getListByProject($prj_id, 'report_form'), 'max_attachment_size' => Attachment::getMaxAttachmentSize(), 'max_attachment_bytes' => Attachment::getMaxAttachmentSize(true), 'field_display_settings' => Project::getFieldDisplaySettings($prj_id), 'groups' => Group::getAssocList($prj_id), 'products' => Product::getList(false)));
$prefs = Prefs::get($usr_id);
$tpl->assign('user_prefs', $prefs);
$tpl->assign('zones', Date_Helper::getTimezoneList());
if (Auth::getCurrentRole() == User::getRoleID('Customer')) {
    $crm = CRM::getInstance(Auth::getCurrentProject());
    $customer_contact_id = User::getCustomerContactID($usr_id);
    $contact = $crm->getContact($customer_contact_id);
    $customer_id = Auth::getCurrentCustomerID();
    $customer = $crm->getCustomer($customer_id);
    // TODOCRM: Pull contacts via ajax when user selects contract
    $tpl->assign(array('customer_id' => $customer_id, 'contact_id' => $customer_contact_id, 'customer' => $customer, 'contact' => $contact));
}
$clone_iss_id = isset($_GET['clone_iss_id']) ? (int) $_GET['clone_iss_id'] : null;
if ($clone_iss_id && Access::canCloneIssue($clone_iss_id, $usr_id)) {
    $tpl->assign(Issue::getCloneIssueTemplateVariables($clone_iss_id));
コード例 #3
0
ファイル: reminders.php プロジェクト: juliogallardo1326/proc
     }
     $tpl->assign('issues', Reminder::getIssueAssocListByProject($info['rem_prj_id']));
     $tpl->assign("info", $info);
     // wouldn't make much sense to create a reminder for a 'Not Prioritized'
     // issue, so let's remove that as an option
     $priorities = array_flip(Priority::getAssocList($info['rem_prj_id']));
     unset($priorities['Not Prioritized']);
     $tpl->assign("priorities", array_flip($priorities));
 } elseif (@$HTTP_GET_VARS["cat"] == "change_rank") {
     Reminder::changeRank($HTTP_GET_VARS['id'], $HTTP_GET_VARS['rank']);
 } elseif (!empty($HTTP_GET_VARS['prj_id'])) {
     $tpl->assign("info", array('rem_prj_id' => $HTTP_GET_VARS['prj_id']));
     $tpl->assign('issues', Reminder::getIssueAssocListByProject($HTTP_GET_VARS['prj_id']));
     // wouldn't make much sense to create a reminder for a 'Not Prioritized'
     // issue, so let's remove that as an option
     $priorities = array_flip(Priority::getAssocList($HTTP_GET_VARS['prj_id']));
     unset($priorities['Not Prioritized']);
     $tpl->assign("priorities", array_flip($priorities));
     // only show customers and support levels if the selected project really needs it
     $project_has_customer_integration = Customer::hasCustomerIntegration($HTTP_GET_VARS['prj_id']);
     $tpl->assign("project_has_customer_integration", $project_has_customer_integration);
     if ($project_has_customer_integration) {
         $tpl->assign("customers", Customer::getAssocList($HTTP_GET_VARS['prj_id']));
         $backend_uses_support_levels = Customer::doesBackendUseSupportLevels($HTTP_GET_VARS['prj_id']);
         if ($backend_uses_support_levels) {
             $tpl->assign("support_levels", Customer::getSupportLevelAssocList($HTTP_GET_VARS['prj_id']));
         }
         $tpl->assign("backend_uses_support_levels", $backend_uses_support_levels);
     }
 }
 $tpl->assign("project_list", Project::getAll());
コード例 #4
0
ファイル: class.filter.php プロジェクト: dabielkabuto/eventum
 /**
  * Returns an array of active filters
  *
  * @param   array $options The options array
  * @return array
  */
 public static function getActiveFilters($options)
 {
     $prj_id = Auth::getCurrentProject();
     $filter_info = self::getFiltersInfo();
     $return = array();
     foreach ($filter_info as $filter_key => $filter) {
         $display = false;
         if (isset($filter['param']) && isset($options[$filter['param']])) {
             $filter_details = $options[$filter['param']];
         }
         if (isset($filter['is_custom'])) {
             // custom fields
             $fld_id = $filter['fld_id'];
             if (!isset($options['custom_field'][$fld_id]) || empty($options['custom_field'][$fld_id])) {
                 continue;
             } elseif ($filter['fld_type'] == 'date' && empty($options['custom_field'][$fld_id]['Year'])) {
                 continue;
             } elseif ($filter['fld_type'] == 'integer') {
                 if (!isset($options['custom_field'][$fld_id]['value']) || empty($options['custom_field'][$fld_id]['value'])) {
                     continue;
                 } else {
                     $filter_details = $options['custom_field'][$fld_id];
                     switch ($filter_details['filter_type']) {
                         case 'ge':
                             $display = ev_gettext('%1$s or greater', $filter_details['value']);
                             break;
                         case 'le':
                             $display = ev_gettext('%1$s or less', $filter_details['value']);
                             break;
                         case 'gt':
                             $display = ev_gettext('Greater than %1$s', $filter_details['value']);
                             break;
                         case 'lt':
                             $display = ev_gettext('Less than %1$s', $filter_details['value']);
                             break;
                         default:
                             $display = $filter_details['value'];
                     }
                 }
             } elseif (in_array($filter['fld_type'], array('multiple', 'combo'))) {
                 $display = implode(', ', Custom_Field::getOptions($fld_id, $options['custom_field'][$fld_id]));
             } else {
                 $display = $options['custom_field'][$fld_id];
             }
         } elseif (!isset($options[$filter['param']]) || empty($options[$filter['param']]) || in_array($filter_key, array('sort_order', 'sort_by', 'rows', 'search_type'))) {
             continue;
         } elseif (isset($filter['is_date']) && $filter['is_date'] == true) {
             if (!empty($filter_details['Year']) || isset($filter_details['time_period'])) {
                 switch ($filter_details['filter_type']) {
                     case 'in_past':
                         $display = ev_gettext('In Past %1$s hours', $filter_details['time_period']);
                         break;
                     case 'null':
                         $display = ev_gettext('Is NULL');
                         break;
                     case 'between':
                         $end = $options[$filter['param'] . '_end'];
                         $display = ev_gettext('Is between %1$s-%2$s-%3$s AND %4$s-%5$s-%6$s', $filter_details['Year'], $filter_details['Month'], $filter_details['Day'], $end['Year'], $end['Month'], $end['Day']);
                         break;
                     case 'greater':
                         $display = ev_gettext('Is greater than %1$s-%2$s-%3$s', $filter_details['Year'], $filter_details['Month'], $filter_details['Day']);
                         break;
                     case 'less':
                         $display = ev_gettext('Is less than %1$s-%2$s-%3$s', $filter_details['Year'], $filter_details['Month'], $filter_details['Day']);
                 }
             }
         } elseif ($filter['param'] == 'status') {
             $statuses = Status::getAssocStatusList($prj_id);
             $display = $statuses[$filter_details];
         } elseif ($filter['param'] == 'category') {
             $categories = Category::getAssocList($prj_id);
             if (is_array($filter_details)) {
                 $active_categories = array();
                 foreach ($filter_details as $category) {
                     $active_categories[] = $categories[$category];
                 }
                 $display = implode(', ', $active_categories);
             } else {
                 $display = $categories[$filter_details];
             }
         } elseif ($filter['param'] == 'priority') {
             $priorities = Priority::getAssocList($prj_id);
             $display = $priorities[$filter_details];
         } elseif ($filter['param'] == 'severity') {
             $severities = Severity::getAssocList($prj_id);
             $display = $severities[$filter_details];
         } elseif ($filter['param'] == 'users') {
             if ($filter_details == -1) {
                 $display = ev_gettext('un-assigned');
             } elseif ($filter_details == -2) {
                 $display = ev_gettext('myself and un-assigned');
             } elseif ($filter_details == -3) {
                 $display = ev_gettext('myself and my group');
             } elseif ($filter_details == -4) {
                 $display = ev_gettext('myself, un-assigned and my group');
             } elseif (substr($filter_details, 0, 3) == 'grp') {
                 $display = ev_gettext('%1$s Group', Group::getName(substr($filter_details, 4)));
             } else {
                 $display = User::getFullName($filter_details);
             }
         } elseif ($filter['param'] == 'hide_closed') {
             if ($filter_details == true) {
                 $display = ev_gettext('Yes');
             }
         } elseif ($filter['param'] == 'reporter') {
             $display = User::getFullName($filter_details);
         } elseif ($filter['param'] == 'release') {
             $display = Release::getTitle($filter_details);
         } elseif ($filter['param'] == 'customer_id') {
             try {
                 $crm = CRM::getInstance($prj_id);
                 $customer = $crm->getCustomer($filter_details);
                 $display = $customer->getName();
             } catch (CRMException $e) {
                 $display = $filter_details;
             }
         } elseif ($filter['param'] == 'product') {
             $display = Product::getTitle($filter_details);
         } else {
             $display = $filter_details;
         }
         if ($display != false) {
             $return[$filter['title']] = array('value' => $display, 'remove_link' => 'list.php?view=clearandfilter&' . self::buildUrl($filter_info, $options, $filter_key, true));
         }
     }
     return $return;
 }
コード例 #5
0
 /**
  * Method used to get an associative array of the list of priorities and the
  * total number of issues associated with each of them.
  *
  * @access  public
  * @return  array List of priorities
  */
 function getAssocPriority()
 {
     $prj_id = Auth::getCurrentProject();
     $list = Priority::getAssocList($prj_id);
     $stats = array();
     foreach ($list as $pri_id => $pri_title) {
         $stmt = "SELECT\n                        COUNT(*) AS total_items\n                     FROM\n                        " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "issue\n                     WHERE\n                        iss_prj_id={$prj_id} AND\n                        iss_pri_id=" . $pri_id;
         $res = (int) $GLOBALS["db_api"]->dbh->getOne($stmt);
         if ($res > 0) {
             $stats[$pri_title] = $res;
         }
     }
     arsort($stats);
     return $stats;
 }
コード例 #6
0
 /**
  * Method used to get the list of reminders to be displayed in the 
  * administration section.
  *
  * @access  public
  * @return  array The list of reminders
  */
 function getAdminList()
 {
     $stmt = "SELECT\n                    " . APP_TABLE_PREFIX . "reminder_level.*,\n                    prj_title\n                 FROM\n                    " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "reminder_level,\n                    " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "project\n                 WHERE\n                    rem_prj_id=prj_id\n                 ORDER BY\n                    rem_rank ASC";
     $res = $GLOBALS["db_api"]->dbh->getAll($stmt, DB_FETCHMODE_ASSOC);
     if (PEAR::isError($res)) {
         Error_Handler::logError(array($res->getMessage(), $res->getDebugInfo()), __FILE__, __LINE__);
         return array();
     } else {
         for ($i = 0; $i < count($res); $i++) {
             $res[$i]['rem_created_date'] = Date_API::getFormattedDate($res[$i]["rem_created_date"]);
             $actions = Reminder_Action::getList($res[$i]['rem_id']);
             $res[$i]['total_actions'] = count($actions);
             $priorities = Reminder::getAssociatedPriorities($res[$i]['rem_id']);
             $priority_titles = Priority::getAssocList($res[$i]['rem_prj_id']);
             $res[$i]['priorities'] = array();
             if (count($priorities) > 0) {
                 foreach ($priorities as $pri_id) {
                     $res[$i]['priorities'][] = $priority_titles[$pri_id];
                 }
             } else {
                 $res[$i]['priorities'][] = 'Any';
             }
             $requirements = Reminder::getRequirements($res[$i]['rem_id']);
             $res[$i]['type'] = $requirements['type'];
         }
         return $res;
     }
 }
コード例 #7
0
ファイル: update.php プロジェクト: korusdipl/eventum
}
$columns = array(0 => array(), 1 => array());
if (CRM::hasCustomerIntegration($prj_id) and !empty($details['iss_customer_id'])) {
    $columns[0][] = array('title' => 'Customer', 'field' => 'customer_0');
    $columns[1][] = array('title' => 'Customer Contract', 'field' => 'customer_1');
}
$categories = Category::getAssocList($prj_id);
if (count($categories) > 0) {
    $columns[0][] = array('title' => ev_gettext('Category'), 'data' => $details['prc_title'], 'field' => 'category');
}
$columns[0][] = array('title' => ev_gettext('Status'), 'data' => $details['sta_title'], 'data_bgcolor' => $details['status_color'], 'field' => 'status');
$severities = Severity::getAssocList($prj_id);
if (count($severities) > 0) {
    $columns[0][] = array('title' => ev_gettext('Severity'), 'data' => $details['sev_title'], 'field' => 'severity');
}
$priorities = Priority::getAssocList($prj_id);
if (count($priorities) > 0 && (!isset($issue_fields_display['priority']) || $issue_fields_display['priority'] != false)) {
    if (isset($issue_fields_display['priority']['min_role']) && $issue_fields_display['priority']['min_role'] > User::getRoleID('Customer')) {
        $bgcolor = APP_INTERNAL_COLOR;
    } else {
        $bgcolor = '';
    }
    $columns[0][] = array('title' => ev_gettext('Priority'), 'data' => $details['pri_title'], 'title_bgcolor' => $bgcolor, 'field' => 'priority');
}
$releases = Release::getAssocList($prj_id);
if (count($releases) > 0 && $role_id != User::getRoleID('Customer')) {
    $columns[0][] = array('title' => ev_gettext('Scheduled Release'), 'data' => $details['pre_title'], 'title_bgcolor' => APP_INTERNAL_COLOR);
}
if ($role_id > User::ROLE_CUSTOMER) {
    $columns[0][] = array('title' => ev_gettext('Resolution'), 'data' => $details['iss_resolution'], 'field' => 'resolution');
}
コード例 #8
0
 /**
  * Returns the options associated with a specific field
  *
  * @param   string $field_name The name of the field
  * @param   integer $issue_id The ID of the issue
  * @return  array An array of options for the specified field
  */
 private static function getOptions($field_name, $issue_id)
 {
     $prj_id = Issue::getProjectID($issue_id);
     switch ($field_name) {
         case 'assignee':
             $users = Project::getUserAssocList($prj_id, 'active', User::ROLE_CUSTOMER);
             $current_assignees = Issue::getAssignedUserIDs($issue_id);
             foreach ($current_assignees as $usr_id) {
                 if (!isset($users[$usr_id])) {
                     $users[$usr_id] = User::getFullName($usr_id);
                 }
                 asort($users);
             }
             return $users;
         case 'priority':
             return Priority::getAssocList($prj_id);
         case 'severity':
             return Severity::getAssocList($prj_id);
     }
     return array();
 }
コード例 #9
0
 /**
  * Method used to get the list of reminders to be displayed in the
  * administration section.
  *
  * @return  array The list of reminders
  */
 public static function getAdminList()
 {
     $stmt = 'SELECT
                 {{%reminder_level}}.*,
                 prj_title
              FROM
                 {{%reminder_level}},
                 {{%project}}
              WHERE
                 rem_prj_id=prj_id
              ORDER BY
                 rem_rank ASC';
     try {
         $res = DB_Helper::getInstance()->getAll($stmt);
     } catch (DbException $e) {
         return array();
     }
     foreach ($res as &$row) {
         $actions = Reminder_Action::getList($row['rem_id']);
         $row['total_actions'] = count($actions);
         $priorities = self::getAssociatedPriorities($row['rem_id']);
         $priority_titles = Priority::getAssocList($row['rem_prj_id']);
         $row['priorities'] = array();
         if (count($priorities) > 0) {
             foreach ($priorities as $pri_id) {
                 $row['priorities'][] = $priority_titles[$pri_id];
             }
         } else {
             $row['priorities'][] = 'Any';
         }
         $requirements = self::getRequirements($row['rem_id']);
         $row['type'] = $requirements['type'];
     }
     return $res;
 }
コード例 #10
0
ファイル: list.php プロジェクト: korusdipl/eventum
    $assign_options['-4'] = ev_gettext('myself, un-assigned and my group');
}
if (count($groups) > 0 && Auth::getCurrentRole() > User::getRoleID('Customer')) {
    foreach ($groups as $grp_id => $grp_name) {
        $assign_options["grp:{$grp_id}"] = ev_gettext('Group') . ': ' . $grp_name;
    }
}
$assign_options += $users;
$list = Search::getListing($prj_id, $options, $pagerRow, $rows);
$tpl->assign('list', $list['list']);
$tpl->assign('list_info', $list['info']);
$tpl->assign('csv_data', base64_encode(@$list['csv']));
$tpl->assign('match_modes', Search::getMatchModes());
$tpl->assign('supports_excerpts', Search::doesBackendSupportExcerpts());
$tpl->assign('columns', Display_Column::getColumnsToDisplay($prj_id, 'list_issues'));
$tpl->assign('priorities', Priority::getAssocList($prj_id));
$tpl->assign('severities', Severity::getAssocList($prj_id));
$tpl->assign('status', Status::getAssocStatusList($prj_id));
$tpl->assign('assign_options', $assign_options);
$tpl->assign('custom', Filter::getAssocList($prj_id));
$tpl->assign('csts', Filter::getListing(true));
$tpl->assign('active_filters', Filter::getActiveFilters($options));
$tpl->assign('categories', Category::getAssocList($prj_id));
$tpl->assign('releases', Release::getAssocList($prj_id, true));
$tpl->assign('reporters', Project::getReporters($prj_id));
$tpl->assign(array('products' => Product::getAssocList(false)));
$prefs = Prefs::get($usr_id);
$tpl->assign('refresh_rate', $prefs['list_refresh_rate'] * 60);
$tpl->assign('refresh_page', 'list.php');
// items needed for bulk update tool
if (Auth::getCurrentRole() > User::getRoleID('Developer')) {
コード例 #11
0
ファイル: class.stats.php プロジェクト: dabielkabuto/eventum
 /**
  * Method used to get an associative array of the list of priorities and the
  * total number of issues associated with each of them.
  *
  * @param   boolean $hide_closed If closed issues should be hidden.
  * @return  array List of priorities
  */
 public static function getAssocPriority($hide_closed = false)
 {
     $prj_id = Auth::getCurrentProject();
     $list = Priority::getAssocList($prj_id);
     $stats = array();
     foreach ($list as $pri_id => $pri_title) {
         $stmt = 'SELECT
                     COUNT(*) AS total_items
                  FROM
                     {{%issue}},
                     {{%status}}
                  WHERE
                     iss_sta_id = sta_id AND
                     iss_prj_id=? AND
                     iss_pri_id=?';
         if ($hide_closed) {
             $stmt .= ' AND
                     sta_is_closed = 0';
         }
         $res = (int) DB_Helper::getInstance()->getOne($stmt, array($prj_id, $pri_id));
         if ($res > 0) {
             $stats[$pri_title] = $res;
         }
     }
     arsort($stats);
     return $stats;
 }
コード例 #12
0
ファイル: new.php プロジェクト: juliogallardo1326/proc
        }
        // if we are dealing with just one message, use the subject line as the
        // summary for the issue, and the body as the description
        if (count($HTTP_GET_VARS["item"]) == 1) {
            $email_details = Support::getEmailDetails(Email_Account::getAccountByEmail($HTTP_GET_VARS["item"][0]), $HTTP_GET_VARS["item"][0]);
            $tpl->assign(array('issue_summary' => $email_details['sup_subject'], 'issue_description' => $email_details['message']));
            // also auto pre-fill the customer contact text fields
            if (Customer::hasCustomerIntegration($prj_id)) {
                $sender_email = Mail_API::getEmailAddress($email_details['sup_from']);
                list(, $contact_id) = Customer::getCustomerIDByEmails($prj_id, array($sender_email));
                if (!empty($contact_id)) {
                    $tpl->assign("contact_details", Customer::getContactDetails($prj_id, $contact_id));
                }
            }
        }
    }
}
$tpl->assign(array("cats" => Category::getAssocList($prj_id), "priorities" => Priority::getAssocList($prj_id), "users" => Project::getUserAssocList($prj_id, 'active', User::getRoleID('Customer')), "releases" => Release::getAssocList($prj_id), "custom_fields" => Custom_Field::getListByProject($prj_id, 'report_form'), "max_attachment_size" => Attachment::getMaxAttachmentSize(), "field_display_settings" => Project::getFieldDisplaySettings($prj_id), "groups" => Group::getAssocList($prj_id)));
$setup = Setup::load();
$tpl->assign("allow_unassigned_issues", @$setup["allow_unassigned_issues"]);
$prefs = Prefs::get($usr_id);
$tpl->assign("user_prefs", $prefs);
$tpl->assign("zones", Date_API::getTimezoneList());
if (User::getRole(Auth::getCurrentRole()) == "Customer") {
    $customer_contact_id = User::getCustomerContactID($usr_id);
    $tpl->assign("contact_details", Customer::getContactDetails($prj_id, $customer_contact_id));
    $customer_id = User::getCustomerID($usr_id);
    $tpl->assign("contacts", Customer::getContactEmailAssocList($prj_id, $customer_id));
    $tpl->assign(array("customer_id" => User::getCustomerID($usr_id), "contact_id" => User::getCustomerContactID($usr_id)));
}
$tpl->displayTemplate();
コード例 #13
0
ファイル: update.php プロジェクト: juliogallardo1326/proc
    if (@$HTTP_POST_VARS["cat"] == "update") {
        $res = Issue::update($HTTP_POST_VARS["issue_id"]);
        $tpl->assign("update_result", $res);
        if (Issue::hasDuplicates($HTTP_POST_VARS["issue_id"])) {
            $tpl->assign("has_duplicates", "yes");
        }
    }
    $prj_id = Auth::getCurrentProject();
    $setup = Setup::load();
    $tpl->assign("allow_unassigned_issues", @$setup["allow_unassigned_issues"]);
    // if currently selected release is in the past, manually add it to list
    $releases = Release::getAssocList($prj_id);
    if ($details["iss_pre_id"] != 0 && empty($releases[$details["iss_pre_id"]])) {
        $releases = array($details["iss_pre_id"] => $details["pre_title"]) + $releases;
    }
    if (Workflow::hasWorkflowIntegration($prj_id)) {
        $statuses = Workflow::getAllowedStatuses($prj_id, $issue_id);
        // if currently selected release is not on list, go ahead and add it.
    } else {
        $statuses = Status::getAssocStatusList($prj_id, false);
    }
    if (!empty($details['iss_sta_id']) && empty($statuses[$details['iss_sta_id']])) {
        $statuses[$details['iss_sta_id']] = Status::getStatusTitle($details['iss_sta_id']);
    }
    $tpl->assign(array("subscribers" => Notification::getSubscribers($issue_id), "categories" => Category::getAssocList($prj_id), "priorities" => Priority::getAssocList($prj_id), "status" => $statuses, "releases" => $releases, "resolutions" => Resolution::getAssocList(), "users" => Project::getUserAssocList($prj_id, 'active', User::getRoleID('Customer')), "assoc_issues" => array_map("htmlspecialchars", array()), "one_week_ts" => time() + 7 * DAY, "allow_unassigned_issues" => @$setup["allow_unassigned_issues"], "groups" => Group::getAssocList($prj_id)));
    $cookie = Auth::getCookieInfo(APP_PROJECT_COOKIE);
    if (!empty($cookie['auto_switched_from'])) {
        $tpl->assign(array("project_auto_switched" => 1, "old_project" => Project::getName($cookie['auto_switched_from'])));
    }
}
$tpl->displayTemplate();
コード例 #14
0
ファイル: reminders.php プロジェクト: korusdipl/eventum
    $tpl->assign('info', $info);
    // wouldn't make much sense to create a reminder for a 'Not Prioritized'
    // issue, so let's remove that as an option
    $priorities = array_flip(Priority::getAssocList($info['rem_prj_id']));
    unset($priorities['Not Prioritized']);
    $tpl->assign('priorities', array_flip($priorities));
    $tpl->assign('severities', Severity::getAssocList($info['rem_prj_id']));
    $tpl->assign('products', Product::getAssocList());
} elseif (@$_GET['cat'] == 'change_rank') {
    Reminder::changeRank($_GET['id'], $_GET['rank']);
} elseif (!empty($_GET['prj_id'])) {
    $tpl->assign('info', array('rem_prj_id' => $_GET['prj_id']));
    $tpl->assign('issues', Reminder::getIssueAssocListByProject($_GET['prj_id']));
    // wouldn't make much sense to create a reminder for a 'Not Prioritized'
    // issue, so let's remove that as an option
    $priorities = array_flip(Priority::getAssocList($_GET['prj_id']));
    unset($priorities['Not Prioritized']);
    $tpl->assign('priorities', array_flip($priorities));
    $tpl->assign('severities', Severity::getAssocList($_GET['prj_id']));
    $tpl->assign('products', Product::getAssocList());
    // only show customers and support levels if the selected project really needs it
    $project_has_customer_integration = CRM::hasCustomerIntegration($_GET['prj_id']);
    $tpl->assign('project_has_customer_integration', $project_has_customer_integration);
    if ($project_has_customer_integration) {
        $crm = CRM::getInstance($_GET['prj_id']);
        $tpl->assign('customers', $crm->getCustomerAssocList());
        $tpl->assign('support_levels', $crm->getSupportLevelAssocList());
    }
}
$tpl->assign('project_list', Project::getAll());
$tpl->assign('list', Reminder::getAdminList());
コード例 #15
0
ファイル: list.php プロジェクト: juliogallardo1326/proc
    foreach ($options['custom_field'] as $fld_id => $search_value) {
        if (empty($search_value)) {
            continue;
        }
        $field = Custom_Field::getDetails($fld_id);
        if ($field['fld_type'] == 'combo' || $field['fld_type'] == 'multiple') {
            $custom_fields_display[$fld_id] = join(', ', Custom_Field::getOptions($fld_id, $search_value));
        }
    }
}
$list = Issue::getListing($prj_id, $options, $pagerRow, $rows);
$tpl->assign("list", $list["list"]);
$tpl->assign("list_info", $list["info"]);
$tpl->assign("csv_data", base64_encode(@$list["csv"]));
$tpl->assign("columns", Display_Column::getColumnsToDisplay($prj_id, 'list_issues'));
$tpl->assign("priorities", Priority::getAssocList($prj_id));
$tpl->assign("status", Status::getAssocStatusList($prj_id));
$tpl->assign("open_status", Status::getAssocStatusList($prj_id, true));
$tpl->assign("users", $users);
$tpl->assign("assign_options", $assign_options);
$tpl->assign("custom", Filter::getAssocList($prj_id));
$tpl->assign("csts", Filter::getListing(true));
$tpl->assign("filter_info", Filter::getFiltersInfo());
$tpl->assign("categories", Category::getAssocList($prj_id));
$tpl->assign("releases", Release::getAssocList($prj_id, true));
$tpl->assign("available_releases", Release::getAssocList($prj_id));
$tpl->assign("groups", $groups);
$tpl->assign("custom_fields_display", $custom_fields_display);
$tpl->assign("reporters", Project::getReporters($prj_id));
$prefs = Prefs::get($usr_id);
$tpl->assign("refresh_rate", $prefs['list_refresh_rate'] * 60);