Browse Source

Sundry updates

- Added a confirmation to purge.
- Fixed collection links
- Provided link to full size
pull/120/merge
jonathangreen 12 years ago
parent
commit
0118ad6208
  1. 2
      includes/datastream.inc
  2. 10
      includes/object_properties.inc
  3. 71
      islandora.module
  4. 4
      islandora_basic_image/islandora-basic-image.tpl.php
  5. 3
      islandora_basic_image/islandora_basic_image.module

2
includes/datastream.inc

@ -42,7 +42,7 @@ function islandora_datastream_as_attachment($object_id, $dsid) {
} }
function islandora_get_datastream_parents($islandora_object) { function islandora_datastream_get_parents($islandora_object) {
$parent_collections = array(); $parent_collections = array();
$repository = $islandora_object->repository; $repository = $islandora_object->repository;
$collections1 = $islandora_object->relationships->get(FEDORA_RELS_EXT_URI, 'isMemberOfCollection'); $collections1 = $islandora_object->relationships->get(FEDORA_RELS_EXT_URI, 'isMemberOfCollection');

10
includes/object_properties.inc

@ -53,6 +53,11 @@ function islandora_edit_properties_form_submit($form, &$form_state) {
} }
} }
function islandora_edit_properties_form_delete($form, &$form_state) {
$islandora_object = $form_state['values']['pid'];
drupal_goto("islandora/object/$islandora_object/delete");
}
/** /**
* *
* @param array $form * @param array $form
@ -99,6 +104,11 @@ function islandora_edit_properties_form($form, &$form_state, $object_id) {
'#type' => 'submit', '#type' => 'submit',
'#value' => 'Update Properties', '#value' => 'Update Properties',
); );
$form['delete'] = array(
'#type' => 'submit',
'#value' => t('Delete'),
'#submit' => array('islandora_edit_properties_form_delete'),
);
return $form; return $form;
} }

71
islandora.module

@ -58,31 +58,6 @@ function islandora_menu() {
'type' => MENU_NORMAL_ITEM, 'type' => MENU_NORMAL_ITEM,
'weight' => 0, 'weight' => 0,
); );
/* may not need this
$items['admin/islandora/solution_packs'] = array(
'title' => 'Solution Packs',
'description' => 'Install content models and collections required by installed solution packs.',
'page callback' => 'islandora_solution_packs_page',
'access arguments' => array(FEDORA_ADD_DS),
'file' => 'admin/islandora.solutionpacks.inc',
'type' => MENU_NORMAL_ITEM,
); */
$items['islandoracm.xsd'] = array(
'title' => 'Islandora Content Model XML Schema Definition',
'page callback' => 'islandora_display_schema',
'page arguments' => array('islandoracm.xsd'),
'type' => MENU_CALLBACK,
'access arguments' => array(FEDORA_VIEW),
);
$items['collection_policy.xsd'] = array(
'title' => 'Islandora Content Model XML Schema Definition',
'page callback' => 'islandora_display_schema',
'page arguments' => array('collection_policy.xsd'),
'type' => MENU_CALLBACK,
'access arguments' => array(FEDORA_VIEW),
);
$items['islandora/ingest/%'] = array( $items['islandora/ingest/%'] = array(
'title' => 'Ingest object', 'title' => 'Ingest object',
@ -154,9 +129,9 @@ function islandora_menu() {
); );
$items['islandora/object/%/delete'] = array( $items['islandora/object/%/delete'] = array(
'title' => 'Purge object', 'title' => 'Delete object',
'page callback' => 'islandora_purge_object', 'page callback' => 'drupal_get_form',
'page arguments' => array(2), 'page arguments' => array('islandora_purge_object', 2),
'type' => MENU_CALLBACK, 'type' => MENU_CALLBACK,
'access arguments' => array(FEDORA_PURGE), 'access arguments' => array(FEDORA_PURGE),
); );
@ -294,7 +269,10 @@ function islandora_node_access($op, $pid = NULL, $as_user = NULL) {
* ID of the object * ID of the object
* @return type * @return type
*/ */
function islandora_purge_object($object_id) { function islandora_purge_object_submit($form, &$form_state) {
$object_id = $form_state['values']['pid'];
$collection = $form_state['values']['col'];
module_load_include('inc', 'islandora', 'RestConnection'); module_load_include('inc', 'islandora', 'RestConnection');
global $user; global $user;
if (!isset($object_id)) { if (!isset($object_id)) {
@ -331,7 +309,38 @@ function islandora_purge_object($object_id) {
} }
} }
module_invoke_all('islandora_post_purge_object', $object_id, $content_models); //notify modules post deletion module_invoke_all('islandora_post_purge_object', $object_id, $content_models); //notify modules post deletion
drupal_goto('islandora'); drupal_goto($collection);
}
function islandora_purge_object($form, &$form_state, $pid) {
module_load_include('inc', 'islandora', 'RestConnection');
module_load_include('inc', 'islandora', 'includes/datastream');
$connection = new RestConnection();
$object = $connection->repository->getObject($pid);
$parent = islandora_datastream_get_parents($object);
$key = array_keys($parent);
if(count($key) > 0) {
$redirect = "islandora/object/$key[0]";
}
else {
$redirect = "islandora";
}
// Always provide entity id in the same form key as in the entity edit form.
$form['pid'] = array('#type' => 'value', '#value' => $pid);
$form['col'] = array('#type' => 'value', '#value' => $redirect);
return confirm_form($form,
t('Are you sure you want to delete %title?', array('%title' => $object->label)),
"islandora/object/$pid",
t('This action cannot be undone.'),
t('Delete'),
t('Cancel')
);
} }
/** /**
@ -600,7 +609,7 @@ function islandora_preprocess_islandora_default(&$variables) {
module_load_include('inc', 'islandora', 'includes/utilities'); module_load_include('inc', 'islandora', 'includes/utilities');
module_load_include('inc', 'islandora', 'includes/datastream'); module_load_include('inc', 'islandora', 'includes/datastream');
$variables['parent_collections'] = islandora_get_datastream_parents($islandora_object); $variables['parent_collections'] = islandora_datastream_get_parents($islandora_object);
$datastreams = array(); $datastreams = array();
foreach ($islandora_object as $ds) { foreach ($islandora_object as $ds) {

4
islandora_basic_image/islandora-basic-image.tpl.php

@ -21,11 +21,11 @@
* along with the program. If not, see <http ://www.gnu.org/licenses/>. * along with the program. If not, see <http ://www.gnu.org/licenses/>.
*/ */
?> ?>
<?php drupal_set_title(""); ?> <?php drupal_set_title("$islandora_object_label"); ?>
<div class="islandora-basic-image-object islandora"> <div class="islandora-basic-image-object islandora">
<div class="islandora-basic-image-content clearfix"> <div class="islandora-basic-image-content clearfix">
<?php print $islandora_medium_img; ?> <?php print l($islandora_medium_img, $islandora_full_url, array('html' => TRUE)); ?>
</div> </div>
<div class="islandora-basic-image-sidebar"> <div class="islandora-basic-image-sidebar">
<h1 class="title"><?php print $islandora_object_label; ?></h1> <h1 class="title"><?php print $islandora_object_label; ?></h1>

3
islandora_basic_image/islandora_basic_image.module

@ -228,10 +228,11 @@ function islandora_basic_image_preprocess_islandora_basic_image(&$variables) {
$variables['dc_array'] = $dc_object->as_formatted_array(); $variables['dc_array'] = $dc_object->as_formatted_array();
$variables['islandora_object_label'] = $islandora_object->label; $variables['islandora_object_label'] = $islandora_object->label;
$variables['theme_hook_suggestions'][] = 'islandora_basic_image__' . str_replace(':', '_', $islandora_object->id); $variables['theme_hook_suggestions'][] = 'islandora_basic_image__' . str_replace(':', '_', $islandora_object->id);
$variables['parent_collections'] = islandora_get_datastream_parents($islandora_object); $variables['parent_collections'] = islandora_datastream_get_parents($islandora_object);
global $base_url; global $base_url;
if (isset($islandora_object['OBJ'])) { if (isset($islandora_object['OBJ'])) {
$full_size_url = $base_url . '/islandora/object/' . $islandora_object->id . '/datastream/OBJ/view'; $full_size_url = $base_url . '/islandora/object/' . $islandora_object->id . '/datastream/OBJ/view';
$variables['islandora_full_url'] = $full_size_url;
$variables['islandora_full_img'] = '<img src="' . $full_size_url . '"/>'; $variables['islandora_full_img'] = '<img src="' . $full_size_url . '"/>';
} }
if (isset($islandora_object['TN'])) { if (isset($islandora_object['TN'])) {

Loading…
Cancel
Save