]> git.proxmox.com Git - proxmox-backup.git/blob - www/config/RemoteView.js
eslint fixes
[proxmox-backup.git] / www / config / RemoteView.js
1 Ext.define('pmx-remotes', {
2 extend: 'Ext.data.Model',
3 fields: ['name', 'host', 'port', 'userid', 'fingerprint', 'comment',
4 {
5 name: 'server',
6 calculate: function(data) {
7 let txt = data.host || "localhost";
8 let port = data.port || "8007";
9 if (port.toString() !== "8007") {
10 if (Proxmox.Utils.IP6_match.test(txt)) {
11 txt = `[${txt}]`;
12 }
13 txt += `:${port}`;
14 }
15 return txt;
16 },
17 },
18 ],
19 idProperty: 'name',
20 proxy: {
21 type: 'proxmox',
22 url: '/api2/json/config/remote',
23 },
24 });
25
26 Ext.define('PBS.config.RemoteView', {
27 extend: 'Ext.grid.GridPanel',
28 alias: 'widget.pbsRemoteView',
29
30 stateful: true,
31 stateId: 'grid-remotes',
32
33 title: gettext('Remotes'),
34
35 controller: {
36 xclass: 'Ext.app.ViewController',
37
38 addRemote: function() {
39 let me = this;
40 Ext.create('PBS.window.RemoteEdit', {
41 listeners: {
42 destroy: function() {
43 me.reload();
44 },
45 },
46 }).show();
47 },
48
49 editRemote: function() {
50 let me = this;
51 let view = me.getView();
52 let selection = view.getSelection();
53 if (selection.length < 1) return;
54
55 Ext.create('PBS.window.RemoteEdit', {
56 name: selection[0].data.name,
57 listeners: {
58 destroy: function() {
59 me.reload();
60 },
61 },
62 }).show();
63 },
64
65 reload: function() { this.getView().getStore().rstore.load(); },
66
67 init: function(view) {
68 Proxmox.Utils.monStoreErrors(view, view.getStore().rstore);
69 },
70 },
71
72 listeners: {
73 activate: 'reload',
74 itemdblclick: 'editRemote',
75 },
76
77 store: {
78 type: 'diff',
79 autoDestroy: true,
80 autoDestroyRstore: true,
81 sorters: 'name',
82 rstore: {
83 type: 'update',
84 storeid: 'pmx-remotes',
85 model: 'pmx-remotes',
86 autoStart: true,
87 interval: 5000,
88 },
89 },
90
91 tbar: [
92 {
93 xtype: 'proxmoxButton',
94 text: gettext('Add'),
95 handler: 'addRemote',
96 selModel: false,
97 },
98 {
99 xtype: 'proxmoxButton',
100 text: gettext('Edit'),
101 handler: 'editRemote',
102 disabled: true,
103 },
104 {
105 xtype: 'proxmoxStdRemoveButton',
106 baseurl: '/config/remote',
107 callback: 'reload',
108 },
109 ],
110
111 viewConfig: {
112 trackOver: false,
113 },
114
115 columns: [
116 {
117 header: gettext('Remote'),
118 width: 200,
119 sortable: true,
120 renderer: Ext.String.htmlEncode,
121 dataIndex: 'name',
122 },
123 {
124 header: gettext('Host'),
125 width: 200,
126 sortable: true,
127 dataIndex: 'server',
128 },
129 {
130 header: gettext('User name'),
131 width: 200,
132 sortable: true,
133 renderer: Ext.String.htmlEncode,
134 dataIndex: 'userid',
135 },
136 {
137 header: gettext('Fingerprint'),
138 sortable: false,
139 renderer: Ext.String.htmlEncode,
140 dataIndex: 'fingerprint',
141 width: 200,
142 },
143 {
144 header: gettext('Comment'),
145 sortable: false,
146 renderer: Ext.String.htmlEncode,
147 dataIndex: 'comment',
148 flex: 1,
149 },
150 ],
151 });