2006-07-26 16:42:26 +00:00
|
|
|
#scholar-toolbar-button
|
|
|
|
{
|
|
|
|
list-style-image: url('chrome://scholar/skin/toolbar-large.png');
|
|
|
|
}
|
|
|
|
|
|
|
|
#scholar-toolbar-button:active
|
|
|
|
{
|
|
|
|
list-style-image: url('chrome://scholar/skin/toolbar-large-active.png');
|
|
|
|
}
|
|
|
|
|
|
|
|
#scholar-toolbar-button[disabled="true"]
|
|
|
|
{
|
|
|
|
list-style-image: url('chrome://scholar/skin/toolbar-large-disabled.png');
|
|
|
|
}
|
|
|
|
|
|
|
|
toolbar[iconsize="small"] #scholar-toolbar-button
|
|
|
|
{
|
|
|
|
list-style-image: url('chrome://scholar/skin/toolbar-small.png');
|
|
|
|
}
|
|
|
|
|
|
|
|
toolbar[iconsize="small"] #scholar-toolbar-button:active
|
|
|
|
{
|
|
|
|
list-style-image: url('chrome://scholar/skin/toolbar-small-active.png');
|
|
|
|
}
|
|
|
|
|
|
|
|
toolbar[iconsize="small"] #scholar-toolbar-button[disabled="true"]
|
|
|
|
{
|
|
|
|
list-style-image: url('chrome://scholar/skin/toolbar-small-disabled.png');
|
|
|
|
}
|
|
|
|
|
|
|
|
#scholar-toolbar-button
|
|
|
|
{
|
|
|
|
list-style-image: url('chrome://scholar/skin/toolbar-large.png');
|
|
|
|
}
|
|
|
|
|
|
|
|
toolbar[iconsize="small"] #scholar-toolbar-button
|
|
|
|
{
|
|
|
|
list-style-image: url('chrome://scholar/skin/toolbar-small.png');
|
|
|
|
}
|
|
|
|
|
2006-06-26 12:58:22 +00:00
|
|
|
textbox[multiline="true"][type="timed"]
|
|
|
|
{
|
2006-07-26 14:46:27 +00:00
|
|
|
-moz-binding: url('chrome://scholar/content/bindings/timedtextarea.xml#timed-textarea');
|
2006-06-27 02:03:10 +00:00
|
|
|
}
|
|
|
|
|
2006-06-28 18:30:29 +00:00
|
|
|
noteeditor
|
|
|
|
{
|
2006-07-26 14:46:27 +00:00
|
|
|
-moz-binding: url('chrome://scholar/content/bindings/noteeditor.xml#note-editor');
|
2006-06-28 18:30:29 +00:00
|
|
|
}
|
|
|
|
|
2006-07-26 14:46:27 +00:00
|
|
|
linksbox
|
2006-07-05 15:08:24 +00:00
|
|
|
{
|
2006-07-26 14:46:27 +00:00
|
|
|
-moz-binding: url('chrome://scholar/content/bindings/noteeditor.xml#links-box');
|
2006-07-05 15:08:24 +00:00
|
|
|
}
|
|
|
|
|
2006-07-26 14:46:27 +00:00
|
|
|
tagsbox
|
2006-07-20 23:19:31 +00:00
|
|
|
{
|
2006-07-26 14:46:27 +00:00
|
|
|
-moz-binding: url('chrome://scholar/content/bindings/tagsbox.xml#tags-box');
|
2006-07-20 23:19:31 +00:00
|
|
|
}
|
|
|
|
|
Closes #259, auto-complete of tags
Addresses #260, Add auto-complete to search window
- New XPCOM autocomplete component for Zotero data -- can be used by setting the autocompletesearch attribute of a textbox to 'zotero' and passing a search scope with the autocompletesearchparam attribute. Additional parameters can be passed by appending them to the autocompletesearchparam value with a '/', e.g. 'tag/2732' (to exclude tags that show up in item 2732)
- Tag entry now uses more or less the same interface as metadata -- no more popup window -- note that tab isn't working properly yet, and there's no way to quickly enter multiple tags (though it's now considerably quicker than it was before)
- Autocomplete for tags, excluding any tags already set for the current item
- Standalone note windows now register with the Notifier (since tags needed item modification notifications to work properly), which will help with #282, "Notes opened in separate windows need item notification"
- Tags are now retrieved in alphabetical order
- Scholar.Item.replaceTag(oldTagID, newTag), with a single notify
- Scholar.getAncestorByTagName(elem, tagName) -- walk up the DOM tree from an element until an element with the specified tag name is found (also checks with 'xul:' prefix, for use in XBL), or false if not found -- probably shouldn't be used too widely, since it's doing string comparisons, but better than specifying, say, nine '.parentNode' properties, and makes for more resilient code
A few notes:
- Autocomplete in Minefield seems to self-destruct after using it in the same field a few times, taking down saving of the field with it -- this may or may not be my fault, but it makes Zotero more or less unusable in 3.0 at the moment. Sorry. (I use 3.0 myself for development, so I'll work on it.)
- This would have been much, much easier if having an autocomplete textbox (which uses an XBL-generated popup for the suggestions) within a popup (as it is in the independent note edit panes) didn't introduce all sorts of crazy bugs that had to be defeated with annoying hackery -- one side effect of this is that at the moment you can't close the tags popup with the Escape key
- Independent note windows now need to pull in itemPane.js to function properly, which is a bit messy and not ideal, but less messy and more ideal than duplicating all the dual-state editor and tabindex logic would be
- Hitting tab in a tag field not only doesn't work but also breaks things until the next window refresh.
- There are undoubtedly other bugs.
2006-09-07 08:07:48 +00:00
|
|
|
tagsbox row
|
|
|
|
{
|
|
|
|
-moz-box-align:center;
|
|
|
|
}
|
|
|
|
|
2006-07-26 14:46:27 +00:00
|
|
|
seealsobox
|
2006-07-20 23:19:31 +00:00
|
|
|
{
|
2006-07-26 14:46:27 +00:00
|
|
|
-moz-binding: url('chrome://scholar/content/bindings/relatedbox.xml#seealso-box');
|
2006-07-20 23:19:31 +00:00
|
|
|
}
|
|
|
|
|
2006-08-09 11:43:33 +00:00
|
|
|
scholarsearch
|
|
|
|
{
|
|
|
|
-moz-binding: url('chrome://scholar/content/bindings/scholarsearch.xml#search-box');
|
2006-08-21 05:08:11 +00:00
|
|
|
width:60em;
|
2006-08-09 11:43:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
searchcondition
|
|
|
|
{
|
|
|
|
-moz-binding: url('chrome://scholar/content/bindings/scholarsearch.xml#search-condition');
|
|
|
|
}
|
|
|
|
|
2006-08-21 05:08:11 +00:00
|
|
|
searchcondition menulist[id="operatorsmenu"]
|
|
|
|
{
|
|
|
|
width:15em;
|
|
|
|
}
|
|
|
|
|
Fulltext search support
There are currently two types of fulltext searching: an SQL-based word index and a file scanner. They each have their advantages and drawbacks.
The word index is very fast to search and is currently used for the find-as-you-type quicksearch. However, indexing files takes some time, so we should probably offer a preference to turn it off ("Index attachment content for quicksearch" or something). There's also an issue with Chinese characters (which are indexed by character rather than word, since there are no spaces to go by, so a search for a word with common characters could produce erroneous results). The quicksearch doesn't use a left-bound index (since that would probably upset German speakers searching for "musik" in "nachtmusik," though I don't know for sure how they think of words) but still seems pretty fast.
* Note: There will be a potentially long delay when you start Firefox with this revision as it builds a fulltext word index of your existing items. We obviously need a notification/option for this. *
The file scanner, used in the Attachment Content condition of the search dialog, offers phrase searching as well as regex support (both case-sensitive and not, and defaulting to multiline). It doesn't require an index, though it should probably be optimized to use the word index, if available, for narrowing the results when not in regex mode. (It does only scan files that pass all the other search conditions, which speeds it up considerably for multi-condition searches, and skips non-text files unless instructed otherwise, but it's still relatively slow.)
Both convert HTML to text before searching (with the exception of the binary file scanning mode).
There are some issues with which files get indexed and which don't that we can't do much about and that will probably confuse users immensely. Dan C. suggested some sort of indicator (say, a green dot) to show which files are indexed.
Also added (very ugly) charset detection (anybody want to figure out getCharsetFromString(str)?), a setTimeout() replacement in the XPCOM service, an arrayToHash() method, and a new header to timedtextarea.xml, since it's really not copyright CHNM (it's really just a few lines off from the toolkit timed-textbox binding--I tried to change it to extend timed-textbox and just ignore Return keypress events so that we didn't need to duplicate the Mozilla code, but timed-textbox's reliance on html:input instead of html:textarea made things rather difficult).
To do:
- Pref/buttons to disable/clear/rebuild fulltext index
- Hidden prefs to set maximum file size to index/scan
- Don't index words of fewer than 3 non-Asian characters
- MRU cache for saved searches
- Use word index if available to narrow search scope of fulltext scanner
- Cache attachment info methods
- Show content excerpt in search results (at least in advanced search window, when it exists)
- Notification window (a la scraping) to show when indexing
- Indicator of indexed status
- Context menu option to index
- Indicator that a file scanning search is in progress, if possible
- Find other ways to make it index the NYT front page in under 10 seconds
- Probably fix lots of bugs, which you will likely start telling me about...now.
2006-09-21 00:10:29 +00:00
|
|
|
zoterosearchtextbox
|
|
|
|
{
|
|
|
|
-moz-binding: url('chrome://scholar/content/bindings/searchtextbox.xml#zotero-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;
|
|
|
|
}
|
|
|
|
|
Closes #259, auto-complete of tags
Addresses #260, Add auto-complete to search window
- New XPCOM autocomplete component for Zotero data -- can be used by setting the autocompletesearch attribute of a textbox to 'zotero' and passing a search scope with the autocompletesearchparam attribute. Additional parameters can be passed by appending them to the autocompletesearchparam value with a '/', e.g. 'tag/2732' (to exclude tags that show up in item 2732)
- Tag entry now uses more or less the same interface as metadata -- no more popup window -- note that tab isn't working properly yet, and there's no way to quickly enter multiple tags (though it's now considerably quicker than it was before)
- Autocomplete for tags, excluding any tags already set for the current item
- Standalone note windows now register with the Notifier (since tags needed item modification notifications to work properly), which will help with #282, "Notes opened in separate windows need item notification"
- Tags are now retrieved in alphabetical order
- Scholar.Item.replaceTag(oldTagID, newTag), with a single notify
- Scholar.getAncestorByTagName(elem, tagName) -- walk up the DOM tree from an element until an element with the specified tag name is found (also checks with 'xul:' prefix, for use in XBL), or false if not found -- probably shouldn't be used too widely, since it's doing string comparisons, but better than specifying, say, nine '.parentNode' properties, and makes for more resilient code
A few notes:
- Autocomplete in Minefield seems to self-destruct after using it in the same field a few times, taking down saving of the field with it -- this may or may not be my fault, but it makes Zotero more or less unusable in 3.0 at the moment. Sorry. (I use 3.0 myself for development, so I'll work on it.)
- This would have been much, much easier if having an autocomplete textbox (which uses an XBL-generated popup for the suggestions) within a popup (as it is in the independent note edit panes) didn't introduce all sorts of crazy bugs that had to be defeated with annoying hackery -- one side effect of this is that at the moment you can't close the tags popup with the Escape key
- Independent note windows now need to pull in itemPane.js to function properly, which is a bit messy and not ideal, but less messy and more ideal than duplicating all the dual-state editor and tabindex logic would be
- Hitting tab in a tag field not only doesn't work but also breaks things until the next window refresh.
- There are undoubtedly other bugs.
2006-09-07 08:07:48 +00:00
|
|
|
#editpane-dynamic-fields row, tagsbox row
|
2006-08-28 08:43:18 +00:00
|
|
|
{
|
|
|
|
margin:0 0 1px;
|
|
|
|
}
|
|
|
|
|
Closes #259, auto-complete of tags
Addresses #260, Add auto-complete to search window
- New XPCOM autocomplete component for Zotero data -- can be used by setting the autocompletesearch attribute of a textbox to 'zotero' and passing a search scope with the autocompletesearchparam attribute. Additional parameters can be passed by appending them to the autocompletesearchparam value with a '/', e.g. 'tag/2732' (to exclude tags that show up in item 2732)
- Tag entry now uses more or less the same interface as metadata -- no more popup window -- note that tab isn't working properly yet, and there's no way to quickly enter multiple tags (though it's now considerably quicker than it was before)
- Autocomplete for tags, excluding any tags already set for the current item
- Standalone note windows now register with the Notifier (since tags needed item modification notifications to work properly), which will help with #282, "Notes opened in separate windows need item notification"
- Tags are now retrieved in alphabetical order
- Scholar.Item.replaceTag(oldTagID, newTag), with a single notify
- Scholar.getAncestorByTagName(elem, tagName) -- walk up the DOM tree from an element until an element with the specified tag name is found (also checks with 'xul:' prefix, for use in XBL), or false if not found -- probably shouldn't be used too widely, since it's doing string comparisons, but better than specifying, say, nine '.parentNode' properties, and makes for more resilient code
A few notes:
- Autocomplete in Minefield seems to self-destruct after using it in the same field a few times, taking down saving of the field with it -- this may or may not be my fault, but it makes Zotero more or less unusable in 3.0 at the moment. Sorry. (I use 3.0 myself for development, so I'll work on it.)
- This would have been much, much easier if having an autocomplete textbox (which uses an XBL-generated popup for the suggestions) within a popup (as it is in the independent note edit panes) didn't introduce all sorts of crazy bugs that had to be defeated with annoying hackery -- one side effect of this is that at the moment you can't close the tags popup with the Escape key
- Independent note windows now need to pull in itemPane.js to function properly, which is a bit messy and not ideal, but less messy and more ideal than duplicating all the dual-state editor and tabindex logic would be
- Hitting tab in a tag field not only doesn't work but also breaks things until the next window refresh.
- There are undoubtedly other bugs.
2006-09-07 08:07:48 +00:00
|
|
|
#editpane-dynamic-fields textbox, tagsbox textbox
|
2006-08-28 08:43:18 +00:00
|
|
|
{
|
|
|
|
margin-top:0;
|
|
|
|
margin-bottom:-1px;
|
|
|
|
}
|
|
|
|
|
2006-09-08 22:46:49 +00:00
|
|
|
/* DEBUG: this doesn't seem to work, unfortunately */
|
|
|
|
#editpane-dynamic-fields label[singleField=false]:after
|
|
|
|
{
|
|
|
|
content:",";
|
|
|
|
}
|
|
|
|
|
2006-08-14 10:02:00 +00:00
|
|
|
.clicky, .unclicky
|
2006-07-19 16:14:27 +00:00
|
|
|
{
|
|
|
|
-moz-border-radius: 6px;
|
|
|
|
}
|
|
|
|
|
2006-08-14 10:02:00 +00:00
|
|
|
.clicky[value="-"], .clicky[value="+"],
|
|
|
|
.unclicky[value="-"], .unclicky[value="+"]
|
2006-07-20 23:19:31 +00:00
|
|
|
{
|
|
|
|
margin: 0px;
|
|
|
|
padding-left: 4px;
|
|
|
|
padding-right: 4px;
|
|
|
|
}
|
|
|
|
|
2006-07-19 16:14:27 +00:00
|
|
|
.clicky:hover
|
|
|
|
{
|
|
|
|
color: white;
|
|
|
|
background: #666666;
|
|
|
|
}
|
2006-07-05 15:08:24 +00:00
|
|
|
|
2006-06-27 02:03:10 +00:00
|
|
|
#scholar-progress-box
|
|
|
|
{
|
|
|
|
border: 2px solid #7a0000;
|
|
|
|
margin: 0;
|
|
|
|
min-height: 50px;
|
|
|
|
width: 250px;
|
|
|
|
padding-bottom: 3px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.scholar-progress-item-icon
|
|
|
|
{
|
|
|
|
width: 16px;
|
|
|
|
height: 16px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.scholar-progress-item-hbox
|
|
|
|
{
|
|
|
|
padding-left: 5px;
|
|
|
|
margin-top: 3px;
|
|
|
|
margin-bottom: 3px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.scholar-progress-item-label
|
|
|
|
{
|
2006-06-27 21:02:26 +00:00
|
|
|
width: 210px;
|
2006-06-27 02:03:10 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
.scholar-progress-description
|
|
|
|
{
|
2006-06-29 00:56:50 +00:00
|
|
|
width: 220px;
|
2006-06-27 21:02:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
.scholar-scrape-popup-library
|
|
|
|
{
|
|
|
|
list-style-image: url('chrome://scholar/skin/treesource-library.png');
|
|
|
|
}
|
|
|
|
|
|
|
|
.scholar-scrape-popup-collection
|
|
|
|
{
|
|
|
|
list-style-image: url('chrome://scholar/skin/treesource-collection.png');
|
2006-06-26 12:58:22 +00:00
|
|
|
}
|