* [pve-devel] [PATCH proxmox-widget-toolkit 1/1] utils: add helper to format node's repository status
@ 2021-07-09 12:44 ` Fabian Ebner
0 siblings, 0 replies; 8+ messages in thread
From: Fabian Ebner @ 2021-07-09 12:44 UTC (permalink / raw)
To: pve-devel, pbs-devel
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
src/Utils.js | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/src/Utils.js b/src/Utils.js
index 8e1f9d4..19ce1f2 100644
--- a/src/Utils.js
+++ b/src/Utils.js
@@ -1150,6 +1150,28 @@ utilities: {
return icon;
},
+
+ formatNodeRepoStatus: function(status, product) {
+ let fmt = (txt, cls) => `<i class="fa fa-fw fa-lg fa-${cls}"></i>${txt}`;
+
+ let getUpdates = Ext.String.format(gettext('{0} updates'), product);
+ let noRepo = Ext.String.format(gettext('No {0} repository enabled!'), product);
+
+ if (status === 'ok') {
+ return fmt(getUpdates, 'check-circle good') + ' ' +
+ fmt(gettext('Production-ready Enterprise repository enabled'), 'check-circle good');
+ } else if (status === 'no-sub') {
+ return fmt(gettext('Production-ready Enterprise repository enabled'), 'check-circle good') + ' ' +
+ fmt(gettext('Enterprise repository needs valid subscription'), 'exclamation-circle warning');
+ } else if (status === 'non-production') {
+ return fmt(getUpdates, 'check-circle good') + ' ' +
+ fmt(gettext('Non production-ready repository enabled!'), 'exclamation-circle warning');
+ } else if (status === 'no-repo') {
+ return fmt(noRepo, 'exclamation-circle critical');
+ }
+
+ return Proxmox.Utils.unknownText;
+ },
},
singleton: true,
--
2.30.2
^ permalink raw reply [flat|nested] 8+ messages in thread
* [pbs-devel] [PATCH proxmox-widget-toolkit 1/1] utils: add helper to format node's repository status
@ 2021-07-09 12:44 ` Fabian Ebner
0 siblings, 0 replies; 8+ messages in thread
From: Fabian Ebner @ 2021-07-09 12:44 UTC (permalink / raw)
To: pve-devel, pbs-devel
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
src/Utils.js | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/src/Utils.js b/src/Utils.js
index 8e1f9d4..19ce1f2 100644
--- a/src/Utils.js
+++ b/src/Utils.js
@@ -1150,6 +1150,28 @@ utilities: {
return icon;
},
+
+ formatNodeRepoStatus: function(status, product) {
+ let fmt = (txt, cls) => `<i class="fa fa-fw fa-lg fa-${cls}"></i>${txt}`;
+
+ let getUpdates = Ext.String.format(gettext('{0} updates'), product);
+ let noRepo = Ext.String.format(gettext('No {0} repository enabled!'), product);
+
+ if (status === 'ok') {
+ return fmt(getUpdates, 'check-circle good') + ' ' +
+ fmt(gettext('Production-ready Enterprise repository enabled'), 'check-circle good');
+ } else if (status === 'no-sub') {
+ return fmt(gettext('Production-ready Enterprise repository enabled'), 'check-circle good') + ' ' +
+ fmt(gettext('Enterprise repository needs valid subscription'), 'exclamation-circle warning');
+ } else if (status === 'non-production') {
+ return fmt(getUpdates, 'check-circle good') + ' ' +
+ fmt(gettext('Non production-ready repository enabled!'), 'exclamation-circle warning');
+ } else if (status === 'no-repo') {
+ return fmt(noRepo, 'exclamation-circle critical');
+ }
+
+ return Proxmox.Utils.unknownText;
+ },
},
singleton: true,
--
2.30.2
^ permalink raw reply [flat|nested] 8+ messages in thread
* [pve-devel] [PATCH pve-manager 1/1] ui: node status: use helper for formatting repository status
2021-07-09 12:44 ` [pbs-devel] " Fabian Ebner
@ 2021-07-09 12:44 ` Fabian Ebner
-1 siblings, 0 replies; 8+ messages in thread
From: Fabian Ebner @ 2021-07-09 12:44 UTC (permalink / raw)
To: pve-devel, pbs-devel
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
Dependency bump for widget-toolkit is needed.
www/manager6/node/StatusView.js | 21 +--------------------
1 file changed, 1 insertion(+), 20 deletions(-)
diff --git a/www/manager6/node/StatusView.js b/www/manager6/node/StatusView.js
index d7a08529..3c52ce95 100644
--- a/www/manager6/node/StatusView.js
+++ b/www/manager6/node/StatusView.js
@@ -27,26 +27,7 @@ Ext.define('PVE.node.StatusView', {
return 'unknown';
},
repoStatusMessage: function(get) {
- const status = get('repoStatus');
-
- let fmt = (txt, cls) => `<i class="fa fa-fw fa-lg fa-${cls}"></i>${txt}`;
-
- let getUpdates = Ext.String.format(gettext('{0} updates'), 'Proxmox VE');
-
- if (status === 'ok') {
- return fmt(getUpdates, 'check-circle good') + ' ' +
- fmt(gettext('Production-ready Enterprise repository enabled'), 'check-circle good');
- } else if (status === 'no-sub') {
- return fmt(gettext('Production-ready Enterprise repository enabled'), 'check-circle good') + ' ' +
- fmt(gettext('Enterprise repository needs valid subscription'), 'exclamation-circle warning');
- } else if (status === 'non-production') {
- return fmt(getUpdates, 'check-circle good') + ' ' +
- fmt(gettext('Non production-ready repository enabled!'), 'exclamation-circle warning');
- } else if (status === 'no-repo') {
- return fmt(gettext('No Proxmox VE repository enabled!'), 'exclamation-circle critical');
- }
-
- return Proxmox.Utils.unknownText;
+ return Proxmox.Utils.formatNodeRepoStatus(get('repoStatus'), 'Proxmox VE');
},
},
},
--
2.30.2
^ permalink raw reply [flat|nested] 8+ messages in thread
* [pbs-devel] [PATCH pve-manager 1/1] ui: node status: use helper for formatting repository status
@ 2021-07-09 12:44 ` Fabian Ebner
0 siblings, 0 replies; 8+ messages in thread
From: Fabian Ebner @ 2021-07-09 12:44 UTC (permalink / raw)
To: pve-devel, pbs-devel
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
Dependency bump for widget-toolkit is needed.
www/manager6/node/StatusView.js | 21 +--------------------
1 file changed, 1 insertion(+), 20 deletions(-)
diff --git a/www/manager6/node/StatusView.js b/www/manager6/node/StatusView.js
index d7a08529..3c52ce95 100644
--- a/www/manager6/node/StatusView.js
+++ b/www/manager6/node/StatusView.js
@@ -27,26 +27,7 @@ Ext.define('PVE.node.StatusView', {
return 'unknown';
},
repoStatusMessage: function(get) {
- const status = get('repoStatus');
-
- let fmt = (txt, cls) => `<i class="fa fa-fw fa-lg fa-${cls}"></i>${txt}`;
-
- let getUpdates = Ext.String.format(gettext('{0} updates'), 'Proxmox VE');
-
- if (status === 'ok') {
- return fmt(getUpdates, 'check-circle good') + ' ' +
- fmt(gettext('Production-ready Enterprise repository enabled'), 'check-circle good');
- } else if (status === 'no-sub') {
- return fmt(gettext('Production-ready Enterprise repository enabled'), 'check-circle good') + ' ' +
- fmt(gettext('Enterprise repository needs valid subscription'), 'exclamation-circle warning');
- } else if (status === 'non-production') {
- return fmt(getUpdates, 'check-circle good') + ' ' +
- fmt(gettext('Non production-ready repository enabled!'), 'exclamation-circle warning');
- } else if (status === 'no-repo') {
- return fmt(gettext('No Proxmox VE repository enabled!'), 'exclamation-circle critical');
- }
-
- return Proxmox.Utils.unknownText;
+ return Proxmox.Utils.formatNodeRepoStatus(get('repoStatus'), 'Proxmox VE');
},
},
},
--
2.30.2
^ permalink raw reply [flat|nested] 8+ messages in thread
* [pve-devel] [PATCH proxmox-backup 1/1] ui: dashboard: show node's repository/subscription status
2021-07-09 12:44 ` [pbs-devel] " Fabian Ebner
@ 2021-07-09 12:44 ` Fabian Ebner
-1 siblings, 0 replies; 8+ messages in thread
From: Fabian Ebner @ 2021-07-09 12:44 UTC (permalink / raw)
To: pve-devel, pbs-devel
Mostly copied from PVE, slightly adapted to be consistent with other
things in the dashboard, e.g. use a store for the repository info.
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
Dependency bump for widget-toolkit is needed.
Built on top of Dominik's patches to refactor/extend the node info in
the Dashboard [0] (still applied for me).
[0]: https://lists.proxmox.com/pipermail/pbs-devel/2021-April/002788.html
www/Dashboard.js | 22 ++++++++++++++
www/panel/NodeInfo.js | 68 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 90 insertions(+)
diff --git a/www/Dashboard.js b/www/Dashboard.js
index 18f174fe..70c2305b 100644
--- a/www/Dashboard.js
+++ b/www/Dashboard.js
@@ -59,6 +59,11 @@ Ext.define('PBS.Dashboard', {
}
},
+ updateRepositoryStatus: function(store, records, success) {
+ if (!success) { return; }
+ let me = this;
+ me.lookup('nodeInfo').setRepositoryInfo(records[0].data['standard-repos']);
+ },
updateSubscription: function(store, records, success) {
if (!success) { return; }
@@ -67,6 +72,7 @@ Ext.define('PBS.Dashboard', {
// 2 = all good, 1 = different leves, 0 = none
let subStatus = status.toLowerCase() === 'active' ? 2 : 0;
me.lookup('subscription').setSubStatus(subStatus);
+ me.lookup('nodeInfo').setSubscriptionStatus(subStatus);
},
updateTasks: function(store, records, success) {
@@ -131,6 +137,21 @@ Ext.define('PBS.Dashboard', {
},
stores: {
+ repositories: {
+ storeid: 'dash-repositories',
+ type: 'update',
+ interval: 15000,
+ autoStart: true,
+ autoLoad: true,
+ autoDestroy: true,
+ proxy: {
+ type: 'proxmox',
+ url: '/api2/json/nodes/localhost/apt/repositories',
+ },
+ listeners: {
+ load: 'updateRepositoryStatus',
+ },
+ },
subscription: {
storeid: 'dash-subscription',
type: 'update',
@@ -204,6 +225,7 @@ Ext.define('PBS.Dashboard', {
items: [
{
xtype: 'pbsNodeInfoPanel',
+ reference: 'nodeInfo',
height: 280,
},
{
diff --git a/www/panel/NodeInfo.js b/www/panel/NodeInfo.js
index 17bf3812..fbd5aad5 100644
--- a/www/panel/NodeInfo.js
+++ b/www/panel/NodeInfo.js
@@ -20,6 +20,37 @@ Ext.define('PBS.NodeInfoPanel', {
padding: '0 15 5 15',
},
+ viewModel: {
+ data: {
+ subscriptionActive: '',
+ noSubscriptionRepo: '',
+ enterpriseRepo: '',
+ testRepo: '',
+ },
+ formulas: {
+ repoStatus: function(get) {
+ if (get('subscriptionActive') === '' || get('enterpriseRepo') === '') {
+ return '';
+ }
+
+ if (get('noSubscriptionRepo') || get('testRepo')) {
+ return 'non-production';
+ } else if (get('subscriptionActive') && get('enterpriseRepo')) {
+ return 'ok';
+ } else if (!get('subscriptionActive') && get('enterpriseRepo')) {
+ return 'no-sub';
+ } else if (!get('enterpriseRepo') || !get('noSubscriptionRepo') || !get('testRepo')) {
+ return 'no-repo';
+ }
+ return 'unknown';
+ },
+ repoStatusMessage: function(get) {
+ const status = get('repoStatus');
+ return Proxmox.Utils.formatNodeRepoStatus(status, 'Proxmox Backup Server');
+ },
+ },
+ },
+
controller: {
xclass: 'Ext.app.ViewController',
@@ -147,6 +178,18 @@ Ext.define('PBS.NodeInfoPanel', {
textField: 'kversion',
value: '',
},
+ {
+ itemId: 'repositoryStatus',
+ colspan: 2,
+ printBar: false,
+ title: gettext('Repository Status'),
+ setValue: function(value) { // for binding below
+ this.updateValue(value);
+ },
+ bind: {
+ value: '{repoStatusMessage}',
+ },
+ },
],
updateTitle: function() {
@@ -155,6 +198,31 @@ Ext.define('PBS.NodeInfoPanel', {
me.setTitle(Proxmox.NodeName + ' (' + gettext('Uptime') + ': ' + uptime + ')');
},
+ setRepositoryInfo: function(standardRepos) {
+ let me = this;
+ let vm = me.getViewModel();
+
+ for (const standardRepo of standardRepos) {
+ const handle = standardRepo.handle;
+ const status = standardRepo.status;
+
+ if (handle === "enterprise") {
+ vm.set('enterpriseRepo', status);
+ } else if (handle === "no-subscription") {
+ vm.set('noSubscriptionRepo', status);
+ } else if (handle === "test") {
+ vm.set('testRepo', status);
+ }
+ }
+ },
+
+ setSubscriptionStatus: function(status) {
+ let me = this;
+ let vm = me.getViewModel();
+
+ vm.set('subscriptionActive', status);
+ },
+
initComponent: function() {
let me = this;
--
2.30.2
^ permalink raw reply [flat|nested] 8+ messages in thread
* [pbs-devel] [PATCH proxmox-backup 1/1] ui: dashboard: show node's repository/subscription status
@ 2021-07-09 12:44 ` Fabian Ebner
0 siblings, 0 replies; 8+ messages in thread
From: Fabian Ebner @ 2021-07-09 12:44 UTC (permalink / raw)
To: pve-devel, pbs-devel
Mostly copied from PVE, slightly adapted to be consistent with other
things in the dashboard, e.g. use a store for the repository info.
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
Dependency bump for widget-toolkit is needed.
Built on top of Dominik's patches to refactor/extend the node info in
the Dashboard [0] (still applied for me).
[0]: https://lists.proxmox.com/pipermail/pbs-devel/2021-April/002788.html
www/Dashboard.js | 22 ++++++++++++++
www/panel/NodeInfo.js | 68 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 90 insertions(+)
diff --git a/www/Dashboard.js b/www/Dashboard.js
index 18f174fe..70c2305b 100644
--- a/www/Dashboard.js
+++ b/www/Dashboard.js
@@ -59,6 +59,11 @@ Ext.define('PBS.Dashboard', {
}
},
+ updateRepositoryStatus: function(store, records, success) {
+ if (!success) { return; }
+ let me = this;
+ me.lookup('nodeInfo').setRepositoryInfo(records[0].data['standard-repos']);
+ },
updateSubscription: function(store, records, success) {
if (!success) { return; }
@@ -67,6 +72,7 @@ Ext.define('PBS.Dashboard', {
// 2 = all good, 1 = different leves, 0 = none
let subStatus = status.toLowerCase() === 'active' ? 2 : 0;
me.lookup('subscription').setSubStatus(subStatus);
+ me.lookup('nodeInfo').setSubscriptionStatus(subStatus);
},
updateTasks: function(store, records, success) {
@@ -131,6 +137,21 @@ Ext.define('PBS.Dashboard', {
},
stores: {
+ repositories: {
+ storeid: 'dash-repositories',
+ type: 'update',
+ interval: 15000,
+ autoStart: true,
+ autoLoad: true,
+ autoDestroy: true,
+ proxy: {
+ type: 'proxmox',
+ url: '/api2/json/nodes/localhost/apt/repositories',
+ },
+ listeners: {
+ load: 'updateRepositoryStatus',
+ },
+ },
subscription: {
storeid: 'dash-subscription',
type: 'update',
@@ -204,6 +225,7 @@ Ext.define('PBS.Dashboard', {
items: [
{
xtype: 'pbsNodeInfoPanel',
+ reference: 'nodeInfo',
height: 280,
},
{
diff --git a/www/panel/NodeInfo.js b/www/panel/NodeInfo.js
index 17bf3812..fbd5aad5 100644
--- a/www/panel/NodeInfo.js
+++ b/www/panel/NodeInfo.js
@@ -20,6 +20,37 @@ Ext.define('PBS.NodeInfoPanel', {
padding: '0 15 5 15',
},
+ viewModel: {
+ data: {
+ subscriptionActive: '',
+ noSubscriptionRepo: '',
+ enterpriseRepo: '',
+ testRepo: '',
+ },
+ formulas: {
+ repoStatus: function(get) {
+ if (get('subscriptionActive') === '' || get('enterpriseRepo') === '') {
+ return '';
+ }
+
+ if (get('noSubscriptionRepo') || get('testRepo')) {
+ return 'non-production';
+ } else if (get('subscriptionActive') && get('enterpriseRepo')) {
+ return 'ok';
+ } else if (!get('subscriptionActive') && get('enterpriseRepo')) {
+ return 'no-sub';
+ } else if (!get('enterpriseRepo') || !get('noSubscriptionRepo') || !get('testRepo')) {
+ return 'no-repo';
+ }
+ return 'unknown';
+ },
+ repoStatusMessage: function(get) {
+ const status = get('repoStatus');
+ return Proxmox.Utils.formatNodeRepoStatus(status, 'Proxmox Backup Server');
+ },
+ },
+ },
+
controller: {
xclass: 'Ext.app.ViewController',
@@ -147,6 +178,18 @@ Ext.define('PBS.NodeInfoPanel', {
textField: 'kversion',
value: '',
},
+ {
+ itemId: 'repositoryStatus',
+ colspan: 2,
+ printBar: false,
+ title: gettext('Repository Status'),
+ setValue: function(value) { // for binding below
+ this.updateValue(value);
+ },
+ bind: {
+ value: '{repoStatusMessage}',
+ },
+ },
],
updateTitle: function() {
@@ -155,6 +198,31 @@ Ext.define('PBS.NodeInfoPanel', {
me.setTitle(Proxmox.NodeName + ' (' + gettext('Uptime') + ': ' + uptime + ')');
},
+ setRepositoryInfo: function(standardRepos) {
+ let me = this;
+ let vm = me.getViewModel();
+
+ for (const standardRepo of standardRepos) {
+ const handle = standardRepo.handle;
+ const status = standardRepo.status;
+
+ if (handle === "enterprise") {
+ vm.set('enterpriseRepo', status);
+ } else if (handle === "no-subscription") {
+ vm.set('noSubscriptionRepo', status);
+ } else if (handle === "test") {
+ vm.set('testRepo', status);
+ }
+ }
+ },
+
+ setSubscriptionStatus: function(status) {
+ let me = this;
+ let vm = me.getViewModel();
+
+ vm.set('subscriptionActive', status);
+ },
+
initComponent: function() {
let me = this;
--
2.30.2
^ permalink raw reply [flat|nested] 8+ messages in thread
* [pve-devel] applied: [pbs-devel] [PATCH proxmox-backup 1/1] ui: dashboard: show node's repository/subscription status
2021-07-09 12:44 ` [pbs-devel] " Fabian Ebner
@ 2021-07-12 5:19 ` Thomas Lamprecht
-1 siblings, 0 replies; 8+ messages in thread
From: Thomas Lamprecht @ 2021-07-12 5:19 UTC (permalink / raw)
To: Proxmox Backup Server development discussion, Fabian Ebner, pve-devel
On 09.07.21 14:44, Fabian Ebner wrote:
> Mostly copied from PVE, slightly adapted to be consistent with other
> things in the dashboard, e.g. use a store for the repository info.
>
> Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
> ---
>
> Dependency bump for widget-toolkit is needed.
>
> Built on top of Dominik's patches to refactor/extend the node info in
> the Dashboard [0] (still applied for me).
>
> [0]: https://lists.proxmox.com/pipermail/pbs-devel/2021-April/002788.html
>
> www/Dashboard.js | 22 ++++++++++++++
> www/panel/NodeInfo.js | 68 +++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 90 insertions(+)
>
>
applied, thanks!
^ permalink raw reply [flat|nested] 8+ messages in thread
* [pbs-devel] applied: [PATCH proxmox-backup 1/1] ui: dashboard: show node's repository/subscription status
@ 2021-07-12 5:19 ` Thomas Lamprecht
0 siblings, 0 replies; 8+ messages in thread
From: Thomas Lamprecht @ 2021-07-12 5:19 UTC (permalink / raw)
To: Proxmox Backup Server development discussion, Fabian Ebner, pve-devel
On 09.07.21 14:44, Fabian Ebner wrote:
> Mostly copied from PVE, slightly adapted to be consistent with other
> things in the dashboard, e.g. use a store for the repository info.
>
> Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
> ---
>
> Dependency bump for widget-toolkit is needed.
>
> Built on top of Dominik's patches to refactor/extend the node info in
> the Dashboard [0] (still applied for me).
>
> [0]: https://lists.proxmox.com/pipermail/pbs-devel/2021-April/002788.html
>
> www/Dashboard.js | 22 ++++++++++++++
> www/panel/NodeInfo.js | 68 +++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 90 insertions(+)
>
>
applied, thanks!
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-07-12 5:19 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-09 12:44 [pve-devel] [PATCH proxmox-widget-toolkit 1/1] utils: add helper to format node's repository status Fabian Ebner
2021-07-09 12:44 ` [pbs-devel] " Fabian Ebner
2021-07-09 12:44 ` [pve-devel] [PATCH pve-manager 1/1] ui: node status: use helper for formatting " Fabian Ebner
2021-07-09 12:44 ` [pbs-devel] " Fabian Ebner
2021-07-09 12:44 ` [pve-devel] [PATCH proxmox-backup 1/1] ui: dashboard: show node's repository/subscription status Fabian Ebner
2021-07-09 12:44 ` [pbs-devel] " Fabian Ebner
2021-07-12 5:19 ` [pve-devel] applied: " Thomas Lamprecht
2021-07-12 5:19 ` [pbs-devel] applied: " Thomas Lamprecht
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal