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
form
images
panel
tape
window
ACLEdit.js
BackupFileDownloader.js
BackupGroupChangeOwner.js
CreateDirectory.js
DataStoreEdit.js
MaintenanceOptions.js
NamespaceEdit.js
NotesEdit.js
NotifyOptions.js
RemoteEdit.js
Settings.js
SyncJobEdit.js
TokenEdit.js
TrafficControlEdit.js
UserEdit.js
UserPassword.js
VerifyAll.js
VerifyJobEdit.js
ZFSCreate.js
Application.js
Dashboard.js
DirectoryList.js
LoginView.js
MainView.js
Makefile
NavigationTree.js
NodeNotes.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/window/VerifyJobEdit.js
Thomas Lamprecht 90915ab629 ui: verify/sync: allow to optionally override ID again
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-16 18:48:44 +02:00

166 lines
3.2 KiB
JavaScript

Ext.define('PBS.window.VerifyJobEdit', {
extend: 'Proxmox.window.Edit',
alias: 'widget.pbsVerifyJobEdit',
mixins: ['Proxmox.Mixin.CBind'],
userid: undefined,
onlineHelp: 'maintenance-verification',
isAdd: true,
subject: gettext('Verification Job'),
fieldDefaults: { labelWidth: 120 },
defaultFocus: 'field[name="ignore-verified"]',
cbindData: function(initialConfig) {
let me = this;
let baseurl = '/api2/extjs/config/verify';
let id = initialConfig.id;
me.isCreate = !id;
me.url = id ? `${baseurl}/${id}` : baseurl;
me.method = id ? 'PUT' : 'POST';
me.scheduleValue = id ? null : 'daily';
me.autoLoad = !!id;
me.editDatastore = me.datastore === undefined && me.isCreate;
return { };
},
viewModel: {
data: {
'ignoreVerified': true,
},
},
controller: {
xclass: 'Ext.app.ViewController',
control: {
'pbsDataStoreSelector': {
change: 'storeChange',
},
},
storeChange: function(field, value) {
let view = this.getView();
let nsSelector = view.down('pbsNamespaceSelector');
nsSelector.setDatastore(value);
},
},
items: {
xtype: 'inputpanel',
onGetValues: function(values) {
let me = this;
if (!values.id && me.up('pbsVerifyJobEdit').isCreate) {
values.id = 'v-' + Ext.data.identifier.Uuid.Global.generate().slice(0, 13);
}
return values;
},
column1: [
{
xtype: 'pmxDisplayEditField',
fieldLabel: gettext('Local Datastore'),
name: 'store',
submitValue: true,
cbind: {
editable: '{editDatastore}',
value: '{datastore}',
},
editConfig: {
xtype: 'pbsDataStoreSelector',
allowBlank: false,
},
},
{
xtype: 'pbsNamespaceSelector',
name: 'ns',
fieldLabel: gettext('Namespace'),
cbind: {
datastore: '{datastore}',
},
},
{
xtype: 'pbsNamespaceMaxDepth',
name: 'max-depth',
fieldLabel: gettext('Max. Depth'),
deleteEmpty: true,
},
],
column2: [
{
xtype: 'pbsCalendarEvent',
name: 'schedule',
fieldLabel: gettext('Schedule'),
emptyText: gettext('none (disabled)'),
cbind: {
value: '{scheduleValue}',
deleteEmpty: '{!isCreate}',
},
},
{
xtype: 'proxmoxcheckbox',
name: 'ignore-verified',
fieldLabel: gettext('Skip Verified'),
uncheckedValue: false,
value: true,
bind: {
value: '{ignoreVerified}',
},
},
{
xtype: 'fieldcontainer',
layout: 'hbox',
fieldLabel: gettext('Re-Verify After'),
items: [
{
xtype: 'pbsVerifyOutdatedAfter',
name: 'outdated-after',
bind: {
disabled: '{!ignoreVerified}',
},
cbind: {
deleteEmpty: '{!isCreate}',
},
flex: 1,
},
{
xtype: 'displayfield',
padding: '0 0 0 5',
name: 'unit',
submitValue: false,
value: gettext('days'),
bind: {
disabled: '{!ignoreVerified}',
},
},
],
},
],
columnB: [
{
fieldLabel: gettext('Comment'),
xtype: 'proxmoxtextfield',
name: 'comment',
cbind: {
deleteEmpty: '{!isCreate}',
},
},
],
advancedColumn1: [
{
xtype: 'proxmoxtextfield',
fieldLabel: gettext('Job ID'),
emptyText: gettext('Autogenerate'),
name: 'id',
allowBlank: true,
regex: PBS.Utils.SAFE_ID_RE,
},
],
},
});