Dan Stillman
480f9d56f6
Fixes #14 , Add a callNumber field to all item types, and fixes #75 , Add an "extra" field to all item types
...
I also added accessionNumber to all types (except website), since that's what Endnote does, but we may or may not think that's necessary
2006-06-25 18:10:27 +00:00
Simon Kornblith
5e73dcdd2e
- Search results scraping for WorldCat.
...
- Make scraperJavaScript run on reload again, because it makes debugging easier
- There's not actually a memory leak in the proxyMonitor code.
2006-06-25 16:13:47 +00:00
Dan Stillman
dc8c695855
Fixes #11 , Observe user pref to turn off automatic scraper updates
2006-06-25 07:34:03 +00:00
Dan Stillman
691993a6c3
Added Scholar.Prefs, a front-end to the preferences service with simple get(pref) and set(pref, value) methods that will retrieve and set based on the type of the default value, which I believe should generally should fine -- for more fine-grained control, use Scholar.Prefs.prefBranch to access the branch directly
...
Scholar.Prefs also registers itself as a preferences observer and can be used to trigger actions when certain prefs are changed by editing the switch statement in the observe() method
Updated preferences.js to use Scholar.Prefs
2006-06-25 07:31:01 +00:00
Dan Stillman
b679bc6327
Fixes #62 , Cache notes count for items
2006-06-25 05:43:00 +00:00
Dan Stillman
a207bf3817
Fixed error in History.add() call in Item.save() that was breaking new item inserts
2006-06-25 05:26:53 +00:00
Simon Kornblith
9e78d62b13
Better handling of itemTypes, and improved date handling in PubMed scraper.
2006-06-25 05:03:01 +00:00
David Norton
f941bc192c
Switched Info and Notes tab back to their places. :-)
2006-06-25 04:57:52 +00:00
Dan Stillman
b2247e1dd2
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
2006-06-25 04:35:11 +00:00
Simon Kornblith
22eebc6cdf
Addresses #68 , figure out way to have scrapers work for gated resources behind proxies. We can now access pages through an EZProxy. We need to know what alternatives to EZProxy exist in order to support them. Also, fixes some spacing issues in browser.js.
2006-06-25 04:30:43 +00:00
Dan Stillman
b8ad832e74
Begin to work undo functionality into data layer -- currently just for Item.save()
...
History.undo()/redo() now reload the item, though changes won't show in open metadata pane due to #71
refs #67
2006-06-25 04:11:19 +00:00
Simon Kornblith
f897564f0e
Temporary fix to get ingested item types right until #66 is implemented
2006-06-24 21:44:36 +00:00
Simon Kornblith
40fabb888c
Addresses #65 , back button fools ingester, and fixes bugs loading new tabs in the background.
2006-06-24 21:39:36 +00:00
Simon Kornblith
260ce80086
- Search results scraping for TLC. This is the last of the library scrapers.
...
- Minor fixes to ingester utilities.
2006-06-24 15:38:53 +00:00
Dan Stillman
97940c7470
Replaced all instances of "Firefox Scholar" (not counting the repository URL) with "Scholar for Firefox" for now
2006-06-24 09:08:12 +00:00
Dan Stillman
720960feb9
Addresses #5 , Add as many item types as possible
...
New item types from Elena
2006-06-24 08:28:37 +00:00
Dan Stillman
22df47a0d3
A rough interface to add, remove and reorder item type fields -- at the moment just to make my life easier, but eventually could be adapted to allow end-user type/field editing, if we decide that's necessary
2006-06-24 08:23:54 +00:00
Dan Stillman
42578ace59
Fixes #61 , creator caching sometimes malfunctions
2006-06-23 22:00:39 +00:00
Simon Kornblith
2a74e88416
- Make generalized function for finding search results case insensitive
...
- Scrape DRA search results
2006-06-23 20:09:48 +00:00
Simon Kornblith
098078627c
- Make events listening for DOMContentLoaded listen for load, because DOMContentLoaded does not seem ready for prime time (hey, it's undocumented, what can you expect)
...
- Make Amazon scraper work with multiple documents
- Fix bugs in processDocuments
- Make Scholar.Ingester.Utilities.getItemArray() willing to take an array of DOM nodes to search for links, and finally take advantage of the fact that objects have no length
2006-06-23 03:02:30 +00:00
Simon Kornblith
470f7c463f
The Voyager scraper now actually works on the search results page.
2006-06-22 20:50:57 +00:00
Simon Kornblith
3890e5f122
- Made ingester automatically create hidden browser objects, given a window object. This should make things much easier for both David and me.
...
- Multiple item detection code is now a part of the scraperJavaScript, rather than the scrapeDetectCode, and code to choose which items to add is part of Scholar.Ingester.Utilities, accessible from inside scrapers. The alternative approach would result in one request (or, in the case of JSTOR, three requests) per new item, while in some cases (e.g. Voyager) only one request is necessary to get all of the items.
2006-06-22 15:50:46 +00:00
Dan Stillman
726364d091
Scholar.History -- i.e. undo/redo functionality
...
Partially integrated into data layer, but I'm waiting to commit that part until I'm sure it won't break everything
2006-06-22 14:01:54 +00:00
Simon Kornblith
ca3a0e6e5d
Beginnings of search result scraping (does not yet actually do the scraping, but does present the menu)
2006-06-22 02:43:40 +00:00
David Norton
428eab6a95
A cog menu each for collections and items (the same as the contextual menu, for now)
...
Moved the capture icon into the URL bar (invisible until you visit a scrapable page. Currently just displays a Book, but will change to the correct item types in the future?)
2006-06-22 00:13:21 +00:00
David Norton
718d613cdc
Command-shift-S should now work as soon as you start Firefox.
...
Lots of localization, moving style out of XUL and into overlay.css
2006-06-21 23:22:37 +00:00
David Norton
27025befef
Added "Disable automatic scraper updates" preference. (Up to Dan to implement this)
2006-06-21 22:31:52 +00:00
David Norton
77b8bfd0b2
Added tabs: Tags, Files (nothing there yet)
...
Added 'search options' toolbar on quick search (doesn't do anything yet)
2006-06-21 22:23:42 +00:00
Simon Kornblith
9a9621f39d
Make net appear even before first page has loaded
2006-06-21 18:19:49 +00:00
Dan Stillman
6b2d9bb3e6
Don't break the extension right before we show it
2006-06-21 16:06:41 +00:00
Dan Stillman
336f92a832
Set repository check timer to 1 hour during development
2006-06-21 16:04:45 +00:00
Simon Kornblith
6d1e447154
- Remove load eventListener after it has been called once
...
- Capture editors from Google Books
2006-06-21 15:18:18 +00:00
Simon Kornblith
7d3deb5b9f
- Make Scholar.Ingester.Utilities.loadDocument() attach an event handler to load rather than DOMContentLoaded to resolve an issue with the Ex Libris/Aleph scraper (VCU)
...
- When possible, corporate creators/contributors are categorized with their own RDF types (prefixDummy + "corporateCreator/corporateContributor)
- Remove extraneous debug code in extensions
2006-06-21 01:41:07 +00:00
Dan Stillman
6c89acbe0d
Scholar.inArray(needle, haystack) and Scholar.arraySearch(needle, haystack) -- versions of the PHP functions for JS
2006-06-20 17:32:40 +00:00
David Norton
6b002f7566
Got some new icons for the lists
...
Toolbar buttons are now icons
2006-06-20 17:08:30 +00:00
Simon Kornblith
09d79d6dd7
Fix overly optimistic JSTOR scraper
2006-06-20 17:06:41 +00:00
Dan Stillman
a3df0c39e2
- DB parameters can now be bound using the native JS type rather than by specifying the type explicitly (e.g. Scholar.DB.query(sql, [1, 2, "hello"]) -- for use when the data is generated internally and trusted, obviously
...
- Don't try to display an SQLite error when it's "not an error" (i.e. when the error is in something else)
- Switch to nsIFile instead of nsILocalFile to retrieve the profile directory
2006-06-20 15:42:01 +00:00
Dan Stillman
d239e6e4ba
Typo in trigger() call in Collection.addItem() (thanks David)
2006-06-20 15:28:20 +00:00
Dan Stillman
95ca76545f
QA testing of extension performance aboard trains
...
Fix in Collection.erase() -- when the DB methods started returning values in their native type, the collection id became an int rather than a string and "new Array(this._id)" became a length declaration rather than an elements declaration
2006-06-20 15:23:44 +00:00
David Norton
8f38c09c2e
Ignore case on sorting.
2006-06-20 14:36:49 +00:00
Simon Kornblith
5af10b1061
- Fix small bug in ingester interface
2006-06-20 14:16:15 +00:00
David Norton
9f1cbf3177
Added back the Add menu with itemTypes.
...
Minor text changes
2006-06-20 13:59:59 +00:00
Simon Kornblith
c983a8e7e4
- Re-named Scholar.Ingester.Interface to Scholar_Ingester_Interface (since Scholar object is defined in XPCOM and thus global)
2006-06-20 00:52:15 +00:00
David Norton
d87f68e8e8
Double click an item to un-collapse the item pane.
...
The item pane remembers whether or not it was collapsed.
2006-06-19 18:43:21 +00:00
David Norton
8d50874d6b
[interface] You can now change an item's type via menu.
2006-06-19 15:45:32 +00:00
David Norton
c345b90b9a
Contextual menus - Collections, Items.
...
Moved close button to a more sensible place.
On Item Add: Clear search text, and select Info tab.
Minor function renames.
2006-06-19 15:00:13 +00:00
Simon Kornblith
20369f41b3
- Move commonly used scraper functions to ingester.js, rather than re-defining them in each scraper. This breaks Piggy Bank compatibility in our scrapers, but we will still be able to export our scrapers in a Piggy Bank compatible form.
...
- Better handling of scraper RDF to item mapping.
- Improved date handling. All scrapers now return ISO-style dates when possible.
2006-06-18 19:04:32 +00:00
Simon Kornblith
3d881eec13
- Make scrapers return standard ISO-style YYYY-MM-DD dates. Still need to work on journal article scrapers.
...
- Ingester lets callback function save items, rather than saving them itself.
- Better handling of multiple items in API, although no scrapers currently implement this.
2006-06-17 21:21:15 +00:00
David Norton
953b1f9d20
Lots of little things:
...
- Fix item modify notify() on 1st row.
- Ensure that new items are visible when added.
- New functionality for creating new items (prevents a lot of problems).
- Number-based fields display properly.
- Fixed bug when creating and saving the first notes on an item.
- New notes won't save empty.
2006-06-17 00:57:50 +00:00
Dan Stillman
32ce0da44a
Restore the statement.reset() in valueQuery() that I accidentally deleted in r216
2006-06-16 22:17:46 +00:00
Dan Stillman
bfa25cae37
Display SQLite error in exceptions thrown from commitTransaction() and rollbackTransaction() (like the ones on field value updates that I'm trying to figure out at the moment)
2006-06-16 22:15:07 +00:00
Dan Stillman
e8ed4281f9
Change the DB query functions to return values of the actual types they are, rather than to return everything as strings -- this will prevent the need for parseInt on COUNT(*) values, etc. and is generally better
...
This will temporarily break the display of numeric fields on the interface side
2006-06-16 21:44:41 +00:00
Dan Stillman
936ef86584
Fix Item.numNotes() and Item.getNotes() to work on items not yet in the DB (return 0 and [], respectively)
2006-06-16 21:33:03 +00:00
David Norton
bf0626cb58
[interface] All editing elements that look like labels but provide functionality now offer hover feedback
...
[fix] You shouldn't lose your changes if you select another item in the middle of editing a field.
[fix] The dropdown menu to select notes doesn't steal the focus
2006-06-16 17:21:30 +00:00
David Norton
380584986a
[fix] If you do a sort, modify a note, etc. it does not reload the selected item
...
[interface/fix] There will always be a secondary sort on date modified. (fixes the infamous Turkle Toggle issue once and for all)
2006-06-16 16:30:03 +00:00
Dan Stillman
4904c04e3e
Add dateCreated and dateModified columns to itemNotes
...
Update itemNotes.dateModified on item update
2006-06-16 16:09:18 +00:00
Dan Stillman
3f27a12b0f
Trigger notify('modify', 'item', noteID) on note modify
...
Added method Item.updateDateModified to just change the date -- used on note updates
Delete item notes on item delete
2006-06-16 15:57:52 +00:00
David Norton
942c6d5da2
[interface] Number of notes column in items tree
2006-06-16 15:27:22 +00:00
Dan Stillman
08a570a38a
Item.numNotes()
2006-06-16 15:18:01 +00:00
David Norton
3cdcf3093a
[interface] Confirms delete of note
...
[fix] Minor fix - no more exception on ItemTreeView when you hit the left or right arrow
[ignore] simplified some checking in the note code.
2006-06-16 15:15:42 +00:00
David Norton
8ff6c48001
[interface] Custom textbox binding: multiline and timed together.
...
[interface] Multiple notes: works like a charm
2006-06-16 14:39:18 +00:00
Dan Stillman
47d59f2dc1
Add note contents to search
2006-06-16 08:04:01 +00:00
Dan Stillman
7a8ddb1beb
Fix logic in _noteToTitle in itemPane.js (if no newline in note the title would be "Untitled Note") -- though it'd be better to do what Stickies do and just find the first bit of text, even if it's not on the
...
first line (regex is probably easiest)
2006-06-16 07:44:55 +00:00
Dan Stillman
fd85af40f8
Many-to-one item note support in the schema and data layer -- still some issues on (I think) the interface side
2006-06-16 07:32:48 +00:00
David Norton
e417d8e690
[interface] Although commented out, code in place to accept URL drags into collections (waiting on an Ingester.scrapeURL function)
...
[interface] Multi-notes functionality (waiting on data layer)
[docs] Major internal documentation written for itemTreeView.js and collectionTreeView.js (this actually does work ;-))
2006-06-15 22:35:48 +00:00
Dan Stillman
f635ee7788
Make the retry interval 60 minutes, not 60 seconds
2006-06-15 21:24:04 +00:00
Dan Stillman
8e97675cc9
Added a timer to run repository checks while the browser is up
...
Added a separate retry interval so that the extension retries sooner after failures (browser offline, request failure, etc.)
Revision 200 -- w00t i am victorious
2006-06-15 21:06:24 +00:00
Dan Stillman
2d20fe717d
Added Scholar.HTTP.browserIsOffline() and changed doGet() and doPost() to return false if so
2006-06-15 16:52:46 +00:00
Dan Stillman
11a056ecd4
_getDBVersion() caches the version number, so make sure _updateDBVersion() updates it
2006-06-15 16:28:11 +00:00
Dan Stillman
70216ea2c7
- Added automatic scraper update mechanism (more details on Basecamp: http://chnm.grouphub.com/C2687015 )
...
- Removed localLastUpdated field from scrapers table and renamed centralLastUpdated to lastUpdated; updated scraper queries accordingly
- Added query in scrapers.sql to update version table 'repository' row to prevent immediate downloads of newly installed scrapers
- Get version property from extension manager in Scholar.init() and assign to Scholar.version
2006-06-15 06:13:02 +00:00
David Norton
70be7cf8fd
Switched Notes and Info tabs.
...
The tabbox should always fill the allotted space. Hopefully?
2006-06-14 17:43:02 +00:00
Dan Stillman
8ed37732c1
JS Date() takes months 0-11, for reasons that are far from clear
2006-06-14 16:59:29 +00:00
David Norton
2399f044e1
[Drag and Drop] in the Collections Tree: Now checks to make sure that the correct type is being dragged, and that you aren't dropping a folder into subfolders, etc.
...
[Drag and Drop] in Items Tree: You can drag items from one window into another, directly into the Items list.
[Editing] Close the edit box and save when you click on its label
2006-06-14 15:51:05 +00:00
Dan Stillman
c8a74e96cd
Don't be dumb
2006-06-14 15:41:25 +00:00
David Norton
3e11379c3a
Notes now automatically save - no "save" button.
...
The collections list does not resize randomly now.
The pane on the right stays open all the time - even when 0/multiple items are selected. This is to avoid frequent resizing of the items pane.
Temporarily, if the first "word" of a field's value is more than 29 characters long, it will set it to crop. This is for the long URLs, etc.
2006-06-13 20:45:30 +00:00
Dan Stillman
ba16889bb0
Moved the Scholar.Hash constructor out of the main Scholar constructor, where I had put it for some reason -- ignore
2006-06-13 15:14:22 +00:00
Dan Stillman
ca2045a305
Scholar.Date.sqlToDate(string sqldate) -- function to convert SQL-formatted date (e.g. '2006-06-13 11:03:05' or '2006-06-13') into a JS date object
2006-06-13 15:07:08 +00:00
Dan Stillman
39f9d2c3b3
Wrapper functions for XMLHTTPRequest in scholar.js, stolen and adapted slightly from Simon's ingester code (those override the mime type to text/plain and only use responseText, I assume to conform to the Piggy Bank API, so unfortunately we can't use the same ones elsewhere)
...
Scholar.HTTP.doGet(url, onStatus, onDone) and Scholar.HTTP.doPost(url, body, onStatus, onDone) -- onStatus and onDone are callbacks to call on non-200 responses and the response body, respectively
2006-06-13 14:53:38 +00:00
Dan Stillman
d42258b168
Changed schema of scrapers table to use single GUID for scraperID
...
Assigned guids to scrapers, replaced INSERT queries with REPLACE queries, and removed table DELETE query at top -- this will allow scrapers to be updated without deleting any others that may exist (e.g. that someone is developing, third-party, etc.)
2006-06-12 15:43:24 +00:00
Dan Stillman
0b1765b549
Move CreatorTypes constructor in code -- ignore
2006-06-12 13:08:36 +00:00
Dan Stillman
c24c148e0b
Cache creator type names to prevent repeated DB lookups in CreatorTypes.getTypeName()
2006-06-12 13:05:30 +00:00
Dan Stillman
5a045f5b50
Cache item type names to prevent repeated DB lookups in ItemTypes.getTypeName()
2006-06-12 12:59:25 +00:00
David Norton
b1389bfc61
[interface] Item Type column (will show up on the right if you already have Scholar installed, but on the left for all new installations.), sortable.
...
[style] Better add/remove Creator buttons.
[fix] The sorting should not randomly switch the order of two items with the same sort value (eg, Barnes vs. Barnes).
[fix] The browser should not open with two sorted columns.
2006-06-12 12:43:20 +00:00
David Norton
cebd6bde5b
[interface] Images now appear on the collections tree and items tree. (yes, they are ugly).
2006-06-09 16:36:18 +00:00
David Norton
68fed95e8f
Renamed metadataPane.js/xul to match previous change.
2006-06-09 15:54:44 +00:00
David Norton
a7b35c0286
[interface] Preliminary note editing support.
...
[other] MetadataPane renamed ScholarItemPane.
2006-06-09 15:52:40 +00:00
David Norton
fbcd247b09
Cleaned up the code in the tree views.
...
Fixed a bug on 'add' - items showing up in Library even if they were already there.
2006-06-09 14:42:53 +00:00
David Norton
9f7437f5ca
[interface] itemsTreeView correctly handles notify(erase)
...
[data access] Collection.removeItem() calls trigger() with the right type
2006-06-09 14:01:07 +00:00
David Norton
14ba1b8fbc
[interface] collection stays selected on drag-and-drop.
...
[interface] Collections notify() cleaned up a bit.
2006-06-08 21:47:33 +00:00
Dan Stillman
9daa0d3303
Added 'notes' field to fields table and sample data (changes are less messy than they look--I just put 'notes' after 'rights' and 'source' and incremented the other fieldIDs)
...
scholar.properties addition is just to keep metadata panel from breaking and could probably be removed once interface is hard-coded to not display the notes field there
2006-06-08 21:30:22 +00:00
Dan Stillman
c3acdf04a6
Don't mark item as changed if setField('') is called on an empty field (i.e. prevent unnecessary save() calls)
2006-06-08 21:08:50 +00:00
Dan Stillman
3715f2c89e
- Send a 'modify' to collections in addItem() and removeItem() when collections become or stop being empty
...
- Send a 'delete' rather than a 'remove' to itemViews when items are actually deleted (removals from collections still get 'remove' unless it's part of a collection erase)
2006-06-08 20:41:37 +00:00
David Norton
368724b7de
[interface] Collections should keep their open state on a drop.
2006-06-08 20:28:50 +00:00
Dan Stillman
7c9b1f785c
Only send itemView 'remove' notifictions for items if they're actually deleted from the DB, not if they're just removed from a collection
2006-06-08 20:02:26 +00:00
Dan Stillman
01f50b9e4b
On Collection.changeParent(), change notify() action to 'move', and always send a three-value array in the order [collectionID, previousParent, newParent] -- 2nd or 3rd param will be null if moving from/to root
2006-06-08 19:58:54 +00:00
David Norton
1336842d74
[interface] You should now be able to drop collections below the library (into root).
...
[interface] New items are automatically selected.
2006-06-08 19:34:58 +00:00
Dan Stillman
4545a5d8a8
Collection.hasDescendent(type, id) -- type is 'collection' or 'item', for now
2006-06-08 19:11:10 +00:00
Dan Stillman
15ec35c927
Reload collections (all, for now) on changeParent() to refresh hasChildCollections()
2006-06-08 18:53:49 +00:00
David Norton
1d14c69ad5
[interface] Preliminary drag-and-drop.
...
1) Items into collections.
2) Collections into collections.
Dan S, please check this out, I am getting some exceptions from the data access portion.
[interface] Temporarily, "metadata" pane on the right is not resizable.
2006-06-08 18:42:55 +00:00
Simon Kornblith
076ee0fad2
Add PubMed scraper, fix a few other small bugs
2006-06-08 01:26:40 +00:00