[pve-devel] [PATCH v3 manager] Fix #1831: Add filter to CT template/appliances download window

Dominik Csapak d.csapak at proxmox.com
Wed Jan 30 15:41:13 CET 2019


On 1/30/19 3:38 PM, Dominik Csapak wrote:
> a few comments inline
> 
> On 1/29/19 3:35 PM, Christian Ebner wrote:
>> This adds the posibility to filter CT template/appliances by package 
>> as well as
>> description in the CT template/appliances download window.
>>
>> Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
>> ---
>>
>> Version 3:
>>      * In lack of better alternatives solved via toLowerCase() and 
>> indexOf()
>>        instead of regex
>>
>>   www/manager6/storage/ContentView.js | 26 ++++++++++++++++++++++++--
>>   1 file changed, 24 insertions(+), 2 deletions(-)
>>
>> diff --git a/www/manager6/storage/ContentView.js 
>> b/www/manager6/storage/ContentView.js
>> index 6b73f437..b421287c 100644
>> --- a/www/manager6/storage/ContentView.js
>> +++ b/www/manager6/storage/ContentView.js
>> @@ -35,11 +35,33 @@ Ext.define('PVE.grid.TemplateSelector', {
>>           store.load();
>>       };
>> +    var storeFilter = function(rec) {
>> +        return (rec.data['package'].toLowerCase().indexOf(me.fval) != 
>> -1)
>> +        || (rec.data.headline.toLowerCase().indexOf(me.fval) != -1);
>> +    };
> 
> please try to use === and !=== instead of == and !=
> it is not strictly necessary here, but its good practice

it is of course !== not !===

> 
> also please remove the trailing whitespace here
> 
>> +
>>       Proxmox.Utils.monStoreErrors(me, store);
>>       Ext.apply(me, {
>>           store: store,
>>           selModel: sm,
>> +        tbar: [
>> +        '->',
>> +        gettext('Filter: '),
>> +        {
>> +            xtype: 'textfield',
>> +            width: 200,
>> +            enableKeyEvents: true,
>> +            listeners: {
>> +            buffer: 500,
>> +            keyup: function(field) {
>> +                me.fval = field.getValue().toLowerCase();
>> +                store.clearFilter(true);
>> +                store.filterBy(storeFilter);
> 
> instead of saving the value (fval is not a good name btw) in the object,
> i would simply create the function inline here
> eg.
> 
> var val = field.getValue().to...
> store.clear...
> store.filter(function(rec) {
> 
> ...
> 
> });
> 
> this way the whole logic is together and one does not have to jump
> around to see what the code is doing
> 
>> +            }
>> +            }
>> +        }
>> +        ],
>>           features: [ groupingFeature ],
>>           columns: [
>>           {
>> @@ -92,8 +114,8 @@ Ext.define('PVE.storage.TemplateDownload', {
>>       modal: true,
>>       title: gettext('Templates'),
>>       layout: 'fit',
>> -    width: 600,
>> -    height: 400,
>> +    width: 900,
>> +    height: 600,
>>       initComponent : function() {
>>       /*jslint confusion: true */
>>           var me = this;
>>
> 
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel





More information about the pve-devel mailing list