UNPKG

metadata-based-explorer1

Version:
99 lines (92 loc) 3.86 kB
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import React from 'react'; import { FormattedMessage } from 'react-intl'; import { convertToMs } from '../../utils/datetime'; import { DISPOSITION_ACTION_REMOVE_RETENTION_ONLY, DISPOSITION_ACTION_DELETE_ITEMS } from './constants'; import { VersionPropType } from './prop-types'; import messages from './messages'; var FileVersionInfo = function FileVersionInfo(_ref) { var version = _ref.version; var message = {}; var values = {}; if (version.deleted > 0) { if (version.deletedPermanentlyBy > 0) { // Deleted and will be permanently deleted at some time in the future message = messages.deletedPermanentlyByInfo; values = { deleted: convertToMs(version.deleted), deletedPermanentlyBy: convertToMs(version.deletedPermanentlyBy), deleterUserName: version.deleterUserName }; } else { // Deleted message = messages.deletedByInfo; values = { deleted: convertToMs(version.deleted), deleterUserName: version.deleterUserName }; } } else if (version.restored > 0) { // Restored from deleted status message = messages.restoredByInfo; values = { restored: convertToMs(version.restored), restorerUserName: version.restorerUserName }; } else if (version.isCurrent && version.currentFromFileVersionID) { if (version.currentFromVersionNumber) { // Restored from a specific version message = messages.restoredFromVersionInfo; values = { restored: convertToMs(version.updated), restorerUserName: version.currentFromUserName, versionNumber: version.currentFromVersionNumber }; } else { // Restored from an unknown version (maybe old version was deleted) message = messages.restoredFromPreviousVersionInfo; values = { restored: convertToMs(version.updated), restorerUserName: version.currentFromUserName }; } } else { // Both current version and other versions just use the default "Uploaded" info message = messages.uploadedInfo; values = { // Use `updated` time instead of `created` timestamp for the current version of the file uploaded: convertToMs(version.isCurrent ? version.updated : version.created), uploaderUserName: version.uploaderUserName }; } var retentionMessage = {}; var retentionValues = {}; if (version.isRetained) { if (version.isIndefinitelyRetained) { retentionMessage = messages.retainedIndefinitely; } else if (version.dispositionAction === DISPOSITION_ACTION_REMOVE_RETENTION_ONLY) { retentionMessage = messages.retainedUntil; retentionValues = { dispositionDate: convertToMs(version.dispositionDate) }; } else if (version.dispositionAction === DISPOSITION_ACTION_DELETE_ITEMS) { retentionMessage = messages.retainedAndDeletedOn; retentionValues = { dispositionDate: convertToMs(version.dispositionDate) }; } } return React.createElement("div", { className: "file-version-info" }, React.createElement("p", null, React.createElement(FormattedMessage, _extends({}, message, { values: values }))), version.isRetained && retentionMessage && retentionMessage.id && React.createElement("p", { className: "file-version-retention-info" }, React.createElement(FormattedMessage, _extends({}, retentionMessage, { values: retentionValues })))); }; FileVersionInfo.propTypes = { version: VersionPropType.isRequired }; export default FileVersionInfo;