Skip to content
Snippets Groups Projects
Commit 58aad637 authored by Mathias Maaß's avatar Mathias Maaß
Browse files

Add config option to show manifest list. Closes #2759

parent 91f9f0df
No related branches found
No related tags found
No related merge requests found
......@@ -13,14 +13,9 @@
<script type="text/javascript">
var miradorInstance = Mirador.viewer({
id: 'mirador',
windows: [{
loadedManifest: 'https://iiif.harvardartmuseums.org/manifests/object/299843',
canvasIndex: 2,
thumbnailNavigationPosition: 'far-bottom',
workspace: {
isWorkspaceAddVisible: true,
},
{
loadedManifest: 'https://iiif.bodleian.ox.ac.uk/iiif/manifest/e32a277e-91e2-4a6d-8ba6-cc4bad230410.json',
}],
window: {
hideSearchPanel: false,
},
......
......@@ -43,4 +43,17 @@ describe('config actions', () => {
expect(actions.importMiradorState(state).type).toEqual(ActionTypes.IMPORT_MIRADOR_STATE);
});
});
describe('setWorkspaceAddVisibility', () => {
it('should set the the isWorkspaceAddVisible property', () => {
expect(actions.setWorkspaceAddVisibility(true)).toEqual({
config: { workspace: { isWorkspaceAddVisible: true } },
type: ActionTypes.UPDATE_CONFIG,
});
expect(actions.setWorkspaceAddVisibility(true)).toEqual({
config: { workspace: { isWorkspaceAddVisible: true } },
type: ActionTypes.UPDATE_CONFIG,
});
});
});
});
......@@ -40,15 +40,6 @@ describe('workspace actions', () => {
expect(actions.toggleZoomControls(true)).toEqual(expectedAction);
});
});
describe('setWorkspaceAddVisibility', () => {
it('should set the workspace add visibility', () => {
const expectedAction = {
isWorkspaceAddVisible: true,
type: ActionTypes.SET_WORKSPACE_ADD_VISIBILITY,
};
expect(actions.setWorkspaceAddVisibility(true)).toEqual(expectedAction);
});
});
describe('setWorkspaceViewportDimensions', () => {
it('should set the workspace add visibility', () => {
const expectedAction = {
......
......@@ -71,14 +71,6 @@ describe('workspace reducer', () => {
layout: { foo: 'bar' },
});
});
it('should handle SET_WORKSPACE_ADD_VISIBILITY', () => {
expect(workspaceReducer([], {
isWorkspaceAddVisible: true,
type: ActionTypes.SET_WORKSPACE_ADD_VISIBILITY,
})).toEqual({
isWorkspaceAddVisible: true,
});
});
it('should handle SET_WORKSPACE_VIEWPORT_POSITION', () => {
expect(workspaceReducer({ height: 5000, width: 5000 }, {
payload: {
......
......@@ -230,6 +230,7 @@ export default {
workspace: {
showZoomControls: false, // Configure if zoom controls should be displayed by default
type: 'mosaic', // Which workspace type to load by default. Other possible values are "elastic"
isWorkspaceAddVisible: false,
},
workspaceControlPanel: {
enabled: true, // Configure if the control panel should be rendered. Useful if you want to lock the viewer down to only the configured manifests
......
......@@ -6,8 +6,8 @@ import { withPlugins } from '../extend/withPlugins';
import { WindowListButton } from '../components/WindowListButton';
/** */
const mapStateToProps = ({ windows, workspace }) => ({
disabled: workspace.isWorkspaceAddVisible,
const mapStateToProps = ({ windows, config }) => ({
disabled: config.workspace.isWorkspaceAddVisible,
windowCount: Object.keys(windows).length,
});
......
......@@ -13,7 +13,7 @@ import { WorkspaceAddButton } from '../components/WorkspaceAddButton';
* @private
*/
const mapStateToProps = (state, { width }) => {
const { isWorkspaceAddVisible } = state.workspace;
const { isWorkspaceAddVisible } = state.config.workspace;
return {
isWorkspaceAddVisible,
useExtendedFab: (
......
......@@ -12,8 +12,8 @@ import { WorkspaceArea } from '../components/WorkspaceArea';
*/
const mapStateToProps = state => (
{
controlPanelVariant: state.workspace.isWorkspaceAddVisible || Object.keys(state.windows).length > 0 ? undefined : 'wide',
isWorkspaceAddVisible: state.workspace.isWorkspaceAddVisible,
controlPanelVariant: state.config.workspace.isWorkspaceAddVisible || Object.keys(state.windows).length > 0 ? undefined : 'wide',
isWorkspaceAddVisible: state.config.workspace.isWorkspaceAddVisible,
isWorkspaceControlPanelVisible: state.config.workspaceControlPanel.enabled,
}
);
......
......@@ -22,7 +22,7 @@ const mapDispatchToProps = {
*/
const mapStateToProps = state => ({
containerId: getContainerId(state),
isWorkspaceAddVisible: state.workspace.isWorkspaceAddVisible,
isWorkspaceAddVisible: state.config.workspace.isWorkspaceAddVisible,
showThemePicker: getThemeIds(state).length > 0,
showZoomControls: getShowZoomControlsConfig(state),
});
......
......@@ -47,3 +47,15 @@ export function importMiradorState(state) {
};
return { state: newState, type: ActionTypes.IMPORT_MIRADOR_STATE };
}
/**
* @param {Object} isWorkspaceAddVisible
* @memberof ActionCreators
*/
export function setWorkspaceAddVisibility(isWorkspaceAddVisible) {
return updateConfig({
workspace: {
isWorkspaceAddVisible,
},
});
}
......@@ -29,16 +29,6 @@ export function updateWorkspaceMosaicLayout(layout) {
return { layout, type: ActionTypes.UPDATE_WORKSPACE_MOSAIC_LAYOUT };
}
/**
* updateWorkspaceMosaicLayout - action creator
*
* @param {Object} isWorkspaceAddVisible
* @memberof ActionCreators
*/
export function setWorkspaceAddVisibility(isWorkspaceAddVisible) {
return { isWorkspaceAddVisible, type: ActionTypes.SET_WORKSPACE_ADD_VISIBILITY };
}
/**
* setWorkspaceViewportPosition - action creator
*
......
......@@ -63,8 +63,6 @@ export const workspaceReducer = (
return { ...state, showZoomControls: action.showZoomControls };
case ActionTypes.UPDATE_WORKSPACE_MOSAIC_LAYOUT:
return { ...state, layout: action.layout };
case ActionTypes.SET_WORKSPACE_ADD_VISIBILITY:
return { ...state, isWorkspaceAddVisible: action.isWorkspaceAddVisible };
case ActionTypes.SET_WORKSPACE_VIEWPORT_POSITION:
newWorkspaceDimensions = {};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment