From 1f62e699a2aeb2b3a8e69e095b8c3c53e684e1ec Mon Sep 17 00:00:00 2001 From: salim kanoun Date: Tue, 28 Apr 2026 22:50:21 +0200 Subject: [PATCH 1/2] add hideUndoRedo settings --- .../default/src/ViewerLayout/ViewerHeader.tsx | 42 ++++++++++--------- platform/app/public/config/aws.js | 1 + platform/app/public/config/customization.js | 1 + platform/app/public/config/default.js | 1 + platform/app/public/config/default_16bit.js | 1 + platform/app/public/config/demo.js | 1 + .../docker_openresty-orthanc-keycloak.js | 1 + .../deprecated/docker_openresty-orthanc.js | 1 + platform/app/public/config/dicomweb-server.js | 1 + .../app/public/config/dicomweb_relative.js | 1 + .../config/docker-nginx-dcm4chee-keycloak.js | 1 + .../public/config/docker-nginx-dcm4chee.js | 1 + .../config/docker-nginx-orthanc-keycloak.js | 1 + .../app/public/config/docker-nginx-orthanc.js | 1 + platform/app/public/config/e2e.js | 1 + platform/app/public/config/google.js | 1 + platform/app/public/config/kheops.js | 1 + platform/app/public/config/local_dcm4chee.js | 1 + platform/app/public/config/local_orthanc.js | 1 + platform/app/public/config/local_static.js | 1 + platform/app/public/config/multiple.js | 1 + platform/app/public/config/netlify.js | 1 + platform/app/public/config/public_dicomweb.js | 1 + platform/app/src/App.tsx | 2 + platform/core/src/types/AppTypes.ts | 1 + .../docs/configuration/configurationFiles.md | 2 + 26 files changed, 49 insertions(+), 20 deletions(-) diff --git a/extensions/default/src/ViewerLayout/ViewerHeader.tsx b/extensions/default/src/ViewerLayout/ViewerHeader.tsx index eb3b7789d17..93e17793cc3 100644 --- a/extensions/default/src/ViewerLayout/ViewerHeader.tsx +++ b/extensions/default/src/ViewerLayout/ViewerHeader.tsx @@ -97,26 +97,28 @@ function ViewerHeader({ appConfig }: withAppTypes<{ appConfig: AppTypes.Config } ) } UndoRedo={ -
- - -
+ !appConfig?.hideUndoRedo && ( +
+ + +
+ ) } >
diff --git a/platform/app/public/config/aws.js b/platform/app/public/config/aws.js index 5cd5f27d8cc..1fbdecf81ce 100644 --- a/platform/app/public/config/aws.js +++ b/platform/app/public/config/aws.js @@ -5,6 +5,7 @@ window.config = { extensions: [], modes: [], showStudyList: true, + hideUndoRedo: false, // below flag is for performance reasons, but it might not work for all servers showWarningMessageForCrossOrigin: true, diff --git a/platform/app/public/config/customization.js b/platform/app/public/config/customization.js index b1467b5cdff..719db56fd37 100644 --- a/platform/app/public/config/customization.js +++ b/platform/app/public/config/customization.js @@ -4,6 +4,7 @@ window.config = { extensions: [], modes: ['@ohif/mode-test'], showStudyList: true, + hideUndoRedo: false, // below flag is for performance reasons, but it might not work for all servers maxNumberOfWebWorkers: 3, showWarningMessageForCrossOrigin: false, diff --git a/platform/app/public/config/default.js b/platform/app/public/config/default.js index f29a70acb4f..14c87e6d004 100644 --- a/platform/app/public/config/default.js +++ b/platform/app/public/config/default.js @@ -8,6 +8,7 @@ window.config = { modes: [], customizationService: {}, showStudyList: true, + hideUndoRedo: false, // some windows systems have issues with more than 3 web workers maxNumberOfWebWorkers: 3, // below flag is for performance reasons, but it might not work for all servers diff --git a/platform/app/public/config/default_16bit.js b/platform/app/public/config/default_16bit.js index 1dfb9a829dd..4619c522767 100644 --- a/platform/app/public/config/default_16bit.js +++ b/platform/app/public/config/default_16bit.js @@ -9,6 +9,7 @@ window.config = { // helloPage: '@ohif/extension-default.customizationModule.helloPage', }, showStudyList: true, + hideUndoRedo: false, // some windows systems have issues with more than 3 web workers maxNumberOfWebWorkers: 3, // below flag is for performance reasons, but it might not work for all servers diff --git a/platform/app/public/config/demo.js b/platform/app/public/config/demo.js index 4d780b698ef..5cb350af511 100644 --- a/platform/app/public/config/demo.js +++ b/platform/app/public/config/demo.js @@ -4,6 +4,7 @@ window.config = { modes: [], extensions: [], showStudyList: true, + hideUndoRedo: false, // below flag is for performance reasons, but it might not work for all servers showWarningMessageForCrossOrigin: true, strictZSpacingForVolumeViewport: true, diff --git a/platform/app/public/config/deprecated/docker_openresty-orthanc-keycloak.js b/platform/app/public/config/deprecated/docker_openresty-orthanc-keycloak.js index d9d5b62ceb9..021076a8e16 100644 --- a/platform/app/public/config/deprecated/docker_openresty-orthanc-keycloak.js +++ b/platform/app/public/config/deprecated/docker_openresty-orthanc-keycloak.js @@ -2,6 +2,7 @@ window.config = { routerBasename: null, showStudyList: true, + hideUndoRedo: false, extensions: [], modes: [], // below flag is for performance reasons, but it might not work for all servers diff --git a/platform/app/public/config/deprecated/docker_openresty-orthanc.js b/platform/app/public/config/deprecated/docker_openresty-orthanc.js index 0694cbb4255..3ff7e0f81bc 100644 --- a/platform/app/public/config/deprecated/docker_openresty-orthanc.js +++ b/platform/app/public/config/deprecated/docker_openresty-orthanc.js @@ -2,6 +2,7 @@ window.config = { routerBasename: null, showStudyList: true, + hideUndoRedo: false, extensions: [], modes: [], // below flag is for performance reasons, but it might not work for all servers diff --git a/platform/app/public/config/dicomweb-server.js b/platform/app/public/config/dicomweb-server.js index e08fae42da0..5d61dc30aa0 100644 --- a/platform/app/public/config/dicomweb-server.js +++ b/platform/app/public/config/dicomweb-server.js @@ -4,6 +4,7 @@ window.config = { extensions: [], modes: [], showStudyList: true, + hideUndoRedo: false, // below flag is for performance reasons, but it might not work for all servers showWarningMessageForCrossOrigin: true, showCPUFallbackMessage: true, diff --git a/platform/app/public/config/dicomweb_relative.js b/platform/app/public/config/dicomweb_relative.js index 115f5bd8797..8edfa389f98 100644 --- a/platform/app/public/config/dicomweb_relative.js +++ b/platform/app/public/config/dicomweb_relative.js @@ -4,6 +4,7 @@ window.config = { extensions: [], modes: [], showStudyList: true, + hideUndoRedo: false, maxNumberOfWebWorkers: 3, // below flag is for performance reasons, but it might not work for all servers showWarningMessageForCrossOrigin: true, diff --git a/platform/app/public/config/docker-nginx-dcm4chee-keycloak.js b/platform/app/public/config/docker-nginx-dcm4chee-keycloak.js index b5ea6c45bcf..580791b5b1b 100644 --- a/platform/app/public/config/docker-nginx-dcm4chee-keycloak.js +++ b/platform/app/public/config/docker-nginx-dcm4chee-keycloak.js @@ -2,6 +2,7 @@ window.config = { routerBasename: '/ohif-viewer/', showStudyList: true, + hideUndoRedo: false, extensions: [], modes: [], // below flag is for performance reasons, but it might not work for all servers diff --git a/platform/app/public/config/docker-nginx-dcm4chee.js b/platform/app/public/config/docker-nginx-dcm4chee.js index 9f8ed6ecfc5..0fde41b45a6 100644 --- a/platform/app/public/config/docker-nginx-dcm4chee.js +++ b/platform/app/public/config/docker-nginx-dcm4chee.js @@ -2,6 +2,7 @@ window.config = { routerBasename: null, showStudyList: true, + hideUndoRedo: false, extensions: [], modes: [], // below flag is for performance reasons, but it might not work for all servers diff --git a/platform/app/public/config/docker-nginx-orthanc-keycloak.js b/platform/app/public/config/docker-nginx-orthanc-keycloak.js index 3a8b60a2c45..72842dca364 100644 --- a/platform/app/public/config/docker-nginx-orthanc-keycloak.js +++ b/platform/app/public/config/docker-nginx-orthanc-keycloak.js @@ -5,6 +5,7 @@ window.config = { modes: [], customizationService: {}, showStudyList: true, + hideUndoRedo: false, maxNumberOfWebWorkers: 3, showWarningMessageForCrossOrigin: true, showCPUFallbackMessage: true, diff --git a/platform/app/public/config/docker-nginx-orthanc.js b/platform/app/public/config/docker-nginx-orthanc.js index 820ef8fb039..40e5710c01c 100644 --- a/platform/app/public/config/docker-nginx-orthanc.js +++ b/platform/app/public/config/docker-nginx-orthanc.js @@ -2,6 +2,7 @@ window.config = { routerBasename: null, showStudyList: true, + hideUndoRedo: false, extensions: [], modes: [], // below flag is for performance reasons, but it might not work for all servers diff --git a/platform/app/public/config/e2e.js b/platform/app/public/config/e2e.js index 93acbbd0b1a..9663c9457b1 100644 --- a/platform/app/public/config/e2e.js +++ b/platform/app/public/config/e2e.js @@ -21,6 +21,7 @@ window.config = { extensions: [], modes: ['@ohif/mode-test'], showStudyList: true, + hideUndoRedo: false, // below flag is for performance reasons, but it might not work for all servers maxNumberOfWebWorkers: 3, showWarningMessageForCrossOrigin: false, diff --git a/platform/app/public/config/google.js b/platform/app/public/config/google.js index ea2e7637f50..a9eafaa9110 100644 --- a/platform/app/public/config/google.js +++ b/platform/app/public/config/google.js @@ -28,6 +28,7 @@ window.config = { extensions: [], modes: [], showStudyList: true, + hideUndoRedo: false, // filterQueryParam: false, defaultDataSourceName: 'dicomweb', dataSources: [ diff --git a/platform/app/public/config/kheops.js b/platform/app/public/config/kheops.js index 4a92cf51429..793d0a6707f 100644 --- a/platform/app/public/config/kheops.js +++ b/platform/app/public/config/kheops.js @@ -7,6 +7,7 @@ window.config = { modes: ['@ohif/mode-test'], customizationService: {}, showStudyList: true, + hideUndoRedo: false, // some windows systems have issues with more than 3 web workers maxNumberOfWebWorkers: 3, // below flag is for performance reasons, but it might not work for all servers diff --git a/platform/app/public/config/local_dcm4chee.js b/platform/app/public/config/local_dcm4chee.js index 054c12b73ee..89a568892c3 100644 --- a/platform/app/public/config/local_dcm4chee.js +++ b/platform/app/public/config/local_dcm4chee.js @@ -2,6 +2,7 @@ window.config = { routerBasename: null, showStudyList: true, + hideUndoRedo: false, extensions: [], modes: [], // below flag is for performance reasons, but it might not work for all servers diff --git a/platform/app/public/config/local_orthanc.js b/platform/app/public/config/local_orthanc.js index 838ee8816cd..0299c06fc1e 100644 --- a/platform/app/public/config/local_orthanc.js +++ b/platform/app/public/config/local_orthanc.js @@ -4,6 +4,7 @@ window.config = { extensions: [], modes: [], showStudyList: true, + hideUndoRedo: false, maxNumberOfWebWorkers: 3, showLoadingIndicator: true, showWarningMessageForCrossOrigin: true, diff --git a/platform/app/public/config/local_static.js b/platform/app/public/config/local_static.js index 32f3b354072..b31b5be8c1c 100644 --- a/platform/app/public/config/local_static.js +++ b/platform/app/public/config/local_static.js @@ -5,6 +5,7 @@ window.config = { extensions: [], modes: [], showStudyList: true, + hideUndoRedo: false, maxNumberOfWebWorkers: 4, // below flag is for performance reasons, but it might not work for all servers showWarningMessageForCrossOrigin: true, diff --git a/platform/app/public/config/multiple.js b/platform/app/public/config/multiple.js index a20601be802..46c799a08e0 100644 --- a/platform/app/public/config/multiple.js +++ b/platform/app/public/config/multiple.js @@ -15,6 +15,7 @@ window.config = { extensions: [], modes: ['@ohif/mode-test', '@ohif/mode-basic-dev-mode'], showStudyList: true, + hideUndoRedo: false, maxNumberOfWebWorkers: 4, // below flag is for performance reasons, but it might not work for all servers showWarningMessageForCrossOrigin: true, diff --git a/platform/app/public/config/netlify.js b/platform/app/public/config/netlify.js index a7eec568467..8a32f8d8e4b 100644 --- a/platform/app/public/config/netlify.js +++ b/platform/app/public/config/netlify.js @@ -5,6 +5,7 @@ window.config = { extensions: [], modes: [], showStudyList: true, + hideUndoRedo: false, // below flag is for performance reasons, but it might not work for all servers showWarningMessageForCrossOrigin: true, showCPUFallbackMessage: true, diff --git a/platform/app/public/config/public_dicomweb.js b/platform/app/public/config/public_dicomweb.js index 76c803d6acd..7b66e03bde1 100644 --- a/platform/app/public/config/public_dicomweb.js +++ b/platform/app/public/config/public_dicomweb.js @@ -1,6 +1,7 @@ window.config = { routerBasename: null, showStudyList: true, + hideUndoRedo: false, // below flag is for performance reasons, but it might not work for all servers showWarningMessageForCrossOrigin: true, showCPUFallbackMessage: true, diff --git a/platform/app/src/App.tsx b/platform/app/src/App.tsx index 18393f6439d..5854704ead0 100644 --- a/platform/app/src/App.tsx +++ b/platform/app/src/App.tsx @@ -63,6 +63,7 @@ function App({ */ showLoadingIndicator: true, showStudyList: true, + hideUndoRedo: false, oidc: [], extensions: [], }, @@ -190,6 +191,7 @@ App.propTypes = { extensions: PropTypes.array, showLoadingIndicator: PropTypes.bool, showStudyList: PropTypes.bool, + hideUndoRedo: PropTypes.bool, modes: PropTypes.array, dataSources: PropTypes.array, }), diff --git a/platform/core/src/types/AppTypes.ts b/platform/core/src/types/AppTypes.ts index 48248c05ee3..6eed2135b32 100644 --- a/platform/core/src/types/AppTypes.ts +++ b/platform/core/src/types/AppTypes.ts @@ -127,6 +127,7 @@ declare global { activateViewportBeforeInteraction?: boolean; autoPlayCine?: boolean; showStudyList?: boolean; + hideUndoRedo?: boolean; whiteLabeling?: Record; httpErrorHandler?: (error: Error) => void; dangerouslyUseDynamicConfig?: { diff --git a/platform/docs/docs/configuration/configurationFiles.md b/platform/docs/docs/configuration/configurationFiles.md index 8df9cb26cfc..0d8b6e22b24 100644 --- a/platform/docs/docs/configuration/configurationFiles.md +++ b/platform/docs/docs/configuration/configurationFiles.md @@ -34,6 +34,7 @@ window.config = { extensions: [], modes: [], showStudyList: true, + hideUndoRedo: false, dataSources: [ { namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', @@ -187,6 +188,7 @@ if auth headers are used, a preflight request is required. ``` - `showLoadingIndicator`: (default to true), if set to false, the loading indicator will not be shown when navigating between studies. - `showStudyList`: (default to false), if set to false, the OHIF search (or work list) page will not be shown nor will there be a back button (chevron) in the viewer to navigate to it +- `hideUndoRedo`: (default to false), if set to true the undo/redo button are removed from the header - `useNorm16Texture`: (default to false), if set to true, it will use 16 bit data type for the image data wherever possible which has significant impact on reducing the memory usage. However, the 16Bit textures require EXT_texture_norm16 extension in webGL 2.0 (you can check if you have it here https://webglreport.com/?v=2). In addition to the extension, there are reported problems for Intel Macs that might cause the viewer to crash. In summary, it is great a configuration if you have support for it. - `useSharedArrayBuffer` (default to 'TRUE', options: 'AUTO', 'FALSE', 'TRUE', note that these are strings), for volume loading we use sharedArrayBuffer to be able to From 08b99413420c1ffe65f8e9cc0590607e3a9321a0 Mon Sep 17 00:00:00 2001 From: Salim Kanoun Date: Tue, 28 Apr 2026 22:57:39 +0200 Subject: [PATCH 2/2] Update platform/docs/docs/configuration/configurationFiles.md Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- platform/docs/docs/configuration/configurationFiles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/docs/docs/configuration/configurationFiles.md b/platform/docs/docs/configuration/configurationFiles.md index 0d8b6e22b24..3bfe2159189 100644 --- a/platform/docs/docs/configuration/configurationFiles.md +++ b/platform/docs/docs/configuration/configurationFiles.md @@ -188,7 +188,7 @@ if auth headers are used, a preflight request is required. ``` - `showLoadingIndicator`: (default to true), if set to false, the loading indicator will not be shown when navigating between studies. - `showStudyList`: (default to false), if set to false, the OHIF search (or work list) page will not be shown nor will there be a back button (chevron) in the viewer to navigate to it -- `hideUndoRedo`: (default to false), if set to true the undo/redo button are removed from the header +- `hideUndoRedo`: (default to false), if set to true the undo/redo buttons are removed from the header - `useNorm16Texture`: (default to false), if set to true, it will use 16 bit data type for the image data wherever possible which has significant impact on reducing the memory usage. However, the 16Bit textures require EXT_texture_norm16 extension in webGL 2.0 (you can check if you have it here https://webglreport.com/?v=2). In addition to the extension, there are reported problems for Intel Macs that might cause the viewer to crash. In summary, it is great a configuration if you have support for it. - `useSharedArrayBuffer` (default to 'TRUE', options: 'AUTO', 'FALSE', 'TRUE', note that these are strings), for volume loading we use sharedArrayBuffer to be able to