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
-~----------~----~----~----~------~----~------~--~---

Reply via email to