import React, { Component, Fragment } from 'react'; import ReactDom from 'react-dom'; import moment from 'moment'; import classnames from 'classnames'; import { siteRoot, mediaUrl, logoPath, siteTitle, logoHeight, logoWidth, gettext } from '../../utils/constants'; import '../../css/sdoc-revisions.css'; moment.locale(window.app.config.lang); const { filename, zipped, forloopLast, repo, viewLibFile, revisions, currentPage, prevPage, nextPage, perPage, pageNext, extraHref } = window.sdocRevisions; const validZipped = JSON.parse(zipped); const validRevisions = JSON.parse(revisions); class SdocRevisions extends Component { renderPerPage = (perPageCount, className) => { if (perPage === perPageCount) { return ({perPageCount}); } return ( {perPageCount} ); } renderRevisions = () => { if (!Array.isArray(validRevisions) || validRevisions.length === 0) { return (

{gettext('This file has not revisions yet')}

); } return ( {validRevisions.map(revision => { return ( ); })}
{gettext('User')} {gettext('File_name')} {gettext('Ctime')}
{revision.nickname} {revision.filename} {moment(revision.created_at).format('YYYY-MM-DD HH:MM')}
); } renderFooter = () => { return (
{currentPage !== 1 && ( {gettext('Previous')} )} {pageNext && ( {gettext('Next')} )} {(currentPage !== 1 || pageNext) && ({'|'})} {gettext('Per page: ')} {this.renderPerPage(25, 'mr-1')} {this.renderPerPage(50, 'mr-1')} {this.renderPerPage(100)}
); } render() { return ( <>

{filename} {gettext('Revisions')}

{gettext('Current Path:')} {validZipped.map((item, index) => { if (forloopLast) { return ({item[0]}); } return ( {item[0]} {index !== validZipped.length - 1 && ( {'/'} )} ); })}

{this.renderRevisions()} {this.renderFooter()}
); } } ReactDom.render(, document.getElementById('wrapper'));