@@ -111,34 +111,34 @@ function _renderIssue(issue) {
111111}
112112
113113function _renderSubject ( issue ) {
114- const { type } = issue ;
114+ const { type, url } = issue ;
115115 const subjectEl = document . createElement ( "span" ) ;
116116
117117 switch ( type ) {
118118 case WebCompat . ISSUE_TYPE . CSS_PROPERTY : {
119119 subjectEl . append (
120- _renderTerm ( issue . property , [ "property" , "issue" ] )
120+ _renderTerm ( issue . property , [ "property" , "issue" ] , url )
121121 ) ;
122122 break ;
123123 }
124124 case WebCompat . ISSUE_TYPE . CSS_PROPERTY_ALIASES : {
125125 subjectEl . append (
126- _renderTerms ( issue . aliases , [ "property" , "alias" , "issue" ] ) ,
126+ _renderTerms ( issue . aliases , [ "property" , "alias" , "issue" ] , url ) ,
127127 _renderTerm ( ` ${ issue . aliases . length === 1 ? "alias" : "aliases" } ` )
128128 ) ;
129129 break ;
130130 }
131131 case WebCompat . ISSUE_TYPE . CSS_VALUE : {
132132 subjectEl . append (
133133 _renderTerm ( `${ issue . property } : ` ) ,
134- _renderTerm ( issue . value , [ "value" , "issue" ] )
134+ _renderTerm ( issue . value , [ "value" , "issue" ] , url )
135135 ) ;
136136 break ;
137137 }
138138 case WebCompat . ISSUE_TYPE . CSS_VALUE_ALIASES : {
139139 subjectEl . append (
140140 _renderTerm ( `${ issue . property } : ` ) ,
141- _renderTerms ( issue . aliases , [ "value" , "alias" , "issue" ] ) ,
141+ _renderTerms ( issue . aliases , [ "value" , "alias" , "issue" ] , url ) ,
142142 _renderTerm ( ` ${ issue . aliases . length === 1 ? "alias" : "aliases" } ` )
143143 ) ;
144144 break ;
@@ -147,14 +147,14 @@ function _renderSubject(issue) {
147147 subjectEl . append (
148148 _renderTerm ( issue . element . toLowerCase ( ) , [ "element" ] ) ,
149149 _renderTerm ( " " ) ,
150- _renderTerm ( issue . attribute . toLowerCase ( ) , [ "attribute" , "issue" ] ) ,
150+ _renderTerm ( issue . attribute . toLowerCase ( ) , [ "attribute" , "issue" ] , url ) ,
151151 _renderTerm ( " attribute" ) ,
152152 ) ;
153153 break ;
154154 }
155155 case WebCompat . ISSUE_TYPE . HTML_ELEMENT : {
156156 subjectEl . append (
157- _renderTerm ( issue . element . toLowerCase ( ) , [ "element" , "issue" ] )
157+ _renderTerm ( issue . element . toLowerCase ( ) , [ "element" , "issue" ] , url )
158158 ) ;
159159 break ;
160160 }
@@ -251,21 +251,28 @@ function _renderBrowsersElement(browsers) {
251251 return browsersEl ;
252252}
253253
254- function _renderTerms ( terms , classes ) {
254+ function _renderTerms ( terms , classes , url ) {
255255 const containerEl = document . createElement ( "span" ) ;
256256
257257 for ( const term of terms ) {
258- const termEl = _renderTerm ( term , classes ) ;
258+ const termEl = _renderTerm ( term , classes , url ) ;
259259 containerEl . appendChild ( termEl ) ;
260260 }
261261
262262 return containerEl ;
263263}
264264
265- function _renderTerm ( text , classes = [ ] ) {
266- const termEl = document . createElement ( "span" ) ;
265+ function _renderTerm ( text , classes = [ ] , url = null ) {
266+ const tagName = url ? "a" : "span" ;
267+ const termEl = document . createElement ( tagName ) ;
267268 termEl . classList . add ( ...classes ) ;
268269 termEl . textContent = text ;
270+
271+ if ( url ) {
272+ termEl . href = url ;
273+ termEl . title = url ;
274+ }
275+
269276 return termEl ;
270277}
271278
0 commit comments