示例#1
0
 /**
  * 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');
 }
示例#2
0
 /**
  * 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');
 }