Skip to content

Commit 6d1f5aa

Browse files
author
Rob Tjalma
authored
Merge pull request #134 from com-pas/upstream-v0.13
Merge v0.13.0 from OpenSCD into CoMPAS
2 parents 57c184c + d08ae74 commit 6d1f5aa

File tree

118 files changed

+4549
-1192
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+4549
-1192
lines changed

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,34 @@
22

33
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
44

5+
## [0.13.0](https://github.com/openscd/open-scd/compare/v0.11.0...v0.13.0) (2022-04-04)
6+
7+
8+
### Features
9+
10+
* **Editing:** check globally for ID uniqueness ([c2b14fb](https://github.com/openscd/open-scd/commits/c2b14fb337adb9f55874dbb3add0aefda8622946))
11+
* **editors/cleanup:** unreferenced DataSet ([#568](https://github.com/openscd/open-scd/issues/568)) ([edc133c](https://github.com/openscd/open-scd/commits/edc133cdecce61abf53d043bc45292d1a1a36c7c))
12+
* **editors/subscriber:** use filtered lists ([#638](https://github.com/openscd/open-scd/issues/638)) ([f255bfb](https://github.com/openscd/open-scd/commits/f255bfb4f205239413f12f7c47e221e739cefdce))
13+
* **editors/Substation:** Add PowerTransformer Components to Substation Editor ([22555b6](https://github.com/openscd/open-scd/commits/22555b6713c9f2c8e882269ffce9a826d016e87b))
14+
* **editors/template/lnodetype-wizards:** make use of -7-420 NSD ([0a2d5a4](https://github.com/openscd/open-scd/commits/0a2d5a40c50d5a0cc66fd7c5b31f6493aa7c4600))
15+
* **ied-editor/ln-node:** Changed description of LN Node in IED Editor ([#647](https://github.com/openscd/open-scd/issues/647)) ([9a655e8](https://github.com/openscd/open-scd/commits/9a655e88d1a8341ec56a83c6af540e77f4e9c280))
16+
* **plugins/IED:** Add icon set to IED editor containers ([9878259](https://github.com/openscd/open-scd/commits/9878259665be2e34bd99dd1d5f72c1944b3dca1f))
17+
* **plugins/SampledValues:** Create Sampled Values tab in Subscription plugin ([f94b042](https://github.com/openscd/open-scd/commits/f94b0422253940785a0982ae72910f1bbbc2ac62))
18+
* **plugins/SampledValues:** Small bug fix + Added Integration tests ([a58f305](https://github.com/openscd/open-scd/commits/a58f305c78a65c056c617e9f09e8d648f4aaf610))
19+
* **plugins/Subscription:** Create 'Subscription' plugin for GOOSE subscriptions ([25fae6f](https://github.com/openscd/open-scd/commits/25fae6fc42ad76f269ef029848d5cae6329eee33))
20+
* **wizard-dialog:** allow used-defined actions in menu ([f8c5a93](https://github.com/openscd/open-scd/commits/f8c5a93100e4c7e922627337ffee32f6169b12cf))
21+
* **wizard-dialog:** wizard-dialog content definition through `WizardInput` objects ([5f3a7a7](https://github.com/openscd/open-scd/commits/5f3a7a7c4a74bffb5e800b8c75bffdbdb3213e15))
22+
* **wizards/reportcontrol:** add copy to other IEDs ([#632](https://github.com/openscd/open-scd/issues/632)) ([1850dfa](https://github.com/openscd/open-scd/commits/1850dfa6c77669fd47ac36379a32267dc54ef913))
23+
24+
25+
### Bug Fixes
26+
27+
* **action-pane:** adjust css rules for icon slot ([#594](https://github.com/openscd/open-scd/issues/594)) ([8bc0549](https://github.com/openscd/open-scd/commits/8bc0549bc791ef6b7fe0b1dfd4d5a6f1dfccde2d))
28+
* **editors/template:** on id attribute update adopt references as well ([#590](https://github.com/openscd/open-scd/issues/590)) ([af246dd](https://github.com/openscd/open-scd/commits/af246ddcde907688081aaa20d295faeb978b0a6f))
29+
* **editors/template:** properly update xxxType list after add/editing ([#582](https://github.com/openscd/open-scd/issues/582)) ([2e11cc8](https://github.com/openscd/open-scd/commits/2e11cc8c277d31dd693ae54656e1c3b4cd23f8f3))
30+
* **wizard-dialog:** make sure to close on non empty editor action ([8fb125c](https://github.com/openscd/open-scd/commits/8fb125c1c353feb37a4c988d59a608090fb0425b))
31+
* **wizards/subnetwork:** incorrect title for create wizard ([#645](https://github.com/openscd/open-scd/issues/645)) ([0210913](https://github.com/openscd/open-scd/commits/0210913cc8eef9cf06d1071a146072ba24e80df0))
32+
533
## [0.12.0](https://github.com/openscd/open-scd/compare/v0.11.0...v0.12.0) (2022-03-21)
634

735

README.md

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,41 @@ Open Substation Communication Designer is an editor for SCL files as described i
1010
1111
## Installation
1212

13+
In order to install OpenSCD on your local device (only for you), simply visit [openscd.github.io](https://openscd.github.io), click the "Install OpenSCD" button in your address bar (Chrome or Edge on desktop) or click the "Add OpenSCD to home screen" notification in any mobile browser.
14+
15+
In order to install your own instance of OpenSCD on your own webserver (e.g. on your company intranet), simply download [our latest release](https://github.com/openscd/open-scd/releases/latest) (`open-scd.zip` or `open-scd.tar.gz`) and extract the archive contents into the "webroot" directory of your web server.
16+
17+
If you don't have your own webserver but still want your own version of OpenSCD hosted locally (e.g. on a system without an internet connection), you can [use a browser plugin that acts as a local webserver](https://github.com/openscd/open-scd/wiki/Install-OpenSCD#offline) (only for you) instead.
18+
19+
## Contributing
20+
21+
### Building
22+
23+
If you want to build OpenSCD yourself in order to make some changes to your local installation or to contribute to the project, you may first want to install [Node.js](https://nodejs.org/) in order to be able to use our local development setup.
24+
25+
Once Node.js is installed on your system, you may get started by entering the following lines in your command prompt:
26+
1327
```
1428
git clone https://github.com/openscd/open-scd.git
1529
cd open-scd
1630
npm install
1731
npm start
1832
```
1933

20-
## Scripts
34+
This will start a local development server and open a browser window which will automatically be reloaded as soon as you save any changes to your local source code files.
35+
36+
If you use VSCode to develop, we recommend you install and use the [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) and [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) extensions in order to automatically lint and format your code as you edit it.
37+
38+
### Scripts
39+
40+
We provide the following `npm` scripts for your convenience:
2141

22-
- `start` runs `OpenSCD` for development, reloading on file changes
23-
- `test` runs the test suite with Karma
24-
- `lint` runs the linter
25-
- `doc` builds markdown documentation in the `doc` directory
42+
- `npm start` runs `OpenSCD` for development, reloading on file changes
43+
- `npm test` runs the test suite with Karma
44+
- `npm run lint` runs the linter (fixes problems in your code)
45+
- `npm run format` runs the formatter (formats your code in a unified way)
46+
- `npm run doc` builds HTML documentation into the `doc` directory
47+
- `npm run build` builds a deployable version of the project into the `dist` directory
2648

2749
### Docker
2850
It's also possible to run OpenSCD CoMPAS Edition as a docker. Of every release a docker image is created and pushed to Docker Hub.
@@ -50,5 +72,5 @@ distributed under their [end user license agreement](CC-EULA.pdf).
5072

5173
This project is licensed under the [Apache License 2.0](LICENSE.md).
5274

53-
© 2020-2021 OMICRON electronics GmbH
75+
© 2020-2022 OMICRON electronics GmbH
5476

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,5 @@
4040
"purpose": "maskable"
4141
}
4242
],
43-
"version": "0.12.0"
43+
"version": "0.13.0"
4444
}

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "open-scd",
3-
"version": "0.12.0",
3+
"version": "0.13.0",
44
"repository": "https://github.com/openscd/open-scd.git",
55
"description": "A bottom-up substation configuration designer for projects described using SCL `IEC 61850-6` Edition 2 or greater.",
66
"keywords": [

src/compas/CompasUploadVersion.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@ import '@material/mwc-list';
55
import '@material/mwc-list/mwc-list-item';
66
import '@material/mwc-button';
77

8-
import {newLogEvent, newPendingStateEvent, newWizardEvent, Wizard, WizardInput} from "../foundation.js";
8+
import {
9+
newLogEvent,
10+
newPendingStateEvent,
11+
newWizardEvent,
12+
Wizard,
13+
WizardInputElement
14+
} from "../foundation.js";
915

1016
import '../wizard-textfield.js';
1117

@@ -120,7 +126,7 @@ export interface AddToCompasWizardOptions {
120126
}
121127
export function addVersionToCompasWizard(saveToOptions: AddToCompasWizardOptions): Wizard {
122128
function uploadToCompas() {
123-
return function (inputs: WizardInput[], wizard: Element) {
129+
return function (inputs: WizardInputElement[], wizard: Element) {
124130
const compasAddTo = <CompasUploadVersionElement>wizard.shadowRoot!.querySelector('compas-upload-version')
125131
if (!compasAddTo.valid()) {
126132
return [];

src/editors/singlelinediagram/wizards/foundation.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
EditorAction,
77
getValue,
88
WizardActor,
9-
WizardInput,
9+
WizardInputElement,
1010
} from '../../../foundation.js';
1111
import { SCL_COORDINATES_NAMESPACE } from "../foundation.js";
1212

@@ -48,7 +48,7 @@ function updateXYAttribute(element: Element, attributeName: string, value: strin
4848
}
4949

5050
export function updateNamingAndCoordinatesAction(element: Element): WizardActor {
51-
return (inputs: WizardInput[]): EditorAction[] => {
51+
return (inputs: WizardInputElement[]): EditorAction[] => {
5252
const name = getValue(inputs.find(i => i.label === 'name')!)!;
5353
const desc = getValue(inputs.find(i => i.label === 'desc')!);
5454
const xCoordinate = getValue(inputs.find(i => i.label === 'xCoordinate')!);

src/editors/subscription/elements/goose-message.ts

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

src/editors/subscription/elements/ied-element-goose.ts

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

src/editors/subscription/publisher-goose-list.ts

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ import {
99
import { translate } from 'lit-translate';
1010

1111
import '@material/mwc-icon';
12-
import '@material/mwc-list';
1312
import '@material/mwc-list/mwc-list-item';
1413

15-
import './elements/goose-message.js';
14+
import '../../filtered-list.js';
1615
import { compareNames, getNameAttribute } from '../../foundation.js';
17-
import { styles } from './foundation.js';
16+
import { newGOOSESelectEvent, styles } from './foundation.js';
17+
import { gooseIcon } from '../../icons/icons.js';
1818

1919
/** An sub element for showing all published GOOSE messages per IED. */
2020
@customElement('publisher-goose-list')
@@ -43,33 +43,49 @@ export class PublisherGOOSEList extends LitElement {
4343
);
4444
}
4545

46+
private onGooseSelect(element: Element): void {
47+
const ln = element.parentElement;
48+
const dataset = ln?.querySelector(
49+
`DataSet[name=${element.getAttribute('datSet')}]`
50+
);
51+
this.dispatchEvent(newGOOSESelectEvent(element, dataset!));
52+
}
53+
54+
renderGoose(element: Element): TemplateResult {
55+
return html`<mwc-list-item
56+
@click=${() => this.onGooseSelect(element)}
57+
graphic="large"
58+
>
59+
<span>${element.getAttribute('name')}</span>
60+
<mwc-icon slot="graphic">${gooseIcon}</mwc-icon>
61+
</mwc-list-item>`;
62+
}
63+
4664
render(): TemplateResult {
4765
return html` <section>
4866
<h1>${translate('subscription.publisherGoose.title')}</h1>
49-
<mwc-list>
50-
${this.ieds.map(ied =>
51-
ied.querySelector('GSEControl')
52-
? html`
53-
<mwc-list-item noninteractive graphic="icon">
54-
<span class="iedListTitle">${getNameAttribute(ied)}</span>
55-
<mwc-icon slot="graphic">developer_board</mwc-icon>
56-
</mwc-list-item>
57-
<li divider role="separator"></li>
58-
${this.getGSEControls(ied).map(
59-
control =>
60-
html`<goose-message .element=${control}></goose-message>`
61-
)}
62-
`
63-
: ``
67+
<filtered-list>
68+
${this.ieds.map(
69+
ied =>
70+
html`
71+
<mwc-list-item noninteractive graphic="icon">
72+
<span class="iedListTitle">${getNameAttribute(ied)}</span>
73+
<mwc-icon slot="graphic">developer_board</mwc-icon>
74+
</mwc-list-item>
75+
<li divider role="separator"></li>
76+
${this.getGSEControls(ied).map(control =>
77+
this.renderGoose(control)
78+
)}
79+
`
6480
)}
65-
</mwc-list>
81+
</filtered-list>
6682
</section>`;
6783
}
6884

6985
static styles = css`
7086
${styles}
7187
72-
mwc-list {
88+
filtered-list {
7389
height: 100vh;
7490
overflow-y: scroll;
7591
}

0 commit comments

Comments
 (0)