|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* may want more validation here the only restrictions i see on
|
|
|
|
* the object label and owner is the foxml schema says they should be
|
|
|
|
* an xsd:string there maybe further restrictions such as length but they aren't
|
|
|
|
* defined in the schema.
|
|
|
|
* @param array $form
|
|
|
|
* @param array $form_state
|
|
|
|
* @return boolean
|
|
|
|
*/
|
|
|
|
function islandora_edit_properties_form_validate($form, &$form_state) {
|
|
|
|
$islandora_object = islandora_get_object($form_state['values']['pid']);
|
|
|
|
if (!isset($islandora_object)) {
|
|
|
|
form_set_error('', t('Could not update properties object not found.'));
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @param array $form
|
|
|
|
* @param array $form_state
|
|
|
|
*/
|
|
|
|
function islandora_edit_properties_form_submit($form, &$form_state) {
|
|
|
|
$islandora_object = islandora_get_object($form_state['values']['pid']);
|
|
|
|
$owner = $form_state['values']['object_owner'];
|
|
|
|
$state = $form_state['values']['object_state'];
|
|
|
|
$label = $form_state['values']['object_label'];
|
|
|
|
if (isset($owner) && $owner != $islandora_object->owner) {
|
|
|
|
try {
|
|
|
|
$islandora_object->owner = $owner;
|
|
|
|
drupal_set_message(t('Successfully updated owner %s', array('%s' => $owner)));
|
|
|
|
} catch (Exception $e) {
|
|
|
|
form_set_error('object_owner',t('Error updating owner %s', array('%s'=> $e->getMessage())));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (isset($state) && $state != $islandora_object->state) {
|
|
|
|
try {
|
|
|
|
$islandora_object->state = $state;
|
|
|
|
drupal_set_message(t('Successfully updated state %s', array('%s' => $state)));
|
|
|
|
} catch (Exception $e) {
|
|
|
|
form_set_error('object_state',t('Error updating state %s', array('%s'=> $e->getMessage())));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (isset($label) && $label != $islandora_object->label) {
|
|
|
|
try {
|
|
|
|
$islandora_object->label = $label;
|
|
|
|
drupal_set_message(t('Successfully updated label %s', array('%s' => check_plain($label))));
|
|
|
|
} catch (Exception $e) {
|
|
|
|
form_set_error(t('Error updating label %s', array('%s' => $e->getMessage())));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @param array $form
|
|
|
|
* @param array $form_state
|
|
|
|
* @param string $object_id
|
|
|
|
* an object id
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
function islandora_edit_properties_form($form, &$form_state, $object_id) {
|
|
|
|
$form = array();
|
|
|
|
$islandora_object = islandora_get_object($object_id);
|
|
|
|
if (!isset($islandora_object)) {
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
$form['pid'] = array(
|
|
|
|
'#type' => 'hidden',
|
|
|
|
'#value' => $object_id,
|
|
|
|
);
|
|
|
|
|
|
|
|
$form['object_label'] = array(
|
|
|
|
'#title' => t('Item Label'),
|
|
|
|
'#default_value' => $islandora_object->label,
|
|
|
|
'#required' => 'TRUE',
|
|
|
|
'#description' => t('A Human readable label'),
|
|
|
|
'#type' => 'textfield'
|
|
|
|
);
|
|
|
|
$form['object_owner'] = array(
|
|
|
|
'#title' => t('Owner'),
|
|
|
|
'#default_value' => $islandora_object->owner,
|
|
|
|
'#required' => FALSE,
|
|
|
|
'#description' => t('The owner id'),
|
|
|
|
'#type' => 'textfield',
|
|
|
|
);
|
|
|
|
$form['object_state'] = array(
|
|
|
|
'#title' => t('State'),
|
|
|
|
'#default_value' => $islandora_object->state,
|
|
|
|
'#required' => TRUE,
|
|
|
|
'#description' => t('The items state one of active, inactive or deleted'),
|
|
|
|
'#type' => 'select',
|
|
|
|
'#options' => array('A' => 'Active', 'I' => 'Inactive', 'D' => 'Deleted'),
|
|
|
|
);
|
|
|
|
$form['submit'] = array(
|
|
|
|
'#type' => 'submit',
|
|
|
|
'#value' => 'Update Properties',
|
|
|
|
);
|
|
|
|
return $form;
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|