@plone/volto
Version:
Volto
151 lines (140 loc) • 4.24 kB
JSX
import loadable from '@loadable/component';
import { defineMessages } from 'react-intl';
import DefaultView from '@plone/volto/components/theme/View/DefaultView';
import FileView from '@plone/volto/components/theme/View/FileView';
import ImageView from '@plone/volto/components/theme/View/ImageView';
import ListingView from '@plone/volto/components/theme/View/ListingView';
import NewsItemView from '@plone/volto/components/theme/View/NewsItemView';
import SummaryView from '@plone/volto/components/theme/View/SummaryView';
import TabularView from '@plone/volto/components/theme/View/TabularView';
import LinkView from '@plone/volto/components/theme/View/LinkView';
import NotFoundView from '@plone/volto/components/theme/NotFound/NotFound';
import ConnectionRefused from '@plone/volto/components/theme/ConnectionRefused/ConnectionRefused';
import CorsError from '@plone/volto/components/theme/CorsError/CorsError';
import RequestTimeout from '@plone/volto/components/theme/RequestTimeout/RequestTimeout';
import AlbumView from '@plone/volto/components/theme/View/AlbumView';
import Unauthorized from '@plone/volto/components/theme/Unauthorized/Unauthorized';
import Forbidden from '@plone/volto/components/theme/Forbidden/Forbidden';
import ServerError from '@plone/volto/components/theme/Error/ServerError';
const EventView = loadable(
() => import('@plone/volto/components/theme/View/EventView'),
);
defineMessages({
album_view: {
id: 'Album view',
defaultMessage: 'Album view',
},
event_listing: {
id: 'Event listing',
defaultMessage: 'Event listing',
},
full_view: {
id: 'All content',
defaultMessage: 'All content',
},
listing_view: {
id: 'Listing view',
defaultMessage: 'Listing view',
},
summary_view: {
id: 'Summary view',
defaultMessage: 'Summary view',
},
tabular_view: {
id: 'Tabular view',
defaultMessage: 'Tabular view',
},
layout_view: {
id: 'Mosaic layout',
defaultMessage: 'Mosaic layout',
},
document_view: {
id: 'Document view',
defaultMessage: 'Document view',
},
folder_listing: {
id: 'Folder listing',
defaultMessage: 'Folder listing',
},
newsitem_view: {
id: 'News item view',
defaultMessage: 'News item view',
},
link_redirect_view: {
id: 'Link redirect view',
defaultMessage: 'Link redirect view',
},
file_view: {
id: 'File view',
defaultMessage: 'File view',
},
image_view: {
id: 'Image view',
defaultMessage: 'Image view',
},
event_view: {
id: 'Event view',
defaultMessage: 'Event view',
},
view: {
id: 'Default view',
defaultMessage: 'Default view',
},
default: {
id: 'Default view',
defaultMessage: 'Default view',
},
});
// Layout View Registry
export const layoutViews = {
document_view: DefaultView,
summary_view: SummaryView,
tabular_view: TabularView,
listing_view: ListingView,
link_redirect_view: LinkView,
album_view: AlbumView,
};
// Content Types View Registry
export const contentTypesViews = {
'News Item': NewsItemView,
File: FileView,
Image: ImageView,
Event: EventView,
};
// Default view
export const defaultView = DefaultView;
export const errorViews = {
404: NotFoundView,
401: Unauthorized,
403: Forbidden,
408: RequestTimeout,
500: ServerError,
ECONNREFUSED: ConnectionRefused,
corsError: CorsError,
};
export const layoutViewsNamesMapping = {
album_view: 'Album view',
event_listing: 'Event listing',
full_view: 'All content',
listing_view: 'Listing view',
summary_view: 'Summary view',
tabular_view: 'Tabular view',
layout_view: 'Mosaic layout',
document_view: 'Document view',
folder_listing: 'Folder listing',
newsitem_view: 'News item view',
link_redirect_view: 'Link redirect view',
file_view: 'File view',
image_view: 'Image view',
event_view: 'Event view',
view: 'Default view',
default: 'Default view',
};
export function installDefaultViews(config) {
config.views.layoutViews = layoutViews;
config.views.contentTypesViews = contentTypesViews;
config.views.defaultView = defaultView;
config.views.errorViews = errorViews;
config.views.layoutViewsNamesMapping = layoutViewsNamesMapping;
return config;
}