Skip to content

Commit

Permalink
Add automatic customization imports.
Browse files Browse the repository at this point in the history
  • Loading branch information
robgietema committed Oct 10, 2018
1 parent 6d8f3ca commit b324d18
Show file tree
Hide file tree
Showing 7 changed files with 202 additions and 149 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
"^.+\\.(svg)$": "./jest-svgsystem-transform.js"
},
"moduleNameMapper": {
"@plone/volto/(.*)$": "<rootDir>/src/$1",
"~/config": "<rootDir>/src/config"
},
"coverageThreshold": {
Expand Down
37 changes: 32 additions & 5 deletions razzle.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ const autoprefixer = require('autoprefixer');
const makeLoaderFinder = require('razzle-dev-utils/makeLoaderFinder');
const nodeExternals = require('webpack-node-externals');
const fs = require('fs');
const { fromPairs, map, mapValues } = require('lodash');
const glob = require('glob').sync;

const fileLoaderFinder = makeLoaderFinder('file-loader');
const eslintLoaderFinder = makeLoaderFinder('eslint-loader');
Expand Down Expand Up @@ -115,15 +117,40 @@ module.exports = {
// Disabling the ESlint pre loader
config.module.rules.splice(0, 1);

const customizations = packageJson.customizations
? packageJson.customizations
: {};
const customizations = {};
map(
glob('src/customizations/**/*.*(svg|png|jpg|jpeg|gif|ico|less|js|jsx)'),
filename => {
const target = filename.replace('src/', `${projectRootPath}/src/`);
if (
fs.existsSync(
`node_modules/@plone/volto/${filename.replace(
'customizations/',
'',
)}`,
)
) {
customizations[
filename
.replace('src/customizations/', '@plone/volto/')
.replace(/\.(js|jsx)$/, '')
] = target;
} else {
console.log(
`The file ${filename} doesn't exist in the volto package (${target}), unable to customize.`,
);
}
},
);

config.resolve.alias = {
...customizations,
...config.resolve.alias,
'../../theme.config$': `${projectRootPath}/theme/theme.config`,
'@plone/volto': `${projectRootPath}/node_modules/@plone/volto/src/`,
...customizations,
'@plone/volto':
packageJson.name === '@plone/volto'
? `${projectRootPath}/src/`
: `${projectRootPath}/node_modules/@plone/volto/src/`,
};

config.performance = {
Expand Down
60 changes: 41 additions & 19 deletions src/actions/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,38 +12,53 @@ export {
deleteComment,
listComments,
updateComment,
} from './comments/comments';
} from '@plone/volto/actions/comments/comments';
export {
createContent,
deleteContent,
updateContent,
getContent,
orderContent,
sortContent,
} from './content/content';
} from '@plone/volto/actions/content/content';
export {
getControlpanel,
listControlpanels,
updateControlpanel,
} from './controlpanels/controlpanels';
export { getDiff } from './diff/diff';
export { emailNotification } from './emailNotification/emailNotification';
} from '@plone/volto/actions/controlpanels/controlpanels';
export { getDiff } from '@plone/volto/actions/diff/diff';
export {
emailNotification,
} from '@plone/volto/actions/emailNotification/emailNotification';
export {
createGroup,
deleteGroup,
getGroup,
listGroups,
updateGroup,
} from './groups/groups';
export { getHistory, revertHistory } from './history/history';
export { addMessage, removeMessage, purgeMessages } from './messages/messages';
export { getNavigation } from './navigation/navigation';
export { listRoles } from './roles/roles';
export { getSchema } from './schema/schema';
export { resetSearchContent, searchContent } from './search/search';
export { updateSharing, getSharing } from './sharing/sharing';
export { getTiles } from './tiles/tiles';
export { getTypes } from './types/types';
} from '@plone/volto/actions/groups/groups';
export {
getHistory,
revertHistory,
} from '@plone/volto/actions/history/history';
export {
addMessage,
removeMessage,
purgeMessages,
} from '@plone/volto/actions/messages/messages';
export { getNavigation } from '@plone/volto/actions/navigation/navigation';
export { listRoles } from '@plone/volto/actions/roles/roles';
export { getSchema } from '@plone/volto/actions/schema/schema';
export {
resetSearchContent,
searchContent,
} from '@plone/volto/actions/search/search';
export {
updateSharing,
getSharing,
} from '@plone/volto/actions/sharing/sharing';
export { getTiles } from '@plone/volto/actions/tiles/tiles';
export { getTypes } from '@plone/volto/actions/types/types';
export {
createUser,
deleteUser,
Expand All @@ -53,7 +68,14 @@ export {
resetPassword,
updatePassword,
updateUser,
} from './users/users';
export { login, loginRenew, logout } from './userSession/userSession';
export { getVocabulary } from './vocabularies/vocabularies';
export { getWorkflow, transitionWorkflow } from './workflow/workflow';
} from '@plone/volto/actions/users/users';
export {
login,
loginRenew,
logout,
} from '@plone/volto/actions/userSession/userSession';
export { getVocabulary } from '@plone/volto/actions/vocabularies/vocabularies';
export {
getWorkflow,
transitionWorkflow,
} from '@plone/volto/actions/workflow/workflow';
184 changes: 92 additions & 92 deletions src/components/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,99 +4,99 @@
* @example import { Field } from 'components';
*/

