Browse Source

Fixed collection policy for create child collection function

pull/120/head
rwincewicz 13 years ago
parent
commit
cc6f5a956a
  1. 33
      islandora.module
  2. 3
      islandora_basic_collection/includes/ChildCollection.inc
  3. 6
      islandora_basic_collection/includes/MoveCollection.inc

33
islandora.module

@ -191,8 +191,8 @@ function islandora_menu() {
$items['islandora/object/%/datastream/%/delete'] = array( $items['islandora/object/%/datastream/%/delete'] = array(
'title' => 'Purge data stream', 'title' => 'Purge data stream',
'page callback' => 'islandora_purge_datastream', 'page callback' => 'drupal_get_form',
'page arguments' => array(2, 4), 'page arguments' => array('islandora_purge_datastream', 2, 4),
'type' => MENU_CALLBACK, 'type' => MENU_CALLBACK,
'access arguments' => array(FEDORA_PURGE), 'access arguments' => array(FEDORA_PURGE),
); );
@ -412,6 +412,31 @@ function islandora_islandora_edit_object($fedora_object) {
return array('Default Edit output' => $output); return array('Default Edit output' => $output);
} }
function islandora_purge_datastream($form, &$form_state, $object_id, $datastream_id) {
module_load_include('inc', 'islandora', 'RestConnection');
module_load_include('inc', 'islandora', 'includes/datastream');
$connection = new RestConnection();
$object = $connection->repository->getObject($object_id);
$datastream = $object->getDatastream($datastream_id);
$redirect = "islandora/object/$object_id";
// Always provide entity id in the same form key as in the entity edit form.
$form['pid'] = array('#type' => 'value', '#value' => $object_id);
$form['dsid'] = array('#type' => 'value', '#value' => $datastream_id);
$form['col'] = array('#type' => 'value', '#value' => $redirect);
return confirm_form($form,
t('Are you sure you want to delete the %dsid datastream?', array('%dsid' => $datastream->id)),
"islandora/object/$object_id",
t('This action cannot be undone.'),
t('Delete'),
t('Cancel')
);
}
/** /**
* Gives the option of purging or deleting a datastream. * Gives the option of purging or deleting a datastream.
* *
@ -427,8 +452,10 @@ function islandora_islandora_edit_object($fedora_object) {
* ID of the datastream * ID of the datastream
* *
*/ */
function islandora_purge_datastream($object_id, $datastream_id) { function islandora_purge_datastream_submit($form, &$form_state) {
module_load_include('inc', 'islandora', 'RestConnection'); module_load_include('inc', 'islandora', 'RestConnection');
$object_id = $form_state['values']['pid'];
$datastream_id = $form_state['values']['dsid'];
global $user; global $user;
if (!isset($datastream_id)) { if (!isset($datastream_id)) {
drupal_set_message(t('Cannot remove datastream, datastream id not set')); drupal_set_message(t('Cannot remove datastream, datastream id not set'));

3
islandora_basic_collection/includes/ChildCollection.inc

@ -134,7 +134,6 @@ function islandora_create_child_collection_form_submit($form, &$form_state) {
$content_models_element->item(0)->appendChild($content_model_element); $content_models_element->item(0)->appendChild($content_model_element);
} }
} }
drupal_set_message($collection_policy_xml->saveXML());
$fedora_object = islandora_ingest_get_object($collection_content_models, $form_state['values']['current'], $relationship, $new_collection_pid); $fedora_object = islandora_ingest_get_object($collection_content_models, $form_state['values']['current'], $relationship, $new_collection_pid);
$fedora_object->label = $new_collection_label; $fedora_object->label = $new_collection_label;
$thumbnail_datastream = $fedora_object->constructDatastream('TN'); $thumbnail_datastream = $fedora_object->constructDatastream('TN');
@ -142,7 +141,7 @@ function islandora_create_child_collection_form_submit($form, &$form_state) {
$thumbnail_datastream->label = 'Thumbnail'; $thumbnail_datastream->label = 'Thumbnail';
$thumbnail_datastream->mimetype = 'image/png'; $thumbnail_datastream->mimetype = 'image/png';
$fedora_object->ingestDatastream($thumbnail_datastream); $fedora_object->ingestDatastream($thumbnail_datastream);
$policy_datastream = $fedora_object->constructDatastream(variable_get('Islandora_Collection_Policy_DSID', 'COLLECTION_POLICY'), 'M'); $policy_datastream = $fedora_object->constructDatastream(variable_get('Islandora_Collection_Policy_DSID', 'COLLECTION_POLICY'), 'X');
$policy_datastream->setContentFromString($collection_policy_xml->saveXML()); $policy_datastream->setContentFromString($collection_policy_xml->saveXML());
$policy_datastream->label = 'Collection policy'; $policy_datastream->label = 'Collection policy';
$fedora_object->ingestDatastream($policy_datastream); $fedora_object->ingestDatastream($policy_datastream);

6
islandora_basic_collection/includes/MoveCollection.inc

@ -17,7 +17,11 @@ function islandora_collection_migrate_form($form, &$form_state, $pid) {
$potential_collections = get_collections_as_option_array(); $potential_collections = get_collections_as_option_array();
$table = islandora_collection_table($pid); $table = islandora_collection_table($pid);
if (!$table) { if (!$table) {
return; $form['no_objects'] = array(
'#type' => 'item',
'#title' => t('No objects found in this collection'),
);
return $form;
} }
$form = array(); $form = array();

Loading…
Cancel
Save