]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/window/DownloadUrlToStorage.js
1 Ext
.define('PVE.window.DownloadUrlToStorage', {
2 extend
: 'Proxmox.window.Edit',
3 alias
: 'widget.pveStorageDownloadUrl',
4 mixins
: ['Proxmox.Mixin.CBind'],
12 title
: gettext('Download from URL'),
13 submitText
: gettext('Download'),
15 cbindData: function(initialConfig
) {
18 nodename
: me
.nodename
,
25 url
: '/nodes/{nodename}/storage/{storage}/download-url',
38 xclass
: 'Ext.app.ViewController',
40 urlChange: function(field
) {
42 this.setQueryEnabled();
44 setQueryEnabled: function() {
45 this.getViewModel().set('enableQuery', true);
47 resetMetaInfo: function() {
48 let vm
= this.getViewModel();
50 vm
.set('mimetype', '-');
53 urlCheck: function(field
) {
55 let view
= me
.getView();
57 const queryParam
= view
.getValues();
59 me
.getViewModel().set('enableQuery', false);
61 let urlField
= view
.down('[name=url]');
63 Proxmox
.Utils
.API2Request({
64 url
: `/nodes/${view.nodename}/query-url-metadata`,
68 'verify-certificates': queryParam
['verify-certificates'],
72 urlField
.setValidation(res
.result
.message
);
74 Ext
.MessageBox
.alert(gettext('Error'), res
.htmlStatus
);
75 // re-enable so one can directly requery, e.g., if it was just a network hiccup
78 success: function(res
, opt
) {
79 urlField
.setValidation();
82 let data
= res
.result
.data
;
84 filename
: data
.filename
|| "",
85 size
: (data
.size
&& Proxmox
.Utils
.format_size(data
.size
)) || gettext("Unknown"),
86 mimetype
: data
.mimetype
|| gettext("Unknown"),
92 hashChange: function(field
) {
93 let checksum
= Ext
.getCmp('downloadUrlChecksum');
94 if (field
.getValue() === '__default__') {
95 checksum
.setDisabled(true);
96 checksum
.setValue("");
97 checksum
.allowBlank
= true;
99 checksum
.setDisabled(false);
100 checksum
.allowBlank
= false;
111 xtype
: 'fieldcontainer',
113 fieldLabel
: gettext('URL'),
118 emptyText
: gettext("Enter URL to download"),
128 text
: gettext('Query URL'),
131 disabled
: '{!enableQuery}',
143 fieldLabel
: gettext('File name'),
144 emptyText
: gettext("Please (re-)query URL to get meta information"),
149 xtype
: 'displayfield',
151 fieldLabel
: gettext('File size'),
159 xtype
: 'displayfield',
161 fieldLabel
: gettext('MIME type'),
169 xtype
: 'pveHashAlgorithmSelector',
170 name
: 'checksum-algorithm',
171 fieldLabel
: gettext('Hash algorithm'),
174 value
: '__default__',
176 change
: 'hashChange',
182 fieldLabel
: gettext('Checksum'),
185 emptyText
: gettext('none'),
186 id
: 'downloadUrlChecksum',
191 xtype
: 'proxmoxcheckbox',
192 name
: 'verify-certificates',
193 fieldLabel
: gettext('Verify certificates'),
197 change
: 'setQueryEnabled',
203 xtype
: 'hiddenfield',
211 initComponent: function() {
215 throw "no node name specified";
218 throw "no storage ID specified";