Skip to content

Commit 8dbfe1b

Browse files
author
Dennis Labordus
committed
Use Compas Open Component to select Template and make Compas Versions uses compare from foundation.
Signed-off-by: Dennis Labordus <[email protected]>
1 parent fb4ea0a commit 8dbfe1b

File tree

12 files changed

+262
-1852
lines changed

12 files changed

+262
-1852
lines changed

public/js/plugins.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ export const officialPlugins = [
101101
default: true,
102102
kind: 'menu',
103103
requireDoc: false,
104-
position: 'top'
104+
position: 'top',
105105
},
106106
{
107107
name: 'Import from API',
@@ -110,7 +110,7 @@ export const officialPlugins = [
110110
default: false,
111111
kind: 'menu',
112112
requireDoc: false,
113-
position: 'top'
113+
position: 'top',
114114
},
115115
{
116116
name: 'Save project',
@@ -119,7 +119,7 @@ export const officialPlugins = [
119119
default: true,
120120
kind: 'menu',
121121
requireDoc: true,
122-
position: 'top'
122+
position: 'top',
123123
},
124124
{
125125
name: 'Save project as',
@@ -213,9 +213,9 @@ export const officialPlugins = [
213213
},
214214
{
215215
name: 'Compare IED',
216-
src: '/src/menu/CompareIED.js',
216+
src: '/src/menu/CompasCompareIED.js',
217217
icon: 'compare_arrows',
218-
default: false,
218+
default: true,
219219
kind: 'menu',
220220
requireDoc: true,
221221
position: 'middle',
@@ -227,7 +227,7 @@ export const officialPlugins = [
227227
default: true,
228228
kind: 'menu',
229229
requireDoc: true,
230-
position: 'middle'
230+
position: 'middle',
231231
},
232232
{
233233
name: 'Locamation VMU',
@@ -236,7 +236,7 @@ export const officialPlugins = [
236236
default: false,
237237
kind: 'menu',
238238
requireDoc: true,
239-
position: 'middle'
239+
position: 'middle',
240240
},
241241
{
242242
name: 'CoMPAS Settings',
@@ -245,7 +245,7 @@ export const officialPlugins = [
245245
default: true,
246246
kind: 'menu',
247247
requireDoc: false,
248-
position: 'bottom'
248+
position: 'bottom',
249249
},
250250
{
251251
name: 'Help',

src/compas-editors/CompasVersions.ts

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,65 @@ import '@material/mwc-list';
1515
import '@material/mwc-list/mwc-list-item';
1616
import '@material/mwc-list/mwc-check-list-item';
1717

18+
import { MultiSelectedEvent } from '@material/mwc-list/mwc-list-foundation';
19+
1820
import {
1921
newLogEvent,
2022
newOpenDocEvent,
2123
newWizardEvent,
2224
Wizard,
2325
} from '../foundation.js';
24-
import { MultiSelectedEvent } from '@material/mwc-list/mwc-list-foundation';
26+
import { renderDiff } from '../foundation/compare.js';
2527

2628
import {
2729
CompasSclDataService,
2830
SDS_NAMESPACE,
2931
} from '../compas-services/CompasSclDataService.js';
3032
import { createLogEvent } from '../compas-services/foundation.js';
3133
import {
34+
compareVersions,
3235
getTypeFromDocName,
3336
updateDocumentInOpenSCD,
3437
} from '../compas/foundation.js';
3538
import { addVersionToCompasWizard } from '../compas/CompasUploadVersion.js';
36-
import { compareWizard } from '../compas/CompasCompareDialog.js';
3739
import { getElementByName, styles } from './foundation.js';
3840
import { wizards } from '../wizards/wizard-library.js';
3941

42+
interface CompareOptions {
43+
title: string;
44+
}
45+
46+
function compareWizard(
47+
plugin: Element,
48+
oldElement: Element,
49+
newElement: Element,
50+
options: CompareOptions
51+
): Wizard {
52+
function renderDialogContent(): TemplateResult {
53+
return html` ${renderDiff(newElement, oldElement) ??
54+
html`${translate('compas.compare.noDiff')}`}`;
55+
}
56+
57+
function close() {
58+
return function () {
59+
plugin.dispatchEvent(newWizardEvent());
60+
return [];
61+
};
62+
}
63+
64+
return [
65+
{
66+
title: options.title,
67+
secondary: {
68+
icon: '',
69+
label: get('close'),
70+
action: close(),
71+
},
72+
content: [renderDialogContent()],
73+
},
74+
];
75+
}
76+
4077
/** An editor [[`plugin`]] for selecting the `Substation` section. */
4178
export default class CompasVersionsPlugin extends LitElement {
4279
@property()
@@ -244,15 +281,15 @@ export default class CompasVersionsPlugin extends LitElement {
244281
const selectedVersions = this.getSelectedVersions();
245282
if (selectedVersions.length === 1) {
246283
const oldVersion = selectedVersions[0];
284+
247285
const oldScl = await this.getVersion(oldVersion);
248286
const newScl = this.doc.documentElement;
249287

250288
this.dispatchEvent(
251289
newWizardEvent(
252290
compareWizard(this, oldScl, newScl, {
253-
title: get('compas.compare.title', {
291+
title: get('compas.compare.titleCurrent', {
254292
oldVersion: oldVersion,
255-
newVersion: 'current',
256293
}),
257294
})
258295
)
@@ -274,8 +311,9 @@ export default class CompasVersionsPlugin extends LitElement {
274311
async compareVersions(): Promise<void> {
275312
const selectedVersions = this.getSelectedVersions();
276313
if (selectedVersions.length === 2) {
277-
const oldVersion = selectedVersions[0];
278-
const newVersion = selectedVersions[1];
314+
const sortedVersions = selectedVersions.slice().sort(compareVersions);
315+
const oldVersion = sortedVersions[0];
316+
const newVersion = sortedVersions[1];
279317

280318
const oldScl = await this.getVersion(oldVersion);
281319
const newScl = await this.getVersion(newVersion);

src/compas/CompasCompareDialog.ts

Lines changed: 0 additions & 204 deletions
This file was deleted.

0 commit comments

Comments
 (0)