export Column from './mosaic/Column/Column';
export ColumnResize from './mosaic/Column/ColumnResize';
export ColumnResizeHelper from './mosaic/Column/ColumnResizeHelper';
export Grid from './mosaic/Grid/Grid';
export Layout from './mosaic/Layout/Layout';
export Row from './mosaic/Row/Row';
export Tile from './mosaic/Tile/Tile';
export Editbar from './mosaic/Editbar/Editbar';
export Column from '@plone/volto/components/mosaic/Column/Column';
export ColumnResize from '@plone/volto/components/mosaic/Column/ColumnResize';
export ColumnResizeHelper from '@plone/volto/components/mosaic/Column/ColumnResizeHelper';
export Grid from '@plone/volto/components/mosaic/Grid/Grid';
export Layout from '@plone/volto/components/mosaic/Layout/Layout';
export Row from '@plone/volto/components/mosaic/Row/Row';
export Tile from '@plone/volto/components/mosaic/Tile/Tile';
export Editbar from '@plone/volto/components/mosaic/Editbar/Editbar';

export Anontools from './theme/Anontools/Anontools';
export Breadcrumbs from './theme/Breadcrumbs/Breadcrumbs';
export Footer from './theme/Footer/Footer';
export Header from './theme/Header/Header';
export Icon from './theme/Icon/Icon';
export Logo from './theme/Logo/Logo';
export Navigation from './theme/Navigation/Navigation';
export SearchWidget from './theme/SearchWidget/SearchWidget';
export Title from './theme/Title/Title';
export App from './theme/App/App';
export DocumentView from './theme/View/DocumentView';
export FileView from './theme/View/FileView';
export ImageView from './theme/View/ImageView';
export NewsItemView from './theme/View/NewsItemView';
export ListingView from './theme/View/ListingView';
export Login from './theme/Login/Login';
export Logout from './theme/Logout/Logout';
export NotFound from './theme/NotFound/NotFound';
export Pagination from './theme/Pagination/Pagination';
export SummaryView from './theme/View/SummaryView';
export Search from './theme/Search/Search';
export SearchTags from './theme/Search/SearchTags';
export TabularView from './theme/View/TabularView';
export View from './theme/View/View';
export Comments from './theme/Comments/Comments';
export CommentEditModal from './theme/Comments/CommentEditModal';
export SocialSharing from './theme/SocialSharing/SocialSharing';
export Tags from './theme/Tags/Tags';
export Register from './theme/Register/Register';
export PasswordReset from './theme/PasswordReset/PasswordReset';
export RequestPasswordReset from './theme/PasswordReset/RequestPasswordReset';
export Anontools from '@plone/volto/components/theme/Anontools/Anontools';
export Breadcrumbs from '@plone/volto/components/theme/Breadcrumbs/Breadcrumbs';
export Footer from '@plone/volto/components/theme/Footer/Footer';
export Header from '@plone/volto/components/theme/Header/Header';
export Icon from '@plone/volto/components/theme/Icon/Icon';
export Logo from '@plone/volto/components/theme/Logo/Logo';
export Navigation from '@plone/volto/components/theme/Navigation/Navigation';
export SearchWidget from '@plone/volto/components/theme/SearchWidget/SearchWidget';
export Title from '@plone/volto/components/theme/Title/Title';
export App from '@plone/volto/components/theme/App/App';
export DocumentView from '@plone/volto/components/theme/View/DocumentView';
export FileView from '@plone/volto/components/theme/View/FileView';
export ImageView from '@plone/volto/components/theme/View/ImageView';
export NewsItemView from '@plone/volto/components/theme/View/NewsItemView';
export ListingView from '@plone/volto/components/theme/View/ListingView';
export Login from '@plone/volto/components/theme/Login/Login';
export Logout from '@plone/volto/components/theme/Logout/Logout';
export NotFound from '@plone/volto/components/theme/NotFound/NotFound';
export Pagination from '@plone/volto/components/theme/Pagination/Pagination';
export SummaryView from '@plone/volto/components/theme/View/SummaryView';
export Search from '@plone/volto/components/theme/Search/Search';
export SearchTags from '@plone/volto/components/theme/Search/SearchTags';
export TabularView from '@plone/volto/components/theme/View/TabularView';
export View from '@plone/volto/components/theme/View/View';
export Comments from '@plone/volto/components/theme/Comments/Comments';
export CommentEditModal from '@plone/volto/components/theme/Comments/CommentEditModal';
export SocialSharing from '@plone/volto/components/theme/SocialSharing/SocialSharing';
export Tags from '@plone/volto/components/theme/Tags/Tags';
export Register from '@plone/volto/components/theme/Register/Register';
export PasswordReset from '@plone/volto/components/theme/PasswordReset/PasswordReset';
export RequestPasswordReset from '@plone/volto/components/theme/PasswordReset/RequestPasswordReset';

