]>
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;
109 onGetValues: function(values
) {
110 if (typeof values
.checksum
=== 'string') {
111 values
.checksum
= values
.checksum
.trim();
117 xtype
: 'fieldcontainer',
119 fieldLabel
: gettext('URL'),
124 emptyText
: gettext("Enter URL to download"),
134 text
: gettext('Query URL'),
137 disabled
: '{!enableQuery}',
149 fieldLabel
: gettext('File name'),
150 emptyText
: gettext("Please (re-)query URL to get meta information"),
155 xtype
: 'displayfield',
157 fieldLabel
: gettext('File size'),
165 xtype
: 'displayfield',
167 fieldLabel
: gettext('MIME type'),
175 xtype
: 'pveHashAlgorithmSelector',
176 name
: 'checksum-algorithm',
177 fieldLabel
: gettext('Hash algorithm'),
180 value
: '__default__',
182 change
: 'hashChange',
188 fieldLabel
: gettext('Checksum'),
191 emptyText
: gettext('none'),
192 id
: 'downloadUrlChecksum',
197 xtype
: 'proxmoxcheckbox',
198 name
: 'verify-certificates',
199 fieldLabel
: gettext('Verify certificates'),
203 change
: 'setQueryEnabled',
209 xtype
: 'hiddenfield',
217 initComponent: function() {
221 throw "no node name specified";
224 throw "no storage ID specified";