UNPKG

zotero-web-library

Version:

Web library from zotero.org

105 lines (97 loc) 2.72 kB
'use strict'; var log = require('libzotero/lib/Log').Logger('zotero-web-library:exportItems'); var React = require('react'); var BootstrapModalWrapper = require('./BootstrapModalWrapper.js'); var ExportItemsDialog = React.createClass({ displayName: 'ExportItemsDialog', componentWillMount: function componentWillMount() { var reactInstance = this; var library = this.props.library; library.listen('exportItemsDialog', function () { log.debug('opening export dialog', 3); reactInstance.openDialog(); }, {}); library.listen('displayedItemsChanged', function () { reactInstance.forceUpdate(); }, {}); }, getInitialState: function getInitialState() { return {}; }, openDialog: function openDialog() { this.refs.modal.open(); }, closeDialog: function closeDialog(evt) { this.refs.modal.close(); }, render: function render() { var library = this.props.library; var urlconfig = Zotero.ui.getItemsConfig(library); var exportUrls = Zotero.url.exportUrls(urlconfig); var exportNodes = Object.keys(exportUrls).map(function (key) { var exportUrl = exportUrls[key]; return React.createElement( 'li', { key: key }, React.createElement( 'a', { href: exportUrl, target: '_blank', className: 'export-link', title: key, 'data-exportformat': key }, Zotero.config.exportFormatsMap[key] ) ); }); return React.createElement( BootstrapModalWrapper, { ref: 'modal' }, React.createElement( 'div', { id: 'export-items-dialog', className: 'export-items-dialog', role: 'dialog', title: 'Export', 'data-keyboard': 'true' }, React.createElement( 'div', { className: 'modal-dialog' }, React.createElement( 'div', { className: 'modal-content' }, React.createElement( 'div', { className: 'modal-header' }, React.createElement( 'button', { type: 'button', className: 'close', 'data-dismiss': 'modal', 'aria-hidden': 'true' }, '×' ), React.createElement( 'h3', null, 'Export' ) ), React.createElement( 'div', { className: 'modal-body', 'data-role': 'content' }, React.createElement( 'div', { className: 'export-list' }, React.createElement( 'ul', { id: 'export-formats-ul' }, exportNodes ) ) ), React.createElement( 'div', { className: 'modal-footer' }, React.createElement( 'button', { className: 'btn btn-default', 'data-dismiss': 'modal', 'aria-hidden': 'true' }, 'Close' ) ) ) ) ) ); } }); module.exports = ExportItemsDialog;