diff --git a/src/Makefile b/src/Makefile
index de34531..abafc2c 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -50,6 +50,7 @@ JSSRC= \
grid/PendingObjectGrid.js \
panel/AuthView.js \
panel/DiskList.js \
+ panel/EOLNotice.js \
panel/InputPanel.js \
panel/InfoWidget.js \
panel/LogView.js \
diff --git a/src/css/ext6-pmx.css b/src/css/ext6-pmx.css
index ff03573..1d815c6 100644
--- a/src/css/ext6-pmx.css
+++ b/src/css/ext6-pmx.css
@@ -52,6 +52,14 @@
color: #3892d4;
}
+.pwt-eol-icon {
+ position: relative;
+ float: left;
+ margin-right: 5px;
+ font-size: 1.3em;
+ color: #FF6C59;
+}
+
/* reduce chart legend space usage to something more sane */
.x-legend-item {
padding: 0.4em 0.8em 0.4em 1.8em;
diff --git a/src/panel/EOLNotice.js b/src/panel/EOLNotice.js
new file mode 100644
index 0000000..f384bb0
--- /dev/null
+++ b/src/panel/EOLNotice.js
@@ -0,0 +1,33 @@
+// not realy a panel descendant, but its the best (existing) place for this
+Ext.define('Proxmox.EOLNotice', {
+ extend: 'Ext.Component',
+ alias: 'widget.proxmoxEOLNotice',
+
+ padding: '0 5',
+
+ config: {
+ product: '',
+ version: '',
+ eolDate: '',
+ href: '',
+ },
+
+ autoEl: {
+ tag: 'div',
+ 'data-qtip': gettext("You won't get any security fixes after the End-Of-Life date. Please consider upgrading."),
+ },
+
+ initComponent: function() {
+ let me = this;
+
+ let href = me.href.startsWith('http') ? me.href : `https://${me.href}`;
+ let message = Ext.String.format(
+ gettext('Support for {0} {1} ends on {2}'), me.product, me.version, me.eolDate);
+
+ me.html = `
+ ${message}
+ `;
+
+ me.callParent();
+ },
+});