sync jobs: remove superfluous direction property

since the SyncJobConfig struct now contains a 'sync-direction' property, we can
omit the 'direction' property of the SyncJobStatus struct. This makes a
few adaptions in the ui necessary:

* use the correct field
* handle 'pull' as default (since we don't necessarily get a
  'sync-direction' in that case)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak 2024-11-26 15:47:34 +01:00 committed by Thomas Lamprecht
parent b3f16f6227
commit af4d5607f1
3 changed files with 8 additions and 15 deletions

View File

@ -649,9 +649,6 @@ impl SyncJobConfig {
status: { status: {
type: JobScheduleStatus, type: JobScheduleStatus,
}, },
direction: {
type: SyncDirection,
},
}, },
)] )]
#[derive(Serialize, Deserialize, Clone, PartialEq)] #[derive(Serialize, Deserialize, Clone, PartialEq)]
@ -662,9 +659,6 @@ pub struct SyncJobStatus {
pub config: SyncJobConfig, pub config: SyncJobConfig,
#[serde(flatten)] #[serde(flatten)]
pub status: JobScheduleStatus, pub status: JobScheduleStatus,
/// The direction of the job
pub direction: SyncDirection,
} }
/// These are used separately without `ns`/`max-depth` sometimes in the API, specifically in the API /// These are used separately without `ns`/`max-depth` sometimes in the API, specifically in the API

View File

@ -120,7 +120,6 @@ pub fn list_config_sync_jobs(
list.push(SyncJobStatus { list.push(SyncJobStatus {
config: job, config: job,
status, status,
direction,
}); });
} }

View File

@ -45,7 +45,7 @@ Ext.define('PBS.config.SyncJobView', {
store.clearFilter(); store.clearFilter();
let fieldsToSearch = ['direction', 'id', 'remote', 'remote-store', 'owner']; let fieldsToSearch = ['sync-direction', 'id', 'remote', 'remote-store', 'owner'];
if (!view.datastore) { if (!view.datastore) {
fieldsToSearch.push('store'); fieldsToSearch.push('store');
} }
@ -96,7 +96,7 @@ Ext.define('PBS.config.SyncJobView', {
Ext.create('PBS.window.SyncJobEdit', { Ext.create('PBS.window.SyncJobEdit', {
datastore: view.datastore, datastore: view.datastore,
id: selection[0].data.id, id: selection[0].data.id,
syncDirection: selection[0].data.direction, syncDirection: selection[0].data['sync-direction'],
listeners: { listeners: {
destroy: function() { destroy: function() {
me.reload(); me.reload();
@ -174,7 +174,7 @@ Ext.define('PBS.config.SyncJobView', {
type: 'diff', type: 'diff',
autoDestroy: true, autoDestroy: true,
autoDestroyRstore: true, autoDestroyRstore: true,
sorters: ['store', 'direction', 'id'], sorters: ['store', 'sync-direction', 'id'],
rstore: { rstore: {
type: 'update', type: 'update',
storeid: 'pbs-sync-jobs-status', storeid: 'pbs-sync-jobs-status',
@ -277,15 +277,15 @@ Ext.define('PBS.config.SyncJobView', {
}, },
{ {
header: gettext('Direction'), header: gettext('Direction'),
dataIndex: 'direction', dataIndex: 'sync-direction',
renderer: function(value) { renderer: function(value) {
let iconCls, text; let iconCls, text;
if (value === 'pull') { if (value === 'push') {
iconCls = 'download';
text = gettext('Pull');
} else {
iconCls = 'upload'; iconCls = 'upload';
text = gettext('Push'); text = gettext('Push');
} else {
iconCls = 'download';
text = gettext('Pull');
} }
return `<i class="fa fa-fw fa-${iconCls}"></i> ${text}`; return `<i class="fa fa-fw fa-${iconCls}"></i> ${text}`;
}, },