export Actions from './manage/Actions/Actions';
export Add from './manage/Add/Add';
export Contents from './manage/Contents/Contents';
export ContentsIndexHeader from './manage/Contents/ContentsIndexHeader';
export ContentsItem from './manage/Contents/ContentsItem';
export ContentsUploadModal from './manage/Contents/ContentsUploadModal';
export ContentsPropertiesModal from './manage/Contents/ContentsPropertiesModal';
export ContentsRenameModal from './manage/Contents/ContentsRenameModal';
export ContentsWorkflowModal from './manage/Contents/ContentsWorkflowModal';
export ContentsTagsModal from './manage/Contents/ContentsTagsModal';
export Controlpanel from './manage/Controlpanels/Controlpanel';
export Controlpanels from './manage/Controlpanels/Controlpanels';
export ModerateComments from './manage/Controlpanels/ModerateComments';
export UsersControlpanel from './manage/Controlpanels/UsersControlpanel';
export Delete from './manage/Delete/Delete';
export Diff from './manage/Diff/Diff';
export DiffField from './manage/Diff/DiffField';
export Display from './manage/Display/Display';
export Edit from './manage/Edit/Edit';
export Form from './manage/Form/Form';
export Field from './manage/Form/Field';
export ModalForm from './manage/Form/ModalForm';
export History from './manage/History/History';
export Messages from './manage/Messages/Messages';
export ChangePassword from './manage/Preferences/ChangePassword';
export PersonalPreferences from './manage/Preferences/PersonalPreferences';
export PersonalInformation from './manage/Preferences/PersonalInformation';
export ArrayWidget from './manage/Widgets/ArrayWidget';
export CheckboxWidget from './manage/Widgets/CheckboxWidget';
export DatetimeWidget from './manage/Widgets/DatetimeWidget';
export FileWidget from './manage/Widgets/FileWidget';
export PasswordWidget from './manage/Widgets/PasswordWidget';
export SchemaWidget from './manage/Widgets/SchemaWidget';
export SchemaWidgetFieldset from './manage/Widgets/SchemaWidgetFieldset';
export SelectWidget from './manage/Widgets/SelectWidget';
export Sharing from './manage/Sharing/Sharing';
export TextareaWidget from './manage/Widgets/TextareaWidget';
export TextWidget from './manage/Widgets/TextWidget';
export Toolbar from './manage/Toolbar/Toolbar';
export Types from './manage/Types/Types';
export WysiwygWidget from './manage/Widgets/WysiwygWidget';
export Workflow from './manage/Workflow/Workflow';
export Actions from '@plone/volto/components/manage/Actions/Actions';
export Add from '@plone/volto/components/manage/Add/Add';
export Contents from '@plone/volto/components/manage/Contents/Contents';
export ContentsIndexHeader from '@plone/volto/components/manage/Contents/ContentsIndexHeader';
export ContentsItem from '@plone/volto/components/manage/Contents/ContentsItem';
export ContentsUploadModal from '@plone/volto/components/manage/Contents/ContentsUploadModal';
export ContentsPropertiesModal from '@plone/volto/components/manage/Contents/ContentsPropertiesModal';
export ContentsRenameModal from '@plone/volto/components/manage/Contents/ContentsRenameModal';
export ContentsWorkflowModal from '@plone/volto/components/manage/Contents/ContentsWorkflowModal';
export ContentsTagsModal from '@plone/volto/components/manage/Contents/ContentsTagsModal';
export Controlpanel from '@plone/volto/components/manage/Controlpanels/Controlpanel';
export Controlpanels from '@plone/volto/components/manage/Controlpanels/Controlpanels';
export ModerateComments from '@plone/volto/components/manage/Controlpanels/ModerateComments';
export UsersControlpanel from '@plone/volto/components/manage/Controlpanels/UsersControlpanel';
export Delete from '@plone/volto/components/manage/Delete/Delete';
export Diff from '@plone/volto/components/manage/Diff/Diff';
export DiffField from '@plone/volto/components/manage/Diff/DiffField';
export Display from '@plone/volto/components/manage/Display/Display';
export Edit from '@plone/volto/components/manage/Edit/Edit';
export Form from '@plone/volto/components/manage/Form/Form';
export Field from '@plone/volto/components/manage/Form/Field';
export ModalForm from '@plone/volto/components/manage/Form/ModalForm';
export History from '@plone/volto/components/manage/History/History';
export Messages from '@plone/volto/components/manage/Messages/Messages';
export ChangePassword from '@plone/volto/components/manage/Preferences/ChangePassword';
export PersonalPreferences from '@plone/volto/components/manage/Preferences/PersonalPreferences';
export PersonalInformation from '@plone/volto/components/manage/Preferences/PersonalInformation';
export ArrayWidget from '@plone/volto/components/manage/Widgets/ArrayWidget';
export CheckboxWidget from '@plone/volto/components/manage/Widgets/CheckboxWidget';
export DatetimeWidget from '@plone/volto/components/manage/Widgets/DatetimeWidget';
export FileWidget from '@plone/volto/components/manage/Widgets/FileWidget';
export PasswordWidget from '@plone/volto/components/manage/Widgets/PasswordWidget';
export SchemaWidget from '@plone/volto/components/manage/Widgets/SchemaWidget';
export SchemaWidgetFieldset from '@plone/volto/components/manage/Widgets/SchemaWidgetFieldset';
export SelectWidget from '@plone/volto/components/manage/Widgets/SelectWidget';
export Sharing from '@plone/volto/components/manage/Sharing/Sharing';
export TextareaWidget from '@plone/volto/components/manage/Widgets/TextareaWidget';
export TextWidget from '@plone/volto/components/manage/Widgets/TextWidget';
export Toolbar from '@plone/volto/components/manage/Toolbar/Toolbar';
export Types from '@plone/volto/components/manage/Types/Types';
export WysiwygWidget from '@plone/volto/components/manage/Widgets/WysiwygWidget';
export Workflow from '@plone/volto/components/manage/Workflow/Workflow';

