]>
git.proxmox.com Git - proxmox-backup.git/blob - www/window/SyncJobEdit.js
df1f2c5ba67821e78d1451e62ddcdc01e9ff8e7e
1 Ext
.define('PBS.form.RemoteStoreSelector', {
2 extend
: 'Proxmox.form.ComboGrid',
3 alias
: 'widget.pbsRemoteStoreSelector',
11 matchFieldWidth
: false,
13 loadingText
: gettext('Scanning...'),
17 header
: gettext('Datastore'),
20 renderer
: Ext
.String
.htmlEncode
,
24 header
: gettext('Comment'),
26 renderer
: Ext
.String
.htmlEncode
,
32 doRawQuery: function() {
36 setRemote: function(remote
) {
39 if (me
.remote
=== remote
) {
49 me
.setDisabled(false);
54 store
.proxy
.url
= '/api2/json/config/remote/' + encodeURIComponent(me
.remote
) + '/scan';
64 initComponent: function() {
69 let store
= Ext
.create('Ext.data.Store', {
70 fields
: ['store', 'comment'],
73 url
: '/api2/json/config/remote/' + encodeURIComponent(me
.remote
) + '/scan',
77 store
.sort('store', 'ASC');
88 Ext
.define('PBS.window.SyncJobEdit', {
89 extend
: 'Proxmox.window.Edit',
90 alias
: 'widget.pbsSyncJobEdit',
91 mixins
: ['Proxmox.Mixin.CBind'],
95 onlineHelp
: 'syncjobs',
99 subject
: gettext('SyncJob'),
101 fieldDefaults
: { labelWidth
: 120 },
102 defaultFocus
: 'proxmoxtextfield[name=comment]',
104 cbindData: function(initialConfig
) {
107 let baseurl
= '/api2/extjs/config/sync';
108 let id
= initialConfig
.id
;
111 me
.url
= id
? `${baseurl}/${id}` : baseurl
;
112 me
.method
= id
? 'PUT' : 'POST';
114 me
.scheduleValue
= id
? null : 'hourly';
120 onGetValues: function(values
) {
123 if (!values
.id
&& me
.up('pbsSyncJobEdit').isCreate
) {
124 values
.id
= 'auto-' + Ext
.data
.identifier
.Uuid
.Global
.generate().slice(0, 23);
130 xtype
: 'displayfield',
132 fieldLabel
: gettext('Local Datastore'),
136 value
: '{datastore}',
140 fieldLabel
: gettext('Local Owner'),
141 xtype
: 'pbsUserSelector',
145 emptyText
: 'root@pam',
148 deleteEmpty
: '{!isCreate}',
152 fieldLabel
: gettext('Remove vanished'),
153 xtype
: 'proxmoxcheckbox',
154 name
: 'remove-vanished',
157 'data-qtip': gettext('Remove snapshots from local datastore if they vanished from source datastore?'),
159 uncheckedValue
: false,
166 fieldLabel
: gettext('Source Remote'),
167 xtype
: 'pbsRemoteSelector',
171 change: function(f
, value
) {
173 let remoteStoreField
= me
.up('pbsSyncJobEdit').down('field[name=remote-store]');
174 remoteStoreField
.setRemote(value
);
179 fieldLabel
: gettext('Source Datastore'),
180 xtype
: 'pbsRemoteStoreSelector',
182 name
: 'remote-store',
186 fieldLabel
: gettext('Sync Schedule'),
187 xtype
: 'pbsCalendarEvent',
189 emptyText
: gettext('none (disabled)'),
191 deleteEmpty
: '{!isCreate}',
192 value
: '{scheduleValue}',
199 fieldLabel
: gettext('Comment'),
200 xtype
: 'proxmoxtextfield',
203 deleteEmpty
: '{!isCreate}',