Browse Source

Fixes for ingesting objects.

pull/3/merge
Nigel Banks 13 years ago
parent
commit
ec441096e4
  1. 41
      fedora_repository.module
  2. 23
      formClass.inc

41
fedora_repository.module

@ -124,8 +124,43 @@ function fedora_repository_ingest_form_submit($form, &$form_state) {
$xml_form = new XMLForm($form_state); $xml_form = new XMLForm($form_state);
$doc = $xml_form->submit($form, $form_state); $doc = $xml_form->submit($form, $form_state);
$document = $doc->document; $document = $doc->document;
dom_document_pretty_print($document); // Get Hidden Values.
exit(); $dsid = $form_state['values']['dsid'];
$collection_pid = $form_state['values']['collection_pid'];
$content_model_pid = $form_state['values']['content_model_pid'];
$content_model_dsid = $form_state['values']['content_model_dsid'];
//
module_load_include('inc', 'fedora_repository', 'CollectionPolicy');
$error = TRUE;
$should_redirect = TRUE;
$collection_policy = CollectionPolicy::loadFromCollection($collection_pid);
if ($collection_policy !== FALSE) {
module_load_include('inc', 'fedora_repository', 'ContentModel');
$relationship = $collection_policy->getRelationship();
$content_model = ContentModel::loadFromModel($content_model_pid, $content_model_dsid);
if ($content_model !== FALSE) {
module_load_include('inc', 'islandora_content_model_forms', 'FOXML');
$label = 'test'; //$form['#post']['form_builder'][0]; // use mods title as label
if (empty($form['#post']['active-toggle'])) {
$state = 'A';
}
else {
$state = $form['#post']['active-toggle'] ? 'A' : 'I';
}
$pid = $collection_policy->getNextPid($content_model_dsid);
$ingest_file_location = isset($form_state['values']['ingest-file-location']) ? $form_state['values']['ingest-file-location'] : NULL;
// hack
$transform = drupal_get_path('module', 'islandora_content_model_forms') . '/transforms/mods_to_dc.xsl';
$foxml = new FOXML($label, $pid, $dsid, $content_model_pid, $collection_pid, $relationship, $ingest_file_location, $document, $transform, $state);
$error = $foxml->ingest();
$_SESSION['fedora_ingest_files'] = ''; //empty this variable
$form_state['storage'] = NULL;
}
}
if ($should_redirect) {
global $base_url;
$form_state['redirect'] = ($error) ? '' : $base_url . "/fedora/repository/{$collection_pid}";
}
} }
else if ($form_state['clicked_button']['#id'] == 'edit-submit') { else if ($form_state['clicked_button']['#id'] == 'edit-submit') {
global $base_url; global $base_url;
@ -193,7 +228,7 @@ function fedora_repository_ingest_form_validate($form, &$form_state) {
$form_state['values']['ingest-file-location'] = $fileObject->filepath; $form_state['values']['ingest-file-location'] = $fileObject->filepath;
} }
if (file_exists($form_state['values']['ingest-file-location'])) { if (isset($form_state['values']['ingest-file-location']) && file_exists($form_state['values']['ingest-file-location'])) {
module_load_include('inc', 'fedora_repository', 'ContentModel'); module_load_include('inc', 'fedora_repository', 'ContentModel');
module_load_include('inc', 'fedora_repository', 'MimeClass'); module_load_include('inc', 'fedora_repository', 'MimeClass');

23
formClass.inc

@ -461,11 +461,14 @@ class formClass {
global $user; global $user;
module_load_include('inc', 'fedora_repository', 'CollectionPolicy'); module_load_include('inc', 'fedora_repository', 'CollectionPolicy');
// drupal_add_js("function _imce_ingest_ImceFinish(path, w, h, s, imceWin) {imceWin.close(); document.getElementById('edit-ingest-file-location').value = path;}",'inline','header'); // drupal_add_js("function _imce_ingest_ImceFinish(path, w, h, s, imceWin) {imceWin.close(); document.getElementById('edit-ingest-file-location').value = path;}",'inline','header');
$content_model_pid = isset($form_state['values']['content_model_pid']) ? $form_state['values']['content_model_pid'] : NULL;
$content_model_dsid = isset($form_state['values']['content_model_dsid']) ? $form_state['values']['content_model_dsid'] : NULL;
if (!user_access('ingest new fedora objects')) { if (!user_access('ingest new fedora objects')) {
drupal_set_message(t('You do not have permission to ingest.'), 'error'); drupal_set_message(t('You do not have permission to ingest.'), 'error');
return ''; return '';
} }
if (empty($form_state['storage']['step'])) { if (empty($form_state['storage']['step'])) {
// we are coming in without a step, so default to step 1 // we are coming in without a step, so default to step 1
$form_state['storage']['step'] = 1; $form_state['storage']['step'] = 1;
@ -530,8 +533,8 @@ class formClass {
case 2: case 2:
module_load_include('inc', 'fedora_repository', 'MimeClass'); // Why this include? --Zac, 2010-09-17 module_load_include('inc', 'fedora_repository', 'MimeClass'); // Why this include? --Zac, 2010-09-17
$contentModelPid = ContentModel::getPidFromIdentifier($form_state['values']['models']); $content_model_pid = ContentModel::getPidFromIdentifier($form_state['values']['models']);
$contentModelDsid = ContentModel::getDSIDFromIdentifier($form_state['values']['models']); $content_model_dsid = ContentModel::getDSIDFromIdentifier($form_state['values']['models']);
// XML Forms // XML Forms
if (module_exists('xml_form_api')) { if (module_exists('xml_form_api')) {
module_load_include('inc', 'xml_form_api', 'XMLForm'); module_load_include('inc', 'xml_form_api', 'XMLForm');
@ -549,11 +552,17 @@ class formClass {
$xml_form->initialize($form, $document); $xml_form->initialize($form, $document);
} }
$form = $xml_form->toArray(); $form = $xml_form->toArray();
$form['dsid'] = array(
'#type' => 'hidden',
'#value' => isset($form_state['values']['dsid']) ?
$form_state['values']['dsid'] :
islandora_content_model_get_dsid($content_model_pid, $form_name)
);
break; break;
} }
} }
// End XML forms // End XML forms
if (($cm = ContentModel::loadFromModel($contentModelPid, $contentModelDsid)) !== FALSE) { if (($cm = ContentModel::loadFromModel($content_model_pid, $content_model_dsid)) !== FALSE) {
$form = $cm->buildIngestForm($form, $form_state); $form = $cm->buildIngestForm($form, $form_state);
if ($form === FALSE) { if ($form === FALSE) {
@ -571,6 +580,14 @@ class formClass {
'#type' => 'hidden', '#type' => 'hidden',
'#value' => $collection_pid '#value' => $collection_pid
); );
$form['content_model_pid'] = array(
'#type' => 'hidden',
'#value' => $content_model_pid
);
$form['content_model_dsid'] = array(
'#type' => 'hidden',
'#value' => $content_model_dsid
);
if ($form_state['storage']['step'] < 2) { if ($form_state['storage']['step'] < 2) {
$button_name = t('Next'); $button_name = t('Next');

Loading…
Cancel
Save