/** * The delete handler. * * @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_delete($handler_id, array $args, array &$data) { $this->_hour_report = new org_openpsa_projects_hour_report_dba($args[0]); $this->_hour_report->require_do('midgard:delete'); if (array_key_exists('org_openpsa_expenses_deleteok', $_REQUEST)) { // Deletion confirmed. if (!$this->_hour_report->delete()) { throw new midcom_error("Failed to delete hour report {$args[0]}, last Midgard error was: " . midcom_connection::get_error_string()); } // Delete ok, relocating to welcome. return new midcom_response_relocate(''); } if (array_key_exists('org_openpsa_expenses_deletecancel', $_REQUEST)) { // Redirect to view page. return new midcom_response_relocate(''); } $this->_load_schemadb(); $dm = new midcom_helper_datamanager2_datamanager($this->_schemadb); $dm->autoset_storage($this->_hour_report); $data['datamanager'] =& $dm; $this->_update_breadcrumb_line($handler_id); $this->_view_toolbar->bind_to($this->_hour_report); midcom::get('metadata')->set_request_metadata($this->_hour_report->metadata->revised, $this->_hour_report->guid); }