Author: jablko
Date: Fri Sep 4 10:05:35 2009
New Revision: 3171
Log:
Try using URIs for specifying resources
Modified:
trunk/apps/qubit/modules/informationobject/actions/editAction.class.php
trunk/apps/qubit/modules/informationobject/actions/editDcAction.class.php
trunk/apps/qubit/modules/informationobject/actions/editIsadAction.class.php
trunk/apps/qubit/modules/informationobject/actions/editModsAction.class.php
trunk/apps/qubit/modules/informationobject/actions/editRadAction.class.php
Modified:
trunk/apps/qubit/modules/informationobject/actions/editAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/informationobject/actions/editAction.class.php
Fri Sep 4 09:57:57 2009 (r3170)
+++ trunk/apps/qubit/modules/informationobject/actions/editAction.class.php
Fri Sep 4 10:05:35 2009 (r3171)
@@ -33,14 +33,14 @@
switch ($name)
{
case 'descriptionDetail':
- $this->form->setDefault('descriptionDetail',
$this->informationObject->descriptionDetail->id);
- $this->form->setValidator('descriptionDetail', new sfValidatorInteger);
+ $this->form->setDefault('descriptionDetail',
$this->context->routing->generate(null, array('module' => 'term', 'action' =>
'show', 'id' => $this->informationObject->descriptionDetail->id)));
+ $this->form->setValidator('descriptionDetail', new sfValidatorString);
$choices = array();
$choices[null] = null;
foreach
(QubitTaxonomy::getTermsById(QubitTaxonomy::DESCRIPTION_DETAIL_LEVEL_ID) as
$term)
{
- $choices[$term->id] = $term;
+ $choices[$this->context->routing->generate(null, array('module' =>
'term', 'action' => 'show', 'id' => $term->id))] = $term;
}
$this->form->setWidget('descriptionDetail', new
sfWidgetFormSelect(array('choices' => $choices)));
@@ -48,14 +48,14 @@
break;
case 'descriptionStatus':
- $this->form->setDefault('descriptionStatus',
$this->informationObject->descriptionStatus->id);
- $this->form->setValidator('descriptionStatus', new sfValidatorInteger);
+ $this->form->setDefault('descriptionStatus',
$this->context->routing->generate(null, array('module' => 'term', 'action' =>
'show', 'id' => $this->informationObject->descriptionStatus->id)));
+ $this->form->setValidator('descriptionStatus', new sfValidatorString);
$choices = array();
$choices[null] = null;
foreach
(QubitTaxonomy::getTermsById(QubitTaxonomy::DESCRIPTION_STATUS_ID) as $term)
{
- $choices[$term->id] = $term;
+ $choices[$this->context->routing->generate(null, array('module' =>
'term', 'action' => 'show', 'id' => $term->id))] = $term;
}
$this->form->setWidget('descriptionStatus', new
sfWidgetFormSelect(array('choices' => $choices)));
@@ -71,14 +71,14 @@
break;
case 'repository':
- $this->form->setDefault('repository',
$this->informationObject->repository->id);
- $this->form->setValidator('repository', new sfValidatorInteger);
+ $this->form->setDefault('repository',
$this->context->routing->generate(null, array('module' => 'repository',
'action' => 'show', 'id' => $this->informationObject->repository->id)));
+ $this->form->setValidator('repository', new sfValidatorString);
$choices = array();
$choices[null] = null;
foreach (QubitRepository::getAll() as $repository)
{
- $choices[$repository->id] = $repository;
+ $choices[$this->context->routing->generate(null, array('module' =>
'repository', 'action' => 'show', 'id' => $repository->id))] = $repository;
}
$this->form->setWidget('repository', new
sfWidgetFormSelect(array('choices' => $choices)));
@@ -210,6 +210,14 @@
{
switch ($field->getName())
{
+ case 'descriptionDetail':
+ case 'descriptionStatus':
+ case 'repository':
+ $params =
$this->context->routing->parse(preg_replace('/.*'.preg_quote($this->request->getPathInfoPrefix(),
'/').'/', null, $this->form->getValue($field->getName())));
+ $this->informationObject[$field->getName().'Id'] = $params['id'];
+
+ break;
+
default:
$this->informationObject[$field->getName()] =
$this->form->getValue($field->getName());
}
Modified:
trunk/apps/qubit/modules/informationobject/actions/editDcAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/informationobject/actions/editDcAction.class.php
Fri Sep 4 09:57:57 2009 (r3170)
+++ trunk/apps/qubit/modules/informationobject/actions/editDcAction.class.php
Fri Sep 4 10:05:35 2009 (r3171)
@@ -73,12 +73,19 @@
$values = array();
foreach ($this->relations = QubitObjectTermRelation::get($criteria) as
$relation)
{
- $values[] = $relation->term->id;
+ $values[] = $this->context->routing->generate(null, array('module'
=> 'term', 'action' => 'show', 'id' => $relation->term->id));
}
$this->form->setDefault('types', $values);
$this->form->setValidator('types', new sfValidatorPass);
- $this->form->setWidget('types', new sfWidgetFormSelect(array('choices'
=> QubitTaxonomy::getTermsById(QubitTaxonomy::DC_TYPE_ID)->indexBy('id'),
'multiple' => true)));
+
+ $choices = array();
+ foreach (QubitTaxonomy::getTermsById(QubitTaxonomy::DC_TYPE_ID) as
$term)
+ {
+ $choices[$this->context->routing->generate(null, array('module' =>
'term', 'action' => 'show', 'id' => $term->id))] = $term;
+ }
+
+ $this->form->setWidget('types', new sfWidgetFormSelect(array('choices'
=> $choices, 'multiple' => true)));
break;
}
@@ -113,7 +120,12 @@
break;
case 'types':
- $filtered = $flipped = array_flip($this->form->getValue('types'));
+ $filtered = $flipped = array();
+ foreach ($this->form->getValue('types') as $value)
+ {
+ $params =
$this->context->routing->parse(preg_replace('/.*'.preg_quote($this->request->getPathInfoPrefix(),
'/').'/', null, $value));
+ $filtered[$params['id']] = $flipped[$params['id']] = $params['id'];
+ }
foreach ($this->relations as $relation)
{
@@ -127,7 +139,7 @@
}
}
- foreach ($filtered as $id => $key)
+ foreach ($filtered as $id)
{
$relation = new QubitObjectTermRelation;
$relation->termId = $id;
Modified:
trunk/apps/qubit/modules/informationobject/actions/editIsadAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/informationobject/actions/editIsadAction.class.php
Fri Sep 4 09:57:57 2009 (r3170)
+++ trunk/apps/qubit/modules/informationobject/actions/editIsadAction.class.php
Fri Sep 4 10:05:35 2009 (r3171)
@@ -76,7 +76,7 @@
$values = array();
foreach ($this->events = QubitEvent::get($criteria) as $event)
{
- $values[] = $event->actor->id;
+ $values[] = $this->context->routing->generate(null, array('module'
=> 'actor', 'action' => 'show', 'id' => $event->actor->id));
}
$this->form->setDefault('creators', $values);
@@ -86,7 +86,13 @@
$criteria->addJoin(QubitActor::ID, QubitUser::ID, 'LEFT JOIN');
$criteria->add(QubitUser::ID);
- $this->form->setWidget('creators', new
sfWidgetFormSelect(array('choices' =>
QubitActor::get($criteria)->indexBy('id'), 'multiple' => true)));
+ $choices = array();
+ foreach (QubitActor::get($criteria) as $actor)
+ {
+ $choices[$this->context->routing->generate(null, array('module' =>
'actor', 'action' => 'show', 'id' => $actor->id))] = $actor;
+ }
+
+ $this->form->setWidget('creators', new
sfWidgetFormSelect(array('choices' => $choices, 'multiple' => true)));
break;
@@ -122,7 +128,12 @@
switch ($field->getName())
{
case 'creators':
- $filtered = $flipped = array_flip($this->form->getValue('creators'));
+ $filtered = $flipped = array();
+ foreach ($this->form->getValue('creators') as $value)
+ {
+ $params =
$this->context->routing->parse(preg_replace('/.*'.preg_quote($this->request->getPathInfoPrefix(),
'/').'/', null, $value));
+ $filtered[$params['id']] = $flipped[$params['id']] = $params['id'];
+ }
foreach ($this->events as $event)
{
@@ -136,7 +147,7 @@
}
}
- foreach ($filtered as $id => $key)
+ foreach ($filtered as $id)
{
$event = new QubitEvent;
$event->actorId = $id;
Modified:
trunk/apps/qubit/modules/informationobject/actions/editModsAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/informationobject/actions/editModsAction.class.php
Fri Sep 4 09:57:57 2009 (r3170)
+++ trunk/apps/qubit/modules/informationobject/actions/editModsAction.class.php
Fri Sep 4 10:05:35 2009 (r3171)
@@ -52,12 +52,19 @@
$values = array();
foreach ($this->relations = QubitObjectTermRelation::get($criteria) as
$relation)
{
- $values[] = $relation->term->id;
+ $values[] = $this->context->routing->generate(null, array('module'
=> 'term', 'action' => 'show', 'id' => $relation->term->id));
}
$this->form->setDefault('types', $values);
$this->form->setValidator('types', new sfValidatorPass);
- $this->form->setWidget('types', new sfWidgetFormSelect(array('choices'
=>
QubitTaxonomy::getTermsById(QubitTaxonomy::MODS_RESOURCE_TYPE_ID)->indexBy('id'),
'multiple' => true)));
+
+ $choices = array();
+ foreach
(QubitTaxonomy::getTermsById(QubitTaxonomy::MODS_RESOURCE_TYPE_ID) as $term)
+ {
+ $choices[$this->context->routing->generate(null, array('module' =>
'term', 'action' => 'show', 'id' => $term->id))] = $term;
+ }
+
+ $this->form->setWidget('types', new sfWidgetFormSelect(array('choices'
=> $choices, 'multiple' => true)));
break;
}
@@ -75,7 +82,12 @@
switch ($field->getName())
{
case 'types':
- $filtered = $flipped = array_flip($this->form->getValue('types'));
+ $filtered = $flipped = array();
+ foreach ($this->form->getValue('types') as $value)
+ {
+ $params =
$this->context->routing->parse(preg_replace('/.*'.preg_quote($this->request->getPathInfoPrefix(),
'/').'/', null, $value));
+ $filtered[$params['id']] = $flipped[$params['id']] = $params['id'];
+ }
foreach ($this->relations as $relation)
{
@@ -89,7 +101,7 @@
}
}
- foreach ($filtered as $id => $key)
+ foreach ($filtered as $id)
{
$relation = new QubitObjectTermRelation;
$relation->termId = $id;
Modified:
trunk/apps/qubit/modules/informationobject/actions/editRadAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/informationobject/actions/editRadAction.class.php
Fri Sep 4 09:57:57 2009 (r3170)
+++ trunk/apps/qubit/modules/informationobject/actions/editRadAction.class.php
Fri Sep 4 10:05:35 2009 (r3171)
@@ -131,12 +131,19 @@
$values = array();
foreach ($this->relations = QubitObjectTermRelation::get($criteria) as
$relation)
{
- $values[] = $relation->term->id;
+ $values[] = $this->context->routing->generate(null, array('module'
=> 'term', 'action' => 'show', 'id' => $relation->term->id));
}
$this->form->setDefault('types', $values);
$this->form->setValidator('types', new sfValidatorPass);
- $this->form->setWidget('types', new sfWidgetFormSelect(array('choices'
=> QubitTaxonomy::getTermsById(QubitTaxonomy::MATERIAL_TYPE_ID)->indexBy('id'),
'multiple' => true)));
+
+ $choices = array();
+ foreach (QubitTaxonomy::getTermsById(QubitTaxonomy::MATERIAL_TYPE_ID)
as $term)
+ {
+ $choices[$this->context->routing->generate(null, array('module' =>
'term', 'action' => 'show', 'id' => $term->id))] = $term;
+ }
+
+ $this->form->setWidget('types', new sfWidgetFormSelect(array('choices'
=> $choices, 'multiple' => true)));
break;
}
@@ -188,7 +195,12 @@
break;
case 'types':
- $filtered = $flipped = array_flip($this->form->getValue('types'));
+ $filtered = $flipped = array();
+ foreach ($this->form->getValue('types') as $value)
+ {
+ $params =
$this->context->routing->parse(preg_replace('/.*'.preg_quote($this->request->getPathInfoPrefix(),
'/').'/', null, $value));
+ $filtered[$params['id']] = $flipped[$params['id']] = $params['id'];
+ }
foreach ($this->relations as $relation)
{
@@ -202,7 +214,7 @@
}
}
- foreach ($filtered as $id => $key)
+ foreach ($filtered as $id)
{
$relation = new QubitObjectTermRelation;
$relation->termId = $id;
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.ca/group/qubit-commits?hl=en
-~----------~----~----~----~------~----~------~--~---