diff --git a/api/fedora_item.inc b/api/fedora_item.inc index 2a70010a..3018d614 100644 --- a/api/fedora_item.inc +++ b/api/fedora_item.inc @@ -635,6 +635,28 @@ class Fedora_Item { return FALSE; } + + /** + * Set the object to a deleted state + */ + function move_to_trash($log_message = 'Flagged deleted using Islandora API.') + { + // Loop through the datastreams and mark them deleted + foreach($this->get_datastreams_list_as_array() as $dsid) + { + $this->set_datastream_state($dsid, 'D'); + } + + // Create a message to mark the object deleted + $params = array( + 'pid' => $this->pid, + 'state' => 'D', + 'logMessage' => $logMessage + ); + + // Send message to mark the object deleted + return self::soap_call('modifyObject', $params, $quiet); + } /** * Removes this object form the repository. @@ -643,12 +665,18 @@ class Fedora_Item { * @return type */ function purge($log_message = 'Purged using Islandora API.', $force = FALSE) { + + // Flag the object to be deleted first + $this->move_to_trash($log_message); + + // Create the delete message $params = array( 'pid' => $this->pid, 'logMessage' => $log_message, 'force' => $force ); + // Delete the object return $this->soap_call('purgeObject', $params); } diff --git a/fedora_repository.module b/fedora_repository.module index aaad2c4c..f3412b54 100644 --- a/fedora_repository.module +++ b/fedora_repository.module @@ -1011,6 +1011,7 @@ function fedora_repository_get_items($pid = NULL, $dsId = NULL, $collection = NU ); } } + // Add a 'manage object' tab for all objects, where detailed list of content is shown. $obj = new FedoraObjectDetailedContent($pid); $object_details = $obj->showFieldSets(); diff --git a/formClass.inc b/formClass.inc index 1c8d2f84..b3972087 100644 --- a/formClass.inc +++ b/formClass.inc @@ -581,6 +581,8 @@ class formClass { if (!$this->canShowIngestForm($collection_pid)) { return FALSE; } + + drupal_set_title($collection_label); if (module_exists('islandora_content_model_forms')) { module_load_include('inc', 'islandora_content_model_forms', 'IngestObjectMetadataForm'); try {