@@ -34,10 +34,14 @@ filenames.forEach((filename) => {
3434 id : filename . substring ( 0 , filename . length - 3 ) ,
3535 adrId : components [ 1 ] ,
3636 version : components [ 2 ] ,
37+ status : { } ,
3738 }
38- obj . isStable = obj . stabilized_at !== undefined && obj . stabilized_at <= today
39- obj . isObsolete = obj . obsoleted_at !== undefined && obj . obsoleted_at <= today
40- obj . isEffective = obj . isStable && ! obj . isObsolete
39+ // now calculate the properties for the columns (plus stable0 as a helper)
40+ obj . status . draft = obj . stabilized_at === undefined
41+ obj . status . stable0 = ! obj . status . draft && obj . stabilized_at <= today
42+ obj . status . deprecated = obj . obsoleted_at !== undefined && obj . obsoleted_at < today
43+ obj . status . stable = ! obj . status . draft && ! obj . status . stable0 && ! obj . status . deprecated
44+ obj . status . effective = obj . status . stable0 && ! obj . status . deprecated
4145 var track = obj . track
4246 if ( track === undefined ) return
4347 if ( tracks [ track ] === undefined ) tracks [ track ] = { }
@@ -100,12 +104,8 @@ ${headerLegend}
100104 tlines . push ( '| --------- | ------------ | ----- | ------- | --------- | ----------- |' )
101105 Object . entries ( trackEntry [ 1 ] ) . forEach ( ( standardEntry ) => {
102106 var versions = standardEntry [ 1 ] . versions
103- // unfortunately, some standards are obsolete without being stable
104- var draftVersions = versions . filter ( ( v ) => v . stabilized_at === undefined && v . obsoleted_at === undefined )
105- var stableVersions = versions . filter ( ( v ) => v . stabilized_at !== undefined && ! v . isEffective )
106- var effectiveVersions = versions . filter ( ( v ) => v . isEffective )
107- var deprecatedVersions = versions . filter ( ( v ) => v . isObsolete )
108107 var ref = versions [ versions . length - 1 ]
108+ var effectiveVersions = versions . filter ( ( v ) => v . status . effective )
109109 if ( effectiveVersions . length ) {
110110 ref = effectiveVersions [ effectiveVersions . length - 1 ]
111111 }
@@ -130,7 +130,9 @@ ${headerLegend}
130130 slines . push ( '| Version | Type | State | stabilized | obsoleted |' )
131131 slines . push ( '| -------- | ----- | ------- | ---------- | --------- |' )
132132 var link = `[scs-${ adrId } ](/standards/${ track . toLowerCase ( ) } /scs-${ adrId } )`
133- var versionList = `${ mkLinkList ( draftVersions ) || '-' } | ${ mkLinkList ( stableVersions ) || '-' } | ${ mkLinkList ( effectiveVersions ) || '-' } | ${ mkLinkList ( deprecatedVersions ) || '-' } `
133+ var versionList = [ 'draft' , 'stable' , 'effective' , 'deprecated' ] . map (
134+ ( column ) => mkLinkList ( versions . filter ( ( v ) => v . status [ column ] ) ) || '-'
135+ ) . join ( ' | ' )
134136 lines . push ( `| ${ link } | ${ track } | ${ ref . title } | ${ versionList } |` )
135137 tlines . push ( `| ${ link } | ${ ref . title } | ${ versionList } |` )
136138 standardEntry [ 1 ] . versions . forEach ( ( obj ) => {
0 commit comments