]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/storage/TemplateView.js
1 Ext
.define('PVE.grid.TemplateSelector', {
2 extend
: 'Ext.grid.GridPanel',
4 alias
: 'widget.pveTemplateSelector',
7 stateId
: 'grid-template-selector',
11 initComponent: function() {
15 throw "no node name specified";
18 var baseurl
= "/nodes/" + me
.nodename
+ "/aplinfo";
19 var store
= new Ext
.data
.Store({
21 groupField
: 'section',
24 url
: '/api2/json' + baseurl
,
28 var sm
= Ext
.create('Ext.selection.RowModel', {});
30 var groupingFeature
= Ext
.create('Ext.grid.feature.Grouping', {
31 groupHeaderTpl
: '{[ "Section: " + values.name ]} ({rows.length} Item{[values.rows.length > 1 ? "s" : ""]})',
34 var reload = function() {
38 Proxmox
.Utils
.monStoreErrors(me
, store
);
49 enableKeyEvents
: true,
52 keyup: function(field
) {
53 var value
= field
.getValue().toLowerCase();
54 store
.clearFilter(true);
55 store
.filterBy(function(rec
) {
56 return (rec
.data
['package'].toLowerCase().indexOf(value
) !== -1) ||
57 (rec
.data
.headline
.toLowerCase().indexOf(value
) !== -1);
63 features
: [groupingFeature
],
66 header
: gettext('Type'),
71 header
: gettext('Package'),
76 header
: gettext('Version'),
81 header
: gettext('Description'),
83 renderer
: Ext
.String
.htmlEncode
,
84 dataIndex
: 'headline',
96 Ext
.define('pve-aplinfo', {
97 extend
: 'Ext.data.Model',
99 'template', 'type', 'package', 'version', 'headline', 'infopage',
100 'description', 'os', 'section',
102 idProperty
: 'template',
106 Ext
.define('PVE.storage.TemplateDownload', {
107 extend
: 'Ext.window.Window',
108 alias
: 'widget.pveTemplateDownload',
111 title
: gettext('Templates'),
115 initComponent: function() {
118 var grid
= Ext
.create('PVE.grid.TemplateSelector', {
121 nodename
: me
.nodename
,
124 var sm
= grid
.getSelectionModel();
126 var submitBtn
= Ext
.create('Proxmox.button.Button', {
127 text
: gettext('Download'),
130 handler: function(button
, event
, rec
) {
131 Proxmox
.Utils
.API2Request({
132 url
: '/nodes/' + me
.nodename
+ '/aplinfo',
135 template
: rec
.data
.template
,
138 failure: function(response
, opts
) {
139 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
141 success: function(response
, options
) {
142 var upid
= response
.result
.data
;
144 Ext
.create('Proxmox.window.TaskViewer', {
147 destroy
: me
.reloadGrid
,
159 buttons
: [submitBtn
],
166 Ext
.define('PVE.storage.TemplateView', {
167 extend
: 'PVE.storage.ContentView',
169 alias
: 'widget.pveStorageTemplateView',
171 initComponent: function() {
174 var nodename
= me
.nodename
= me
.pveSelNode
.data
.node
;
176 throw "no node name specified";
179 var storage
= me
.storage
= me
.pveSelNode
.data
.storage
;
181 throw "no storage ID specified";
184 me
.content
= 'vztmpl';
186 var sm
= me
.sm
= Ext
.create('Ext.selection.RowModel', {});
188 var reload = function() {
192 var templateButton
= Ext
.create('Proxmox.button.Button', {
194 text
: gettext('Templates'),
195 handler: function() {
196 var win
= Ext
.create('PVE.storage.TemplateDownload', {
205 me
.tbar
= [templateButton
];
206 me
.useUploadButton
= true;