Metadata pane tab fixes

- Connect tabs to pane
- Allow switching between metadata pane tabs using standard Firefox shortcuts (Ctrl-Tab, Ctrl-Shift-Tab)
- Fixed squished look in Firefox 3.5
- Remove some unnecessary padding, providing a little bit more room in the metadata pane

Needs a little testing

Closes #711, Improve keyboard support
This commit is contained in:
Dan Stillman 2009-07-03 11:11:13 +00:00
parent 37abd1658a
commit 4e3b79f9bb
5 changed files with 53 additions and 39 deletions

View File

@ -30,7 +30,6 @@ var ZoteroItemPane = new function() {
var _lastPane;
var _loaded;
var _tabs;
var _lastTabIndex;
var _tabDirection;
var _tabIndexMaxTagsFields = 0;
@ -51,10 +50,8 @@ var ZoteroItemPane = new function() {
return;
}
_tabs = document.getElementById('zotero-view-tabs');
// Not in item pane, so skip the introductions
if (!_tabs) {
if (!document.getElementById('zotero-view-tabbox')) {
return;
}

View File

@ -31,10 +31,12 @@
<script src="include.js"/>
<script src="itemPane.js"/>
<deck id="zotero-view-item" flex="1" onselect="if (this.selectedIndex !== '') { ZoteroItemPane.loadPane(this.selectedIndex); }">
<zoteroitembox id="zotero-editpane-item-box" flex="1"/>
<tabpanels id="zotero-view-item" flex="1" oncommand="if (this.selectedIndex !== '') { ZoteroItemPane.loadPane(this.selectedIndex); }">
<tabpanel>
<zoteroitembox id="zotero-editpane-item-box" flex="1"/>
</tabpanel>
<vbox flex="1">
<tabpanel flex="1" align="top">
<hbox align="center">
<label id="zotero-editpane-notes-label"/>
<button label="&zotero.item.add;" oncommand="ZoteroItemPane.addNote();"/>
@ -46,9 +48,9 @@
</columns>
<rows id="zotero-editpane-dynamic-notes" flex="1"/>
</grid>
</vbox>
</tabpanel>
<vbox flex="1">
<tabpanel flex="1" align="top">
<hbox align="center">
<label id="zotero-editpane-attachments-label"/>
<button id="zotero-tb-item-attachments-add" type="menu" label="&zotero.item.add;">
@ -67,10 +69,14 @@
</columns>
<rows id="zotero-editpane-dynamic-attachments" flex="1"/>
</grid>
</vbox>
</tabpanel>
<tagsbox id="zotero-editpane-tags" flex="1"/>
<tabpanel>
<tagsbox id="zotero-editpane-tags" flex="1"/>
</tabpanel>
<seealsobox id="zotero-editpane-related" flex="1"/>
</deck>
<tabpanel>
<seealsobox id="zotero-editpane-related" flex="1"/>
</tabpanel>
</tabpanels>
</overlay>

View File

@ -991,15 +991,13 @@ var ZoteroPane = new function()
document.getElementById('zotero-item-restore-button').hidden = true;
}
var tabs = document.getElementById('zotero-view-tabs');
var tabs = document.getElementById('zotero-view-tabbox');
if (this.itemsView && this.itemsView.selection.count == 1 && this.itemsView.selection.currentIndex != -1)
{
var item = this.itemsView._getItemAtRow(this.itemsView.selection.currentIndex);
if(item.ref.isNote()) {
tabs.hidden = true;
var noteEditor = document.getElementById('zotero-note-editor');
noteEditor.mode = this.collectionsView.editable ? 'edit' : 'view';
@ -1033,8 +1031,6 @@ var ZoteroPane = new function()
}
else if(item.ref.isAttachment()) {
tabs.hidden = true;
var attachmentBox = document.getElementById('zotero-attachment-box');
attachmentBox.mode = this.collectionsView.editable ? 'edit' : 'view';
attachmentBox.item = item.ref;
@ -1049,18 +1045,15 @@ var ZoteroPane = new function()
if (this.collectionsView.editable) {
ZoteroItemPane.viewItem(item.ref);
tabs.selectedIndex = document.getElementById('zotero-view-item').selectedIndex;
tabs.hidden = false;
}
else {
document.getElementById('zotero-view-item').selectedIndex = 0;
ZoteroItemPane.viewItem(item.ref, 'view');
tabs.hidden = true;
}
}
}
else
{
tabs.hidden = true;
document.getElementById('zotero-item-pane-content').selectedIndex = 0;
var label = document.getElementById('zotero-view-selected-label');

View File

@ -370,30 +370,30 @@
<!-- TODO: localize -->
<button id="zotero-item-restore-button" label="Restore to Library"
oncommand="ZoteroPane.restoreSelectedItems()" hidden="true"/>
<groupbox flex="1">
<caption>
<tabs id="zotero-view-tabs" onselect="document.getElementById('zotero-view-item').selectedIndex = this.selectedIndex;" hidden="true">
<deck id="zotero-item-pane-content" selectedIndex="0" flex="1">
<groupbox pack="center" align="center">
<label id="zotero-view-selected-label"/>
</groupbox>
<tabbox id="zotero-view-tabbox">
<tabs>
<tab label="&zotero.tabs.info.label;"/>
<tab label="&zotero.tabs.notes.label;"/>
<tab label="&zotero.tabs.attachments.label;"/>
<tab label="&zotero.tabs.tags.label;"/>
<tab label="&zotero.tabs.related.label;"/>
</tabs>
</caption>
<deck id="zotero-item-pane-content" selectedIndex="0" flex="1">
<box pack="center" align="center">
<label id="zotero-view-selected-label"/>
</box>
<deck id="zotero-view-item" flex="1"/>
<!-- Note info pane -->
<vbox id="zotero-view-note" flex="1">
<zoteronoteeditor id="zotero-note-editor" flex="1"/>
<button id="zotero-view-note-button" label="&zotero.notes.separate;" oncommand="ZoteroPane.openNoteWindow(this.getAttribute('noteID')); if(this.hasAttribute('sourceID')) ZoteroPane.selectItem(this.getAttribute('sourceID'));"/>
</vbox>
<!-- Attachment info pane -->
<tabpanels id="zotero-view-item" flex="1"/>
</tabbox>
<!-- Note info pane -->
<groupbox id="zotero-view-note" flex="1">
<zoteronoteeditor id="zotero-note-editor" flex="1"/>
<button id="zotero-view-note-button" label="&zotero.notes.separate;" oncommand="ZoteroPane.openNoteWindow(this.getAttribute('noteID')); if(this.hasAttribute('sourceID')) ZoteroPane.selectItem(this.getAttribute('sourceID'));"/>
</groupbox>
<!-- Attachment info pane -->
<groupbox flex="1">
<zoteroattachmentbox id="zotero-attachment-box" flex="1"/>
</deck>
</groupbox>
</groupbox>
</deck>
</vbox>
</hbox>

View File

@ -289,8 +289,26 @@ window[active="true"] #zotero-pane[fullscreenmode="true"][platform="mac"]
list-style-image: url('chrome://zotero/skin/search-cancel-active.png');
}
#zotero-view-tabs tab
#zotero-view-tabbox, #zotero-item-pane-content > groupbox
{
margin: 0;
}
#zotero-view-tabbox tabs tab
{
margin-top: 0 !important;
margin-bottom: 0 !important;
}
#zotero-view-tabbox tabs tab .tab-text
{
margin-top: .2em !important;
margin-bottom: .25em !important;
}
#zotero-view-item
{
padding: 1.5em .25em .25em;
}
#zotero-view-item > vbox