]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/storage/TemplateView.js
f7b5efe854aecad5a0d2097269f96f5680156cb0
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
,
97 Ext
.define('pve-aplinfo', {
98 extend
: 'Ext.data.Model',
100 'template', 'type', 'package', 'version', 'headline', 'infopage',
101 'description', 'os', 'section'
103 idProperty
: 'template'
108 Ext
.define('PVE.storage.TemplateDownload', {
109 extend
: 'Ext.window.Window',
110 alias
: 'widget.pveTemplateDownload',
113 title
: gettext('Templates'),
117 initComponent : function() {
120 var grid
= Ext
.create('PVE.grid.TemplateSelector', {
123 nodename
: me
.nodename
126 var sm
= grid
.getSelectionModel();
128 var submitBtn
= Ext
.create('Proxmox.button.Button', {
129 text
: gettext('Download'),
132 handler: function(button
, event
, rec
) {
133 Proxmox
.Utils
.API2Request({
134 url
: '/nodes/' + me
.nodename
+ '/aplinfo',
137 template
: rec
.data
.template
140 failure: function (response
, opts
) {
141 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
143 success: function(response
, options
) {
144 var upid
= response
.result
.data
;
146 Ext
.create('Proxmox.window.TaskViewer', {
149 destroy
: me
.reloadGrid
161 buttons
: [ submitBtn
]
168 Ext
.define('PVE.storage.TemplateView', {
169 extend
: 'PVE.storage.ContentView',
171 alias
: 'widget.pveStorageTemplateView',
173 initComponent: function() {
176 var nodename
= me
.nodename
= me
.pveSelNode
.data
.node
;
178 throw "no node name specified";
181 var storage
= me
.storage
= me
.pveSelNode
.data
.storage
;
183 throw "no storage ID specified";
186 me
.content
= 'vztmpl';
188 var sm
= me
.sm
= Ext
.create('Ext.selection.RowModel', {});
190 var reload = function() {
194 var templateButton
= Ext
.create('Proxmox.button.Button',{
196 text
: gettext('Templates'),
197 handler: function() {
198 var win
= Ext
.create('PVE.storage.TemplateDownload', {
207 me
.tbar
= [ templateButton
];
208 me
.useUploadButton
= true;