@@ -36,6 +36,14 @@ export default class CompasVersionsPlugin extends LitElement {
36
36
this . dispatchEvent ( newWizardEvent ( confirmRestoreCompasWizard ( this . docName , this . docId , version ) ) )
37
37
}
38
38
39
+ private getElementbyName ( parent : Element , namespace : string , tagName : string ) : Element | null {
40
+ const elements = parent . getElementsByTagNameNS ( namespace , tagName ) ;
41
+ if ( elements . length > 0 ) {
42
+ return elements . item ( 0 ) ;
43
+ }
44
+ return null ;
45
+ }
46
+
39
47
render ( ) : TemplateResult {
40
48
if ( ! this . scls ) {
41
49
return html `
@@ -58,11 +66,12 @@ export default class CompasVersionsPlugin extends LitElement {
58
66
< h1 > ${ translate ( 'compas.versions.title' ) } </ h1 >
59
67
< mwc-list >
60
68
${ this . scls . map ( item => {
61
- let name = item . getElementsByTagNameNS ( SDS_NAMESPACE , "Name" ) . item ( 0 ) ! . textContent ?? '' ;
62
- if ( name === '' ) {
63
- name = item . getElementsByTagNameNS ( SDS_NAMESPACE , "Id" ) . item ( 0 ) ! . textContent ?? '' ;
69
+ let element = this . getElementbyName ( item , SDS_NAMESPACE , "Name" ) ;
70
+ if ( element === null ) {
71
+ element = this . getElementbyName ( item , SDS_NAMESPACE , "Id" ) ;
64
72
}
65
- const version = item . getElementsByTagNameNS ( SDS_NAMESPACE , "Version" ) . item ( 0 ) ! . textContent ?? '' ;
73
+ const name = element ! . textContent ?? '' ;
74
+ const version = this . getElementbyName ( item , SDS_NAMESPACE , "Version" ) ! . textContent ?? '' ;
66
75
return html `< mwc-list-item tabindex ="0 "
67
76
@click =${ ( ) => {
68
77
this . confirmRestoreCompas ( version ) ;
@@ -97,18 +106,22 @@ export default class CompasVersionsPlugin extends LitElement {
97
106
` ;
98
107
}
99
108
109
+ function fetchScl ( type : string , docId : string , version : string ) {
110
+ CompasSclDataService ( ) . getSclDocumentVersion ( type , docId , version )
111
+ . then ( response => {
112
+ // Copy the SCL Result from the Response and create a new Document from it.
113
+ const sclElement = response . querySelectorAll ( "SCL" ) . item ( 0 ) ;
114
+ const sclDocument = document . implementation . createDocument ( "" , "" , null ) ;
115
+ sclDocument . getRootNode ( ) . appendChild ( sclElement . cloneNode ( true ) ) ;
116
+
117
+ updateDocumentInOpenSCD ( sclDocument ) ;
118
+ } ) ;
119
+ }
120
+
100
121
function openScl ( docName : string , docId : string , version : string ) {
101
122
return function ( ) {
102
123
const type = getTypeFromDocName ( docName ) ;
103
- CompasSclDataService ( ) . getSclDocumentVersion ( type , docId , version )
104
- . then ( response => {
105
- // Copy the SCL Result from the Response and create a new Document from it.
106
- const sclElement = response . querySelectorAll ( "SCL" ) . item ( 0 ) ;
107
- const sclDocument = document . implementation . createDocument ( "" , "" , null ) ;
108
- sclDocument . getRootNode ( ) . appendChild ( sclElement . cloneNode ( true ) ) ;
109
-
110
- updateDocumentInOpenSCD ( sclDocument ) ;
111
- } ) ;
124
+ fetchScl ( type , docId , version ) ;
112
125
113
126
// Close the Restore Dialog.
114
127
getOpenScdElement ( ) . dispatchEvent ( newWizardEvent ( ) ) ;
0 commit comments