/** * Helper, updates the context so that we get a complete breadcrumb line towards the current * location. * * @param string $handler_id */ public function _update_breadcrumb($handler_id) { org_openpsa_projects_viewer::add_breadcrumb_path($this->_object, $this); switch ($handler_id) { case 'project_edit': $this->add_breadcrumb("project/edit/{$this->_object->guid}/", $this->_l10n_midcom->get('edit')); break; case 'project_delete': $this->add_breadcrumb("project/delete/{$this->_object->guid}/", $this->_l10n_midcom->get('delete')); break; } }
/** * Helper, updates the context so that we get a complete breadcrumb line towards the current * location. * * @param string $handler_id */ public function _update_breadcrumb($handler_id) { $tmp = array(); if ($this->_object) { org_openpsa_projects_viewer::add_breadcrumb_path($this->_object, $this); } else { if ($this->_parent) { org_openpsa_projects_viewer::add_breadcrumb_path($this->_parent, $this); } } switch ($this->_mode) { case 'update': $this->add_breadcrumb("task/edit/{$this->_object->guid}/", $this->_l10n_midcom->get('edit')); break; case 'delete': $this->add_breadcrumb("task/delete/{$this->_object->guid}/", $this->_l10n_midcom->get('delete')); break; case 'create': $this->add_breadcrumb("", $this->_l10n->get('new task')); break; } }
/** * Display possible available resources * * @param mixed $handler_id The ID of the handler. * @param Array $args The argument list. * @param Array &$data The local request data. */ public function _handler_resourcing($handler_id, array $args, array &$data) { $this->_task = new org_openpsa_projects_task_dba($args[0]); $this->_task->require_do('midgard:create'); if (array_key_exists('org_openpsa_projects_prospects', $_POST) && $_POST['save']) { foreach ($_POST['org_openpsa_projects_prospects'] as $prospect_guid => $slots) { try { $prospect = new org_openpsa_projects_task_resource_dba($prospect_guid); } catch (midcom_error $e) { continue; } $update_prospect = false; foreach ($slots as $slotdata) { if (!array_key_exists('used', $slotdata) || empty($slotdata['used'])) { // Slot not selected, skip continue; } $prospect->orgOpenpsaObtype = ORG_OPENPSA_OBTYPE_PROJECTRESOURCE; $update_prospect = true; // Create event from slot $event = new org_openpsa_calendar_event_dba(); $event->start = $slotdata['start']; $event->end = $slotdata['end']; $event->search_relatedtos = false; $event->title = sprintf($this->_l10n->get('work for task %s'), $this->_task->title); if (!$event->create()) { // TODO: error reporting continue; } $participant = new org_openpsa_calendar_event_member_dba(); $participant->orgOpenpsaObtype = ORG_OPENPSA_OBTYPE_EVENTPARTICIPANT; $participant->uid = $prospect->person; $participant->eid = $event->id; $participant->create(); // create relatedto if (!org_openpsa_relatedto_plugin::create($event, 'org.openpsa.calendar', $this->_task, 'org.openpsa.projects')) { // TODO: delete event ??? } } } if ($update_prospect) { if (!$prospect->update()) { // TODO: error handling } } return new midcom_response_relocate("task/{$this->_task->guid}/"); } else { if (!empty($_POST['cancel'])) { return new midcom_response_relocate("task/{$this->_task->guid}/"); } } $this->_prepare_request_data($handler_id); midcom::get('head')->set_pagetitle($this->_task->title); $this->bind_view_to_object($this->_task); org_openpsa_projects_viewer::add_breadcrumb_path($data['task'], $this); $this->add_breadcrumb("task/resourcing/{$this->_task->guid}/", $this->_l10n->get('resourcing')); }