Exemplo n.º 1
0
 /**
  * Get a bunch of data prepared for the view
  */
 protected function prepareForEdit()
 {
     if ($this->view->model == null) {
         throw new Exception("Task not found!");
     }
     // check the existence of the client to add this contact to
     $pid = (int) $this->_getParam('projectid') ? (int) $this->_getParam('projectid') : $this->view->model->projectid;
     $project = new Project();
     if ($pid) {
         $project = $this->projectService->getProject($pid);
     }
     $this->view->project = $project;
     $this->view->projectUsers = $this->projectService->getProjectUsers($project);
     $this->view->activeTasks = array();
     if ($project->id) {
         $this->view->projects = $this->projectService->getProjectsForClient($project->clientid);
         $this->view->activeTasks = $this->projectService->getActiveProjectTasks($project);
     } else {
         $this->view->projects = new ArrayObject();
     }
     $this->view->categories = $this->view->model->constraints['category']->getValues();
     $this->view->clients = $this->clientService->getClients();
     $this->view->model->tags = "";
     if ($this->view->model->id) {
         $this->view->notes = $this->notificationService->getNotesFor($this->view->model);
         $this->view->existingWatch = $this->notificationService->getWatch(za()->getUser(), $this->view->model->id, 'Task');
         $this->view->allUsers = $this->userService->getUserList();
         $this->view->subscribers = $this->notificationService->getSubscribers($this->view->model->id, 'Task');
         $tags = $this->tagService->getItemTags($this->view->model);
         $tagStr = "";
         $sep = "";
         foreach ($tags as $tag) {
             $tagStr .= $sep . $tag->tag;
             $sep = ',';
         }
         $this->view->model->tags = $tagStr;
         // get all the issues that triggered this task
         $this->view->issues = $this->itemLinkService->getLinkedItemsOfType($this->view->model, 'to', 'Issue');
         $this->view->features = $this->itemLinkService->getLinkedItemsOfType($this->view->model, 'to', 'Feature');
         // get selectable features based on the milestont this project is in.
         $this->view->selectableFeatures = $project->getFeatures();
         $client = $this->clientService->getClient($project->clientid);
         // get all the requests for the given client
         $this->view->selectableRequests = $client->getIssues();
     }
 }
Exemplo n.º 2
0
 /**
  * Override the edit action to supply some selectable relationships
  *
  * @param MappedObject $model
  */
 protected function prepareForEdit($model = null)
 {
     $clientid = $model && $model->clientid ? $model->clientid : (int) $this->_getParam('clientid');
     // check the existence of the client to add this contact to
     $client = $clientid ? $this->clientService->getClient($clientid) : null;
     // check the existence of the client to add this contact to
     $this->view->owners = $this->groupService->getGroups();
     $this->view->users = $this->userService->getUserList();
     $this->view->client = $client;
     $this->view->clients = $this->clientService->getClients();
     $this->view->projects = $clientid ? $this->projectService->getProjectsForClient($client) : array();
     parent::prepareForEdit($model);
 }
Exemplo n.º 3
0
 public function viewgroupAction()
 {
     $group = $this->byId($this->_getParam('id'), 'UserGroup');
     $users = $this->groupService->getUsersInGroup($group, true);
     $groupUsers = array();
     foreach ($users as $user) {
         $groupUsers[$user->id] = $user;
     }
     $this->view->groupusers = $groupUsers;
     $this->view->users = $this->userService->getUserList();
     $this->view->group = $group;
     $this->renderView('admin/view-group.php');
 }
Exemplo n.º 4
0
 /**
  * Edit an expense report
  */
 public function editreportAction($model = null)
 {
     $cid = $this->_getParam('clientid');
     $client = null;
     if ($cid) {
         $client = $this->byId($cid, 'Client');
     }
     $user = $this->userService->getUserByField('username', $this->_getParam('username'));
     if (!$user && !$client) {
         throw new Exception("Must specify a client or user");
     }
     $this->view->expenses = array();
     if ($client) {
         $this->view->client = $client;
         $this->view->projects = $this->projectService->getProjects(array('clientid=' => $cid));
     } else {
         $this->view->client = new Client();
         $this->view->projects = array();
     }
     if ($user) {
         $this->view->user = $user;
     } else {
         $this->view->user = new CrmUser();
     }
     if ($model == null) {
         if ((int) $this->_getParam('id')) {
             $this->view->model = $this->byId(null, 'ExpenseReport');
             //  $this->dbService->getById((int)$this->_getParam('id'), $modelType);
             if ($client) {
                 $this->view->expenses = $this->expenseService->getExpenses(array('expensereportid=' => $this->view->model->id));
             } else {
                 $this->view->expenses = $this->expenseService->getExpenses(array('userreportid=' => $this->view->model->id));
             }
         } else {
             $this->view->model = new ExpenseReport();
         }
     } else {
         $this->view->model = $model;
     }
     $this->view->clients = $this->clientService->getClients();
     $this->view->users = $this->userService->getUserList();
     $this->renderView('expense/editreport.php');
 }