export EditDescriptionTile from './manage/Tiles/Description/Edit';
export EditTitleTile from './manage/Tiles/Title/Edit';
export EditTextTile from './manage/Tiles/Text/Edit';
export EditImageTile from './manage/Tiles/Image/Edit';
export EditVideoTile from './manage/Tiles/Video/Edit';
export EditTile from './manage/Tiles/Tile/Edit';
export EditDescriptionTile from '@plone/volto/components/manage/Tiles/Description/Edit';
export EditTitleTile from '@plone/volto/components/manage/Tiles/Title/Edit';
export EditTextTile from '@plone/volto/components/manage/Tiles/Text/Edit';
export EditImageTile from '@plone/volto/components/manage/Tiles/Image/Edit';
export EditVideoTile from '@plone/volto/components/manage/Tiles/Video/Edit';
export EditTile from '@plone/volto/components/manage/Tiles/Tile/Edit';

export ViewDescriptionTile from './manage/Tiles/Description/View';
export ViewTitleTile from './manage/Tiles/Title/View';
export ViewTextTile from './manage/Tiles/Text/View';
export ViewImageTile from './manage/Tiles/Image/View';
export ViewVideoTile from './manage/Tiles/Video/View';
export ViewDescriptionTile from '@plone/volto/components/manage/Tiles/Description/View';
export ViewTitleTile from '@plone/volto/components/manage/Tiles/Title/View';
export ViewTextTile from '@plone/volto/components/manage/Tiles/Text/View';
export ViewImageTile from '@plone/volto/components/manage/Tiles/Image/View';
export ViewVideoTile from '@plone/volto/components/manage/Tiles/Video/View';
19 changes: 11 additions & 8 deletions src/helpers/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,18 @@
* @example import { Api, Html } from 'helpers';
*/

