From 97d1e0b844c5ad8d05fcc5dae3ba6610f0abeae4 Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Sat, 17 Feb 2007 09:39:51 +0000 Subject: [PATCH] Closes #346, mapping for new item types Closes #227, Indent nested collections in search drop-down Addresses #528, Make search condition drop-down menu less unwieldy - Created new distinct fields for differently labeled fields - Mapped lots of fields to base fields - Made base field search conditions search type-specific fields as well - Removed type-specific fields that are based on base fields not show up in search conditions drop-down - Added a tooltip when hovering over a condition in the search conditions drop-down that shows the fields it searches (when there's more than one) - Moved search dialog CSS to separate file --- .../content/zotero/bindings/zoterosearch.xml | 112 ++++++++++++++++-- chrome/content/zotero/xpcom/data_access.js | 32 ++++- chrome/content/zotero/xpcom/schema.js | 23 ++++ chrome/content/zotero/xpcom/search.js | 59 +++++++-- chrome/locale/en-US/zotero/zotero.properties | 25 +++- .../skin/default/zotero/bindings/search.css | 67 +++++++++++ chrome/skin/default/zotero/zotero.css | 56 --------- system.sql | 98 +++++++++++---- userdata.sql | 2 +- 9 files changed, 369 insertions(+), 105 deletions(-) create mode 100644 chrome/skin/default/zotero/bindings/search.css diff --git a/chrome/content/zotero/bindings/zoterosearch.xml b/chrome/content/zotero/bindings/zoterosearch.xml index 4d724a4c1..e97abc9d1 100644 --- a/chrome/content/zotero/bindings/zoterosearch.xml +++ b/chrome/content/zotero/bindings/zoterosearch.xml @@ -28,6 +28,10 @@ xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> + + + + @@ -190,7 +194,7 @@ - + @@ -215,6 +219,10 @@ + + + + @@ -238,7 +246,76 @@ for(var i=0, len=conditions.length; i @@ -281,7 +358,15 @@ var cols = Zotero.getCollections(false, true); for (var i in cols) { - merged.push([cols[i].getName(), 'C' + cols[i].getID()]); + // Indent subcollections + var indent = ''; + if (cols[i].level) { + for (var j=1; j + - + + + @@ -576,6 +665,7 @@ @@ -585,6 +675,10 @@ + + + + - + @@ -736,6 +830,10 @@ + + + + @@ -779,7 +877,7 @@ - + diff --git a/chrome/content/zotero/xpcom/data_access.js b/chrome/content/zotero/xpcom/data_access.js index 55c66f818..683d076cd 100644 --- a/chrome/content/zotero/xpcom/data_access.js +++ b/chrome/content/zotero/xpcom/data_access.js @@ -2830,13 +2830,18 @@ Zotero.Collection.prototype._loadChildItems = function(){ /** * Returns an array of descendent collections and items -* (rows of 'id', 'type' ('item' or 'collection'), and, if collection, 'name') +* (rows of 'id', 'type' ('item' or 'collection'), and, if collection, 'name' +* and the nesting 'level') * * nested: Return multidimensional array with 'children' nodes instead of flat array **/ -Zotero.Collection.prototype.getDescendents = function(nested, type){ +Zotero.Collection.prototype.getDescendents = function(nested, type, level){ var toReturn = new Array(); + if (!level) { + level = 1; + } + // 0 == collection // 1 == item var children = Zotero.DB.query('SELECT collectionID AS id, ' @@ -2866,12 +2871,13 @@ Zotero.Collection.prototype.getDescendents = function(nested, type){ toReturn.push({ id: children[i]['id'], name: children[i]['collectionName'], - type: 'collection' + type: 'collection', + level: level }); } var descendents = - Zotero.Collections.get(children[i]['id']).getDescendents(nested, type); + Zotero.Collections.get(children[i]['id']).getDescendents(nested, type, level+1); if (nested){ toReturn[toReturn.length-1]['children'] = descendents; @@ -3823,6 +3829,7 @@ Zotero.ItemFields = new function(){ this.isInteger = isInteger; this.getItemTypeFields = getItemTypeFields; this.isBaseField = isBaseField; + this.getBaseMappedFields = getBaseMappedFields; this.getFieldIDFromTypeAndBase = getFieldIDFromTypeAndBase; this.getBaseIDFromTypeAndField = getBaseIDFromTypeAndField; this.getTypeFieldsFromBase = getTypeFieldsFromBase; @@ -3875,7 +3882,7 @@ Zotero.ItemFields = new function(){ _fieldCheck(fieldID, 'isValidForType'); if (!_fields[fieldID]['itemTypes']){ - throw('No associated itemTypes for fieldID ' + fieldID); + return false; } return !!_fields[fieldID]['itemTypes'][itemTypeID]; @@ -3922,6 +3929,11 @@ Zotero.ItemFields = new function(){ } + function getBaseMappedFields() { + return Zotero.DB.columnQuery("SELECT DISTINCT fieldID FROM baseFieldMappings"); + } + + /* * Returns the fieldID of a type-specific field for a given base field * or false if none @@ -3943,7 +3955,7 @@ Zotero.ItemFields = new function(){ } if (!baseFieldID) { - throw ("Invalid base field '" + baseField + '" in ItemFields.getFieldIDFromTypeAndBase()'); + throw ("Invalid field '" + baseField + '" for base field in ItemFields.getFieldIDFromTypeAndBase()'); } // If the base field is already valid for the type, just return that @@ -4126,6 +4138,14 @@ Zotero.getCollections = function(parent, recursive){ throw ('Collection ' + desc[j] + ' not found'); } + // TODO: This is a quick hack so that we can indent subcollections + // in the search dialog -- ideally collections would have a + // getLevel() method, but there's no particularly quick way + // of calculating that without either storing it in the DB or + // changing the schema to Modified Preorder Tree Traversal, + // and I don't know if we'll actually need it anywhere else. + obj2.level = desc[j].level; + toReturn.push(obj2); } } diff --git a/chrome/content/zotero/xpcom/schema.js b/chrome/content/zotero/xpcom/schema.js index 25f5d62b7..0ac3ae71a 100644 --- a/chrome/content/zotero/xpcom/schema.js +++ b/chrome/content/zotero/xpcom/schema.js @@ -761,6 +761,29 @@ Zotero.Schema = new function(){ Zotero.DB.query("INSERT INTO itemNotes SELECT * FROM itemNotesTemp") Zotero.DB.query("DROP TABLE itemNotesTemp"); } + + if (i==20) { + Zotero.DB.query("UPDATE itemData SET fieldID=91 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=13) AND fieldID=12;"); + Zotero.DB.query("UPDATE itemData SET fieldID=92 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=15) AND fieldID=60;"); + Zotero.DB.query("UPDATE itemData SET fieldID=93 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=16) AND fieldID=60;"); + Zotero.DB.query("UPDATE itemData SET fieldID=94 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=16) AND fieldID=4;"); + Zotero.DB.query("UPDATE itemData SET fieldID=95 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=16) AND fieldID=10;"); + Zotero.DB.query("UPDATE itemData SET fieldID=96 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=17) AND fieldID=14;"); + Zotero.DB.query("UPDATE itemData SET fieldID=97 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=17) AND fieldID=4;"); + Zotero.DB.query("UPDATE itemData SET fieldID=98 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=17) AND fieldID=10;"); + Zotero.DB.query("UPDATE itemData SET fieldID=99 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=18) AND fieldID=60;"); + Zotero.DB.query("UPDATE itemData SET fieldID=100 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=20) AND fieldID=14;"); + Zotero.DB.query("UPDATE itemData SET fieldID=101 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=20) AND fieldID=60;"); + Zotero.DB.query("UPDATE itemData SET fieldID=102 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=19) AND fieldID=7;"); + Zotero.DB.query("UPDATE itemData SET fieldID=50 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=19) AND fieldID=60;"); + Zotero.DB.query("UPDATE itemData SET fieldID=104 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=25) AND fieldID=12;"); + Zotero.DB.query("UPDATE itemData SET fieldID=105 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=29) AND fieldID=60;"); + Zotero.DB.query("UPDATE itemData SET fieldID=105 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=30) AND fieldID=60;"); + Zotero.DB.query("UPDATE itemData SET fieldID=105 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=31) AND fieldID=60;"); + Zotero.DB.query("UPDATE itemData SET fieldID=107 WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=23) AND fieldID=12;"); + Zotero.DB.query("INSERT OR IGNORE INTO itemData SELECT itemID, 52, value FROM itemData WHERE fieldID IN (14, 52) AND itemID IN (SELECT itemID FROM items WHERE itemTypeID=19) LIMIT 1"); + Zotero.DB.query("DELETE FROM itemData WHERE itemID IN (SELECT itemID FROM items WHERE itemTypeID=19) AND fieldID=14"); + } } _updateSchema('userdata'); diff --git a/chrome/content/zotero/xpcom/search.js b/chrome/content/zotero/xpcom/search.js index 2a0adeb13..7771e837d 100644 --- a/chrome/content/zotero/xpcom/search.js +++ b/chrome/content/zotero/xpcom/search.js @@ -577,13 +577,27 @@ Zotero.Search.prototype._buildQuery = function(){ switch (condition['name']){ case 'field': case 'datefield': + case 'numberfield': if (!condition['alias']){ break; } - condSQL += 'fieldID=? AND '; - condSQLParams.push( - Zotero.ItemFields.getID(condition['alias']) - ); + + var typeFields = Zotero.ItemFields.getTypeFieldsFromBase(condition['alias']); + if (typeFields) { + condSQL += 'fieldID IN ('; + for each(var fieldID in typeFields) { + condSQL += '?,'; + condSQLParams.push(fieldID); + } + condSQL = condSQL.substr(0, condSQL.length - 1); + condSQL += ') AND '; + } + else { + condSQL += 'fieldID=? AND '; + condSQLParams.push( + Zotero.ItemFields.getID(condition['alias']) + ); + } break; case 'collectionID': @@ -973,6 +987,7 @@ Zotero.SearchConditions = new function(){ this.get = get; this.getStandardConditions = getStandardConditions; this.hasOperator = hasOperator; + this.getLocalizedName = getLocalizedName; this.parseSearchString = parseSearchString; this.parseCondition = parseCondition; @@ -980,6 +995,8 @@ Zotero.SearchConditions = new function(){ var _conditions = []; var _standardConditions = []; + var self = this; + /* * Define the advanced search operators */ @@ -1281,23 +1298,29 @@ Zotero.SearchConditions = new function(){ var sortKeys = []; var sortValues = []; + var baseMappedFields = Zotero.ItemFields.getBaseMappedFields(); + // Separate standard conditions for menu display for (var i in _conditions){ - // If explicitly special or a template master (e.g. 'field') or - // no table and not explicitly unspecial, skip + var fieldID = false; + if (['field', 'datefield', 'numberfield'].indexOf(_conditions[i]['name']) != -1) { + fieldID = Zotero.ItemFields.getID(i); + } + + // If explicitly special... if (_conditions[i]['special'] || + // or a template master (e.g. 'field')... (_conditions[i]['template'] && i==_conditions[i]['name']) || + // or no table and not explicitly unspecial... (!_conditions[i]['table'] && - typeof _conditions[i]['special'] == 'undefined')){ + typeof _conditions[i]['special'] == 'undefined') || + // or field is a type-specific version of a base field... + (fieldID && baseMappedFields.indexOf(fieldID) != -1)) { + // ...then skip continue; } - try { - var localized = Zotero.getString('searchConditions.' + i) - } - catch (e){ - var localized = Zotero.getString('itemFields.' + i); - } + var localized = self.getLocalizedName(i); sortKeys.push(localized); sortValues[localized] = { @@ -1366,6 +1389,16 @@ Zotero.SearchConditions = new function(){ } + function getLocalizedName(str) { + try { + return Zotero.getString('searchConditions.' + str) + } + catch (e) { + return Zotero.getString('itemFields.' + str); + } + } + + /* * Parses a search into words and "double-quoted phrases" * diff --git a/chrome/locale/en-US/zotero/zotero.properties b/chrome/locale/en-US/zotero/zotero.properties index 4423d7a21..f041814fd 100644 --- a/chrome/locale/en-US/zotero/zotero.properties +++ b/chrome/locale/en-US/zotero/zotero.properties @@ -168,7 +168,7 @@ itemFields.issueDate = Issue Date itemFields.references = References itemFields.legalStatus = Legal Status itemFields.codeNumber = Code Number -itemFields.artworkMedium = Artwork Medium +itemFields.artworkMedium = Medium itemFields.number = Number itemFields.artworkSize = Artwork Size itemFields.repository = Repository @@ -199,6 +199,22 @@ itemFields.language = Language itemFields.programmingLanguage = Language itemFields.university = University itemFields.abstract = Abstract +itemFields.websiteTitle = Website Title +itemFields.reportNumber = Report Number +itemFields.billNumber = Bill Number +itemFields.codeVolume = Code Volume +itemFields.codePages = Code Pages +itemFields.dateDecided = Date Decided +itemFields.reporterVolume = Reporter Volume +itemFields.firstPage = First Page +itemFields.documentNumber = Document Number +itemFields.dateEnacted = Date Enacted +itemFields.publicLawNumber = Public Law Number +itemFields.country = Country +itemFields.applicationNumber = Application Number +itemFields.forumTitle = Forum/Listserv Title +itemFields.episodeNumber = Episode Number +itemFields.blogTitle = Blog Title creatorTypes.author = Author creatorTypes.contributor = Contributor @@ -279,27 +295,32 @@ searchOperator.isBefore = is before searchOperator.isAfter = is after searchOperator.isInTheLast = is in the last +searchConditions.tooltip.fields = Fields: searchConditions.collectionID = Collection searchConditions.itemTypeID = Item Type searchConditions.tag = Tag searchConditions.note = Note searchConditions.childNote = Child Note searchConditions.creator = Creator +searchConditions.type = Type searchConditions.thesisType = Thesis Type searchConditions.reportType = Report Type searchConditions.videoRecordingType = Video Recording Type +searchConditions.audioFileType = Audio File Type searchConditions.audioRecordingType = Audio Recording Type searchConditions.letterType = Letter Type searchConditions.interviewMedium = Interview Medium searchConditions.manuscriptType = Manuscript Type searchConditions.presentationType = Presentation Type searchConditions.mapType = Map Type +searchConditions.medium = Medium +searchConditions.artworkMedium = Artwork Medium searchConditions.dateModified = Date Modified searchConditions.fulltextContent = Attachment Content searchConditions.programmingLanguage = Programming Language -searchConditions.audioFileType = Audio File Type searchConditions.fileTypeID = Attachment File Type + exportOptions.exportNotes = Export Notes exportOptions.exportFileData = Export Files diff --git a/chrome/skin/default/zotero/bindings/search.css b/chrome/skin/default/zotero/bindings/search.css new file mode 100644 index 000000000..5c9fb8bfa --- /dev/null +++ b/chrome/skin/default/zotero/bindings/search.css @@ -0,0 +1,67 @@ +#search-box +{ + width: 60em; +} + +#search-condition menulist[id="operatorsmenu"] +{ + width: 15em; +} + +#condition-tooltips tooltip +{ + background: red !important; +} + +#condition-tooltips row > label +{ + font-weight: bold; +} + +#search-textbox toolbarbutton +{ + padding: 0; + cursor: default; +} + +#search-textbox:not([hasOptions=true]) toolbarbutton +{ + display: none; +} + +#search-textbox .toolbarbutton-text +{ + margin: 0; + padding: 0; +} + +#search-textbox .toolbarbutton-menu-dropmarker +{ + padding: 0 2px; +} + +#search-in-the-last textbox +{ + min-width: 3em; +} + +#zotero-advanced-search-dialog +{ + padding: 8px 8px 14px; + height: 400px; +} + +#zotero-advanced-search-dialog #zotero-search-buttons +{ + margin: 3px 0; +} + +#zotero-advanced-search-dialog checkbox +{ + margin-right: .5em; +} + +#zotero-advanced-search-dialog #zotero-items-tree +{ + min-height: 170px; +} diff --git a/chrome/skin/default/zotero/zotero.css b/chrome/skin/default/zotero/zotero.css index f9c14c43c..f40616af7 100644 --- a/chrome/skin/default/zotero/zotero.css +++ b/chrome/skin/default/zotero/zotero.css @@ -21,7 +21,6 @@ padding:0; } - #zotero-toolbar-button { list-style-image: url('chrome://zotero/skin/zotero-z-24px.png'); @@ -54,7 +53,6 @@ toolbar[iconsize="small"] #zotero-toolbar-button:active /* Bindings */ - textbox[type="conditional-timed"] { -moz-binding: url('chrome://zotero/content/bindings/conditional-timed-textbox.xml#conditional-timed-textbox'); @@ -94,7 +92,6 @@ seealsobox zoterosearch { -moz-binding: url('chrome://zotero/content/bindings/zoterosearch.xml#search-box'); - width:60em; } zoterotagselector @@ -108,48 +105,17 @@ searchcondition -moz-binding: url('chrome://zotero/content/bindings/zoterosearch.xml#search-condition'); } -searchcondition menulist[id="operatorsmenu"] -{ - width:15em; -} - zoterosearchtextbox { -moz-binding: url('chrome://zotero/content/bindings/zoterosearch.xml#search-textbox'); } -zoterosearchtextbox toolbarbutton -{ - padding:0; - cursor:default; -} - -zoterosearchtextbox:not([hasOptions=true]) toolbarbutton -{ - display:none; -} - -zoterosearchtextbox .toolbarbutton-text -{ - margin:0; - padding:0; -} - -zoterosearchtextbox .toolbarbutton-menu-dropmarker -{ - padding:0 2px; -} zoterosearchagefield { -moz-binding: url('chrome://zotero/content/bindings/zoterosearch.xml#search-in-the-last'); } -zoterosearchagefield textbox -{ - min-width:3em; -} - .zotero-clicky { -moz-border-radius: 6px; @@ -217,26 +183,4 @@ zoterosearchagefield textbox .zotero-scrape-popup-collection { list-style-image: url('chrome://zotero/skin/treesource-collection.png'); -} - - -#zotero-advanced-search-dialog -{ - padding: 8px 8px 14px; - height: 400px; -} - -#zotero-advanced-search-dialog #zotero-search-buttons -{ - margin: 3px 0; -} - -#zotero-advanced-search-dialog checkbox -{ - margin-right: .5em; -} - -#zotero-advanced-search-dialog #zotero-items-tree -{ - min-height: 170px; } \ No newline at end of file diff --git a/system.sql b/system.sql index 5bfb89256..ca4e6ca7e 100644 --- a/system.sql +++ b/system.sql @@ -1,4 +1,4 @@ --- 12 +-- 13 -- This file creates system tables that can be safely wiped and reinitialized -- at any time, as long as existing ids are preserved. @@ -242,6 +242,24 @@ INSERT INTO fields VALUES (87,'language',NULL); INSERT INTO fields VALUES (88,'programmingLanguage',NULL); INSERT INTO fields VALUES (89,'university',NULL); INSERT INTO fields VALUES (90,'abstract',NULL); +INSERT INTO fields VALUES (91,'websiteTitle',NULL); +INSERT INTO fields VALUES (92,'reportNumber',NULL); +INSERT INTO fields VALUES (93,'billNumber',NULL); +INSERT INTO fields VALUES (94,'codeVolume',NULL); +INSERT INTO fields VALUES (95,'codePages',NULL); +INSERT INTO fields VALUES (96,'dateDecided',NULL); +INSERT INTO fields VALUES (97,'reporterVolume',NULL); +INSERT INTO fields VALUES (98,'firstPage',NULL); +INSERT INTO fields VALUES (99,'documentNumber',NULL); +INSERT INTO fields VALUES (100,'dateEnacted',NULL); +INSERT INTO fields VALUES (101,'publicLawNumber',NULL); +INSERT INTO fields VALUES (102,'country',NULL); +INSERT INTO fields VALUES (103,'applicationNumber',NULL); +INSERT INTO fields VALUES (104,'forumTitle',NULL); +INSERT INTO fields VALUES (105,'episodeNumber',NULL); +INSERT INTO fields VALUES (107,'blogTitle',NULL); +INSERT INTO fields VALUES (108,'type',NULL); +INSERT INTO fields VALUES (109,'medium',NULL); INSERT INTO itemTypeFields VALUES (2, 90, NULL, 1); INSERT INTO itemTypeFields VALUES (2, 3, NULL, 2); @@ -406,7 +424,7 @@ INSERT INTO itemTypeFields VALUES (12, 27, NULL, 10); INSERT INTO itemTypeFields VALUES (12, 2, NULL, 11); INSERT INTO itemTypeFields VALUES (12, 22, NULL, 12); INSERT INTO itemTypeFields VALUES (13, 90, NULL, 1); -INSERT INTO itemTypeFields VALUES (13, 12, NULL, 2); +INSERT INTO itemTypeFields VALUES (13, 91, NULL, 2); INSERT INTO itemTypeFields VALUES (13, 70, NULL, 3); INSERT INTO itemTypeFields VALUES (13, 14, NULL, 4); INSERT INTO itemTypeFields VALUES (13, 1, NULL, 5); @@ -417,12 +435,12 @@ INSERT INTO itemTypeFields VALUES (13, 22, NULL, 9); INSERT INTO itemTypeFields VALUES (14, 27, NULL, 1); INSERT INTO itemTypeFields VALUES (14, 1, NULL, 2); INSERT INTO itemTypeFields VALUES (15, 90, NULL, 1); -INSERT INTO itemTypeFields VALUES (15, 60, NULL, 2); +INSERT INTO itemTypeFields VALUES (15, 92, NULL, 2); INSERT INTO itemTypeFields VALUES (15, 32, NULL, 3); INSERT INTO itemTypeFields VALUES (15, 28, NULL, 4); INSERT INTO itemTypeFields VALUES (15, 7, NULL, 5); INSERT INTO itemTypeFields VALUES (15, 31, NULL, 6); -INSERT INTO itemTypeFields VALUES (15, 14, NULL, 7); +INSERT INTO itemTypeFields VALUES (15, 100, NULL, 7); INSERT INTO itemTypeFields VALUES (15, 10, NULL, 8); INSERT INTO itemTypeFields VALUES (15, 87, NULL, 9); INSERT INTO itemTypeFields VALUES (15, 1, NULL, 10); @@ -433,11 +451,11 @@ INSERT INTO itemTypeFields VALUES (15, 62, NULL, 14); INSERT INTO itemTypeFields VALUES (15, 2, NULL, 15); INSERT INTO itemTypeFields VALUES (15, 22, NULL, 16); INSERT INTO itemTypeFields VALUES (16, 90, NULL, 1); -INSERT INTO itemTypeFields VALUES (16, 60, NULL, 2); +INSERT INTO itemTypeFields VALUES (16, 93, NULL, 2); INSERT INTO itemTypeFields VALUES (16, 36, NULL, 3); -INSERT INTO itemTypeFields VALUES (16, 4, NULL, 4); +INSERT INTO itemTypeFields VALUES (16, 94, NULL, 4); INSERT INTO itemTypeFields VALUES (16, 15, NULL, 5); -INSERT INTO itemTypeFields VALUES (16, 10, NULL, 6); +INSERT INTO itemTypeFields VALUES (16, 95, NULL, 6); INSERT INTO itemTypeFields VALUES (16, 41, NULL, 7); INSERT INTO itemTypeFields VALUES (16, 40, NULL, 8); INSERT INTO itemTypeFields VALUES (16, 42, NULL, 9); @@ -449,11 +467,11 @@ INSERT INTO itemTypeFields VALUES (16, 2, NULL, 14); INSERT INTO itemTypeFields VALUES (16, 22, NULL, 15); INSERT INTO itemTypeFields VALUES (17, 90, NULL, 1); INSERT INTO itemTypeFields VALUES (17, 43, NULL, 2); -INSERT INTO itemTypeFields VALUES (17, 4, NULL, 3); +INSERT INTO itemTypeFields VALUES (17, 97, NULL, 3); INSERT INTO itemTypeFields VALUES (17, 44, NULL, 4); -INSERT INTO itemTypeFields VALUES (17, 10, NULL, 5); +INSERT INTO itemTypeFields VALUES (17, 98, NULL, 5); INSERT INTO itemTypeFields VALUES (17, 42, NULL, 6); -INSERT INTO itemTypeFields VALUES (17, 14, NULL, 7); +INSERT INTO itemTypeFields VALUES (17, 96, NULL, 7); INSERT INTO itemTypeFields VALUES (17, 87, NULL, 8); INSERT INTO itemTypeFields VALUES (17, 1, NULL, 9); INSERT INTO itemTypeFields VALUES (17, 27, NULL, 10); @@ -464,7 +482,7 @@ INSERT INTO itemTypeFields VALUES (18, 46, NULL, 2); INSERT INTO itemTypeFields VALUES (18, 7, NULL, 3); INSERT INTO itemTypeFields VALUES (18, 8, NULL, 4); INSERT INTO itemTypeFields VALUES (18, 45, NULL, 5); -INSERT INTO itemTypeFields VALUES (18, 60, NULL, 6); +INSERT INTO itemTypeFields VALUES (18, 99, NULL, 6); INSERT INTO itemTypeFields VALUES (18, 10, NULL, 7); INSERT INTO itemTypeFields VALUES (18, 41, NULL, 8); INSERT INTO itemTypeFields VALUES (18, 40, NULL, 9); @@ -478,10 +496,10 @@ INSERT INTO itemTypeFields VALUES (18, 22, NULL, 16); INSERT INTO itemTypeFields VALUES (19, 90, NULL, 1); INSERT INTO itemTypeFields VALUES (19, 7, NULL, 2); INSERT INTO itemTypeFields VALUES (19, 48, NULL, 3); -INSERT INTO itemTypeFields VALUES (19, 60, NULL, 4); +INSERT INTO itemTypeFields VALUES (19, 50, NULL, 4); INSERT INTO itemTypeFields VALUES (19, 14, NULL, 5); INSERT INTO itemTypeFields VALUES (19, 10, NULL, 6); -INSERT INTO itemTypeFields VALUES (19, 50, NULL, 7); +INSERT INTO itemTypeFields VALUES (19, 103, NULL, 7); INSERT INTO itemTypeFields VALUES (19, 51, NULL, 8); INSERT INTO itemTypeFields VALUES (19, 52, NULL, 9); INSERT INTO itemTypeFields VALUES (19, 53, NULL, 10); @@ -494,7 +512,7 @@ INSERT INTO itemTypeFields VALUES (19, 22, NULL, 16); INSERT INTO itemTypeFields VALUES (20, 90, NULL, 1); INSERT INTO itemTypeFields VALUES (20, 36, NULL, 2); INSERT INTO itemTypeFields VALUES (20, 55, NULL, 3); -INSERT INTO itemTypeFields VALUES (20, 60, NULL, 4); +INSERT INTO itemTypeFields VALUES (20, 101, NULL, 4); INSERT INTO itemTypeFields VALUES (20, 14, NULL, 5); INSERT INTO itemTypeFields VALUES (20, 10, NULL, 6); INSERT INTO itemTypeFields VALUES (20, 15, NULL, 7); @@ -530,7 +548,7 @@ INSERT INTO itemTypeFields VALUES (22, 27, NULL, 15); INSERT INTO itemTypeFields VALUES (22, 2, NULL, 16); INSERT INTO itemTypeFields VALUES (22, 22, NULL, 17); INSERT INTO itemTypeFields VALUES (23, 90, NULL, 1); -INSERT INTO itemTypeFields VALUES (23, 12, NULL, 2); +INSERT INTO itemTypeFields VALUES (23, 107, NULL, 2); INSERT INTO itemTypeFields VALUES (23, 70, NULL, 3); INSERT INTO itemTypeFields VALUES (23, 14, NULL, 4); INSERT INTO itemTypeFields VALUES (23, 1, NULL, 5); @@ -546,7 +564,7 @@ INSERT INTO itemTypeFields VALUES (24, 87, NULL, 5); INSERT INTO itemTypeFields VALUES (24, 2, NULL, 6); INSERT INTO itemTypeFields VALUES (24, 22, NULL, 7); INSERT INTO itemTypeFields VALUES (25, 90, NULL, 1); -INSERT INTO itemTypeFields VALUES (25, 12, NULL, 2); +INSERT INTO itemTypeFields VALUES (25, 104, NULL, 2); INSERT INTO itemTypeFields VALUES (25, 79, NULL, 3); INSERT INTO itemTypeFields VALUES (25, 14, NULL, 4); INSERT INTO itemTypeFields VALUES (25, 1, NULL, 5); @@ -602,7 +620,7 @@ INSERT INTO itemTypeFields VALUES (28, 27, NULL, 17); INSERT INTO itemTypeFields VALUES (28, 22, NULL, 18); INSERT INTO itemTypeFields VALUES (29, 90, NULL, 1); INSERT INTO itemTypeFields VALUES (29, 28, NULL, 2); -INSERT INTO itemTypeFields VALUES (29, 60, NULL, 3); +INSERT INTO itemTypeFields VALUES (29, 105, NULL, 3); INSERT INTO itemTypeFields VALUES (29, 63, NULL, 4); INSERT INTO itemTypeFields VALUES (29, 7, NULL, 5); INSERT INTO itemTypeFields VALUES (29, 78, NULL, 6); @@ -618,7 +636,7 @@ INSERT INTO itemTypeFields VALUES (29, 2, NULL, 15); INSERT INTO itemTypeFields VALUES (29, 22, NULL, 16); INSERT INTO itemTypeFields VALUES (30, 90, NULL, 1); INSERT INTO itemTypeFields VALUES (30, 28, NULL, 2); -INSERT INTO itemTypeFields VALUES (30, 60, NULL, 3); +INSERT INTO itemTypeFields VALUES (30, 105, NULL, 3); INSERT INTO itemTypeFields VALUES (30, 71, NULL, 4); INSERT INTO itemTypeFields VALUES (30, 7, NULL, 5); INSERT INTO itemTypeFields VALUES (30, 78, NULL, 6); @@ -634,7 +652,7 @@ INSERT INTO itemTypeFields VALUES (30, 27, NULL, 15); INSERT INTO itemTypeFields VALUES (30, 22, NULL, 16); INSERT INTO itemTypeFields VALUES (31, 90, NULL, 1); INSERT INTO itemTypeFields VALUES (31, 28, NULL, 2); -INSERT INTO itemTypeFields VALUES (31, 60, NULL, 3); +INSERT INTO itemTypeFields VALUES (31, 105, NULL, 3); INSERT INTO itemTypeFields VALUES (31, 80, NULL, 4); INSERT INTO itemTypeFields VALUES (31, 77, NULL, 5); INSERT INTO itemTypeFields VALUES (31, 1, NULL, 6); @@ -727,11 +745,51 @@ INSERT INTO itemTypeFields VALUES (36, 27, NULL, 18); INSERT INTO itemTypeFields VALUES (36, 2, NULL, 19); INSERT INTO itemTypeFields VALUES (36, 22, NULL, 20); +INSERT INTO baseFieldMappings VALUES (16, 4, 94); -- bill/volume/codeVolume +INSERT INTO baseFieldMappings VALUES (17, 4, 97); -- case/volume/reporterVolume +INSERT INTO baseFieldMappings VALUES (19, 7, 102); -- patent/place/country +INSERT INTO baseFieldMappings VALUES (7, 8, 89); -- thesis/publisher/university +INSERT INTO baseFieldMappings VALUES (15, 8, 31); -- report/publisher/institution INSERT INTO baseFieldMappings VALUES (26, 8, 72); -- audioRecording/publisher/label INSERT INTO baseFieldMappings VALUES (28, 8, 76); -- videoRecording/publisher/studio INSERT INTO baseFieldMappings VALUES (30, 8, 78); -- radioBroadcast/publisher/network INSERT INTO baseFieldMappings VALUES (32, 8, 83); -- computerProgram/publisher/company -INSERT INTO baseFieldMappings VALUES (7, 8, 89); -- thesis/publisher/university +INSERT INTO baseFieldMappings VALUES (13, 12, 91); -- webpage/publicationTitle/websiteTitle +INSERT INTO baseFieldMappings VALUES (19, 14, 52); -- patent/date/issueDate +INSERT INTO baseFieldMappings VALUES (16, 10, 95); -- bill/pages/codePages +INSERT INTO baseFieldMappings VALUES (17, 10, 98); -- case/pages/firstPage +INSERT INTO baseFieldMappings VALUES (23, 12, 107); -- blogPost/publicationTitle/blogTitle +INSERT INTO baseFieldMappings VALUES (25, 12, 104); -- forumPost/publicationTitle/forumTitle +INSERT INTO baseFieldMappings VALUES (35, 12, 85); -- encyclopediaEntry/publicationTitle/encyclopediaTitle +INSERT INTO baseFieldMappings VALUES (36, 12, 86); -- dictionaryEntry/publicationTitle/dictionaryTitle +INSERT INTO baseFieldMappings VALUES (17, 14, 96); -- case/date/dateDecided +INSERT INTO baseFieldMappings VALUES (20, 14, 100); -- statute/date/dateEnacted +INSERT INTO baseFieldMappings VALUES (15, 60, 92); -- report/number/reportNumber +INSERT INTO baseFieldMappings VALUES (16, 60, 93); -- bill/number/billNumber +INSERT INTO baseFieldMappings VALUES (18, 60, 99); -- hearing/number/documentNumber +INSERT INTO baseFieldMappings VALUES (19, 60, 50); -- patent/number/patentNumber +INSERT INTO baseFieldMappings VALUES (20, 60, 101); -- statute/number/publicLawNumber +INSERT INTO baseFieldMappings VALUES (29, 60, 105); -- tvBroadcast/number/episodeNumber +INSERT INTO baseFieldMappings VALUES (30, 60, 105); -- radioBroadcast/number/episodeNumber +INSERT INTO baseFieldMappings VALUES (31, 60, 105); -- podcast/number/episodeNumber +INSERT INTO baseFieldMappings VALUES (7, 108, 69); -- thesis/type/thesisType +INSERT INTO baseFieldMappings VALUES (8, 108, 65); -- letter/type/letterType +INSERT INTO baseFieldMappings VALUES (9, 108, 66); -- manuscript/type/manuscriptType +INSERT INTO baseFieldMappings VALUES (11, 108, 63); -- film/type/videoRecordingType +INSERT INTO baseFieldMappings VALUES (13, 108, 70); -- webpage/type/websiteType +INSERT INTO baseFieldMappings VALUES (15, 108, 32); -- report/type/reportType +INSERT INTO baseFieldMappings VALUES (22, 108, 67); -- map/type/mapType +INSERT INTO baseFieldMappings VALUES (23, 108, 70); -- blogPost/type/websiteType +INSERT INTO baseFieldMappings VALUES (25, 108, 79); -- forumPost/type/postType +INSERT INTO baseFieldMappings VALUES (26, 108, 71); -- audioRecording/type/audioRecordingType +INSERT INTO baseFieldMappings VALUES (27, 108, 74); -- presentation/type/presentationType +INSERT INTO baseFieldMappings VALUES (28, 108, 63); -- videoRecording/type/videoRecodingType +INSERT INTO baseFieldMappings VALUES (29, 108, 63); -- tvBroadcast/type/videoRecodingType +INSERT INTO baseFieldMappings VALUES (30, 108, 71); -- radioBroadcast/type/audioRecordingType +INSERT INTO baseFieldMappings VALUES (31, 108, 80); -- podcast/type/audioFileType +INSERT INTO baseFieldMappings VALUES (10, 109, 64); -- interview/medium/interviewMedium +INSERT INTO baseFieldMappings VALUES (12, 109, 59); -- artwork/medium/artworkMedium + INSERT INTO creatorTypes VALUES(1, "author"); INSERT INTO creatorTypes VALUES(2, "contributor"); diff --git a/userdata.sql b/userdata.sql index 5bb9324cd..d6758e685 100644 --- a/userdata.sql +++ b/userdata.sql @@ -1,4 +1,4 @@ --- 19 +-- 20 -- This file creates tables containing user-specific data -- any changes -- to existing tables made here must be mirrored in transition steps in