Exemplo n.º 5
0
 /**
  * Used to display a list of the current week's breakdown 
  */
 public function summaryAction()
 {
     $timesheetid = -1;
     // Okay, so if we were passed in a timesheet, it means we want to view
     // the data for that timesheet. However, if that timesheet is locked,
     // we want to make sure that the tasks being viewed are ONLY those that
     // are found in that locked timesheet.
     $timesheet = $this->byId();
     $start = null;
     $end = null;
     $this->view->showLinks = true;
     $cats = array();
     $users = $this->userService->getUserList();
     if (!$start) {
         // The start date, if not set in the parameters, will be just
         // the previous monday
         $start = $this->_getParam('start', $this->calculateDefaultStartDate());
         // $end = $this->_getParam('end', date('Y-m-d', time()));
         $end = $this->_getParam('end', date('Y-m-d 23:59:59', strtotime($start) + 6 * 86400));
     }
     // lets normalise the end date to make sure it's of 23:59:59
     $end = date('Y-m-d 23:59:59', strtotime($end));
     $order = 'endtime desc';
     $this->view->taskInfo = array();
     $project = null;
     if ($this->_getParam('projectid')) {
         $project = $this->projectService->getProject($this->_getParam('projectid'));
     }
     foreach ($users as $user) {
         $this->view->taskInfo[$user->username] = $this->projectService->getTimesheetReport($user, $project, null, -1, $start, $end, $cats, $order);
     }
     $task = new Task();
     $this->view->categories = $task->constraints['category']->getValues();
     $this->view->startDate = $start;
     $this->view->endDate = $end;
     $this->view->params = $this->_getAllParams();
     $this->view->dayDivision = za()->getConfig('day_length', 8) / 4;
     // za()->getConfig('day_division', 2);
     $this->view->divisionTolerance = za()->getConfig('division_tolerance', 20);
     $this->renderView('timesheet/user-report.php');
 }
Exemplo n.º 6
0
 /**
  * Override the edit action to supply some selectable relationships
  *
  * @param MappedObject $model
  */
 public function prepareForEdit($model = null)
 {
     if ($this->view->model == null) {
         $this->flash("Invalid request specified");
         $this->redirect('error');
         return;
     }
     $this->view->issueHistory = $this->issueService->getIssueHistory($this->view->model);
     $pid = (int) $this->_getParam('projectid');
     $cid = (int) $this->_getParam('clientid');
     if ($this->view->model->projectid) {
         $pid = $this->view->model->projectid;
     }
     if ($this->view->model->clientid) {
         $cid = $this->view->model->clientid;
     }
     // Which one?
     if ($pid) {
         $this->view->project = $this->projectService->getProject($pid);
         $this->view->client = $this->clientService->getClient($this->view->project->clientid);
         // figure out the releases available for this project
         $this->view->releases = $this->issueService->getProjectReleases($this->view->project);
     } else {
         if ($cid) {
             $this->view->client = $this->clientService->getClient($cid);
             $this->view->releases = array();
         }
     }
     if ($this->view->client != null) {
         $this->view->categories = $this->issueService->getIssueCategoriesForCompany($this->view->client);
     } else {
         $this->view->categories = array();
     }
     // if it's a new issue, and it's a normal user set it to be private by default
     // User can always specify a different one though
     if (!$this->view->model->id && za()->getUser()->hasRole(User::ROLE_USER)) {
         $this->view->model->isprivate = true;
     }
     $this->view->users = $this->userService->getUserList();
     $this->view->severities = $this->view->model->constraints['severity']->getValues();
     $this->view->types = $this->view->model->constraints['issuetype']->getValues();
     $this->view->statuses = $this->view->model->constraints['status']->getValues();
     if ($this->view->model->id) {
         $this->view->notes = $this->notificationService->getNotesFor($this->view->model);
         $this->view->existingWatch = $this->notificationService->getWatch(za()->getUser(), $this->view->model->id, 'Issue');
         $this->view->userStatuses = $this->view->model->getUserStatuses();
         $clientUsers = $this->userService->getUsersForClient($this->view->model->clientid);
         foreach ($this->view->users as $user) {
             $clientUsers->append($user);
         }
         $this->view->allUsers = $clientUsers;
         $this->view->subscribers = $this->notificationService->getSubscribers($this->view->model->id, 'Issue');
         $this->view->project = $this->projectService->getProject($this->view->model->projectid);
         $this->view->client = $this->clientService->getClient($this->view->model->clientid);
         $this->view->files = $this->issueService->getIssueFiles($this->view->model);
         $path = 'Clients/' . $this->view->client->title . '/Issues/' . $this->view->model->id;
         $this->view->filePath = $path;
         // Get all the features for this project
         $this->view->projectFeatures = $this->featureService->getFeatures(array('projectid=' => $this->view->model->projectid));
         $this->view->projectTasks = $this->projectService->getTasks(array('projectid=' => $this->view->project->id), 'title asc');
         $this->view->linkedTasks = $this->itemLinkService->getLinkedItems($this->view->model, 'from', 'Task');
         $this->view->linkedToFeatures = $this->itemLinkService->getLinkedItems($this->view->model, 'from', 'Feature');
         $this->view->linkedFromFeatures = $this->itemLinkService->getLinkedItems($this->view->model, 'to', 'Feature');
     }
     $this->view->clients = $this->clientService->getClients();
     if ($this->view->client) {
         $this->view->projects = $this->projectService->getProjectsForClient($this->view->client->id);
     }
 }
Exemplo n.º 7
0
 /**
  * Gets all the users assigned to a project
  *
  * @param Project $project
  * @return ArrayObject
  */
 public function getProjectUsers()
 {
     // For now, just return all users
     return $this->userService->getUserList();
 }