From 106603c58f030134fe78be74fb34fd18860b260b Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Thu, 9 Jul 2020 16:50:24 +0200 Subject: [PATCH] ui: fix crypt mode caluclation also include 'mixed' in the calculation of the overall mode of a snapshot and group Signed-off-by: Dominik Csapak --- www/DataStoreContent.js | 11 ++++++----- www/Utils.js | 10 ++++++++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/www/DataStoreContent.js b/www/DataStoreContent.js index cc4d955d..a29436fc 100644 --- a/www/DataStoreContent.js +++ b/www/DataStoreContent.js @@ -21,19 +21,19 @@ Ext.define('pbs-data-store-snapshots', { mixed: 0, 'sign-only': 0, encrypt: 0, + count: 0, }; let signed = 0; - let files = 0; data.files.forEach(file => { if (file.filename === 'index.json.blob') return; // is never encrypted let mode = PBS.Utils.cryptmap.indexOf(file['crypt-mode']); if (mode !== -1) { crypt[file['crypt-mode']]++; } - files++; + crypt.count++; }); - return PBS.Utils.calculateCryptMode(crypt['sign-only'], crypt.encrypt, files); + return PBS.Utils.calculateCryptMode(crypt); } } ] @@ -155,7 +155,7 @@ Ext.define('PBS.DataStoreContent', { none: 0, mixed: 0, 'sign-only': 0, - encrypt: 0 + encrypt: 0, }; for (const item of group.children) { crypt[PBS.Utils.cryptmap[item['crypt-mode']]]++; @@ -169,7 +169,8 @@ Ext.define('PBS.DataStoreContent', { } group.count = group.children.length; - group['crypt-mode'] = PBS.Utils.calculateCryptMode(crypt['sign-only'], crypt.encrypt, group.count); + crypt.count = group.count; + group['crypt-mode'] = PBS.Utils.calculateCryptMode(crypt); children.push(group); } diff --git a/www/Utils.js b/www/Utils.js index db7dbf80..c75a7792 100644 --- a/www/Utils.js +++ b/www/Utils.js @@ -34,8 +34,14 @@ Ext.define('PBS.Utils', { 'lock', ], - calculateCryptMode: function(signed, encrypted, files) { - if (files === encrypted) { + calculateCryptMode: function(data) { + let mixed = data.mixed; + let encrypted = data.encrypt; + let signed = data['sign-only']; + let files = data.count; + if (mixed > 0) { + return PBS.Utils.cryptmap.indexOf('mixed'); + } else if (files === encrypted) { return PBS.Utils.cryptmap.indexOf('encrypt'); } else if (files === signed) { return PBS.Utils.cryptmap.indexOf('sign-only');