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