コード例 #1
0
ファイル: create.php プロジェクト: nemein/openpsa
 /**
  * @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')));
 }
コード例 #2
0
ファイル: edit.php プロジェクト: nemein/openpsa
 /**
  * @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_edit($handler_id, array $args, array &$data)
 {
     midcom::get('auth')->require_valid_user();
     // Check if we get the group
     $this->_group = new org_openpsa_contacts_group_dba($args[0]);
     $this->_group->require_do('midgard:update');
     if ($this->_group->orgOpenpsaObtype < org_openpsa_contacts_group_dba::MYCONTACTS) {
         $this->_type = 'group';
     } else {
         $this->_type = 'organization';
     }
     $data['controller'] = $this->get_controller('simple', $this->_group);
     switch ($data['controller']->process_form()) {
         case 'save':
             $indexer = new org_openpsa_contacts_midcom_indexer($this->_topic);
             $indexer->index($data['controller']->datamanager);
             // *** FALL-THROUGH ***
         // *** FALL-THROUGH ***
         case 'cancel':
             $prefix = midcom_core_context::get()->get_key(MIDCOM_CONTEXT_ANCHORPREFIX);
             return new midcom_response_relocate($prefix . "group/" . $this->_group->guid . "/");
     }
     $root_group = org_openpsa_contacts_interface::find_root_group();
     if ($this->_group->owner && $this->_group->owner != $root_group->id) {
         $data['parent_group'] = new org_openpsa_contacts_group_dba($this->_group->owner);
     } else {
         $data['parent_group'] = false;
     }
     $data['group'] =& $this->_group;
     org_openpsa_helpers::dm2_savecancel($this);
     $this->bind_view_to_object($this->_group);
     midcom::get('head')->set_pagetitle(sprintf($this->_l10n_midcom->get('edit %s'), $this->_group->official));
     org_openpsa_contacts_viewer::add_breadcrumb_path_for_group($this->_group, $this);
     $this->add_breadcrumb("", sprintf($this->_l10n_midcom->get('edit %s'), $this->_l10n->get($this->_type)));
 }
コード例 #3
0
ファイル: interfaces.php プロジェクト: nemein/openpsa
 /**
  * Prepares the component's indexer client
  */
 public function _on_reindex($topic, $config, &$indexer)
 {
     $qb_organisations = org_openpsa_contacts_group_dba::new_query_builder();
     $qb_organisations->add_constraint('orgOpenpsaObtype', '<>', org_openpsa_contacts_group_dba::MYCONTACTS);
     $organisation_schema = midcom_helper_datamanager2_schema::load_database($config->get('schemadb_group'));
     $qb_persons = org_openpsa_contacts_person_dba::new_query_builder();
     $person_schema = midcom_helper_datamanager2_schema::load_database($config->get('schemadb_person'));
     $indexer = new org_openpsa_contacts_midcom_indexer($topic, $indexer);
     $indexer->add_query('organisations', $qb_organisations, $organisation_schema);
     $indexer->add_query('persons', $qb_persons, $person_schema);
     return $indexer;
 }
コード例 #4
0
ファイル: create.php プロジェクト: nemein/openpsa
 /**
  * @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();
     $this->_type = $args[0];
     $this->_parent_group = false;
     if (count($args) > 1) {
         // Get the parent organization
         $this->_parent_group = new org_openpsa_contacts_group_dba($args[1]);
         $this->_parent_group->require_do('midgard:create');
     } else {
         // This is a root level organization, require creation permissions under the component root group
         midcom::get('auth')->require_user_do('midgard:create', null, 'org_openpsa_contacts_group_dba');
     }
     $data['controller'] = $this->get_controller('create');
     switch ($data['controller']->process_form()) {
         case 'save':
             // Index the organization
             $indexer = new org_openpsa_contacts_midcom_indexer($this->_topic);
             $indexer->index($data['controller']->datamanager);
             // Relocate to group view
             return new midcom_response_relocate("group/" . $this->_group->guid . "/");
         case 'cancel':
             if ($this->_parent_group) {
                 return new midcom_response_relocate("group/" . $this->_parent_group->guid . "/");
             } else {
                 return new midcom_response_relocate('');
             }
     }
     $this->add_stylesheet(MIDCOM_STATIC_URL . "/midcom.helper.datamanager2/legacy.css");
     // Add toolbar items
     org_openpsa_helpers::dm2_savecancel($this);
     midcom::get('head')->set_pagetitle($this->_l10n->get("create organization"));
     org_openpsa_contacts_viewer::add_breadcrumb_path_for_group($this->_parent_group, $this);
     $this->add_breadcrumb("", sprintf($this->_l10n_midcom->get('create %s'), $this->_l10n->get($this->_type)));
 }
コード例 #5
0
ファイル: admin.php プロジェクト: nemein/openpsa
 /**
  * Displays a contact edit view.
  *
  * Note, that the contact for non-index mode operation is automatically determined in the can_handle
  * phase.
  *
  * If create privileges apply, we relocate to the index creation contact
  *
  * @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_edit($handler_id, array $args, array &$data)
 {
     $this->_contact = new org_openpsa_contacts_person_dba($args[0]);
     $this->_contact->require_do('midgard:update');
     $this->_load_controller();
     switch ($this->_controller->process_form()) {
         case 'save':
             // Reindex the contact
             $indexer = new org_openpsa_contacts_midcom_indexer($this->_topic);
             $indexer->index($this->_controller->datamanager);
             // *** FALL-THROUGH ***
         // *** FALL-THROUGH ***
         case 'cancel':
             return new midcom_response_relocate("person/{$this->_contact->guid}/");
     }
     org_openpsa_helpers::dm2_savecancel($this);
     $this->_prepare_request_data($handler_id);
     midcom::get('head')->set_pagetitle($this->_contact->name);
     $this->bind_view_to_object($this->_contact, $this->_controller->datamanager->schema->name);
     $this->_update_breadcrumb_line($handler_id);
 }
コード例 #6
0
ファイル: chooser.php プロジェクト: nemein/openpsa
 /**
  * Hook for post-create operations
  */
 private function _post_create_actions()
 {
     switch ($this->_dbaclass) {
         case 'org_openpsa_contacts_person_dba':
             $indexer = new org_openpsa_contacts_midcom_indexer($this->_node[MIDCOM_NAV_OBJECT]);
             $indexer->index($this->_controller->datamanager);
             break;
         default:
             throw new midcom_error("The DBA class {$this->_dbaclass} is unsupported");
     }
 }