1
- import { css , html , LitElement , property , TemplateResult } from 'lit-element' ;
2
- import { get , translate } from 'lit-translate' ;
1
+ import { css , html , LitElement , property , TemplateResult } from 'lit-element' ;
2
+ import { get , translate } from 'lit-translate' ;
3
3
4
4
import '@material/mwc-fab' ;
5
5
import '@material/mwc-icon' ;
@@ -8,23 +8,30 @@ import '@material/mwc-list';
8
8
import '@material/mwc-list/mwc-list-item' ;
9
9
import '@material/mwc-list/mwc-check-list-item' ;
10
10
11
- import { newLogEvent , newWizardEvent , Wizard } from "../foundation.js" ;
12
- import { MultiSelectedEvent } from "@material/mwc-list/mwc-list-foundation" ;
11
+ import { newLogEvent , newWizardEvent , Wizard } from "../foundation.js" ;
12
+ import { MultiSelectedEvent } from "@material/mwc-list/mwc-list-foundation" ;
13
13
14
- import { CompasSclDataService , SDS_NAMESPACE } from "../compas-services/CompasSclDataService.js" ;
15
- import { createLogEvent } from "../compas-services/foundation.js" ;
14
+ import { CompasSclDataService , SDS_NAMESPACE } from "../compas-services/CompasSclDataService.js" ;
15
+ import { createLogEvent } from "../compas-services/foundation.js" ;
16
16
import {
17
17
dispatchEventOnOpenScd ,
18
18
getOpenScdElement ,
19
19
getTypeFromDocName ,
20
20
updateDocumentInOpenSCD
21
21
} from "../compas/foundation.js" ;
22
- import { addVersionToCompasWizard } from "../compas/CompasUploadVersion.js" ;
23
- import { compareWizard } from "../compas/CompasCompareDialog.js" ;
24
- import { getElementByName , styles } from './foundation.js' ;
22
+ import { addVersionToCompasWizard } from "../compas/CompasUploadVersion.js" ;
23
+ import { compareWizard } from "../compas/CompasCompareDialog.js" ;
24
+ import { getElementByName , styles } from './foundation.js' ;
25
+ import { wizards } from "../wizards/wizard-library.js" ;
25
26
26
27
// Save the selection for the current document.
27
28
let selectedVersionsOnCompasVersionsEditor : Set < number > = new Set ( ) ;
29
+ // We will also add an Event Listener when a new document is opened. We then want to reset the selection.
30
+ function resetSelection ( ) : void {
31
+ // When a new document is loaded the selection will be reset.
32
+ selectedVersionsOnCompasVersionsEditor = new Set ( ) ;
33
+ }
34
+ addEventListener ( 'open-doc' , resetSelection ) ;
28
35
29
36
/** An editor [[`plugin`]] for selecting the `Substation` section. */
30
37
export default class CompasVersionsPlugin extends LitElement {
@@ -38,21 +45,6 @@ export default class CompasVersionsPlugin extends LitElement {
38
45
@property ( )
39
46
scls ! : Element [ ] ;
40
47
41
- constructor ( ) {
42
- super ( ) ;
43
-
44
- // Add event to get a notification when a new document is opened.
45
- const openSCD = getOpenScdElement ( ) ;
46
- if ( openSCD !== null ) {
47
- openSCD . addEventListener ( 'open-doc' , this . resetSelection ) ;
48
- }
49
- }
50
-
51
- resetSelection ( ) {
52
- // When a new document is loaded the selection will be reset.
53
- selectedVersionsOnCompasVersionsEditor = new Set ( ) ;
54
- }
55
-
56
48
firstUpdated ( ) : void {
57
49
if ( ! this . docId ) {
58
50
this . scls = [ ] ;
@@ -141,6 +133,21 @@ export default class CompasVersionsPlugin extends LitElement {
141
133
} ) ;
142
134
}
143
135
136
+ private openEditWizard ( ) : void {
137
+ const wizard = wizards [ 'SCL' ] . edit ( this . doc . documentElement ) ;
138
+ if ( wizard ) this . dispatchEvent ( newWizardEvent ( wizard ) ) ;
139
+ }
140
+
141
+ private getCurrentVersion ( ) : string {
142
+ const header = this . doc . querySelector ( 'Header' ) ;
143
+ return header ! . getAttribute ( 'version' ) ?? 'unknown' ;
144
+ }
145
+
146
+ private getCurrentName ( ) : string {
147
+ const sclName = this . doc . querySelector ( 'SCL > Private[type="compas_scl"] > SclName' ) ;
148
+ return sclName ! . textContent ?? 'unknown' ;
149
+ }
150
+
144
151
render ( ) : TemplateResult {
145
152
if ( ! this . scls ) {
146
153
return html `
@@ -158,6 +165,10 @@ export default class CompasVersionsPlugin extends LitElement {
158
165
}
159
166
return html `
160
167
< h1 >
168
+ ${ translate ( 'compas.versions.sclInfo' ,
169
+ { name : this . getCurrentName ( ) ,
170
+ version : this . getCurrentVersion ( )
171
+ } ) }
161
172
< nav >
162
173
< abbr title ="${ translate ( 'compas.versions.addVersionButton' ) } ">
163
174
< mwc-icon-button icon ="playlist_add "
@@ -174,10 +185,18 @@ export default class CompasVersionsPlugin extends LitElement {
174
185
} } > </ mwc-icon-button >
175
186
</ abbr >
176
187
</ nav >
188
+ < nav >
189
+ < abbr title ="${ translate ( 'edit' ) } ">
190
+ < mwc-icon-button icon ="edit "
191
+ @click =${ ( ) => this . openEditWizard ( ) } > </ mwc-icon-button >
192
+ </ abbr >
193
+ </ nav >
177
194
</ h1 >
178
195
< div id ="containerCompasVersions ">
179
196
< section tabindex ="0 ">
180
- < h1 > ${ translate ( 'compas.versions.title' ) } </ h1 >
197
+ < h1 >
198
+ ${ translate ( 'compas.versions.title' ) }
199
+ </ h1 >
181
200
< mwc-list multi
182
201
@selected =${ ( evt : MultiSelectedEvent ) => {
183
202
selectedVersionsOnCompasVersionsEditor = evt . detail . index ;
@@ -248,7 +267,7 @@ export default class CompasVersionsPlugin extends LitElement {
248
267
}
249
268
250
269
#containerCompasVersions {
251
- padding: 8px 12px 16px;
270
+ padding: 16px 12px 16px 12px ;
252
271
box-sizing: border-box;
253
272
grid-template-columns: repeat(auto-fit, minmax(316px, auto));
254
273
}
0 commit comments