]> git.proxmox.com Git - pmg-gui.git/blob - js/ObjectGroupConfiguration.js
mail proxy: networks: consitent add/edit/remove button & modernization
[pmg-gui.git] / js / ObjectGroupConfiguration.js
1 Ext.define('PMG.ObjectGroupConfiguration', {
2 extend: 'Ext.panel.Panel',
3
4 ogclass: undefined, // who, when, what
5 otype_list: [],
6
7 layout: 'border',
8 border: false,
9
10 initComponent: function() {
11 var me = this;
12
13 if (me.ogclass === undefined) {
14 throw "undefined object group class";
15 }
16
17 if (!PMG.Utils.oclass_text[me.ogclass]) {
18 throw "unknown object group class";
19 }
20
21 var left = Ext.create('PMG.ObjectGroupList', {
22 width: 250,
23 ogclass: me.ogclass,
24 subject: PMG.Utils.oclass_text[me.ogclass],
25 title: PMG.Utils.oclass_text[me.ogclass],
26 border: false,
27 split: true,
28 region: 'west',
29 });
30
31 var right = Ext.create('PMG.ObjectGroup', {
32 otype_list: me.otype_list,
33 objectClass: me.ogclass,
34 border: false,
35 region: 'center',
36 listeners: {
37 dblclickOGInfo: function(w, e, t, ogdata) {
38 // test if the correct groups is selected (just to be sure)
39 var rec = left.selModel.getSelection()[0];
40 if (rec && rec.data && rec.data.id === ogdata.id) {
41 left.run_editor();
42 }
43 },
44 modeUpdate: (_cmp, and, invert) => {
45 let rec = left.selModel.getSelection()[0];
46 rec.set('and', and);
47 rec.set('invert', invert);
48 rec.commit();
49 },
50 },
51 });
52
53 me.mon(left.store, "refresh", function() {
54 var rec = left.selModel.getSelection()[0];
55 if (!(rec && rec.data && rec.data.id)) {
56 return;
57 }
58 right.setObjectInfo(rec.data);
59 });
60
61 me.mon(left.selModel, "selectionchange", function() {
62 var rec = left.selModel.getSelection()[0];
63 if (!(rec && rec.data && rec.data.id)) {
64 right.setObjectInfo(undefined);
65 right.setBaseUrl(undefined);
66 return;
67 }
68 right.setObjectInfo(rec.data);
69 var baseurl = '/config/ruledb/' + me.ogclass + '/' + rec.data.id;
70 right.setBaseUrl(baseurl);
71 });
72
73 me.items = [left, right];
74
75 me.callParent();
76 },
77 });
78
79 Ext.define('PMG.WhoConfiguration', {
80 extend: 'PMG.ObjectGroupConfiguration',
81 xtype: 'pmgWhoConfiguration',
82
83 ogclass: 'who',
84 otype_list: [1000, 1001, 1002, 1003, 1004, 1005, 1006],
85 });
86
87 Ext.define('PMG.WhenConfiguration', {
88 extend: 'PMG.ObjectGroupConfiguration',
89 xtype: 'pmgWhenConfiguration',
90
91 ogclass: 'when',
92 otype_list: [2000],
93 });
94
95 Ext.define('PMG.WhatConfiguration', {
96 extend: 'PMG.ObjectGroupConfiguration',
97 xtype: 'pmgWhatConfiguration',
98
99 ogclass: 'what',
100 otype_list: [3000, 3001, 3002, 3003, 3004, 3005, 3006],
101 });
102