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,25 @@ 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 && header . hasAttribute ( 'version' )
144
+ ? header . getAttribute ( 'version' ) !
145
+ : 'unknown' ) ;
146
+ }
147
+
148
+ private getCurrentName ( ) : string {
149
+ const sclName = this . doc . querySelector ( 'SCL > Private[type="compas_scl"] > SclName' ) ;
150
+ return ( sclName && sclName . textContent
151
+ ? sclName . textContent
152
+ : 'unknown' ) ;
153
+ }
154
+
144
155
render ( ) : TemplateResult {
145
156
if ( ! this . scls ) {
146
157
return html `
@@ -158,6 +169,10 @@ export default class CompasVersionsPlugin extends LitElement {
158
169
}
159
170
return html `
160
171
< h1 >
172
+ ${ translate ( 'compas.versions.sclInfo' ,
173
+ { name : this . getCurrentName ( ) ,
174
+ version : this . getCurrentVersion ( )
175
+ } ) }
161
176
< nav >
162
177
< abbr title ="${ translate ( 'compas.versions.addVersionButton' ) } ">
163
178
< mwc-icon-button icon ="playlist_add "
@@ -174,10 +189,18 @@ export default class CompasVersionsPlugin extends LitElement {
174
189
} } > </ mwc-icon-button >
175
190
</ abbr >
176
191
</ nav >
192
+ < nav >
193
+ < abbr title ="${ translate ( 'edit' ) } ">
194
+ < mwc-icon-button icon ="edit "
195
+ @click =${ ( ) => this . openEditWizard ( ) } > </ mwc-icon-button >
196
+ </ abbr >
197
+ </ nav >
177
198
</ h1 >
178
199
< div id ="containerCompasVersions ">
179
200
< section tabindex ="0 ">
180
- < h1 > ${ translate ( 'compas.versions.title' ) } </ h1 >
201
+ < h1 >
202
+ ${ translate ( 'compas.versions.title' ) }
203
+ </ h1 >
181
204
< mwc-list multi
182
205
@selected =${ ( evt : MultiSelectedEvent ) => {
183
206
selectedVersionsOnCompasVersionsEditor = evt . detail . index ;
@@ -248,7 +271,7 @@ export default class CompasVersionsPlugin extends LitElement {
248
271
}
249
272
250
273
#containerCompasVersions {
251
- padding: 8px 12px 16px;
274
+ padding: 16px 12px 16px 12px ;
252
275
box-sizing: border-box;
253
276
grid-template-columns: repeat(auto-fit, minmax(316px, auto));
254
277
}
0 commit comments