]> git.proxmox.com Git - proxmox-widget-toolkit.git/blame - src/window/PackageVersions.js
bump version to 4.2.3
[proxmox-widget-toolkit.git] / src / window / PackageVersions.js
CommitLineData
1820e77d
TL
1Ext.define('Proxmox.window.PackageVersions', {
2 extend: 'Ext.window.Window',
3 alias: 'widget.proxmoxPackageVersions',
4
5 title: gettext('Package versions'),
6 width: 600,
7 height: 650,
8 layout: 'fit',
9 modal: true,
10
11 url: `/nodes/localhost/apt/versions`,
12
13 viewModel: {
14 parent: null,
15 data: {
16 packageList: '',
17 },
18 },
19 buttons: [
20 {
21 xtype: 'button',
22 text: gettext('Copy'),
23 iconCls: 'fa fa-clipboard',
24 handler: function(button) {
25 window.getSelection().selectAllChildren(
26 document.getElementById('pkgversions'),
27 );
28 document.execCommand("copy");
29 },
30 },
31 {
32 text: gettext('Ok'),
33 handler: function() {
34 this.up('window').close();
35 },
36 },
37 ],
38 items: [
39 {
40 xtype: 'component',
41 autoScroll: true,
42 id: 'pkgversions',
43 padding: 5,
44 bind: {
45 html: '{packageList}',
46 },
47 style: {
1820e77d
TL
48 'white-space': 'pre',
49 'font-family': 'monospace',
50 },
51 },
52 ],
53 listeners: {
54 afterrender: function() {
55 this.loadPackageVersions(); // wait for after render so that we can show a load mask
56 },
57 },
58
59 loadPackageVersions: async function() {
60 let me = this;
61
62 let { result } = await Proxmox.Async.api2({
63 waitMsgTarget: me.down('component[id="pkgversions"]'),
64 method: 'GET',
65 url: me.url,
66 }).catch(Proxmox.Utils.alertResponseFailure); // FIXME: mask window instead?
67
68 let text = '';
69 for (const pkg of result.data) {
70 let version = "not correctly installed";
71 if (pkg.OldVersion && pkg.OldVersion !== 'unknown') {
72 version = pkg.OldVersion;
73 } else if (pkg.CurrentState === 'ConfigFiles') {
74 version = 'residual config';
75 }
76 const name = pkg.Package;
77 if (pkg.ExtraInfo) {
78 text += `${name}: ${version} (${pkg.ExtraInfo})\n`;
79 } else {
80 text += `${name}: ${version}\n`;
81 }
82 }
83 me.getViewModel().set('packageList', Ext.htmlEncode(text));
84 },
85});