Fixes #66, Need a function to get typeID given typeName

- Added methods getID(idOrName) and getName(idOrName) to Scholar.CreatorTypes and Scholar.ItemTypes to take either typeID or typeName

- Removed getTypeName() in each and changed references accordingly

- Streamlined both classes to be as similar as possible
This commit is contained in:
Dan Stillman 2006-06-25 04:35:11 +00:00
parent 22eebc6cdf
commit b2247e1dd2
4 changed files with 83 additions and 37 deletions

View File

@ -236,7 +236,7 @@ Scholar_Ingester_Interface._finishScraping = function(obj, returnValue) {
if(creators) { if(creators) {
for(var i=0; i<creators; i++) { for(var i=0; i<creators; i++) {
var creator = item1.getCreator(i); var creator = item1.getCreator(i);
var label = Scholar.getString("creatorTypes."+Scholar.CreatorTypes.getTypeName(creator.creatorTypeID)) + ":"; var label = Scholar.getString("creatorTypes."+Scholar.CreatorTypes.getName(creator.creatorTypeID)) + ":";
var data = creator.firstName + ' ' + creator.lastName; var data = creator.firstName + ' ' + creator.lastName;
Scholar_Ingester_Interface.scrapeProgress.addResult(label, data); Scholar_Ingester_Interface.scrapeProgress.addResult(label, data);
} }

View File

@ -155,7 +155,7 @@ ScholarItemPane = new function()
if(!lastName) if(!lastName)
lastName = "(last)"; lastName = "(last)";
var label = document.createElement("label"); var label = document.createElement("label");
label.setAttribute("value",Scholar.getString('creatorTypes.'+Scholar.CreatorTypes.getTypeName(typeID))+":"); label.setAttribute("value",Scholar.getString('creatorTypes.'+Scholar.CreatorTypes.getName(typeID))+":");
label.setAttribute("popup","creatorTypeMenu"); label.setAttribute("popup","creatorTypeMenu");
label.setAttribute("fieldname",'creator-'+_creatorCount+'-typeID'); label.setAttribute("fieldname",'creator-'+_creatorCount+'-typeID');
label.className = 'clicky'; label.className = 'clicky';

View File

@ -181,7 +181,7 @@ Scholar.ItemTreeView.prototype.getImageSrc = function(row, col)
{ {
if(col.id == 'typeIcon') if(col.id == 'typeIcon')
{ {
var itemType = Scholar.ItemTypes.getTypeName(this._getItemAtRow(row).getType()); var itemType = Scholar.ItemTypes.getName(this._getItemAtRow(row).getType());
return "chrome://scholar/skin/treeitem-"+itemType+".png"; return "chrome://scholar/skin/treeitem-"+itemType+".png";
} }
} }
@ -232,8 +232,8 @@ Scholar.ItemTreeView.prototype.sort = function()
{ {
function columnSort(a,b) function columnSort(a,b)
{ {
var typeA = Scholar.getString('itemTypes.'+Scholar.ItemTypes.getTypeName(a.getType())); var typeA = Scholar.getString('itemTypes.'+Scholar.ItemTypes.getName(a.getType()));
var typeB = Scholar.getString('itemTypes.'+Scholar.ItemTypes.getTypeName(b.getType())); var typeB = Scholar.getString('itemTypes.'+Scholar.ItemTypes.getName(b.getType()));
return (typeA > typeB) ? -1 : (typeA < typeB) ? 1 : 0; return (typeA > typeB) ? -1 : (typeA < typeB) ? 1 : 0;
} }

View File

@ -1777,38 +1777,61 @@ Scholar.Creators = new function(){
Scholar.CreatorTypes = new function(){ Scholar.CreatorTypes = new function(){
var _creatorTypes = new Array(); var _types = new Array();
var _creatorTypesLoaded; var _typesLoaded;
var self = this; var self = this;
this.getName = getName;
this.getID = getID;
this.getTypes = getTypes; this.getTypes = getTypes;
this.getTypeName = getTypeName;
function getName(idOrName){
if (!_typesLoaded){
_load();
}
if (!_types[idOrName]){
Scholar.debug('Invalid creator type ' + idOrName, 1);
}
return _types[idOrName]['name'];
}
function getID(idOrName){
if (!_typesLoaded){
_load();
}
if (!_types[idOrName]){
Scholar.debug('Invalid creator type ' + idOrName, 1);
}
return _types[idOrName]['id'];
}
function getTypes(){ function getTypes(){
return Scholar.DB.query('SELECT creatorTypeID AS id, ' return Scholar.DB.query('SELECT creatorTypeID AS id, '
+ 'creatorType AS name FROM creatorTypes order BY creatorType'); + 'creatorType AS name FROM creatorTypes order BY creatorType');
} }
function getTypeName(creatorTypeID){
if (!_creatorTypesLoaded){
_load();
}
if (!_creatorTypes[creatorTypeID]){
Scholar.debug('Invalid creator type ' + creatorTypeID, 1);
}
return _creatorTypes[creatorTypeID];
}
function _load(){ function _load(){
var types = self.getTypes(); var types = self.getTypes();
for (i in types){ for (i in types){
_creatorTypes[types[i]['id']] = types[i]['name']; // Store as both id and name for access by either
var typeData = {
id: types[i]['id'],
name: types[i]['name']
}
_types[types[i]['id']] = typeData;
_types[types[i]['name']] = _types[types[i]['id']];
} }
_creatorTypesLoaded = true; _typesLoaded = true;
} }
} }
@ -1816,38 +1839,61 @@ Scholar.CreatorTypes = new function(){
Scholar.ItemTypes = new function(){ Scholar.ItemTypes = new function(){
var _itemTypes = new Array(); var _types = new Array();
var _itemTypesLoaded; var _typesLoaded;
var self = this; var self = this;
this.getName = getName;
this.getID = getID;
this.getTypes = getTypes; this.getTypes = getTypes;
this.getTypeName = getTypeName;
function getName(idOrName){
if (!_typesLoaded){
_load();
}
if (!_types[idOrName]){
Scholar.debug('Invalid item type ' + idOrName, 1);
}
return _types[idOrName]['name'];
}
function getID(idOrName){
if (!_typesLoaded){
_load();
}
if (!_types[idOrName]){
Scholar.debug('Invalid item type ' + idOrName, 1);
}
return _types[idOrName]['id'];
}
function getTypes(){ function getTypes(){
return Scholar.DB.query('SELECT itemTypeID AS id, typeName AS name ' return Scholar.DB.query('SELECT itemTypeID AS id, typeName AS name '
+ 'FROM itemTypes order BY typeName'); + 'FROM itemTypes order BY typeName');
} }
function getTypeName(itemTypeID){
if (!_itemTypesLoaded){
_load();
}
if (!_itemTypes[itemTypeID]){
Scholar.debug('Invalid item type ' + itemTypeID, 1);
}
return _itemTypes[itemTypeID];
}
function _load(){ function _load(){
var types = self.getTypes(); var types = self.getTypes();
for (i in types){ for (i in types){
_itemTypes[types[i]['id']] = types[i]['name']; // Store as both id and name for access by either
var typeData = {
id: types[i]['id'],
name: types[i]['name']
}
_types[types[i]['id']] = typeData;
_types[types[i]['name']] = _types[types[i]['id']];
} }
_itemTypesLoaded = true; _typesLoaded = true;
} }
} }