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}