7 changed files with 2374 additions and 7 deletions
@ -0,0 +1,71 @@
|
||||
<?php |
||||
|
||||
/** |
||||
* @file |
||||
* The admin/confirmation form to delete/purge a datastream. |
||||
*/ |
||||
|
||||
/** |
||||
* The admin delete datastream form. |
||||
* |
||||
* @param array $form |
||||
* The Drupal form. |
||||
* @param array $form_state |
||||
* The Drupal form state. |
||||
* @param AbstractDatastream $datastream |
||||
* The datastream to be deleted. |
||||
* |
||||
* @return array |
||||
* The drupal form definition. |
||||
*/ |
||||
function islandora_delete_datastream_form(array $form, array &$form_state, AbstractDatastream $datastream) { |
||||
$form_state['datastream'] = $datastream; |
||||
return confirm_form($form, |
||||
t('Are you sure you want to delete the %dsid datastream?', array('%dsid' => $datastream->id)), |
||||
"islandora/object/{$datastream->parent->id}", |
||||
t('This action cannot be undone.'), |
||||
t('Delete'), |
||||
t('Cancel') |
||||
); |
||||
} |
||||
|
||||
/** |
||||
* Submit handler for the delete datastream form. |
||||
* |
||||
* Purges/Delete's the given AbstractDatastream if possible. |
||||
* |
||||
* The ISLANDORA_PRE_PURGE_DATASTREAM_HOOK will query other modules as to |
||||
* whether the given FedoraDatastream |
||||
* should be: blocked from purging; state set to 'Deleted'; or purged. |
||||
* |
||||
* @param array $form |
||||
* The Drupal form. |
||||
* @param array $form_state |
||||
* The Drupal form state. |
||||
*/ |
||||
function islandora_delete_datastream_form_submit(array $form, array &$form_state) { |
||||
$datastream = $form_state['datastream']; |
||||
$datastream_id = $datastream->id; |
||||
$object = $datastream->parent; |
||||
$deleted = FALSE; |
||||
try { |
||||
$deleted = islandora_delete_datastream($datastream); |
||||
} |
||||
catch (Exception $e) { |
||||
drupal_set_message(t('Error deleting %s datastream from object %o %e', array( |
||||
'%s' => $datastream_id, |
||||
'%o' => $object->label, |
||||
'%e' => $e->getMessage())), 'error'); |
||||
} |
||||
if ($deleted) { |
||||
drupal_set_message(t('%d datastream sucessfully deleted from Islandora object %o', array( |
||||
'%d' => $datastream_id, |
||||
'%o' => $object->label))); |
||||
} |
||||
else { |
||||
drupal_set_message(t('Error deleting %s datastream from object %o', array( |
||||
'%s' => $datastream_id, |
||||
'%o' => $object->label)), 'error'); |
||||
} |
||||
$form_state['redirect'] = "islandora/object/{$object->id}"; |
||||
} |
||||
@ -0,0 +1,40 @@
|
||||
--- includes/delete_datastream.form.inc |
||||
+++ includes/delete_datastream.form.inc |
||||
@@ -22,7 +22,6 @@ |
||||
// XXX: Stashed version of datastream is deprecated... Use object and |
||||
// datastream IDs from 'datastream_info' to acquire. |
||||
$form_state['datastream'] = $datastream; |
||||
- |
||||
$form_state['datastream_info'] = array( |
||||
'object_id' => $datastream->parent->id, |
||||
'datastream_id' => $datastream->id, |
||||
@@ -32,10 +31,10 @@ |
||||
$dsids = array_merge(array($dsid), islandora_datastream_to_purge($object, $dsid)); |
||||
$dsids = array_unique($dsids); |
||||
$form['delete_derivatives'] = array( |
||||
- '#title' => t('Delete Derviatives'), |
||||
+ '#title' => t('Delete Derivatives'), |
||||
'#type' => 'checkbox', |
||||
'#default_value' => 0, |
||||
- '#description' => t('Derivatives can be regenerated at a later time.'), |
||||
+ '#description' => t('Derivatives can be regenerated at a later time.'), |
||||
); |
||||
$form['base_info'] = array( |
||||
'#type' => 'item', |
||||
@@ -72,7 +71,7 @@ |
||||
*/ |
||||
function islandora_datastream_to_purge(AbstractObject $object, $dsid) { |
||||
module_load_include('inc', 'islandora', 'includes/utilities'); |
||||
- $hooks = islandora_invoke_hook_list(ISLANDORA_DERVIATIVE_CREATION_HOOK, $object->models, array($object)); |
||||
+ $hooks = islandora_invoke_hook_list(ISLANDORA_DERIVATIVE_CREATION_HOOK, $object->models, array($object)); |
||||
$hook_filter = function ($hook_def) use ($dsid) { |
||||
return isset($hook_def['source_dsid']) && isset($hook_def['destination_dsid']) ? |
||||
$hook_def['source_dsid'] == $dsid : |
||||
@@ -119,7 +118,6 @@ |
||||
$object = islandora_object_load($form_state['datastream_info']['object_id']); |
||||
$datastream_id = $form_state['datastream_info']['datastream_id']; |
||||
$datastream = $object[$datastream_id]; |
||||
- |
||||
$deleted = FALSE; |
||||
if ($form_state['values']['delete_derivatives']) { |
||||
islandora_datastream_derivatives_purged($object, $datastream_id); |
||||
@ -0,0 +1,15 @@
|
||||
--- islandora.module |
||||
+++ islandora.module |
||||
@@ -58,7 +58,11 @@ |
||||
define('ISLANDORA_DATASTREAM_MODIFIED_HOOK', 'islandora_datastream_modified'); |
||||
define('ISLANDORA_DATASTREAM_PURGED_HOOK', 'islandora_datastream_purged'); |
||||
define('ISLANDORA_INGEST_STEP_HOOK', 'islandora_ingest_steps'); |
||||
-define('ISLANDORA_DERVIATIVE_CREATION_HOOK', 'islandora_derivative'); |
||||
+define('ISLANDORA_DERIVATIVE_CREATION_HOOK', 'islandora_derivative'); |
||||
+// The "ISLANDORA_DERVIATIVE_CREATION_HOOK" constant has deprecated as of |
||||
+// 7.x-1.5, and should be removed after the next release. |
||||
+define('ISLANDORA_DERVIATIVE_CREATION_HOOK', ISLANDORA_DERIVATIVE_CREATION_HOOK); |
||||
+ |
||||
|
||||
// Autocomplete paths. |
||||
define('ISLANDORA_CONTENT_MODELS_AUTOCOMPLETE', 'islandora/autocomplete/content-models'); |
||||
@ -0,0 +1,103 @@
|
||||
diff --git a/includes/delete_datastream.form.inc b/includes/delete_datastream.form.inc
|
||||
index b88ef0d..14bb8eb 100644
|
||||
--- a/includes/delete_datastream.form.inc
|
||||
+++ b/includes/delete_datastream.form.inc
|
||||
@@ -22,7 +22,6 @@ function islandora_delete_datastream_form(array $form, array &$form_state, Abstr
|
||||
// XXX: Stashed version of datastream is deprecated... Use object and
|
||||
// datastream IDs from 'datastream_info' to acquire.
|
||||
$form_state['datastream'] = $datastream;
|
||||
-
|
||||
$form_state['datastream_info'] = array(
|
||||
'object_id' => $datastream->parent->id,
|
||||
'datastream_id' => $datastream->id,
|
||||
@@ -32,10 +31,10 @@ function islandora_delete_datastream_form(array $form, array &$form_state, Abstr
|
||||
$dsids = array_merge(array($dsid), islandora_datastream_to_purge($object, $dsid));
|
||||
$dsids = array_unique($dsids);
|
||||
$form['delete_derivatives'] = array(
|
||||
- '#title' => t('Delete Derviatives'),
|
||||
+ '#title' => t('Delete Derivatives'),
|
||||
'#type' => 'checkbox',
|
||||
'#default_value' => 0,
|
||||
- '#description' => t('Derivatives can be regenerated at a later time.'),
|
||||
+ '#description' => t('Derivatives can be regenerated at a later time.'),
|
||||
);
|
||||
$form['base_info'] = array(
|
||||
'#type' => 'item',
|
||||
@@ -72,7 +71,7 @@ function islandora_delete_datastream_form(array $form, array &$form_state, Abstr
|
||||
*/
|
||||
function islandora_datastream_to_purge(AbstractObject $object, $dsid) {
|
||||
module_load_include('inc', 'islandora', 'includes/utilities');
|
||||
- $hooks = islandora_invoke_hook_list(ISLANDORA_DERVIATIVE_CREATION_HOOK, $object->models, array($object));
|
||||
+ $hooks = islandora_invoke_hook_list(ISLANDORA_DERIVATIVE_CREATION_HOOK, $object->models, array($object));
|
||||
$hook_filter = function ($hook_def) use ($dsid) {
|
||||
return isset($hook_def['source_dsid']) && isset($hook_def['destination_dsid']) ?
|
||||
$hook_def['source_dsid'] == $dsid :
|
||||
@@ -119,7 +118,6 @@ function islandora_delete_datastream_form_submit(array $form, array &$form_state
|
||||
$object = islandora_object_load($form_state['datastream_info']['object_id']);
|
||||
$datastream_id = $form_state['datastream_info']['datastream_id'];
|
||||
$datastream = $object[$datastream_id];
|
||||
-
|
||||
$deleted = FALSE;
|
||||
if ($form_state['values']['delete_derivatives']) {
|
||||
islandora_datastream_derivatives_purged($object, $datastream_id);
|
||||
diff --git a/includes/derivatives.inc b/includes/derivatives.inc
|
||||
index 7248f03..74ca2f7 100644
|
||||
--- a/includes/derivatives.inc
|
||||
+++ b/includes/derivatives.inc
|
||||
@@ -83,7 +83,7 @@ function islandora_do_derivatives(AbstractObject $object, array $options) {
|
||||
$options += array(
|
||||
'force' => FALSE,
|
||||
);
|
||||
- $hooks = islandora_invoke_hook_list(ISLANDORA_DERVIATIVE_CREATION_HOOK, $object->models, array($object));
|
||||
+ $hooks = islandora_invoke_hook_list(ISLANDORA_DERIVATIVE_CREATION_HOOK, $object->models, array($object));
|
||||
uasort($hooks, 'drupal_sort_weight');
|
||||
$results = array();
|
||||
$hooks = islandora_filter_derivatives($hooks, $options, $object);
|
||||
@@ -176,7 +176,7 @@ function islandora_do_batch_derivatives(AbstractObject $object, array $options)
|
||||
$options += array(
|
||||
'force' => FALSE,
|
||||
);
|
||||
- $hooks = islandora_invoke_hook_list(ISLANDORA_DERVIATIVE_CREATION_HOOK, $object->models, array($object));
|
||||
+ $hooks = islandora_invoke_hook_list(ISLANDORA_DERIVATIVE_CREATION_HOOK, $object->models, array($object));
|
||||
uasort($hooks, 'drupal_sort_weight');
|
||||
$operations = array();
|
||||
|
||||
diff --git a/includes/object_properties.form.inc b/includes/object_properties.form.inc
|
||||
index b8fcef7..ba97580 100644
|
||||
--- a/includes/object_properties.form.inc
|
||||
+++ b/includes/object_properties.form.inc
|
||||
@@ -29,7 +29,7 @@ function islandora_object_properties_form(array $form, array &$form_state, Abstr
|
||||
$regenerate_derivatives_access = FALSE;
|
||||
if (islandora_object_access(ISLANDORA_REGENERATE_DERIVATIVES, $object)) {
|
||||
module_load_include('inc', 'islandora', 'includes/derivatives');
|
||||
- $hooks = islandora_invoke_hook_list(ISLANDORA_DERVIATIVE_CREATION_HOOK, $object->models, array($object));
|
||||
+ $hooks = islandora_invoke_hook_list(ISLANDORA_DERIVATIVE_CREATION_HOOK, $object->models, array($object));
|
||||
$hooks = islandora_filter_derivatives($hooks, array('force' => TRUE), $object);
|
||||
if (count($hooks) >= 1) {
|
||||
$regenerate_derivatives_access = TRUE;
|
||||
diff --git a/islandora.module b/islandora.module
|
||||
index cfd045e..8c57904 100644
|
||||
--- a/islandora.module
|
||||
+++ b/islandora.module
|
||||
@@ -58,7 +58,11 @@ define('ISLANDORA_DATASTREAM_INGESTED_HOOK', 'islandora_datastream_ingested');
|
||||
define('ISLANDORA_DATASTREAM_MODIFIED_HOOK', 'islandora_datastream_modified');
|
||||
define('ISLANDORA_DATASTREAM_PURGED_HOOK', 'islandora_datastream_purged');
|
||||
define('ISLANDORA_INGEST_STEP_HOOK', 'islandora_ingest_steps');
|
||||
-define('ISLANDORA_DERVIATIVE_CREATION_HOOK', 'islandora_derivative');
|
||||
+define('ISLANDORA_DERIVATIVE_CREATION_HOOK', 'islandora_derivative');
|
||||
+// The "ISLANDORA_DERVIATIVE_CREATION_HOOK" constant has deprecated as of
|
||||
+// 7.x-1.5, and should be removed after the next release.
|
||||
+define('ISLANDORA_DERVIATIVE_CREATION_HOOK', ISLANDORA_DERIVATIVE_CREATION_HOOK);
|
||||
+
|
||||
|
||||
// Autocomplete paths.
|
||||
define('ISLANDORA_CONTENT_MODELS_AUTOCOMPLETE', 'islandora/autocomplete/content-models');
|
||||
@@ -1946,7 +1950,7 @@ function islandora_islandora_datastream_access($op, AbstractDatastream $datastre
|
||||
module_load_include('inc', 'islandora', 'includes/derivatives');
|
||||
$applicable_hook = FALSE;
|
||||
$object = $datastream->parent;
|
||||
- $hooks = islandora_invoke_hook_list(ISLANDORA_DERVIATIVE_CREATION_HOOK, $object->models, array($object));
|
||||
+ $hooks = islandora_invoke_hook_list(ISLANDORA_DERIVATIVE_CREATION_HOOK, $object->models, array($object));
|
||||
$hooks = islandora_filter_derivatives($hooks, array('force' => TRUE), $object);
|
||||
foreach ($hooks as $hook) {
|
||||
if (isset($hook['destination_dsid']) && $hook['destination_dsid'] == $datastream->id &&
|
||||
Loading…
Reference in new issue