Files
.cargo
debian
docs
etc
examples
pbs-api-types
pbs-buildcfg
pbs-client
pbs-config
pbs-datastore
pbs-fuse-loop
pbs-tape
pbs-tools
proxmox-backup-banner
proxmox-backup-client
proxmox-file-restore
proxmox-rest-server
proxmox-restore-daemon
proxmox-rrd
pxar-bin
src
tests
www
button
config
css
dashboard
data
datastore
Content.js
DataStoreList.js
DataStoreListSummary.js
Notes.js
OptionView.js
Panel.js
Prune.js
PruneAndGC.js
Summary.js
form
images
panel
tape
window
Application.js
Dashboard.js
DirectoryList.js
LoginView.js
MainView.js
Makefile
NavigationTree.js
OnlineHelpInfo.js
ServerAdministration.js
ServerStatus.js
Subscription.js
SystemConfiguration.js
Utils.js
VersionInfo.js
ZFSList.js
index.hbs
zsh-completions
.gitignore
Cargo.toml
Makefile
README.rst
TODO.rst
defines.mk
rustfmt.toml
proxmox-backup/www/datastore/PruneAndGC.js
Aaron Lauterer 133de2dd1f ui: add/fix help buttons
added a few more help buttons were appropriate:

* GC and Prune schedule windows
* Create Directory window
* API Tokens, link directly to token section
* verify jobs window

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2020-11-10 11:51:03 +01:00

175 lines
3.9 KiB
JavaScript

Ext.define('PBS.DataStorePruneAndGC', {
extend: 'Proxmox.grid.ObjectGrid',
alias: 'widget.pbsDataStorePruneAndGC',
mixins: ['Proxmox.Mixin.CBind'],
onlineHelp: 'maintenance_pruning',
cbindData: function(initial) {
let me = this;
me.datastore = encodeURIComponent(me.datastore);
me.url = `/api2/json/config/datastore/${me.datastore}`;
me.editorConfig = {
url: `/api2/extjs/config/datastore/${me.datastore}`,
};
return {};
},
controller: {
xclass: 'Ext.app.ViewController',
edit: function() { this.getView().run_editor(); },
garbageCollect: function() {
let me = this;
let view = me.getView();
Proxmox.Utils.API2Request({
url: `/admin/datastore/${view.datastore}/gc`,
method: 'POST',
failure: function(response) {
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
},
success: function(response, options) {
Ext.create('Proxmox.window.TaskViewer', {
upid: response.result.data,
}).show();
},
});
},
},
tbar: [
{
xtype: 'proxmoxButton',
text: gettext('Edit'),
disabled: true,
handler: 'edit',
},
'-',
{
xtype: 'proxmoxButton',
text: gettext('Start Garbage Collection'),
selModel: null,
handler: 'garbageCollect',
},
],
listeners: {
activate: function() { this.rstore.startUpdate(); },
destroy: function() { this.rstore.stopUpdate(); },
deactivate: function() { this.rstore.stopUpdate(); },
itemdblclick: 'edit',
},
rows: {
"gc-schedule": {
required: true,
defaultValue: Proxmox.Utils.NoneText,
header: gettext('Garbage Collection Schedule'),
editor: {
xtype: 'proxmoxWindowEdit',
title: gettext('GC Schedule'),
onlineHelp: 'maintenance_gc',
items: {
xtype: 'pbsCalendarEvent',
name: 'gc-schedule',
fieldLabel: gettext("GC Schedule"),
emptyText: Proxmox.Utils.noneText,
deleteEmpty: true,
},
},
},
"prune-schedule": {
required: true,
defaultValue: Proxmox.Utils.NoneText,
header: gettext('Prune Schedule'),
editor: {
xtype: 'proxmoxWindowEdit',
title: gettext('Prune Schedule'),
onlineHelp: 'maintenance_pruning',
items: {
xtype: 'pbsCalendarEvent',
name: 'prune-schedule',
fieldLabel: gettext("Prune Schedule"),
emptyText: Proxmox.Utils.noneText,
deleteEmpty: true,
},
},
},
"keep-last": {
required: true,
header: gettext('Keep Last'),
editor: {
xtype: 'proxmoxWindowEdit',
title: gettext('Prune Options'),
onlineHelp: 'maintenance_pruning',
items: {
xtype: 'pbsPruneInputPanel',
isCreate: false,
},
},
},
"keep-hourly": {
required: true,
header: gettext('Keep Hourly'),
editor: {
xtype: 'proxmoxWindowEdit',
title: gettext('Prune Options'),
onlineHelp: 'maintenance_pruning',
items: {
xtype: 'pbsPruneInputPanel',
},
},
},
"keep-daily": {
required: true,
header: gettext('Keep Daily'),
editor: {
xtype: 'proxmoxWindowEdit',
title: gettext('Prune Options'),
onlineHelp: 'maintenance_pruning',
items: {
xtype: 'pbsPruneInputPanel',
},
},
},
"keep-weekly": {
required: true,
header: gettext('Keep Weekly'),
editor: {
xtype: 'proxmoxWindowEdit',
title: gettext('Prune Options'),
onlineHelp: 'maintenance_pruning',
items: {
xtype: 'pbsPruneInputPanel',
},
},
},
"keep-monthly": {
required: true,
header: gettext('Keep Monthly'),
editor: {
xtype: 'proxmoxWindowEdit',
title: gettext('Prune Options'),
onlineHelp: 'maintenance_pruning',
items: {
xtype: 'pbsPruneInputPanel',
},
},
},
"keep-yearly": {
required: true,
header: gettext('Keep Yearly'),
editor: {
xtype: 'proxmoxWindowEdit',
title: gettext('Prune Options'),
onlineHelp: 'maintenance_pruning',
items: {
xtype: 'pbsPruneInputPanel',
},
},
},
},
});