public function render_link() { $siteconfig = new org_openpsa_core_siteconfig(); $products_url = $siteconfig->get_node_full_url('org.openpsa.products'); if ($products_url) { return '<a href="' . $products_url . 'product/' . $this->guid . '/">' . $this->title . "</a>\n"; } else { return $this->title; } }
public function render_link() { $siteconfig = new org_openpsa_core_siteconfig(); $contacts_url = $siteconfig->get_node_full_url('org.openpsa.contacts'); if ($contacts_url) { return '<a href="' . $contacts_url . 'group/' . $this->guid . '/">' . $this->get_label() . "</a>\n"; } else { return $this->get_label(); } }
/** * @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_list($handler_id, array $args, array &$data) { midcom::get('auth')->require_valid_user(); // Locate Contacts node for linking $siteconfig = org_openpsa_core_siteconfig::get_instance(); $data['contacts_url'] = $siteconfig->get_node_full_url('org.openpsa.contacts'); $data['reports_url'] = $siteconfig->get_node_full_url('org.openpsa.reports'); $qb = org_openpsa_sales_salesproject_dba::new_query_builder(); if ($handler_id == 'list_status') { $qb = $this->_add_status_constraint($args[0], $qb); $data['mode'] = $args[0]; $data['list_title'] = $this->_l10n->get('salesprojects ' . $args[0]); } else { $qb = $this->_add_customer_constraint($args[0], $qb); $data['mode'] = 'customer'; $data['list_title'] = sprintf($this->_l10n->get('salesprojects with %s'), $data['customer']->get_label()); if ($data['contacts_url']) { $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => $data['contacts_url'] . (is_a($data['customer'], 'org_openpsa_contacts_group_dba') ? 'group' : 'person') . "/{$data['customer']->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('go to customer'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/jump-to.png')); } } $this->_salesprojects = $qb->execute(); foreach ($this->_salesprojects as $key => $salesproject) { // Populate previous/next actions in the project $salesproject->get_actions(); } // TODO: Filtering $data['grid'] = new org_openpsa_widgets_grid($data['mode'] . '_salesprojects_grid', 'local'); midcom::get('head')->add_jsfile(MIDCOM_STATIC_URL . '/org.openpsa.core/table2csv.js'); $this->add_breadcrumb("", $data['list_title']); }
public static function get_instance() { if (is_null(self::$instance)) { self::$instance = new self(); } return self::$instance; }
/** * Helper function that populates the toolbar with the necessary items * * @param string $handler_id the ID of the current handler */ private function _populate_toolbar($handler_id) { $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "person/edit/{$this->_contact->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n_midcom->get('edit'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/edit.png', MIDCOM_TOOLBAR_ENABLED => $this->_contact->can_do('midgard:update'), MIDCOM_TOOLBAR_ACCESSKEY => 'e')); $siteconfig = org_openpsa_core_siteconfig::get_instance(); $invoices_url = $siteconfig->get_node_full_url('org.openpsa.invoices'); $user_url = $siteconfig->get_node_full_url('org.openpsa.user'); if ($invoices_url && midcom::get('auth')->can_user_do('midgard:create', null, 'org_openpsa_invoices_invoice_dba')) { $billing_data_url = "create/" . $this->_contact->guid . "/"; $qb_billing_data = org_openpsa_invoices_billing_data_dba::new_query_builder(); $qb_billing_data->add_constraint('linkGuid', '=', $this->_contact->guid); $billing_data = $qb_billing_data->execute(); if (count($billing_data) > 0) { $billing_data_url = $billing_data[0]->guid . "/"; } $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => $invoices_url . "billingdata/" . $billing_data_url, MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('edit billingdata'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/edit.png', MIDCOM_TOOLBAR_ENABLED => $this->_contact->can_do('midgard:update'))); } if ($user_url && (midcom_connection::get_user() == $this->_contact->id || midcom::get('auth')->can_user_do('org.openpsa.user:access', null, 'org_openpsa_user_interface'))) { $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => $user_url . "view/{$this->_contact->guid}/", MIDCOM_TOOLBAR_LABEL => midcom::get('i18n')->get_string('user management', 'org.openpsa.user'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/properties.png')); } $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "person/delete/{$this->_contact->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n_midcom->get('delete'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/trash.png', MIDCOM_TOOLBAR_ENABLED => $this->_contact->can_do('midgard:delete'), MIDCOM_TOOLBAR_ACCESSKEY => 'd')); $mycontacts = new org_openpsa_contacts_mycontacts(); if ($mycontacts->is_member($this->_contact->guid)) { // We're buddies, show remove button $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "mycontacts/remove/{$this->_contact->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('remove from my contacts'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/trash.png')); } else { // We're not buddies, show add button $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "mycontacts/add/{$this->_contact->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('add to my contacts'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/stock_person.png')); } }
public static function add_head_elements_for_invoice_grid() { $invoices_url = org_openpsa_core_siteconfig::get_instance()->get_node_full_url('org.openpsa.invoices'); org_openpsa_widgets_grid::add_head_elements(); midcom::get('head')->add_jscript('var INVOICES_URL ="' . $invoices_url . 'invoice/process/";'); midcom::get('head')->add_jsfile(MIDCOM_STATIC_URL . '/org.openpsa.invoices/invoices.js'); }
/** * @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_frontpage($handler_id, array $args, array &$data) { $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => 'salesproject/new/', MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('create salesproject'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/stock_people.png', MIDCOM_TOOLBAR_ENABLED => midcom::get('auth')->can_user_do('midgard:create', null, 'org_openpsa_sales_salesproject_dba'))); org_openpsa_widgets_ui::enable_ui_tab(); $sales_url = org_openpsa_core_siteconfig::get_instance()->get_node_relative_url('org.openpsa.sales'); $data['tabs'] = array(array('url' => $sales_url . "list/active/", 'title' => $this->_l10n->get('active')), array('url' => $sales_url . "list/won/", 'title' => $this->_l10n->get('won')), array('url' => $sales_url . "list/delivered/", 'title' => $this->_l10n->get('delivered')), array('url' => $sales_url . "list/invoiced/", 'title' => $this->_l10n->get('invoiced')), array('url' => $sales_url . "list/canceled/", 'title' => $this->_l10n->get('canceled')), array('url' => $sales_url . "list/lost/", 'title' => $this->_l10n->get('lost'))); }
public static function initialize_search() { $defaults = array('autocomplete' => false); $providers = array(); $siteconfig = org_openpsa_core_siteconfig::get_instance(); $configured_providers = self::get_config_value('search_providers'); $user_id = false; if (!midcom::get('auth')->admin) { $user_id = midcom::get('auth')->acl->get_user_id(); } foreach ($configured_providers as $component => $config) { if (!is_array($config)) { $config = array('route' => $config); } $config = array_merge($defaults, $config); if ($config['autocomplete'] === true) { midcom_helper_datamanager2_widget_autocomplete::add_head_elements(); } $node_url = $siteconfig->get_node_full_url($component); if ($node_url && (!$user_id || midcom::get('auth')->acl->can_do_byguid('midgard:read', $siteconfig->get_node_guid($component), 'midcom_db_topic', $user_id))) { $providers[] = array('helptext' => midcom::get('i18n')->get_string('search title', $component), 'url' => $node_url . $config['route'], 'identifier' => $component, 'autocomplete' => $config['autocomplete']); } } midcom::get('head')->add_jquery_state_script('org_openpsa_layout.initialize_search ( ' . json_encode($providers) . ', "' . midgard_admin_asgard_plugin::get_preference('openpsa2_search_provider') . '" );'); }
public function render_link() { $url = ''; $link = nl2br($this->description); $siteconfig = org_openpsa_core_siteconfig::get_instance(); $projects_url = $siteconfig->get_node_full_url('org.openpsa.projects'); $sales_url = $siteconfig->get_node_full_url('org.openpsa.sales'); if ($projects_url) { try { $task = org_openpsa_projects_task_dba::get_cached($this->task); $url = $projects_url . 'task/' . $task->guid . '/'; } catch (midcom_error $e) { } } if ($url == '' && $sales_url) { try { $deliverable = org_openpsa_sales_salesproject_deliverable_dba::get_cached($this->deliverable); $url = $sales_url . 'deliverable/' . $deliverable->guid . '/'; } catch (midcom_error $e) { } } if ($url != '') { $link = '<a href="' . $url . '">' . $link . '</a>'; } return $link; }
/** * Simple helper which references all important members to the request data listing * for usage within the style listing. */ private function _prepare_request_data() { $this->_request_data['salesproject'] =& $this->_salesproject; $siteconfig = org_openpsa_core_siteconfig::get_instance(); $this->_request_data['projects_url'] = $siteconfig->get_node_relative_url('org.openpsa.projects'); $this->_request_data['invoices_url'] = $siteconfig->get_node_relative_url('org.openpsa.invoices'); $this->_request_data['products'] = org_openpsa_products_product_dba::list_products(); }
/** * Special helper for adding the supported operations from read into the toolbar. * * @param mixed $handler_id The ID of the handler. */ private function _add_read_toolbar($handler_id) { // Add toolbar items $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "project/edit/{$this->_object->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n_midcom->get('edit'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/edit.png', MIDCOM_TOOLBAR_ACCESSKEY => 'e')); $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "task/new/project/{$this->_object->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('create task'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/new_task.png', MIDCOM_TOOLBAR_ENABLED => $this->_object->can_do('midgard:update'))); $siteconfig = org_openpsa_core_siteconfig::get_instance(); $sales_url = $siteconfig->get_node_full_url('org.openpsa.sales'); if (!empty($sales_url)) { $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => $sales_url . "salesproject/{$this->_object->guid}/", MIDCOM_TOOLBAR_LABEL => midcom::get('i18n')->get_string('salesproject', 'org.openpsa.sales'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/jump-to.png')); } org_openpsa_relatedto_plugin::add_button($this->_view_toolbar, $this->_object->guid); }
/** * * @param mixed $handler_id The ID of the handler. * @param array &$data The local request data. */ public function _show_today($handler_id, array &$data) { $siteconfig = org_openpsa_core_siteconfig::get_instance(); $data['calendar_url'] = $siteconfig->get_node_relative_url('org.openpsa.calendar'); $data['projects_url'] = $siteconfig->get_node_full_url('org.openpsa.projects'); $data['projects_relative_url'] = $siteconfig->get_node_relative_url('org.openpsa.projects'); $data['expenses_url'] = $siteconfig->get_node_full_url('org.openpsa.expenses'); $data['wiki_url'] = $siteconfig->get_node_relative_url('net.nemein.wiki'); $data_url = midcom::get()->get_host_name() . midcom_core_context::get()->get_key(MIDCOM_CONTEXT_ANCHORPREFIX); $data['journal_url'] = $data_url . '/__mfa/org.openpsa.relatedto/journalentry/list/xml/'; midcom_show_style('show-today'); }
/** * @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_list($handler_id, array $args, array &$data) { midcom::get('auth')->require_valid_user(); $siteconfig = org_openpsa_core_siteconfig::get_instance(); $this->_sales_url = $siteconfig->get_node_full_url('org.openpsa.sales'); $provider = new org_openpsa_widgets_grid_provider($this, 'local'); $provider->add_order('start'); $data['grid'] = $provider->get_grid('scheduled'); midcom::get('head')->set_pagetitle($this->_l10n->get('scheduled invoices')); $this->add_breadcrumb('', $this->_l10n->get('scheduled invoices')); $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => '', MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('dashboard'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/stock_left.png')); $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => 'invoice/new/', MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('create invoice'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/printer.png', MIDCOM_TOOLBAR_ENABLED => midcom::get('auth')->can_user_do('midgard:create', null, 'org_openpsa_invoices_invoice_dba'))); $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => 'projects/', MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('project invoicing'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/printer.png', MIDCOM_TOOLBAR_ENABLED => midcom::get('auth')->can_user_do('midgard:create', null, 'org_openpsa_invoices_invoice_dba'))); }
/** * @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_view($handler_id, array $args, array &$data) { midcom::get('auth')->require_valid_user(); // Set the "now working on" status $data['workingon'] = new org_openpsa_mypage_workingon(); midcom::get()->skip_page_style = true; $task_conf = midcom_helper_datamanager2_widget_autocomplete::get_widget_config('task'); $task_conf['id_field'] = 'guid'; $task_conf['constraints'][] = array('field' => 'status', 'op' => '<', 'value' => org_openpsa_projects_task_status_dba::COMPLETED); $data['widget_config'] = $task_conf; // List work hours this week $siteconfig = org_openpsa_core_siteconfig::get_instance(); $data['expenses_url'] = $siteconfig->get_node_full_url('org.openpsa.expenses'); $data['requested_time'] = date('Y-m-d'); $this->_master->calculate_day($data['requested_time']); $this->_list_work_hours(); }
/** * Simple helper which references all important members to the request data listing * for usage within the style listing. */ private function _prepare_request_data() { $this->_request_data['deliverable'] =& $this->_deliverable; $this->_request_data['salesproject'] =& $this->_salesproject; // Populate the toolbar $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "deliverable/edit/{$this->_deliverable->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n_midcom->get('edit'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/edit.png', MIDCOM_TOOLBAR_ENABLED => $this->_deliverable->can_do('midgard:update'), MIDCOM_TOOLBAR_ACCESSKEY => 'e')); $siteconfig = org_openpsa_core_siteconfig::get_instance(); $this->_request_data['projects_url'] = $siteconfig->get_node_relative_url('org.openpsa.projects'); $this->_request_data['invoices_url'] = $siteconfig->get_node_relative_url('org.openpsa.invoices'); /*if ($this->_salesproject->can_do('midgard:delete')) { $this->_view_toolbar->add_item(Array( MIDCOM_TOOLBAR_URL => "salesproject/delete/{$this->_salesproject->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n_midcom->get('delete'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/trash.png', )); }*/ }
/** * The handler for the list view * * @param mixed $handler_id the array key from the request array * @param array $args the arguments given to the handler * @param Array &$data The local request data. */ public function _handler_list($handler_id, array $args, array &$data) { midcom::get('auth')->require_valid_user(); // List hours $qb = org_openpsa_projects_hour_report_dba::new_query_builder(); $mode = 'full'; //url for batch_handler $this->_request_data['action_target_url'] = midcom_core_context::get()->get_key(MIDCOM_CONTEXT_ANCHORPREFIX) . "hours/task/batch/"; switch ($handler_id) { case 'list_hours': $this->_master->add_list_filter($qb); $data['view_title'] = $data['l10n']->get('hour reports'); $data['breadcrumb_title'] = $data['view_title']; break; case 'list_hours_task': $this->_master->add_list_filter($qb); // Fallthrough // Fallthrough case 'list_hours_task_all': $task = new org_openpsa_projects_task_dba($args[0]); $qb->add_constraint('task', '=', $task->id); $mode = 'simple'; $data['view_title'] = sprintf($data['l10n']->get($handler_id . " %s"), $task->title); $data['breadcrumb_title'] = $task->get_label(); $siteconfig = org_openpsa_core_siteconfig::get_instance(); $projects_url = $siteconfig->get_node_full_url('org.openpsa.projects'); if ($projects_url) { $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => $projects_url . "task/{$task->guid}/", MIDCOM_TOOLBAR_LABEL => sprintf($this->_l10n->get('show task %s'), $task->title), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/jump-to.png', MIDCOM_TOOLBAR_ACCESSKEY => 'g')); } break; } $qb->add_order('date', 'DESC'); $data['hours'] = $qb->execute(); $this->_load_hour_data($data['hours']); $data['mode'] = $mode; $data['tasks'] = $this->tasks; $data['qb'] = $qb; org_openpsa_widgets_grid::add_head_elements(); midcom_helper_datamanager2_widget_autocomplete::add_head_elements(); org_openpsa_widgets_contact::add_head_elements(); midcom::get('head')->set_pagetitle($data['view_title']); $this->add_breadcrumb('', $data['breadcrumb_title']); }
/** * Locates the root event */ public static function find_root_event() { if (!midcom::get('componentloader')->is_loaded('org.openpsa.calendar')) { midcom::get('componentloader')->load_graceful('org.openpsa.calendar'); //Doublecheck if (!midcom::get('componentloader')->is_loaded('org.openpsa.calendar')) { return false; } } $data = midcom_baseclasses_components_configuration::get('org.openpsa.calendar'); //Check if we have already initialized if (isset($data['calendar_root_event']) && is_object($data['calendar_root_event'])) { return $data['calendar_root_event']; } $root_event = false; $root_guid = $data['config']->get('calendar_root_event'); if (mgd_is_guid($root_guid)) { $root_event = org_openpsa_calendar_event_dba::get_cached($root_guid); } else { // Check for calendar event tree. $qb = org_openpsa_calendar_event_dba::new_query_builder(); $qb->add_constraint('title', '=', '__org_openpsa_calendar'); $qb->add_constraint('up', '=', '0'); $ret = $qb->execute(); if (is_array($ret) && count($ret) > 0) { $root_event = $ret[0]; $siteconfig = org_openpsa_core_siteconfig::get_instance(); $topic_guid = $siteconfig->get_node_guid('org.openpsa.calendar'); if ($topic_guid) { $topic = new midcom_db_topic($topic_guid); $topic->set_parameter('org.openpsa.calendar', 'calendar_root_event', $root_event->guid); } } else { debug_add("OpenPSA Calendar root event could not be found", MIDCOM_LOG_ERROR); //Attempt to auto-initialize $root_event = self::create_root_event(); } } $data['calendar_root_event'] = $root_event; return $root_event; }
private function _populate_toolbar() { $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "group/edit/{$this->_group->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n_midcom->get("edit"), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/edit.png', MIDCOM_TOOLBAR_ENABLED => $this->_group->can_do('midgard:update'), MIDCOM_TOOLBAR_ACCESSKEY => 'e')); $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "group/create/organization/{$this->_group->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('create suborganization'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/stock_people-new.png', MIDCOM_TOOLBAR_ENABLED => $this->_group->can_do('midgard:update'))); $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "group/create/group/{$this->_group->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('create subgroup'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/stock_people-new.png', MIDCOM_TOOLBAR_ENABLED => $this->_group->can_do('midgard:update'))); if (midcom::get('auth')->can_user_do('midgard:create', null, 'org_openpsa_contacts_person_dba') && $this->_group->can_do('midgard:create')) { $allow_person_create = true; } else { $allow_person_create = false; } $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "person/create/{$this->_group->guid}/", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('create person'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/stock_person-new.png', MIDCOM_TOOLBAR_ENABLED => $allow_person_create)); $siteconfig = org_openpsa_core_siteconfig::get_instance(); $user_url = $siteconfig->get_node_full_url('org.openpsa.user'); if ($user_url && midcom::get('auth')->can_user_do('org.openpsa.user:access', null, 'org_openpsa_user_interface')) { $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => $user_url . "group/{$this->_group->guid}/", MIDCOM_TOOLBAR_LABEL => midcom::get('i18n')->get_string('user management', 'org.openpsa.user'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/properties.png')); } $cal_node = midcom_helper_misc::find_node_by_component('org.openpsa.calendar'); if (!empty($cal_node)) { //TODO: Check for privileges somehow $this->_node_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "#", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('create event'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/stock_new-event.png', MIDCOM_TOOLBAR_OPTIONS => array('rel' => 'directlink', 'onclick' => org_openpsa_calendar_interface::calendar_newevent_js($cal_node, false, $this->_group->guid)))); } }
public static function get_component_node($component) { $siteconfig = org_openpsa_core_siteconfig::get_instance(); midcom::get('auth')->request_sudo($component); if ($topic_guid = $siteconfig->get_node_guid($component)) { $topic = new midcom_db_topic($topic_guid); } else { $qb = midcom_db_topic::new_query_builder(); $qb->add_constraint('component', '=', $component); $qb->set_limit(1); $qb->add_order('id'); $result = $qb->execute(); if (sizeof($result) == 1) { midcom::get('auth')->drop_sudo(); return $result[0]; } $root_topic = midcom_db_topic::get_cached($GLOBALS['midcom_config']['root_topic']); $topic_attributes = array('up' => $root_topic->id, 'component' => $component, 'name' => 'handler_test_' . time()); $topic = self::create_class_object('midcom_db_topic', $topic_attributes); } midcom::get('auth')->drop_sudo(); return $topic; }
/** * Special helper for adding the supported operations from read into the toolbar. * * @param mixed $handler_id The ID of the handler. */ private function _populate_read_toolbar($handler_id) { if (!$this->_object->can_do('midgard:update')) { return; } if ($this->_object->status == org_openpsa_projects_task_status_dba::CLOSED) { // TODO: Make POST request $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "task/{$this->_object->guid}/reopen/", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('reopen'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/folder-expanded.png')); } else { if ($this->_object->status_type == 'ongoing') { // TODO: Make POST request $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "task/{$this->_object->guid}/complete/", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('mark completed'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/new_task.png')); } } $siteconfig = org_openpsa_core_siteconfig::get_instance(); $expenses_url = $siteconfig->get_node_full_url('org.openpsa.expenses'); if ($expenses_url) { midcom_helper_datamanager2_widget_autocomplete::add_head_elements(); org_openpsa_widgets_grid::add_head_elements(); if ($this->_object->status < org_openpsa_projects_task_status_dba::CLOSED) { $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => $expenses_url . "hours/create/hour_report/{$this->_object->guid}/", MIDCOM_TOOLBAR_LABEL => sprintf($this->_l10n_midcom->get('create %s'), $this->_l10n->get('hour report')), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/stock_new-event.png')); } $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => $expenses_url . "hours/task/all/{$this->_object->guid}", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('hour reports'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/scheduled_and_shown.png', MIDCOM_TOOLBAR_ACCESSKEY => 'h')); } org_openpsa_relatedto_plugin::add_button($this->_view_toolbar, $this->_object->guid); }
private function _get_available_generators() { if (is_array($this->_available_generators)) { return $this->_available_generators; } $this->_available_generators = array(); $components = array('org.openpsa.projects' => midcom::get('i18n')->get_string('org.openpsa.projects', 'org.openpsa.projects'), 'org.openpsa.sales' => midcom::get('i18n')->get_string('org.openpsa.sales', 'org.openpsa.sales'), 'org.openpsa.invoices' => midcom::get('i18n')->get_string('org.openpsa.invoices', 'org.openpsa.invoices')); $siteconfig = org_openpsa_core_siteconfig::get_instance(); foreach ($components as $component => $loc) { $node_guid = $siteconfig->get_node_guid($component); try { $topic = midcom_db_topic::get_cached($node_guid); $this->_available_generators[$component] = $loc; } catch (midcom_error $e) { debug_add("topic for component '{$component}' not found or accessible"); } } $this->_available_generators = $components; return $this->_available_generators; }
/** * Determine the node that handles the DBA class and load the respective component */ private function _load_component_node() { $siteconfig = org_openpsa_core_siteconfig::get_instance(); $nap = new midcom_helper_nav(); $component = midcom::get('dbclassloader')->get_component_for_class($this->_dbaclass); midcom::get('componentloader')->load($component); $topic_guid = $siteconfig->get_node_guid($component); $this->_node = $nap->resolve_guid($topic_guid); if (!$this->_node) { throw new midcom_error("Could not load node information for topic {$topic_guid}. Last error was: " . midcom_connection::get_error_string()); } }
/** * Helper to prepare non json output */ private function _prepare_output() { $siteconfig = org_openpsa_core_siteconfig::get_instance(); $this->_request_data['contacts_url'] = $siteconfig->get_node_full_url('org.openpsa.contacts'); $this->_request_data['sales_url'] = $siteconfig->get_node_full_url('org.openpsa.sales'); $this->_request_data['prefix'] = midcom_core_context::get()->get_key(MIDCOM_CONTEXT_ANCHORPREFIX); if ($this->_request_data['view_identifier'] == 'agreement') { return; } $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => 'project/new/', MIDCOM_TOOLBAR_LABEL => $this->_l10n->get("create project"), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/new-dir.png', MIDCOM_TOOLBAR_ENABLED => midcom::get('auth')->can_user_do('midgard:create', null, 'org_openpsa_projects_project'))); $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => 'task/new/', MIDCOM_TOOLBAR_LABEL => $this->_l10n->get("create task"), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/new_task.png', MIDCOM_TOOLBAR_ENABLED => midcom::get('auth')->can_user_do('midgard:create', null, 'org_openpsa_projects_task_dba'))); }
/** * Helper to populate the toolbar * * @param mixed $parent The parent object or false */ private function _add_toolbar_items($parent) { if (empty($parent->guid)) { return; } $siteconfig = org_openpsa_core_siteconfig::get_instance(); $projects_url = $siteconfig->get_node_full_url('org.openpsa.projects'); if ($projects_url) { $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => $projects_url . "task/{$parent->guid}/", MIDCOM_TOOLBAR_LABEL => sprintf($this->_l10n->get('show task %s'), $parent->title), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/jump-to.png', MIDCOM_TOOLBAR_ACCESSKEY => 'g')); } }
/** * * @param mixed $handler_id The ID of the handler. * @param array &$data The local request data. */ public function _show_list($handler_id, array &$data) { // Locate Contacts node for linking $siteconfig = org_openpsa_core_siteconfig::get_instance(); $this->_request_data['contacts_url'] = $siteconfig->get_node_full_url('org.openpsa.contacts'); if ($this->_request_data['view'] == 'all') { // The main listing view, list summary of each status foreach ($this->_request_data['project_list_results'] as $status => $results) { $this->_request_data['project_list_status'] = $status; $this->_request_data['project_list_items'] = $results; if (!$this->_request_data['config']->get('list_projects_by_status')) { midcom_show_style("show-project-list-status-header"); foreach ($this->_request_data['project_list_results'][$this->_request_data['view']] as $guid => $project) { $this->_request_data['project'] = $this->_load_project($guid); midcom_show_style("show-project-list-status-item"); } midcom_show_style("show-project-list-status-footer"); } else { midcom_show_style("show-project-list-status-summary"); } } } else { // Listing of one status, show verbose output midcom_show_style("show-project-list-status-header"); foreach ($this->_request_data['project_list_results'][$this->_request_data['view']] as $guid => $project) { $this->_request_data['project'] = $this->_load_project($guid); midcom_show_style("show-project-list-status-item"); } midcom_show_style("show-project-list-status-footer"); } }
/** * Renderer for organization address cards */ public static function show_address_card(&$customer, $cards) { $cards_to_show = array(); $multiple_addresses = false; $inherited_cards_only = true; $default_shown = false; $siteconfig = org_openpsa_core_siteconfig::get_instance(); $contacts_url = $siteconfig->get_node_full_url('org.openpsa.contacts'); foreach ($cards as $cardname) { if ($cardname == 'visiting') { if ($customer->street) { $default_shown = true; $cards_to_show[] = $cardname; } continue; } $property = $cardname . 'Street'; if (sizeof($cards_to_show) == 0) { if ($property != 'street' && $customer->{$property}) { $inherited_cards_only = false; $cards_to_show[] = $cardname; } else { if (!$default_shown && $customer->street) { $default_shown = true; $cards_to_show[] = $cardname; } } } else { if ($customer->{$property} || $customer->street && (!$inherited_cards_only && !$default_shown)) { $inherited_cards_only = false; $multiple_addresses = true; $cards_to_show[] = $cardname; } } } if (sizeof($cards_to_show) == 0) { return; } $root_group = org_openpsa_contacts_interface::find_root_group(); $parent = $customer->get_parent(); $parent_name = false; if ($parent->id != $root_group->id) { $parent_name = $parent->get_label(); } foreach ($cards_to_show as $cardname) { echo '<div class="vcard">'; if ($multiple_addresses || $cardname != 'visiting' && !$inherited_cards_only) { echo '<div style="text-align:center"><em>' . midcom::get('i18n')->get_string($cardname . ' address', 'org.openpsa.contacts') . "</em></div>\n"; } echo "<strong>\n"; if ($parent_name) { echo '<a href="' . $contacts_url . 'group/' . $parent->guid . '/">' . $parent_name . "</a><br />\n"; } $label = $customer->get_label(); if ($cardname != 'visiting') { $label_property = $cardname . '_label'; $label = $customer->{$label_property}; } echo $label . "\n"; echo "</strong>\n"; $property_street = 'street'; $property_postcode = 'postcode'; $property_city = 'city'; if ($cardname != 'visiting') { $property_street = $cardname . 'Street'; $property_postcode = $cardname . 'Postcode'; $property_city = $cardname . 'City'; } if ($customer->{$property_street}) { echo "<p>{$customer->{$property_street}}<br />\n"; echo "{$customer->{$property_postcode}} {$customer->{$property_city}}</p>\n"; } else { if ($customer->street) { echo "<p>{$customer->street}<br />\n"; echo "{$customer->postcode} {$customer->city}</p>\n"; } } echo "</div>\n"; } }
echo "<div><strong>" . $data['l10n']->get($fieldname) . ": </strong>"; echo $fielddata . "</div>"; break; } } if (array_key_exists('billing_data', $data)) { echo "<h2>" . $data['l10n']->get('invoice defaults') . "</h2>\n"; echo "<div><strong>" . midcom::get('i18n')->get_string('vat', 'org.openpsa.invoices') . ": </strong>"; echo $data['billing_data']->vat . " %</div>\n"; echo "<div><strong>" . midcom::get('i18n')->get_string('payment target', 'org.openpsa.invoices') . ": </strong>"; echo $data['billing_data']->due . "</div>\n"; $data['billing_data']->render_address(); } org_openpsa_widgets_contact::show_address_card($data['group'], array('visiting', 'postal')); echo '<br style="clear:left" />'; $siteconfig = org_openpsa_core_siteconfig::get_instance(); $tabs = array(); if (strpos($data['view']['categories'], $data['l10n']->get('client')) !== false) { //TODO: Check for privileges somehow $invoices_url = $siteconfig->get_node_relative_url('org.openpsa.invoices'); if ($invoices_url) { $tabs[] = array('url' => $invoices_url . "list/customer/all/{$data['group']->guid}/", 'title' => midcom::get('i18n')->get_string('invoices', 'org.openpsa.invoices')); } $sales_url = $siteconfig->get_node_relative_url('org.openpsa.sales'); if ($sales_url) { $tabs[] = array('url' => $sales_url . "list/customer/{$data['group']->guid}/", 'title' => midcom::get('i18n')->get_string('salesprojects', 'org.openpsa.sales')); } } org_openpsa_widgets_ui::render_tabs($data['group']->guid, $tabs); ?> </div>
static function common_node_toolbar_buttons_sanitycheck(&$data, &$button_component, &$bind_object, &$calling_component) { if (!midcom::get('componentloader')->load_graceful($button_component)) { //For some reason the component is and can not (be) loaded debug_add("component {$button_component} could not be loaded", MIDCOM_LOG_ERROR); return false; } if (!array_key_exists('node', $data) || empty($data['node'])) { debug_add("data['node'] not given, trying with siteconfig", MIDCOM_LOG_DEBUG); $siteconfig = org_openpsa_core_siteconfig::get_instance(); $node_guid = $siteconfig->get_node_guid($button_component); if (!$node_guid) { debug_add("data['node'] not given, and {$button_component} could not be found in siteconfig", MIDCOM_LOG_INFO); return false; } $nap = new midcom_helper_nav(); $data['node'] = $nap->resolve_guid($node_guid); } if (empty($data['node'])) { //Invalid node given/found debug_add("data['node'] is invalid", MIDCOM_LOG_ERROR); return false; } $related_to = new org_openpsa_relatedto_dba(); $related_to->toGuid = $bind_object->guid; $related_to->toClass = get_class($bind_object); $related_to->toComponent = $calling_component; $related_to->fromComponent = $button_component; $related_to->status = org_openpsa_relatedto_dba::CONFIRMED; return $related_to; }
/** * * @param mixed $handler_id The ID of the handler. * @param array &$data The local request data. */ public function _show_review($handler_id, array &$data) { $siteconfig = org_openpsa_core_siteconfig::get_instance(); $data['calendar_node'] = midcom_helper_misc::find_node_by_component('org.openpsa.calendar'); $data['projects_url'] = $siteconfig->get_node_full_url('org.openpsa.projects'); $date = new DateTime(date('Y-m-d', $data['week_start'])); $offset = $date->format('N') - 1; $date->modify('-' . $offset . ' days'); $week_hours_invoiceable = 0; $week_hours_total = 0; midcom_show_style('weekreview-header'); for ($i = 0; $i < 7; $i++) { $day = $date->format('Y-m-d'); $data['day_start'] = (int) $date->format('U'); $date->setTime(23, 59, 59); $data['day_end'] = (int) $date->format('U'); //Roll over to the next day $date->modify('+1 second'); if (!array_key_exists($day, $data['review_data'])) { // Nothing for today continue; } midcom_show_style('weekreview-day-header'); $day_hours_invoiceable = 0; $day_hours_total = 0; // Arrange entries per time ksort($data['review_data'][$day]); $data['class'] = 'even'; foreach ($data['review_data'][$day] as $time => $guids) { foreach ($guids as $object) { if ($data['class'] == 'even') { $data['class'] = 'odd'; } else { $data['class'] = 'even'; } $data['time'] = $time; $data['object'] = $object; switch (get_class($object)) { case 'org_openpsa_calendar_event_dba': midcom_show_style('weekreview-day-item-event'); break; case 'org_openpsa_projects_hour_report_dba': midcom_show_style('weekreview-day-item-hour-report'); if ($object->invoiceable) { $day_hours_invoiceable += $object->hours; } $day_hours_total += $object->hours; break; case 'org_openpsa_projects_task_status_dba': midcom_show_style('weekreview-day-item-task-status'); break; case 'org_routamc_positioning_log_dba': midcom_show_style('weekreview-day-item-position'); break; } } } $data['day_hours_invoiceable'] = $day_hours_invoiceable; $week_hours_invoiceable += $day_hours_invoiceable; $data['day_hours_total'] = $day_hours_total; $week_hours_total += $day_hours_total; midcom_show_style('weekreview-day-footer'); } $data['week_hours_invoiceable'] = $week_hours_invoiceable; $data['week_hours_total'] = $week_hours_total; midcom_show_style('weekreview-footer'); }
/** * Helper function to process the form of the controller */ private function _process_billing_form() { switch ($this->_controller->process_form()) { case 'delete': $this->_billing_data->delete(); case 'save': case 'cancel': $siteconfig = org_openpsa_core_siteconfig::get_instance(); $relocate = $siteconfig->get_node_full_url('org.openpsa.contacts'); switch (true) { case is_a($this->_linked_object, 'org_openpsa_contacts_person_dba'): $relocate .= 'person/' . $this->_linked_object->guid . '/'; break; case is_a($this->_linked_object, 'org_openpsa_contacts_group_dba'): $relocate .= 'group/' . $this->_linked_object->guid . '/'; break; default: $relocate = midcom::get('permalinks')->create_permalink($this->_linked_object->guid); break; } midcom::get()->relocate($relocate); // This will exit. } }