export { Api } from './Api/Api';
export { Html } from './Html/Html';
export { getAuthToken, persistAuthToken } from './AuthToken/AuthToken';
export { getBaseUrl, getIcon, getView } from './Url/Url';
export { generateSitemap } from './Sitemap/Sitemap';
export { nestContent } from './Content/Content';
export { Api } from '@plone/volto/helpers/Api/Api';
export { Html } from '@plone/volto/helpers/Html/Html';
export {
getAuthToken,
persistAuthToken,
} from '@plone/volto/helpers/AuthToken/AuthToken';
export { getBaseUrl, getIcon, getView } from '@plone/volto/helpers/Url/Url';
export { generateSitemap } from '@plone/volto/helpers/Sitemap/Sitemap';
export { nestContent } from '@plone/volto/helpers/Content/Content';
export {
getTilesFieldname,
getTilesLayoutFieldname,
hasTilesData,
} from './Tiles/Tiles';
export BodyClass from './BodyClass/BodyClass';
} from '@plone/volto/helpers/Tiles/Tiles';
export BodyClass from '@plone/volto/helpers/BodyClass/BodyClass';
4 changes: 2 additions & 2 deletions src/middleware/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@
* @example import { api } from 'middleware';
*/

export api from './api';
export crashReporter from './crashReporter';
export api from '@plone/volto/middleware/api';
export crashReporter from '@plone/volto/middleware/crashReporter';
Loading

0 comments on commit b324d18

Please sign in to comment.