Esempio n. 1
0
 /**
  * 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;
     }
 }
Esempio n. 2
0
 /**
  * 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;
     }
 }
Esempio n. 3
0
 /**
  * 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'));
 }