From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 336421FF13C for ; Thu, 30 Apr 2026 12:32:17 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 9E7BCA22; Thu, 30 Apr 2026 12:32:15 +0200 (CEST) From: Erik Fastermann To: pbs-devel@lists.proxmox.com Subject: [PATCH proxmox-backup 1/1] fix #6691: allow search by comment in datastore. Date: Thu, 30 Apr 2026 12:31:03 +0200 Message-ID: <20260430103103.32588-2-e.fastermann@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260430103103.32588-1-e.fastermann@proxmox.com> References: <20260430103103.32588-1-e.fastermann@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods RDNS_NONE 0.793 Delivered to internal network by a host with no rDNS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record Message-ID-Hash: HYL6PZHZRBUFID53DHFCOVVTIXXTO5MK X-Message-ID-Hash: HYL6PZHZRBUFID53DHFCOVVTIXXTO5MK X-MailFrom: root@erik-test-pbs.proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Erik Fastermann X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Backup Server development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Enable search by the comment field in the datastore content. Also includes multiple small bug fixes: - Display items again when searching by a non existing value and clearing the search bar. - Correctly disable the remove box and tooltip for namespaces. - Correctly disable the browse box and tooltip for the root namespace. Fixes: https://bugzilla.proxmox.com/show_bug.cgi?id=6691 Signed-off-by: Erik Fastermann --- www/datastore/Content.js | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/www/datastore/Content.js b/www/datastore/Content.js index 1ec07505d..29b27eced 100644 --- a/www/datastore/Content.js +++ b/www/datastore/Content.js @@ -941,6 +941,10 @@ Ext.define('PBS.DataStoreContent', { return true; } + if (item.data.comment && item.data.comment.indexOf(value) !== -1) { + return true; + } + return false; }, @@ -963,7 +967,6 @@ Ext.define('PBS.DataStoreContent', { // we do it a little bit later for the error mask to work setTimeout(function () { store.clearFilter(); - store.getRoot().collapseChildren(true); store.beginUpdate(); store.getRoot().cascadeBy({ @@ -1150,14 +1153,18 @@ Ext.define('PBS.DataStoreContent', { return Ext.String.format(gettext("Move namespace '{0}'"), v); }, getClass: (v, m, { data }) => { - if (data.ty === 'group') { return 'fa fa-arrows'; } + if (data.ty === 'group') { + return 'fa fa-arrows'; + } if (data.ty === 'ns' && !data.isRootNS && data.ns === undefined) { return 'fa fa-arrows'; } return 'pmx-hidden'; }, isActionDisabled: (v, r, c, i, { data }) => { - if (data.ty === 'group') { return false; } + if (data.ty === 'group') { + return false; + } if (data.ty === 'ns' && !data.isRootNS && data.ns === undefined) { return false; } @@ -1210,7 +1217,12 @@ Ext.define('PBS.DataStoreContent', { data.ty === 'dir' ? 'fa critical fa-trash-o' : 'pmx-hidden', - isActionDisabled: (v, r, c, i, { data }) => false, + isActionDisabled: (v, r, c, i, { data }) => + !( + (data.ty === 'ns' && !data.isRootNS && data.ns === undefined) || + data.ty === 'group' || + data.ty === 'dir' + ), }, { handler: 'downloadFile', @@ -1235,12 +1247,14 @@ Ext.define('PBS.DataStoreContent', { return 'pmx-hidden'; }, isActionDisabled: (v, r, c, i, { data }) => - !( + (!( data.ty === 'file' && (data.filename.endsWith('.pxar.didx') || data.filename.endsWith('.mpxar.didx')) && data['crypt-mode'] < 3 - ) && data.ty !== 'ns', + ) && + data.ty !== 'ns') || + data.root, }, ], }, @@ -1486,7 +1500,7 @@ Ext.define('PBS.DataStoreContent', { { xtype: 'textfield', reference: 'searchbox', - emptyText: gettext('group, date or owner'), + emptyText: gettext('group, date, owner or comment'), triggers: { clear: { cls: 'pmx-clear-trigger', -- 2.47.3