]>
git.proxmox.com Git - proxmox-backup.git/blob - www/tape/DriveConfig.js
1 Ext
.define('pbs-model-drives', {
2 extend
: 'Ext.data.Model',
4 'path', 'model', 'name', 'serial', 'vendor',
5 { name
: 'changer', defaultValue
: '' },
7 name
: 'changer-drivenum',
15 Ext
.define('PBS.TapeManagement.DrivePanel', {
16 extend
: 'Ext.grid.Panel',
17 alias
: 'widget.pbsTapeDrivePanel',
20 xclass
: 'Ext.app.ViewController',
22 reloadTapeStore: function() {
23 let navtree
= Ext
.ComponentQuery
.query('navigationtree')[0];
24 navtree
.reloadTapeStore();
29 Ext
.create('PBS.TapeManagement.DriveEditWindow', {
40 let view
= me
.getView();
41 let selection
= view
.getSelection();
42 if (!selection
|| selection
.length
< 1) {
45 Ext
.create('PBS.TapeManagement.DriveEditWindow', {
46 driveid
: selection
[0].data
.name
,
49 destroy
: () => me
.reload(),
54 status: function(view
, rI
, cI
, button
, el
, record
) {
56 let drive
= record
.data
.name
;
57 PBS
.Utils
.driveCommand(drive
, 'status', {
58 waitMsgTarget
: me
.getView(),
59 success
: PBS
.Utils
.showDriveStatusWindow
,
64 this.getView().getStore().rstore
.load();
65 this.reloadTapeStore();
68 stopStore: function() {
69 this.getView().getStore().rstore
.stopUpdate();
72 startStore: function() {
73 this.getView().getStore().rstore
.startUpdate();
76 init: function(view
) {
77 Proxmox
.Utils
.monStoreErrors(view
, view
.getStore().rstore
);
82 beforedestroy
: 'stopStore',
83 deactivate
: 'stopStore',
84 activate
: 'startStore',
85 itemdblclick
: 'onEdit',
92 storeid
: 'proxmox-tape-drives',
93 model
: 'pbs-model-drives',
96 url
: "/api2/json/tape/drive",
100 groupField
: 'changer',
107 '{name:this.formatName} ({rows.length} Item{[values.rows.length > 1 ? "s" : ""]})',
109 formatName: function(changer
) {
110 if (changer
=== "") {
111 return "Standalone Drives";
113 return `Changer ${changer}`;
123 text
: gettext('Add'),
124 xtype
: 'proxmoxButton',
130 text
: gettext('Edit'),
131 xtype
: 'proxmoxButton',
136 xtype
: 'proxmoxStdRemoveButton',
137 baseurl
: '/api2/extjs/config/drive',
143 text
: gettext('Name'),
148 text
: gettext('Path'),
153 text
: gettext('Vendor'),
158 text
: gettext('Model'),
163 text
: gettext('Serial'),
168 text
: gettext('Drive Number'),
169 dataIndex
: 'changer-drivenum',
170 renderer: function(value
, mD
, record
) {
171 return record
.data
.changer
? value
: '';