Merge pull request #2366 from AbeJellinek/short-title-column
Add Short Title item tree column
This commit is contained in:
commit
1743360de7
4 changed files with 55 additions and 60 deletions
|
@ -1068,10 +1068,7 @@ class VirtualizedTable extends React.Component {
|
|||
|
||||
_renderHeaderCells = () => {
|
||||
return this._getVisibleColumns().map((column, index) => {
|
||||
let columnName = column.label;
|
||||
if (column.label in Zotero.Intl.strings) {
|
||||
columnName = this.props.intl.formatMessage({ id: column.label });
|
||||
}
|
||||
let columnName = formatColumnName(column);
|
||||
let label = columnName;
|
||||
if (column.iconLabel) {
|
||||
label = column.iconLabel;
|
||||
|
@ -1570,9 +1567,25 @@ function makeRowRenderer(getRowData) {
|
|||
};
|
||||
}
|
||||
|
||||
function formatColumnName(column) {
|
||||
if (column.label in Zotero.Intl.strings) {
|
||||
return Zotero.Intl.strings[column.label];
|
||||
}
|
||||
else if (/^[^\s]+\w\.\w[^\s]+$/.test(column.label)) {
|
||||
try {
|
||||
return Zotero.getString(column.label);
|
||||
}
|
||||
catch (e) {
|
||||
// ignore missing string
|
||||
}
|
||||
}
|
||||
return column.label;
|
||||
}
|
||||
|
||||
module.exports = injectIntl(VirtualizedTable, { forwardRef: true });
|
||||
module.exports.TreeSelection = TreeSelection;
|
||||
module.exports.TreeSelectionStub = TreeSelectionStub;
|
||||
module.exports.renderCell = renderCell;
|
||||
module.exports.renderCheckboxCell = renderCheckboxCell;
|
||||
module.exports.makeRowRenderer = makeRowRenderer;
|
||||
module.exports.formatColumnName = formatColumnName;
|
||||
|
|
|
@ -30,7 +30,7 @@ const ReactDOM = require('react-dom');
|
|||
const { IntlProvider } = require('react-intl');
|
||||
const LibraryTree = require('./libraryTree');
|
||||
const VirtualizedTable = require('components/virtualized-table');
|
||||
const { renderCell } = VirtualizedTable;
|
||||
const { renderCell, formatColumnName } = VirtualizedTable;
|
||||
const Icons = require('components/icons');
|
||||
const { getDOMElement } = Icons;
|
||||
const { COLUMNS } = require('./itemTreeColumns');
|
||||
|
@ -3593,7 +3593,7 @@ var ItemTree = class ItemTree extends LibraryTree {
|
|||
for (let i = 0; i < columns.length; i++) {
|
||||
const column = columns[i];
|
||||
if (column.ignoreInColumnPicker === true) continue;
|
||||
let label = Zotero.Intl.strings[column.label] || column.label;
|
||||
let label = formatColumnName(column);
|
||||
let menuitem = doc.createElementNS(ns, 'menuitem');
|
||||
menuitem.setAttribute('type', 'checkbox');
|
||||
menuitem.setAttribute('label', label);
|
||||
|
@ -3659,7 +3659,7 @@ var ItemTree = class ItemTree extends LibraryTree {
|
|||
secondaryField = sortFields[1];
|
||||
}
|
||||
|
||||
const primaryFieldLabel = Zotero.Intl.strings[columns.find(c => c.dataKey == primaryField).label];
|
||||
const primaryFieldLabel = formatColumnName(columns.find(c => c.dataKey == primaryField));
|
||||
|
||||
const sortMenu = doc.createElementNS(ns, 'menu');
|
||||
sortMenu.setAttribute('label',
|
||||
|
@ -3687,7 +3687,7 @@ var ItemTree = class ItemTree extends LibraryTree {
|
|||
continue;
|
||||
}
|
||||
let column = columns.find(c => c.dataKey == field);
|
||||
let label = Zotero.Intl.strings[column.label] || column.label;
|
||||
let label = formatColumnName(column);
|
||||
|
||||
let sortMenuItem = doc.createElementNS(ns, 'menuitem');
|
||||
sortMenuItem.setAttribute('fieldName', field);
|
||||
|
|
|
@ -54,7 +54,7 @@ const COLUMNS = [
|
|||
dataKey: "title",
|
||||
primary: true,
|
||||
defaultIn: new Set(["default", "feed"]),
|
||||
label: "zotero.items.title_column",
|
||||
label: "itemFields.title",
|
||||
ignoreInColumnPicker: true,
|
||||
flex: 4,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
|
@ -68,7 +68,7 @@ const COLUMNS = [
|
|||
},
|
||||
{
|
||||
dataKey: "itemType",
|
||||
label: "zotero.items.type_column",
|
||||
label: "zotero.items.itemType",
|
||||
width: "40",
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -76,7 +76,7 @@ const COLUMNS = [
|
|||
dataKey: "date",
|
||||
defaultIn: new Set(["feed"]),
|
||||
defaultSort: -1,
|
||||
label: "zotero.items.date_column",
|
||||
label: "itemFields.date",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -90,13 +90,13 @@ const COLUMNS = [
|
|||
},
|
||||
{
|
||||
dataKey: "publisher",
|
||||
label: "zotero.items.publisher_column",
|
||||
label: "itemFields.publisher",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
{
|
||||
dataKey: "publicationTitle",
|
||||
label: "zotero.items.publication_column",
|
||||
label: "itemFields.publicationTitle",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -104,14 +104,14 @@ const COLUMNS = [
|
|||
dataKey: "journalAbbreviation",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.journalAbbr_column",
|
||||
label: "itemFields.journalAbbreviation",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
{
|
||||
dataKey: "language",
|
||||
submenu: true,
|
||||
label: "zotero.items.language_column",
|
||||
label: "itemFields.language",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -120,7 +120,7 @@ const COLUMNS = [
|
|||
disabledIn: "feed",
|
||||
defaultSort: -1,
|
||||
submenu: true,
|
||||
label: "zotero.items.accessDate_column",
|
||||
label: "itemFields.accessDate",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -128,7 +128,7 @@ const COLUMNS = [
|
|||
dataKey: "libraryCatalog",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.libraryCatalog_column",
|
||||
label: "itemFields.libraryCatalog",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -136,14 +136,14 @@ const COLUMNS = [
|
|||
dataKey: "callNumber",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.callNumber_column",
|
||||
label: "itemFields.callNumber",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
{
|
||||
dataKey: "rights",
|
||||
submenu: true,
|
||||
label: "zotero.items.rights_column",
|
||||
label: "itemFields.rights",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -151,7 +151,7 @@ const COLUMNS = [
|
|||
dataKey: "dateAdded",
|
||||
defaultSort: -1,
|
||||
disabledIn: "feed",
|
||||
label: "zotero.items.dateAdded_column",
|
||||
label: "itemFields.dateAdded",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -167,7 +167,7 @@ const COLUMNS = [
|
|||
dataKey: "archive",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.archive_column",
|
||||
label: "itemFields.archive",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -175,7 +175,7 @@ const COLUMNS = [
|
|||
dataKey: "archiveLocation",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.archiveLocation_column",
|
||||
label: "itemFields.archiveLocation",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -183,7 +183,7 @@ const COLUMNS = [
|
|||
dataKey: "place",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.place_column",
|
||||
label: "itemFields.place",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -191,7 +191,7 @@ const COLUMNS = [
|
|||
dataKey: "volume",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.volume_column",
|
||||
label: "itemFields.volume",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -199,7 +199,7 @@ const COLUMNS = [
|
|||
dataKey: "edition",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.edition_column",
|
||||
label: "itemFields.edition",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -207,7 +207,7 @@ const COLUMNS = [
|
|||
dataKey: "pages",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.pages_column",
|
||||
label: "itemFields.pages",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -215,7 +215,7 @@ const COLUMNS = [
|
|||
dataKey: "issue",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.issue_column",
|
||||
label: "itemFields.issue",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -223,7 +223,7 @@ const COLUMNS = [
|
|||
dataKey: "series",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.series_column",
|
||||
label: "itemFields.series",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -231,7 +231,7 @@ const COLUMNS = [
|
|||
dataKey: "seriesTitle",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.seriesTitle_column",
|
||||
label: "itemFields.seriesTitle",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -239,7 +239,7 @@ const COLUMNS = [
|
|||
dataKey: "court",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.court_column",
|
||||
label: "itemFields.court",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -247,7 +247,7 @@ const COLUMNS = [
|
|||
dataKey: "medium",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.medium_column",
|
||||
label: "itemFields.medium",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -255,7 +255,7 @@ const COLUMNS = [
|
|||
dataKey: "genre",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.genre_column",
|
||||
label: "itemFields.genre",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
@ -263,14 +263,22 @@ const COLUMNS = [
|
|||
dataKey: "system",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "zotero.items.system_column",
|
||||
label: "itemFields.system",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
{
|
||||
dataKey: "shortTitle",
|
||||
disabledIn: "feed",
|
||||
submenu: true,
|
||||
label: "itemFields.shortTitle",
|
||||
flex: 2,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
{
|
||||
dataKey: "extra",
|
||||
disabledIn: "feed",
|
||||
label: "zotero.items.extra_column",
|
||||
label: "itemFields.extra",
|
||||
flex: 1,
|
||||
zoteroPersist: new Set(["width", "hidden", "sortDirection"])
|
||||
},
|
||||
|
|
|
@ -56,35 +56,9 @@
|
|||
<!ENTITY zotero.collections.showRetractedItems "Show Retracted Items">
|
||||
|
||||
<!ENTITY zotero.items.itemType "Item Type">
|
||||
<!ENTITY zotero.items.type_column "Item Type">
|
||||
<!ENTITY zotero.items.title_column "Title">
|
||||
<!ENTITY zotero.items.creator_column "Creator">
|
||||
<!ENTITY zotero.items.date_column "Date">
|
||||
<!ENTITY zotero.items.year_column "Year">
|
||||
<!ENTITY zotero.items.publisher_column "Publisher">
|
||||
<!ENTITY zotero.items.publication_column "Publication">
|
||||
<!ENTITY zotero.items.journalAbbr_column "Journal Abbr">
|
||||
<!ENTITY zotero.items.language_column "Language">
|
||||
<!ENTITY zotero.items.accessDate_column "Accessed">
|
||||
<!ENTITY zotero.items.libraryCatalog_column "Library Catalog">
|
||||
<!ENTITY zotero.items.callNumber_column "Call Number">
|
||||
<!ENTITY zotero.items.rights_column "Rights">
|
||||
<!ENTITY zotero.items.dateAdded_column "Date Added">
|
||||
<!ENTITY zotero.items.dateModified_column "Date Modified">
|
||||
<!ENTITY zotero.items.extra_column "Extra">
|
||||
<!ENTITY zotero.items.archive_column "Archive">
|
||||
<!ENTITY zotero.items.archiveLocation_column "Loc. in Archive">
|
||||
<!ENTITY zotero.items.place_column "Place">
|
||||
<!ENTITY zotero.items.volume_column "Volume">
|
||||
<!ENTITY zotero.items.edition_column "Edition">
|
||||
<!ENTITY zotero.items.pages_column "Pages">
|
||||
<!ENTITY zotero.items.issue_column "Issue">
|
||||
<!ENTITY zotero.items.series_column "Series">
|
||||
<!ENTITY zotero.items.seriesTitle_column "Series Title">
|
||||
<!ENTITY zotero.items.court_column "Court">
|
||||
<!ENTITY zotero.items.medium_column "Medium/Format">
|
||||
<!ENTITY zotero.items.genre_column "Genre">
|
||||
<!ENTITY zotero.items.system_column "System">
|
||||
<!ENTITY zotero.items.moreColumns.label "More Columns">
|
||||
<!ENTITY zotero.items.restoreColumnOrder.label "Restore Column Order">
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue