Author: david
Date: Fri Aug 14 11:10:54 2009
New Revision: 3034
Log:
Add (use: <preferred term>) helper text to auto-complete results with
javascript instead of building string in list action. Dynamically swap-in
preferred term in subject & place access point auto-completes. Fixes issue #871.
Modified:
trunk/apps/qubit/modules/informationobject/templates/_termNameAutoComplete.php
trunk/apps/qubit/modules/term/actions/listAction.class.php
Modified:
trunk/apps/qubit/modules/informationobject/templates/_termNameAutoComplete.php
==============================================================================
---
trunk/apps/qubit/modules/informationobject/templates/_termNameAutoComplete.php
Fri Aug 14 10:09:29 2009 (r3033)
+++
trunk/apps/qubit/modules/informationobject/templates/_termNameAutoComplete.php
Fri Aug 14 11:10:54 2009 (r3034)
@@ -17,6 +17,22 @@
<script language="javascript">
//<!CDATA[
+ var preferredTermFormat = ' (<?php echo __('use') ?>: %s)';
+
+ function formatTermResults(oResultData, sQuery, sResultMatch) {
+ var sMarkup = "";
+ if (sResultMatch)
+ {
+ sMarkup = sResultMatch;
+ if (undefined != (preferredName = oResultData.preferredName))
+ {
+ sMarkup += preferredTermFormat.replace('%s', preferredName);
+ }
+ }
+
+ return sMarkup;
+ };
+
Drupal.behaviors.subjectAutoComplete = {
attach: function(context)
{
@@ -25,7 +41,7 @@
myDataSource.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
myDataSource.responseSchema = {
resultsList : "Results",
- fields : ["name", "id", "preferredId"]
+ fields : ["name", "id", "preferredName", "preferredId"]
}
// Build subject auto-complete widget
@@ -36,15 +52,21 @@
subjectAutoComp.animVert = true;
subjectAutoComp.maxResultsDisplayed = 10;
subjectAutoComp.useIFrame = true;
-
+ subjectAutoComp.resultTypeList = false;
+
+ // Format results
+ subjectAutoComp.formatResult = formatTermResults;
+
// Define an event handler to populate a hidden form field
// when an item gets selected
var subjectIdField = YAHOO.util.Dom.get("subjectId");
+ var subjectInput = YAHOO.util.Dom.get("subjectAcInput");
var myHandler = function(sType, aArgs) {
var oData = aArgs[2]; // object literal of selected item's result data
// update hidden form field with the selected item's ID
- subjectIdField.value = oData[2];
+ subjectIdField.value = oData.preferredId;
+ subjectInput.value = oData.preferredName;
};
subjectAutoComp.itemSelectEvent.subscribe(myHandler);
@@ -56,15 +78,21 @@
placeAutoComp.animVert = true;
placeAutoComp.maxResultsDisplayed = 10;
placeAutoComp.useIFrame = true;
+ placeAutoComp.resultTypeList = false;
+
+ // Format results
+ placeAutoComp.formatResult = formatTermResults;
// Define an event handler to populate a hidden form field
// when an item gets selected
var placeIdField = YAHOO.util.Dom.get("placeId");
+ var placeInput = YAHOO.util.Dom.get("placeAcInput");
var myHandler = function(sType, aArgs) {
var oData = aArgs[2]; // object literal of selected item's result data
// update hidden form field with the selected item's ID
- placeIdField.value = oData[2];
+ placeIdField.value = oData.preferredId;
+ placeInput.value = oData.preferredName;
};
placeAutoComp.itemSelectEvent.subscribe(myHandler);
Modified: trunk/apps/qubit/modules/term/actions/listAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/term/actions/listAction.class.php Fri Aug 14
10:09:29 2009 (r3033)
+++ trunk/apps/qubit/modules/term/actions/listAction.class.php Fri Aug 14
11:10:54 2009 (r3034)
@@ -63,21 +63,23 @@
{
foreach ($results as $result)
{
- $termName = $result->name;
+ $termName = $result->getName(array('cultureFallback' => true));
// Check for preferred term to the current term
$criteria2 = new Criteria;
$criteria2->add(QubitRelation::OBJECT_ID, $result->id,
Criteria::EQUAL);
$criteria2->add(QubitRelation::TYPE_ID,
QubitTerm::TERM_RELATION_EQUIVALENCE_ID, Criteria::EQUAL);
+
+ // Set preferred name and id
+ $preferredName = null;
+ $preferredId = $term->id;
if (null !== ($preferred = QubitRelation::getOne($criteria2)))
{
- $termName .= ' ('.$this->getContext()->getI18N()->__('use').': ';
- $termName .=
$preferred->getSubject()->getName(array('cultureFallback' => true));
- $termName .= ')';
+ $preferredName =
$preferred->getSubject()->getName(array('cultureFallback' => true));
+ $preferredId = (null === $preferred) ? $result->id :
$preferred->getSubject()->id;
}
- $preferredId = (null === $preferred) ? $result->id :
$preferred->getSubject()->id;
- $hitlist[] = array('name' => $termName, 'id' => $result->id,
'preferredId' => $preferredId);
+ $hitlist[] = array('name' => $termName, 'id' => $result->id,
'preferredName' => $preferredName, 'preferredId' => $preferredId);
}
}
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---