コード例 #1
0
 /**
  * Show groups index page
  *
  * @param void
  * @return null
  */
 function index()
 {
     $project_groups = ProjectGroups::findAll($this->logged_user);
     if ($this->request->getFormat() == FORMAT_HTML) {
         $this->smarty->assign(array('project_groups' => $project_groups, 'can_add_project_group' => ProjectGroup::canAdd($this->logged_user)));
     } else {
         $this->serveData($project_groups, 'project_groups');
     }
     // if
 }
コード例 #2
0
/**
 * Select project group helper
 *
 * Params:
 * 
 * - value - ID of selected group
 * - optional - boolean
 * - can_create_new - Should this select box offer option to create a new 
 *   company from within the list
 * 
 * @param array $params
 * @param Smarty $smarty
 * @return string
 */
function smarty_function_select_project_group($params, &$smarty)
{
    static $ids = array();
    $optional = array_var($params, 'optional', true, true);
    $value = array_var($params, 'value', null, true);
    $can_create_new = array_var($params, 'can_create_new', true, true);
    $id = array_var($params, 'id', null, true);
    if (empty($id)) {
        $counter = 1;
        do {
            $id = "select_project_group_dropdown_{$counter}";
            $counter++;
        } while (in_array($id, $ids));
    }
    // if
    $ids[] = $id;
    $params['id'] = $id;
    $groups = ProjectGroups::findAll($smarty->get_template_vars('logged_user'), true);
    if ($optional) {
        $options = array(option_tag(lang('-- None --'), ''), option_tag('', ''));
    } else {
        $options = array();
    }
    // if
    if (is_foreachable($groups)) {
        foreach ($groups as $group) {
            $option_attributes = array('class' => 'object_option');
            if ($value == $group->getId()) {
                $option_attributes['selected'] = true;
            }
            // if
            $options[] = option_tag($group->getName(), $group->getId(), $option_attributes);
        }
        // foreach
    }
    // if
    if ($can_create_new) {
        $params['add_object_url'] = assemble_url('project_groups_quick_add');
        $params['object_name'] = 'project_group';
        $params['add_object_message'] = lang('Please insert new project group name');
        $logged_user = get_logged_user();
        if (instance_of($logged_user, 'User') && ProjectGroup::canAdd($logged_user)) {
            $options[] = option_tag('', '');
            $options[] = option_tag(lang('New Project Group...'), '', array('class' => 'new_object_option'));
        }
        // if
    }
    // if
    return select_box($options, $params) . '<script type="text/javascript">$("#' . $id . '").new_object_from_select();</script>';
}
 /**
  * Projects listing
  *
  */
 function index()
 {
     $per_page = 10;
     $page = (int) $this->request->get('page');
     if ($page < 1) {
         $page = 1;
     }
     // if
     $group = null;
     $group_id = $this->request->getId('group_id');
     if ($group_id) {
         $group = ProjectGroups::findById($group_id);
     }
     // if
     if (instance_of($group, 'ProjectGroup')) {
         list($projects, $pagination) = Projects::paginateByUserAndGroup($this->logged_user, $group, array(PROJECT_STATUS_ACTIVE), $page, $per_page);
     } else {
         list($projects, $pagination) = Projects::paginateByUser($this->logged_user, array(PROJECT_STATUS_ACTIVE), $page, $per_page);
     }
     // if
     $this->smarty->assign(array('groups' => ProjectGroups::findAll($this->logged_user), 'selected_group_id' => $group_id, 'pagination' => $pagination, 'projects' => $projects, 'page_title' => lang('Projects'), 'paginator_url' => assemble_url('mobile_access_projects')));
 }
コード例 #4
0
 /**
  * Projects Arhive
  *
  * @param void
  * @return null
  */
 function archive()
 {
     if ($this->request->isApiCall()) {
         $this->serveData(Projects::findByUser($this->logged_user), 'projects');
     }
     // if
     $per_page = 10;
     $page = (int) $this->request->get('page');
     if ($page < 1) {
         $page = 1;
     }
     // if
     if (!$this->logged_user->isOwner()) {
         $group_by = 'group';
     } else {
         $group_by = $this->request->get('group_by');
         if ($group_by != 'client') {
             $group_by = 'group';
         }
         // if
     }
     // if
     $filter_by_status = $this->request->get('filter');
     if (is_null($filter_by_status)) {
         $filter_by_status = 'all';
     }
     // if
     switch ($filter_by_status) {
         case 'all':
             $statuses = array(PROJECT_STATUS_COMPLETED, PROJECT_STATUS_CANCELED, PROJECT_STATUS_PAUSED);
             break;
         case 'completed':
             $statuses = array(PROJECT_STATUS_COMPLETED);
             break;
         case 'paused':
             $statuses = array(PROJECT_STATUS_PAUSED);
             break;
         case 'canceled':
             $statuses = array(PROJECT_STATUS_CANCELED);
             break;
         default:
             $statuses = array(PROJECT_STATUS_COMPLETED, PROJECT_STATUS_CANCELED, PROJECT_STATUS_PAUSED);
             break;
     }
     // switch project status filter
     $this->smarty->assign(array('group_by' => $group_by, 'filter' => $filter_by_status));
     if ($group_by == 'group') {
         $group = null;
         $group_id = $this->request->getId('group_id');
         if ($group_id) {
             $group = ProjectGroups::findById($group_id);
         }
         // if
         if (instance_of($group, 'ProjectGroup')) {
             list($projects, $pagination) = Projects::paginateByUserAndGroup($this->logged_user, $group, $statuses, $page, $per_page, true);
         } else {
             list($projects, $pagination) = Projects::paginateByUser($this->logged_user, $statuses, $page, $per_page, true);
         }
         // if
         $this->smarty->assign(array('projects' => $projects, 'pagination' => $pagination, 'groups' => ProjectGroups::findAll($this->logged_user), 'selected_group' => $group));
     } else {
         $company = null;
         $company_id = $this->request->getId('company_id');
         if ($company_id) {
             $company = Companies::findById($company_id);
         }
         // if
         if (!instance_of($company, 'Company')) {
             $company = $this->owner_company;
         }
         // if
         list($projects, $pagination) = Projects::paginateByUserAndCompany($this->logged_user, $company, $statuses, $page, $per_page, true);
         $this->smarty->assign(array('projects' => $projects, 'pagination' => $pagination, 'companies' => Companies::findClients($this->logged_user), 'selected_company' => $company));
     }
     // if
 }