]> git.proxmox.com Git - pve-manager.git/blobdiff - www/manager6/panel/IPSet.js
use Proxmox.Utils instead of PVE.Utils
[pve-manager.git] / www / manager6 / panel / IPSet.js
index 2aae7dfaafdb25ef42a89ac4bc0db468d6060f34..c4a9bdb79557a1e8f73ac1e2099b2ca38143f75c 100644 (file)
@@ -1,7 +1,16 @@
+Ext.define('pve-fw-ipsets', {
+    extend: 'Ext.data.Model',
+    fields: [ 'name', 'comment', 'digest' ],
+    idProperty: 'name'
+});
+
 Ext.define('PVE.IPSetList', {
     extend: 'Ext.grid.Panel',
     alias: 'widget.pveIPSetList',
 
+    stateful: true,
+    stateId: 'grid-firewall-ipsetlist',
+
     ipset_panel: undefined,
 
     base_url: undefined,
@@ -11,7 +20,7 @@ Ext.define('PVE.IPSetList', {
     editBtn: undefined,
 
     initComponent: function() {
-       /*jslint confusion: true */
+
         var me = this;
 
        if (me.ipset_panel == undefined) {
@@ -23,12 +32,11 @@ Ext.define('PVE.IPSetList', {
        }
 
        var store = new Ext.data.Store({
-           fields: [ 'name', 'comment', 'digest' ],
+           model: 'pve-fw-ipsets',
            proxy: {
                type: 'pve',
                url: "/api2/json" + me.base_url
            },
-           idProperty: 'name',
            sorters: {
                property: 'name',
                order: 'DESC'
@@ -84,14 +92,14 @@ Ext.define('PVE.IPSetList', {
            win.on('destroy', reload);
        };
 
-       me.editBtn = new PVE.button.Button({
+       me.editBtn = new Proxmox.button.Button({
            text: gettext('Edit'),
            disabled: true,
            selModel: sm,
            handler: run_editor
        });
 
-       me.addBtn = new PVE.button.Button({
+       me.addBtn = new Proxmox.button.Button({
            text: gettext('Create'),
            handler: function() {
                sm.deselectAll();
@@ -121,25 +129,10 @@ Ext.define('PVE.IPSetList', {
            }
        });
 
-       me.removeBtn = new PVE.button.Button({
-           text: gettext('Remove'),
+       me.removeBtn = Ext.create('Proxmox.button.StdRemoveButton', {
            selModel: sm,
-           disabled: true,
-           handler: function() {
-               var rec = sm.getSelection()[0];
-               if (!rec || !me.base_url) {
-                   return;
-               }
-               PVE.Utils.API2Request({
-                   url: me.base_url + '/' + rec.data.name,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   failure: function(response, options) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   },
-                   callback: reload
-               });
-           }
+           baseurl: me.base_url + '/',
+           callback: reload
        });
 
        Ext.apply(me, {
@@ -147,8 +140,8 @@ Ext.define('PVE.IPSetList', {
            tbar: [ '<b>IPSet:</b>', me.addBtn, me.removeBtn, me.editBtn ],
            selModel: sm,
            columns: [
-               { header: 'IPSet', dataIndex: 'name', width: 100 },
-               { header: gettext('Comment'), dataIndex: 'comment', flex: 1 }
+               { header: 'IPSet', dataIndex: 'name', width: '100' },
+               { header: gettext('Comment'), dataIndex: 'comment', renderer: Ext.String.htmlEncode, flex: 1 }
            ],
            listeners: {
                itemdblclick: run_editor,
@@ -175,13 +168,13 @@ Ext.define('PVE.IPSetCidrEdit', {
     cidr: undefined,
 
     initComponent : function() {
-       /*jslint confusion: true */
+
        var me = this;
 
-       me.create = (me.cidr === undefined);
+       me.isCreate = (me.cidr === undefined);
 
 
-       if (me.create) {
+       if (me.isCreate) {
             me.url = '/api2/extjs' + me.base_url;
             me.method = 'POST';
         } else {
@@ -191,7 +184,7 @@ Ext.define('PVE.IPSetCidrEdit', {
 
        var column1 = [];
 
-       if (me.create) {
+       if (me.isCreate) {
            if (!me.list_refs_url) {
                throw "no alias_base_url specified";
            }
@@ -210,23 +203,21 @@ Ext.define('PVE.IPSetCidrEdit', {
            column1.push({
                xtype: 'displayfield',
                name: 'cidr',
-               height: 22, // hack: set same height as text fields
                value: '',
                fieldLabel: gettext('IP/CIDR')
            });
        }
 
        var ipanel = Ext.create('PVE.panel.InputPanel', {
-           create: me.create,
+           isCreate: me.isCreate,
            column1: column1,
            column2: [
                {
                    xtype: 'pvecheckbox',
                    name: 'nomatch',
                    checked: false,
-                   height: 22, // hack: set same height as text fields
                    uncheckedValue: 0,
-                   fieldLabel: gettext('nomatch')
+                   fieldLabel: 'nomatch'
                }
            ],
            columnB: [
@@ -246,7 +237,7 @@ Ext.define('PVE.IPSetCidrEdit', {
 
        me.callParent();
 
-       if (!me.create) {
+       if (!me.isCreate) {
            me.load({
                success:  function(response, options) {
                    var values = response.result.data;
@@ -261,6 +252,9 @@ Ext.define('PVE.IPSetGrid', {
     extend: 'Ext.grid.Panel',
     alias: 'widget.pveIPSetGrid',
 
+    stateful: true,
+    stateId: 'grid-firewall-ipsets',
+
     base_url: undefined,
     list_refs_url: undefined,
 
@@ -278,6 +272,7 @@ Ext.define('PVE.IPSetGrid', {
            me.store.removeAll();
        } else {
            me.addBtn.setDisabled(false);
+           me.removeBtn.baseurl = url + '/';
            me.store.setProxy({
                type: 'pve',
                url: '/api2/json' + url
@@ -318,14 +313,14 @@ Ext.define('PVE.IPSetGrid', {
            win.on('destroy', reload);
        };
 
-       me.editBtn = new PVE.button.Button({
+       me.editBtn = new Proxmox.button.Button({
            text: gettext('Edit'),
            disabled: true,
            selModel: sm,
            handler: run_editor
        });
 
-       me.addBtn = new PVE.button.Button({
+       me.addBtn = new Proxmox.button.Button({
            text: gettext('Add'),
            disabled: true,
            handler: function() {
@@ -341,26 +336,10 @@ Ext.define('PVE.IPSetGrid', {
            }
        });
 
-       me.removeBtn = new PVE.button.Button({
-           text: gettext('Remove'),
+       me.removeBtn = Ext.create('Proxmox.button.StdRemoveButton', {
            selModel: sm,
-           disabled: true,
-           handler: function() {
-               var rec = sm.getSelection()[0];
-               if (!rec || !me.base_url) {
-                   return;
-               }
-
-               PVE.Utils.API2Request({
-                   url: me.base_url + '/' + rec.data.cidr,
-                   method: 'DELETE',
-                   waitMsgTarget: me,
-                   failure: function(response, options) {
-                       Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-                   },
-                   callback: reload
-               });
-           }
+           baseurl: me.base_url + '/',
+           callback: reload
        });
 
        var render_errors = function(value, metaData, record) {
@@ -368,7 +347,7 @@ Ext.define('PVE.IPSetGrid', {
            if (errors) {
                var msg = errors.cidr || errors.nomatch;
                if (msg) {
-                   metaData.tdCls = 'x-form-invalid-field';
+                   metaData.tdCls = 'proxmox-invalid-row';
                    var html = '<p>' +  Ext.htmlEncode(msg) + '</p>';
                    metaData.tdAttr = 'data-qwidth=600 data-qtitle="ERROR" data-qtip="' + 
                        html.replace(/\"/g,'&quot;') + '"';
@@ -434,6 +413,8 @@ Ext.define('PVE.IPSet', {
 
     title: 'IPSet',
 
+    onlineHelp: 'pve_firewall_ip_sets',
+
     list_refs_url: undefined,
 
     initComponent: function() {
@@ -446,7 +427,6 @@ Ext.define('PVE.IPSet', {
        var ipset_panel = Ext.createWidget('pveIPSetGrid', {
            region: 'center',
            list_refs_url: me.list_refs_url,
-           flex: 0.5,
            border: false
        });
 
@@ -454,7 +434,7 @@ Ext.define('PVE.IPSet', {
            region: 'west',
            ipset_panel: ipset_panel,
            base_url: me.base_url,
-           flex: 0.5,
+           width: '50%',
            border: false,
            split: true
        });