/** * Returns HTML editor form bundle for ca_objects_history (object use history bundle) * * @param HTTPRequest $po_request The current request * @param string $ps_form_name * @param string $ps_placement_code * @param array $pa_bundle_settings * @param array $pa_options Array of options. Options include: * noCache = Don't use any cached history data. [Default is false] * currentOnly = Only return history entries dates before or on the current date. [Default is false] * limit = Only return a maximum number of history entries. [Default is null; no limit] * * @return string Rendered HTML bundle * * @uses ca_objects::getObjectHistory() */ public function getObjectHistoryHTMLFormBundle($po_request, $ps_form_name, $ps_placement_code, $pa_bundle_settings = null, $pa_options = null) { global $g_ui_locale; $o_view = new View($po_request, $po_request->getViewsDirectoryPath() . '/bundles/'); if (!is_array($pa_options)) { $pa_options = array(); } $vs_display_template = caGetOption('display_template', $pa_bundle_settings, _t('No template defined')); $vs_history_template = caGetOption('history_template', $pa_bundle_settings, $vs_display_template); $o_view->setVar('id_prefix', $ps_form_name); $o_view->setVar('placement_code', $ps_placement_code); // pass placement code $o_view->setVar('settings', $pa_bundle_settings); $o_view->setVar('add_label', isset($pa_bundle_settings['add_label'][$g_ui_locale]) ? $pa_bundle_settings['add_label'][$g_ui_locale] : null); $o_view->setVar('t_subject', $this); // // Loan update // $t_loan_rel = new ca_loans_x_objects(); $o_view->setVar('loan_relationship_types', $t_loan_rel->getRelationshipTypes(null, null, array_merge($pa_options, $pa_bundle_settings))); $o_view->setVar('loan_relationship_types_by_sub_type', $t_loan_rel->getRelationshipTypesBySubtype($this->tableName(), $this->get('type_id'), array_merge($pa_options, $pa_bundle_settings))); $t_location_rel = new ca_objects_x_storage_locations(); $o_view->setVar('location_relationship_types', $t_location_rel->getRelationshipTypes(null, null, array_merge($pa_options, $pa_bundle_settings))); $o_view->setVar('location_relationship_types_by_sub_type', $t_location_rel->getRelationshipTypesBySubtype($this->tableName(), $this->get('type_id'), array_merge($pa_options, $pa_bundle_settings))); // // Location update // $o_view->setVar('mode', 'ca_storage_locations'); //$vs_mode = caGetOption('locationTrackingMode', $pa_bundle_settings, 'ca_movements')); switch ($vs_mode) { case 'ca_storage_locations': $t_last_location = $this->getLastLocation(array()); $o_view->setVar('current_location', $t_last_location ? $t_last_location->getWithTemplate($vs_display_template) : null); $o_view->setVar('location_relationship_type', is_array($pa_bundle_settings['ca_storage_locations_relationshipType']) ? addslashes($pa_bundle_settings['ca_storage_locations_relationshipType'][0]) : ''); $o_view->setVar('location_change_url', null); break; case 'ca_movements': default: $t_last_movement = $this->getLastMovement(array('dateElement' => caGetOption('ca_movements_dateElement', $pa_bundle_settings, null))); $o_view->setVar('current_location', $t_last_movement ? $t_last_movement->getWithTemplate($vs_display_template) : null); $o_view->setVar('location_relationship_type', is_array($pa_bundle_settings['ca_movements_relationshipType']) ? addslashes($pa_bundle_settings['ca_movements_relationshipType'][0]) : ''); $o_view->setVar('location_change_url', caNavUrl($po_request, 'editor/movements', 'MovementQuickAdd', 'Form', array('movement_id' => 0))); break; } $va_history = $this->getObjectHistory($pa_bundle_settings, $pa_options); $o_view->setVar('history', $va_history); return $o_view->render('ca_objects_history.php'); }
/** * Returns HTML editor form bundle for ca_objects_history (object use history bundle) * * @param HTTPRequest $po_request The current request * @param string $ps_form_name * @param string $ps_placement_code * @param array $pa_bundle_settings * @param array $pa_options Array of options. Options include: * noCache = Don't use any cached history data. [Default is false] * currentOnly = Only return history entries dates before or on the current date. [Default is false] * limit = Only return a maximum number of history entries. [Default is null; no limit] * * @return string Rendered HTML bundle * * @uses ca_objects::getObjectHistory() */ public function getObjectHistoryHTMLFormBundle($po_request, $ps_form_name, $ps_placement_code, $pa_bundle_settings = null, $pa_options = null) { global $g_ui_locale; $o_view = new View($po_request, $po_request->getViewsDirectoryPath() . '/bundles/'); if (!is_array($pa_options)) { $pa_options = array(); } $vs_display_template = caGetOption('display_template', $pa_bundle_settings, _t('No template defined')); $vs_history_template = caGetOption('history_template', $pa_bundle_settings, $vs_display_template); $o_view->setVar('id_prefix', $ps_form_name); $o_view->setVar('placement_code', $ps_placement_code); // pass placement code if (caGetOption('useAppConfDefaults', $pa_bundle_settings, false) && is_array($va_current_location_critiera = $this->getAppConfig()->getAssoc('current_location_criteria')) && sizeof($va_current_location_critiera)) { // Copy app.conf "current_location_criteria" settings into bundle settings (with translation) $va_bundle_settings = array(); foreach ($va_current_location_critiera as $vs_table => $va_info) { switch ($vs_table) { case 'ca_storage_locations': if (is_array($va_info)) { foreach ($va_info as $vs_rel_type => $va_options) { $va_bundle_settings["{$vs_table}_showRelationshipTypes"][] = $vs_rel_type; foreach ($va_options as $vs_opt => $vs_opt_val) { switch ($vs_opt) { case 'template': $vs_opt = 'displayTemplate'; break; } $va_bundle_settings["{$vs_table}_{$vs_opt}"] = $vs_opt_val; } } $va_bundle_settings["{$vs_table}_showRelationshipTypes"] = caMakeRelationshipTypeIDList('ca_objects_x_storage_locations', $va_bundle_settings["{$vs_table}_showRelationshipTypes"]); } break; case 'ca_objects': if (is_array($va_info)) { $va_bundle_settings['showDeaccessionInformation'] = 1; foreach ($va_info as $vs_opt => $vs_opt_val) { switch ($vs_opt) { case 'template': $vs_opt = 'displayTemplate'; break; } $va_bundle_settings["deaccession_{$vs_opt}"] = $vs_opt_val; } } break; default: if (is_array($va_info)) { foreach ($va_info as $vs_type => $va_options) { $va_bundle_settings["{$vs_table}_showTypes"][] = $vs_type; foreach ($va_options as $vs_opt => $vs_opt_val) { switch ($vs_opt) { case 'date': $vs_opt = 'dateElement'; break; case 'template': $vs_opt = 'displayTemplate'; break; } $va_bundle_settings["{$vs_table}_{$vs_type}_{$vs_opt}"] = $vs_opt_val; } } $va_bundle_settings["{$vs_table}_showTypes"] = caMakeTypeIDList($vs_table, $va_bundle_settings["{$vs_table}_showTypes"]); } break; } } foreach (array('locationTrackingMode', 'width', 'height', 'readonly', 'documentation_url', 'expand_collapse', 'label', 'description', 'useHierarchicalBrowser', 'hide_add_to_loan_controls', 'hide_update_location_controls') as $vs_key) { $va_bundle_settings[$vs_key] = $pa_bundle_settings[$vs_key]; } $pa_bundle_settings = $va_bundle_settings; } $o_view->setVar('settings', $pa_bundle_settings); $o_view->setVar('add_label', isset($pa_bundle_settings['add_label'][$g_ui_locale]) ? $pa_bundle_settings['add_label'][$g_ui_locale] : null); $o_view->setVar('t_subject', $this); // // Loan update // $t_loan_rel = new ca_loans_x_objects(); $o_view->setVar('loan_relationship_types', $t_loan_rel->getRelationshipTypes(null, null, array_merge($pa_options, $pa_bundle_settings))); $o_view->setVar('loan_relationship_types_by_sub_type', $t_loan_rel->getRelationshipTypesBySubtype($this->tableName(), $this->get('type_id'), array_merge($pa_options, $pa_bundle_settings))); $t_location_rel = new ca_objects_x_storage_locations(); $o_view->setVar('location_relationship_types', $t_location_rel->getRelationshipTypes(null, null, array_merge($pa_options, $pa_bundle_settings))); $o_view->setVar('location_relationship_types_by_sub_type', $t_location_rel->getRelationshipTypesBySubtype($this->tableName(), $this->get('type_id'), array_merge($pa_options, $pa_bundle_settings))); // // Location update // $o_view->setVar('mode', $vs_mode = caGetOption('locationTrackingMode', $pa_bundle_settings, 'ca_storage_locations')); switch ($vs_mode) { case 'ca_storage_locations': $t_last_location = $this->getLastLocation(array()); if (!$vs_display_template) { $vs_display_template = "<unit relativeTo='ca_storage_locations'><l>^ca_storage_locations.hierarchy.preferred_labels.name%delimiter=_➜_</l></unit> (^ca_objects_x_storage_locations.effective_date)"; } $o_view->setVar('current_location', $t_last_location ? $t_last_location->getWithTemplate($vs_display_template) : null); if (!$vs_history_template) { $vs_history_template = $vs_display_template; } $o_view->setVar('location_history', $this->getLocationHistory(array('template' => $vs_history_template))); $o_view->setVar('location_relationship_type', $this->getAppConfig()->get('object_storage_location_tracking_relationship_type')); $o_view->setVar('location_change_url', null); break; case 'ca_movements': default: $t_last_movement = $this->getLastMovement(array('dateElement' => $vs_movement_date_element = $this->getAppConfig()->get('movement_storage_location_date_element'))); if (!$vs_display_template) { $vs_display_template = "<l>^ca_storage_locations.hierarchy.preferred_labels.name%delimiter=_➜_</l> (^ca_movements.{$vs_movement_date_element})"; } $o_view->setVar('current_location', $t_last_movement ? $t_last_movement->getWithTemplate($vs_display_template) : null); if (!$vs_history_template) { $vs_history_template = $vs_display_template; } $o_view->setVar('location_history', $this->getMovementHistory(array('dateElement' => $vs_movement_date_element, 'template' => $vs_history_template))); $o_view->setVar('location_relationship_type', $x = $this->getAppConfig()->get('movement_storage_location_tracking_relationship_type')); $o_view->setVar('location_change_url', caNavUrl($po_request, 'editor/movements', 'MovementQuickAdd', 'Form', array('movement_id' => 0))); break; } $va_history = $this->getObjectHistory($pa_bundle_settings, $pa_options); $o_view->setVar('history', $va_history); return $o_view->render('ca_objects_history.php'); }