public function test_handler_delete() { midcom::get('auth')->request_sudo('org.openpsa.user'); $data = $this->run_handler('org.openpsa.user', array('delete', self::$_user->guid)); $this->assertEquals('user_delete', $data['handler_id']); midcom::get('auth')->drop_sudo(); }
public function testHandler_render() { midcom::get('auth')->request_sudo('org.openpsa.relatedto'); $data = $this->run_handler('org.openpsa.invoices', array('__mfa', 'org.openpsa.relatedto', 'render', self::$_object_from->guid, 'both')); $this->assertEquals('____mfa-org.openpsa.relatedto-render', $data['handler_id']); midcom::get('auth')->drop_sudo(); }
public function test_handler_json() { midcom::get('auth')->request_sudo('org.openpsa.user'); $data = $this->run_handler('org.openpsa.user', array('json')); $this->assertEquals('user_list_json', $data['handler_id']); midcom::get('auth')->drop_sudo(); }
/** * Function to unblock an account after too many failed to login attempts * * @param array $args Contains the guid, parameter & parameter names to get username&password */ function reopen_account($args, &$handler) { midcom::get('auth')->request_sudo($this->_component); try { $person = new midcom_db_person($args['guid']); } catch (midcom_error $e) { $msg = 'Person with guid #' . $args['guid'] . ' does not exist'; debug_add($msg, MIDCOM_LOG_ERROR); $handler->print_error($msg); midcom::get('auth')->drop_sudo(); return false; } $accounthelper = new org_openpsa_user_accounthelper($person); try { $accounthelper->reopen_account(); } catch (midcom_error $e) { midcom::get('auth')->drop_sudo(); $e->log(); $handler->print_error($e->getMessage()); midcom::get('auth')->drop_sudo(); return false; } midcom::get('auth')->drop_sudo(); return true; }
/** * Initialization script placeholder. Not yet needed. * * @return boolean Indicating success */ public function _on_initialize() { // Enable jQuery. This will not work without midcom::get('head')->enable_jquery(); midcom::get('head')->add_jsfile(MIDCOM_STATIC_URL . '/midcom.helper.datamanager2/datamanager2.tablesorter.js'); // Default values $sortable_rows = 'false'; $sortable_columns = 'false'; if (!$this->_type->row_limit) { $this->_type->row_limit = 0; } if (!$this->_type->column_limit) { $this->_type->column_limit = 0; } if ($this->_type->sortable_rows) { $sortable_rows = 'true'; } if ($this->_type->sortable_columns) { $sortable_columns = 'true'; } $preserve_columns = '|' . implode('|,|', array_keys($this->_type->columns)) . '|'; // Configuration options midcom::get('head')->add_jscript("\n jQuery(document).ready(function()\n {\n jQuery('#midcom_helper_datamanager2_{$this->_type->name}_widget_tabledata')\n .create_tablesorter({\n table_id: '#midcom_helper_datamanager2_{$this->_type->name}_widget_tabledata',\n field_name: '{$this->_type->name}',\n max_row_count: {$this->_type->row_limit},\n max_column_count: {$this->_type->column_limit},\n sortable_rows: {$sortable_rows},\n sortable_columns: {$sortable_columns},\n preserve_columns: '{$preserve_columns}',\n allow_delete: true\n });\n });\n\n COLUMN_TITLE = '" . $this->_type->_l10n->get('please enter the column title') . "';\n "); return true; }
public function testCRUD() { midcom::get('auth')->request_sudo('org.openpsa.invoices'); $data = new org_openpsa_invoices_billing_data_dba(); $data->linkGuid = self::$_contact->guid; $data->useContactAddress = true; $stat = $data->create(); $this->assertTrue($stat, midcom_connection::get_error_string()); $this->register_object($data); $parent = $data->get_parent(); $this->assertEquals($parent->guid, self::$_contact->guid); self::$_contact->refresh(); $this->assertEquals(self::$_contact->street, $data->street); $data->vat = 12; $data->due = 12; $stat = $data->update(); $this->assertTrue($stat); self::$_contact->refresh(); $invoice = new org_openpsa_invoices_invoice_dba(); $invoice->customerContact = self::$_contact->id; $invoice_data = $invoice->get_billing_data(); $this->assertEquals($data->guid, $invoice_data->guid); $this->assertEquals($data->vat, $invoice->get_default('vat')); $this->assertEquals($data->due, $invoice->get_default('due')); $stat = $data->delete(); $this->assertTrue($stat); midcom::get('auth')->drop_sudo(); }
public function testHandler_index_timestamp() { midcom::get('auth')->request_sudo('org.openpsa.expenses'); $data = $this->run_handler('org.openpsa.expenses', array('2011-01-26')); $this->assertEquals('index_timestamp', $data['handler_id']); midcom::get('auth')->drop_sudo(); }
/** * Handler for folder metadata. Checks for updating permissions, initializes * the metadata and the content topic itself. Handles also the sent form. * * @param mixed $handler_id The ID of the handler. * @param Array $args The argument list. * @param Array &$data The local request data. * @return boolean Indicating success */ public function _handler_edit($handler_id, array $args, array &$data) { $this->_object = midcom::get('dbfactory')->get_object_by_guid($args[0]); // FIXME: We should modify the schema according to whether or not scheduling is used $this->_object->require_do('midgard:update'); midcom::get('auth')->require_user_do('midgard.admin.asgard:manage_objects', null, 'midgard_admin_asgard_plugin'); if (is_a($this->_object, 'midcom_db_topic')) { // This is a topic $this->_topic->require_do('midgard.admin.asgard:topic_management'); } $this->_metadata = midcom_helper_metadata::retrieve($this->_object); if (!$this->_metadata) { throw new midcom_error("Failed to retrieve Metadata for " . get_class($this->_object) . " {$this->_object->guid}."); } // Load the DM2 controller instance $this->_controller = $this->get_controller('simple', $this->_object); switch ($this->_controller->process_form()) { case 'save': // Reindex the object //$indexer = midcom::get('indexer'); //net_nemein_wiki_viewer::index($this->_request_data['controller']->datamanager, $indexer, $this->_topic); // *** FALL-THROUGH *** midcom::get('cache')->invalidate($this->_object->guid); return new midcom_response_relocate("__mfa/asgard/object/metadata/{$this->_object->guid}"); case 'cancel': return new midcom_response_relocate("__mfa/asgard/object/view/{$this->_object->guid}"); } $this->_prepare_request_data(); midgard_admin_asgard_plugin::bind_to_object($this->_object, $handler_id, $data); }
function org_routamc_positioning_send_sms($to, $message, $from, $config) { $sms_lib = 'org.openpsa.smslib'; midcom::get('componentloader')->load_library($sms_lib); $sms_lib_api = $config->get('smslib_api'); $sms_lib_location = $config->get('smslib_uri'); $sms_lib_client_id = $config->get('smslib_client_id'); $sms_lib_user = $config->get('smslib_user'); $sms_lib_password = $config->get('smslib_password'); if (!$sms_lib_api || !$sms_lib_location || !$sms_lib_user) { return false; } @ini_set('max_execution_time', 0); //Initializing SMS broker $smsbroker = call_user_func(array(str_replace('.', '_', $sms_lib), 'factory'), $sms_lib_api); if (!is_object($smsbroker)) { debug_add(str_replace('.', '_', $sms_lib) . "::factory({$sms_lib_api}) returned: {$smsbroker}", MIDCOM_LOG_ERROR); return false; } $smsbroker->location = $sms_lib_location; $smsbroker->client_id = $sms_lib_client_id; $smsbroker->user = $sms_lib_user; $smsbroker->password = $sms_lib_password; return $smsbroker->send_sms($to, $message, $from); }
public function testHandler_edit() { midcom::get('auth')->request_sudo('org.openpsa.products'); $data = $this->run_handler('org.openpsa.products', array('product', 'edit', self::$_product->guid)); $this->assertEquals('edit_product', $data['handler_id']); midcom::get('auth')->drop_sudo(); }
/** * Transfers all parameters attachments and privileges on the current object to another * existing Midgard object. You need to have midgard:update, midgard:parameter, * midgard:privileges and midgard:attachments privileges on the target object, * which must be a persistent MidCOM DBA class instance. (For ease of use, it is recommended * to have midgard:owner rights for the target object, which includes the above * privileges). * * <b>Important notes:</b> * * All records in question will just be moved, not copied! * Also, there will be <i>no</i> integrity checking in terms of already existing * parameters etc. This feature is mainly geared towards preparing a freshly * created final object with the data associated with this temporary object. * * Any invalid object / missing privilege will trigger a midcom_error. * * @param midcom_dba_object $object The object to transfer the extensions to. */ function move_extensions_to_object($object) { if (!midcom::get('dbclassloader')->is_midcom_db_object($object)) { throw new midcom_error('The object passed is no valid for move_extensions_to_object.'); } // Validate Privileges $object->require_do('midgard:update'); $object->require_do('midgard:privileges'); $object->require_do('midgard:parameters'); $object->require_do('midgard:attachments'); // Copy parameters from temporary object $parameters = $this->list_parameters(); foreach ($parameters as $domain => $array) { foreach ($array as $name => $value) { $object->set_parameter($domain, $name, $value); } } // Move attachments from temporary object $attachments = $this->list_attachments(); foreach ($attachments as $attachment) { $attachment->parentguid = $object->guid; $attachment->update(); } // Privileges are moved using the DBA API as well. $privileges = $this->get_privileges(); if ($privileges) { foreach ($privileges as $privilege) { $privilege->set_object($object); $privilege->store(); } } }
/** * Checks the integrity of the content topic and gets the stored approvals of * the content folder. * * @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_approval($handler_id, array $args, array &$data) { if (!array_key_exists('guid', $_REQUEST) || !array_key_exists('return_to', $_REQUEST)) { throw new midcom_error('Cannot process approval request, request is incomplete.'); } $object = midcom::get('dbfactory')->get_object_by_guid($_REQUEST['guid']); $object->require_do('midcom:approve'); $metadata = midcom_helper_metadata::retrieve($object); if (!$metadata) { throw new midcom_error("Failed to retrieve Metadata for " . get_class($object) . " {$object->guid}."); } /** * This flag is used to make it possible to explicitly recognize user intent * to for example do special operations in midcom.helper.replicator */ if (!isset($GLOBALS['midcom_admin_folder_handler_approvals']) || !is_array($GLOBALS['midcom_admin_folder_handler_approvals'])) { $GLOBALS['midcom_admin_folder_handler_approvals'] = array(); } if ($handler_id == '____ais-folder-approve') { $GLOBALS['midcom_admin_folder_handler_approvals'][$object->guid] = 'approve'; $metadata->approve(); } else { $GLOBALS['midcom_admin_folder_handler_approvals'][$object->guid] = 'unapprove'; $metadata->unapprove(); } return new midcom_response_relocate($_REQUEST['return_to']); }
/** * Loads all entries that need to be processed and processes them. */ public function _on_execute() { $qb = midcom_services_at_entry_dba::new_query_builder(); // (to be) start(ed) AND last touched over two days ago $qb->add_constraint('start', '<=', time() - 3600 * 24 * 2); $qb->begin_group('OR'); $qb->add_constraint('host', '=', midcom_connection::get('host')); $qb->add_constraint('host', '=', 0); $qb->end_group(); $qb->add_constraint('metadata.revised', '<=', date('Y-m-d H:i:s', time() - 3600 * 24 * 2)); $qb->add_constraint('status', '>=', midcom_services_at_entry_dba::RUNNING); midcom::get('auth')->request_sudo('midcom.services.at'); $qbret = $qb->execute(); if (empty($qbret)) { debug_add('Got empty resultset, exiting'); midcom::get('auth')->drop_sudo(); return; } foreach ($qbret as $entry) { debug_add("Deleting dangling entry #{$entry->id}\n", MIDCOM_LOG_INFO); debug_print_r("Entry #{$entry->id} dump: ", $entry); $entry->delete(); } midcom::get('auth')->drop_sudo(); }
public function testHandler_groupsblock() { midcom::get('auth')->request_sudo('org.openpsa.products'); $data = $this->run_handler('org.openpsa.products', array('groupsblock', self::$_group->code, 'foo')); $this->assertEquals('groupsblock', $data['handler_id']); midcom::get('auth')->drop_sudo(); }
public function test_get_default() { $config = array('type_config' => array('allow_multiple' => false, 'options' => array(1 => 'value 1', 2 => 'value 2'))); $default_values = array('test_select_1' => array(2)); midcom::get('auth')->request_sudo('midcom.helper.datamanager2'); $dm2_helper = new openpsa_test_dm2_helper(); $widget = $dm2_helper->get_widget('select', 'select', $config); $this->assertNull($widget->get_default(), 'nullstorage test failed'); $dm2_helper->defaults = array('test_select_1' => 2); $widget = $dm2_helper->get_widget('select', 'select', $config); $this->assertEquals($default_values, $widget->get_default(), 'nullstorage/default test failed'); $config['storage'] = 'type'; $event = new midcom_db_event(); $dm2_helper = new openpsa_test_dm2_helper($event); $widget = $dm2_helper->get_widget('select', 'select', $config); $this->assertNull($widget->get_default(), 'create test failed'); $dm2_helper->defaults = array('test_select_1' => 2); $widget = $dm2_helper->get_widget('select', 'select', $config); $this->assertEquals($default_values, $widget->get_default(), 'create/default test failed'); $event = $this->create_object('midcom_db_event'); $dm2_helper = new openpsa_test_dm2_helper($event); $widget = $dm2_helper->get_widget('select', 'select', $config); $this->assertEquals('', $widget->get_default(), 'simple test failed'); $event->type = 2; $event->update(); $dm2_helper = new openpsa_test_dm2_helper($event); //Lazy workaround to reuse the default array from above $dm2_helper->get_widget('select', 'select', $config); $widget = $dm2_helper->get_widget('select', 'select', $config); $this->assertEquals($default_values, $widget->get_default(), 'simple/storage test failed'); midcom::get('auth')->drop_sudo(); }
public function test_handler_notifications() { midcom::get('auth')->request_sudo('org.openpsa.user'); $data = $this->run_handler('org.openpsa.user', array('person', 'notifications', self::$_user->guid)); $this->assertEquals('person_notifications', $data['handler_id']); midcom::get('auth')->drop_sudo(); }
/** * @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 function testCreate() { midcom::get('auth')->request_sudo('org.openpsa.relatedto'); $invoice = $this->create_object('org_openpsa_invoices_invoice_dba'); $salesproject = $this->create_object('org_openpsa_sales_salesproject_dba'); $relatedto = org_openpsa_relatedto_plugin::create($invoice, 'org.openpsa.invoices', $salesproject, 'org.openpsa.sales'); $this->assertTrue(is_a($relatedto, 'org_openpsa_relatedto_dba')); $this->register_object($relatedto); $this->assertEquals($relatedto->status, org_openpsa_relatedto_dba::CONFIRMED); $this->assertEquals($relatedto->fromGuid, $invoice->guid); $this->assertEquals($relatedto->fromComponent, 'org.openpsa.invoices'); $this->assertEquals($relatedto->fromClass, 'org_openpsa_invoices_invoice_dba'); $this->assertEquals($relatedto->toGuid, $salesproject->guid); $this->assertEquals($relatedto->toComponent, 'org.openpsa.sales'); $this->assertEquals($relatedto->toClass, 'org_openpsa_sales_salesproject_dba'); $relatedto2 = org_openpsa_relatedto_plugin::create($invoice, 'org.openpsa.invoices', $salesproject, 'org.openpsa.sales'); $this->assertEquals($relatedto2->guid, $relatedto->guid); $x = null; $stat = org_openpsa_relatedto_plugin::create($x, 'org.openpsa.invoices', $salesproject, 'org.openpsa.sales'); $this->assertFalse($stat); $stat = org_openpsa_relatedto_plugin::create($invoice, 'org.openpsa.invoices', $x, 'org.openpsa.sales'); $this->assertFalse($stat); $relatedto2 = org_openpsa_relatedto_plugin::create($invoice, 'org.openpsa.invoices', $salesproject, 'org.openpsa.sales', org_openpsa_relatedto_dba::NOTRELATED); $this->assertEquals($relatedto2->guid, $relatedto->guid); $this->assertEquals($relatedto2->status, org_openpsa_relatedto_dba::NOTRELATED); $stat = $relatedto->delete(); $this->assertTrue($stat); midcom::get('auth')->drop_sudo(); }
/** * @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) { midcom::get('auth')->require_valid_user(); $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'))); // List current projects, sort by customer $data['customers'] = array(); $project_qb = org_openpsa_projects_project::new_query_builder(); $project_qb->add_constraint('status', '<', org_openpsa_projects_task_status_dba::CLOSED); $project_qb->add_order('customer.official'); $project_qb->add_order('end'); $projects = $project_qb->execute(); foreach ($projects as $project) { if (!isset($data['customers'][$project->customer])) { $data['customers'][$project->customer] = array(); } $data['customers'][$project->customer][] = $project; } // Projects without customer have to be queried separately, see #97 $nocustomer_qb = org_openpsa_projects_project::new_query_builder(); $nocustomer_qb->add_constraint('status', '<', org_openpsa_projects_task_status_dba::CLOSED); $nocustomer_qb->add_constraint('customer', '=', 0); $nocustomer_qb->add_order('end'); if ($nocustomer_qb->count() > 0) { $data['customers'][0] = $nocustomer_qb->execute(); } $closed_qb = org_openpsa_projects_project::new_query_builder(); $closed_qb->add_constraint('status', '=', org_openpsa_projects_task_status_dba::CLOSED); $data['closed_count'] = $closed_qb->count(); $this->add_stylesheet(MIDCOM_STATIC_URL . "/org.openpsa.core/list.css"); midcom::get('head')->add_jsfile(MIDCOM_STATIC_URL . '/org.openpsa.projects/frontpage.js'); midcom::get('head')->set_pagetitle($this->_l10n->get('current projects')); }
public function testHandler_delete() { midcom::get('auth')->request_sudo('net.nehmer.static'); $data = $this->run_handler(self::$_topic, array('delete', self::$_article->guid)); $this->assertEquals('delete', $data['handler_id']); midcom::get('auth')->drop_sudo(); }
public function test_handler_create() { midcom::get('auth')->request_sudo('org.openpsa.user'); $data = $this->run_handler('org.openpsa.user', array('group', 'create')); $this->assertEquals('group_create', $data['handler_id']); midcom::get('auth')->drop_sudo(); }
/** * Handle the creation phase * * @param String $handler_id Name of the request handler * @param array $args Variable arguments * @param array &$data Public request data, passed by reference */ public function _handler_create($handler_id, array $args, array &$data) { // Get the root event $this->_root_event = org_openpsa_calendar_interface::find_root_event(); // ACL handling: require create privileges $this->_root_event->require_do('midgard:create'); if (isset($args[0])) { $this->_person = new midcom_db_person($args[0]); } if (isset($args[1])) { $this->_requested_time = (int) $args[1]; } // Load the controller instance $data['controller'] = $this->get_controller('create'); // Process form switch ($data['controller']->process_form()) { case 'save': $indexer = new org_openpsa_calendar_midcom_indexer($this->_topic); $indexer->index($data['controller']->datamanager); //FALL-THROUGH //FALL-THROUGH case 'cancel': midcom::get('head')->add_jsonload('window.opener.location.reload();'); midcom::get('head')->add_jsonload('window.close();'); break; } // Add toolbar items org_openpsa_helpers::dm2_savecancel($this); // Hide the ROOT style midcom::get()->skip_page_style = true; }
public function testHandler_new() { midcom::get('auth')->request_sudo('org.openpsa.sales'); $data = $this->run_handler('org.openpsa.sales', array('salesproject', 'new')); $this->assertEquals('salesproject_new', $data['handler_id']); midcom::get('auth')->drop_sudo(); }
/** * Loads all (not-archived) smart campaigns and schedules a separate background update for each */ public function _on_execute() { debug_add('_on_execute called'); $qb = org_openpsa_directmarketing_campaign_dba::new_query_builder(); $qb->add_constraint('archived', '=', 0); $qb->add_constraint('orgOpenpsaObtype', '=', org_openpsa_directmarketing_campaign_dba::TYPE_SMART); midcom::get('auth')->request_sudo('org.openpsa.directmarketing'); $ret = $qb->execute(); midcom::get('auth')->drop_sudo(); if ($ret === false || !is_array($ret)) { //TODO: display some error ? return false; } if (empty($ret)) { return; } $i = 1; foreach ($ret as $campaign) { $next_time = time() + $i++ * 60; debug_add("Scheduling member update for campaign #{$campaign->id} ({$campaign->title}) to happen on " . date('Y-m-d H:i:s', $next_time)); $stat = $campaign->schedule_update_smart_campaign_members($next_time); if (!$stat) { //TODO: Display some error ? } } debug_add('Done'); return; }
public function testCRUD() { midcom::get('auth')->request_sudo('org.openpsa.calendar'); $event = new org_openpsa_calendar_event_dba(); $stat = $event->create(); $this->assertTrue($stat); $this->register_object($event); $root_event = org_openpsa_calendar_interface::find_root_event(); $this->assertEquals($root_event->id, $event->up); $stat = $event->update(); $this->assertFalse($stat); $start = $this->_mktime(time() - 60 * 60); $event->start = $start; $stat = $event->update(); $this->assertFalse($stat); $end = $this->_mktime(time() + 60 * 60); $event->end = $end; $stat = $event->update(); $this->assertTrue($stat); $this->assertEquals($start + 1, $event->start); $this->assertEquals($end, $event->end); $stat = $event->delete(); $this->assertTrue($stat); midcom::get('auth')->drop_sudo(); }
/** * Find all old temporary reports and clear them. */ public function _on_execute() { //Disable limits, TODO: think if this could be done in smaller chunks to save memory. midcom::get()->disable_limits(); debug_add('_on_execute called'); $days = $this->_config->get('temporary_report_max_age'); if ($days == 0) { debug_add('temporary_report_max_age evaluates to zero, aborting'); return; } $th = time() - $days * 3600 * 24; $qb = org_openpsa_reports_query_dba::new_query_builder(); $qb->add_constraint('metadata.created', '<', $th); $qb->add_constraint('orgOpenpsaObtype', '=', ORG_OPENPSA_OBTYPE_REPORT_TEMPORARY); $ret = $qb->execute_unchecked(); if ($ret === false || !is_array($ret)) { //TODO: display some error ? return false; } if (empty($ret)) { debug_add('No results, returning early.'); return; } foreach ($ret as $query) { debug_add("removing temporary query #{$query->id}"); $stat = $query->delete(); if (!$stat) { debug_add("FAILED to delete query #{$query->id}, errstr: " . midcom_connection::get_error_string(), MIDCOM_LOG_WARN); } } debug_add('Done'); return; }
/** * Handler method for edit page * * @param string $handler_id Name of the used handler * @param mixed $args Array containing the variable arguments passed to the handler * @param mixed &$data Data passed to the show method */ public function _handler_edit($handler_id, array $args, array &$data) { $qb = org_openpsa_slideshow_image_dba::new_query_builder(); $qb->add_constraint('topic', '=', $this->_topic->id); $qb->add_order('position'); $data['images'] = $qb->execute(); $head = midcom::get('head'); $head->enable_jquery(); $head->add_jsfile(MIDCOM_JQUERY_UI_URL . '/ui/jquery.ui.core.min.js'); $head->add_jsfile(MIDCOM_JQUERY_UI_URL . '/ui/jquery.ui.widget.min.js'); $head->add_jsfile(MIDCOM_JQUERY_UI_URL . '/ui/jquery.ui.mouse.min.js'); $head->add_jsfile(MIDCOM_JQUERY_UI_URL . '/ui/jquery.ui.draggable.min.js'); $head->add_jsfile(MIDCOM_JQUERY_UI_URL . '/ui/jquery.ui.droppable.min.js'); $head->add_jsfile(MIDCOM_JQUERY_UI_URL . '/ui/jquery.ui.sortable.min.js'); $head->add_jsfile(MIDCOM_JQUERY_UI_URL . '/ui/jquery.ui.progressbar.min.js'); $head->add_jsfile(MIDCOM_STATIC_URL . '/midcom.services.uimessages/jquery.midcom_services_uimessages.js'); $head->add_jsfile(MIDCOM_STATIC_URL . '/jQuery/jquery.timers.src.js'); $head->add_jsfile(MIDCOM_JQUERY_UI_URL . '/ui/jquery.ui.effect.min.js'); $head->add_jsfile(MIDCOM_JQUERY_UI_URL . '/ui/jquery.ui.effect-pulsate.min.js'); $head->add_jsfile(MIDCOM_STATIC_URL . '/' . $this->_component . '/edit.js'); $head->add_stylesheet(MIDCOM_STATIC_URL . '/' . $this->_component . '/edit.css'); $head->add_jquery_ui_theme(array('progressbar')); $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "", MIDCOM_TOOLBAR_LABEL => $this->_l10n_midcom->get('view'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/view.png')); $this->_view_toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "recreate/", MIDCOM_TOOLBAR_LABEL => $this->_l10n->get('recreate derived images'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/stock_refresh.png')); }
/** * @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_create($handler_id, array $args, array &$data) { midcom::get('auth')->require_valid_user(); midcom::get('auth')->require_user_do('midgard:create', null, 'org_openpsa_contacts_person_dba'); if (count($args) > 0) { // Get the organization $this->_group = new org_openpsa_contacts_group_dba($args[0]); $this->_group->require_do('midgard:create'); midcom::get('head')->set_pagetitle($this->_group->official); } $data['controller'] = $this->get_controller('create'); switch ($data['controller']->process_form()) { case 'save': // Index the person $indexer = new org_openpsa_contacts_midcom_indexer($this->_topic); $indexer->index($data['controller']->datamanager); return new midcom_response_relocate("person/{$this->_person->guid}/"); case 'cancel': return new midcom_response_relocate(''); } // Add toolbar items org_openpsa_helpers::dm2_savecancel($this); org_openpsa_contacts_viewer::add_breadcrumb_path_for_group($this->_group, $this); $this->add_breadcrumb("", sprintf($this->_l10n_midcom->get('create %s'), $this->_l10n->get('person'))); }
/** * This helper function searches for a snippet either in the Filesystem * or in the database and returns its content or code-field, respectively. * * Prefix the snippet Path with 'file:' for retrieval of a file relative to * MIDCOM_ROOT; omit it to get the code field of a Snippet. * * Any error (files not found) will return null. If you want to trigger an error, * look for midcom_helper_misc::get_snippet_content. * * @param string $path The URL to the snippet. * @return string The content of the snippet/file. */ public static function get_snippet_content_graceful($path) { static $cached_snippets = array(); if (array_key_exists($path, $cached_snippets)) { return $cached_snippets[$path]; } if (substr($path, 0, 5) == 'file:') { $filename = MIDCOM_ROOT . substr($path, 5); if (!file_exists($filename)) { $cached_snippets[$path] = null; return null; } $data = file_get_contents($filename); } else { $snippet = new midgard_snippet(); try { $snippet->get_by_path($path); } catch (Exception $e) { $cached_snippets[$path] = null; return null; } midcom::get('cache')->content->register($snippet->guid); $data = $snippet->code; } $cached_snippets[$path] = $data; return $data; }
public function testHandler_hours_create_task() { midcom::get('auth')->request_sudo('org.openpsa.expenses'); $data = $this->run_handler('org.openpsa.expenses', array('hours', 'create', 'hour_report', self::$_task->guid)); $this->assertEquals('hours_create_task', $data['handler_id']); midcom::get('auth')->drop_sudo(); }