diff --git a/data/Dockerfiles/sogo/Dockerfile b/data/Dockerfiles/sogo/Dockerfile index 78da39bec..4eb36638a 100644 --- a/data/Dockerfiles/sogo/Dockerfile +++ b/data/Dockerfiles/sogo/Dockerfile @@ -48,6 +48,7 @@ COPY syslog-ng.conf /etc/syslog-ng/syslog-ng.conf COPY syslog-ng-redis_slave.conf /etc/syslog-ng/syslog-ng-redis_slave.conf COPY supervisord.conf /etc/supervisor/supervisord.conf COPY acl.diff /acl.diff +COPY navMailcowBtns.diff /navMailcowBtns.diff COPY stop-supervisor.sh /usr/local/sbin/stop-supervisor.sh COPY docker-entrypoint.sh / diff --git a/data/Dockerfiles/sogo/bootstrap-sogo.sh b/data/Dockerfiles/sogo/bootstrap-sogo.sh index 11b077cfd..566d812fc 100755 --- a/data/Dockerfiles/sogo/bootstrap-sogo.sh +++ b/data/Dockerfiles/sogo/bootstrap-sogo.sh @@ -136,6 +136,10 @@ chmod 600 /var/lib/sogo/GNUstep/Defaults/sogod.plist # fi #fi +if patch -R -sfN --dry-run /usr/lib/GNUstep/SOGo/Templates/UIxTopnavToolbar.wox < /navMailcowBtns.diff > /dev/null; then + patch -R /usr/lib/GNUstep/SOGo/Templates/UIxTopnavToolbar.wox < /navMailcowBtns.diff; +fi + # Copy logo, if any [[ -f /etc/sogo/sogo-full.svg ]] && cp /etc/sogo/sogo-full.svg /usr/lib/GNUstep/SOGo/WebServerResources/img/sogo-full.svg diff --git a/data/Dockerfiles/sogo/navMailcowBtns.diff b/data/Dockerfiles/sogo/navMailcowBtns.diff new file mode 100644 index 000000000..1b469aa60 --- /dev/null +++ b/data/Dockerfiles/sogo/navMailcowBtns.diff @@ -0,0 +1,20 @@ +59,65d58 +< ng-show="::!activeUser.isSuperUser" +< var:ng-click="navButtonClick" +< ng-href="/user"> +< build +< +< +< ng-show="::activeUser.path.logoff.length" +85c78 +< ng-href="#"> +--- +> ng-href="{{::activeUser.path.logoff}}"> +89,91d81 +<
+< +<
diff --git a/data/conf/sogo/custom-sogo.js b/data/conf/sogo/custom-sogo.js index 1070efa40..e1f27e8ff 100644 --- a/data/conf/sogo/custom-sogo.js +++ b/data/conf/sogo/custom-sogo.js @@ -4,48 +4,6 @@ document.addEventListener('DOMContentLoaded', function () { if (loginForm) { window.location.href = '/user'; } - - angularReady = false; - function observe() { - angularReady = toolbarExists(); - if (angularReady && !mcElementsExists()) addMCElements(); - - const observer = new MutationObserver(function(mutations) { - if (!angularReady) { - mutations.forEach(function(mutation) { - if (mutation.addedNodes.length > 0) angularReady = toolbarExists(); - }); - } else if (angularReady && !mcElementsExists()) { - addMCElements(); - } - }); - - const targetNode = document.body; - const config = { childList: true, subtree: true }; - observer.observe(targetNode, config); - } - function toolbarExists() { - const toolbarElement = document.body.querySelector('md-toolbar'); - if (toolbarElement) - return true; - else - return false; - } - function mcElementsExists() { - if (document.getElementById("mc_backlink")) - return true; - else - return false; - } - function addMCElements() { - const toolbarElement = document.body.querySelector('.md-toolbar-tools.sg-toolbar-group-last.layout-align-end-center.layout-row'); - var htmlCode = '' + - 'build' + - ''; - toolbarElement.insertAdjacentHTML('beforeend', htmlCode); - } - - observe(); }); // Custom SOGo JS diff --git a/docker-compose.yml b/docker-compose.yml index 9218b3960..aaa8a3a03 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -198,7 +198,7 @@ services: - phpfpm sogo-mailcow: - image: mailcow/sogo:nightly-20241205 + image: mailcow/sogo:nightly-20250115 environment: - DBNAME=${DBNAME} - DBUSER=${DBUSER}