]>
git.proxmox.com Git - pve-manager.git/blob - www/manager/node/APT.js
bcf604bcc34d64857b8feb2fb8d79c81ee3f363d
1 Ext
. define ( 'PVE.node.APT' , {
2 extend
: 'Ext.grid.GridPanel' ,
4 alias
: [ 'widget.pveNodeAPT' ],
6 initComponent : function () {
9 var nodename
= me
. pveSelNode
. data
. node
;
11 throw "no node name specified" ;
14 var store
= Ext
. create ( 'Ext.data.Store' , {
16 groupField
: 'Section' ,
19 url
: "/api2/json/nodes/" + nodename
+ "/apt/update"
29 var groupingFeature
= Ext
. create ( 'Ext.grid.feature.Grouping' , {
30 groupHeaderTpl
: '{[ "Section: " + values.name ]} ({rows.length} Item{[values.rows.length > 1 ? "s" : ""]})'
33 var rowBodyFeature
= Ext
. create ( 'Ext.grid.feature.RowBody' , {
34 getAdditionalData : function ( data
, rowIndex
, record
, orig
) {
35 var headerCt
= this . view
. headerCt
;
36 var colspan
= headerCt
. getColumnCount ();
37 // Usually you would style the my-body-class in CSS file
39 rowBody
: '<div style="padding: 1em">' + data
. Description
+ '</div>' ,
40 rowBodyColspan
: colspan
45 var reload = function () {
49 me
. loadCount
= 1 ; // avoid duplicate load mask
50 PVE
. Utils
. monStoreErrors ( me
, store
);
52 var apt_command = function ( cmd
){
53 PVE
. Utils
. API2Request ({
54 url
: "/nodes/" + nodename
+ "/apt/" + cmd
,
56 failure : function ( response
, opts
) {
57 Ext
. Msg
. alert ( 'Error' , response
. htmlStatus
);
59 success : function ( response
, opts
) {
60 var upid
= response
. result
. data
;
62 var win
= Ext
. create ( 'PVE.window.TaskProgress' , {
66 me
. mon ( win
, 'close' , reload
);
71 var sm
= Ext
. create ( 'Ext.selection.RowModel' , {});
73 var update_btn
= new Ext
. Button ({
74 text
: gettext ( 'Update' ),
76 apt_command ( 'update' );
80 var upgrade_btn
= new PVE
. button
. Button ({
81 text
: gettext ( 'Upgrade' ),
83 confirmMsg : function ( rec
) {
84 return gettext ( 'Are you sure you want to upgrade this node?' );
87 apt_command ( 'upgrade' );
91 var show_changelog = function ( rec
) {
92 if (! rec
|| ! rec
. data
|| !( rec
. data
. ChangeLogUrl
&& rec
. data
. Package
)) {
96 var win
= Ext
. create ( 'Ext.window.Window' , {
97 title
: gettext ( 'Changelog' ) + ": " + rec
. data
. Package
,
109 src
: rec
. data
. ChangeLogUrl
116 var changelog_btn
= new PVE
. button
. Button ({
117 text
: gettext ( 'Changelog' ),
120 enableFn : function ( rec
) {
121 if (! rec
|| ! rec
. data
|| !( rec
. data
. ChangeLogUrl
&& rec
. data
. Package
)) {
126 handler : function ( b
, e
, rec
) {
137 emptyText
: '<div style="display:table; width:100%; height:100%;"><div style="display:table-cell; vertical-align: middle; text-align:center;"><b>' + gettext ( 'Your system is up to date.' ) + '</div></div>'
139 tbar
: [ update_btn
, upgrade_btn
, changelog_btn
],
140 features
: [ groupingFeature
, rowBodyFeature
],
143 header
: gettext ( 'Package' ),
149 text
: gettext ( 'Version' ),
152 header
: gettext ( 'current' ),
155 dataIndex
: 'OldVersion'
158 header
: gettext ( 'new' ),
166 header
: gettext ( 'Description' ),
174 itemdblclick : function ( v
, rec
) {
184 Ext
. define ( 'apt-pkglist' , {
185 extend
: 'Ext.data.Model' ,
186 fields
: [ 'Package' , 'Title' , 'Description' , 'Section' , 'Arch' ,
187 'Priority' , 'Version' , 'OldVersion' , 'ChangeLogUrl' ],
188 idProperty
: 'Package'