@@ -74,13 +74,7 @@ function issueSelectHandler(event, isPopState) {
7474}
7575
7676function getIssueDays ( element ) {
77- // Parse "(Open X days)" from the issue title text
78- var text = element . textContent || '' ;
79- var match = text . match ( / \( O p e n \s + ( \d + ) \s + d a y s ? \) / i) ;
80- if ( match ) {
81- return parseInt ( match [ 1 ] , 10 ) ;
82- }
83- return 0 ;
77+ return parseInt ( element . dataset . daysOpen , 10 ) || 0 ;
8478}
8579
8680function applySorting ( ) {
@@ -125,64 +119,10 @@ function applySorting() {
125119 } ) ;
126120 } ) ;
127121
128- // Also sort the library-level list items by their oldest/newest issue
129- var topList = document . querySelector ( '.open-issues > ul' ) ;
130- if ( topList ) {
131- var libraryItems = Array . from ( topList . querySelectorAll ( ':scope > li' ) ) ;
132-
133- if ( ! topList . dataset . originalOrder ) {
134- topList . dataset . originalOrder = 'stored' ;
135- libraryItems . forEach ( function ( item , index ) {
136- item . dataset . originalIndex = index ;
137- } ) ;
138- }
139-
140- libraryItems . sort ( function ( a , b ) {
141- var issuesA = a . querySelectorAll ( '.issues-list > li' ) ;
142- var issuesB = b . querySelectorAll ( '.issues-list > li' ) ;
143- var maxA = getMaxDays ( issuesA , sortOrder ) ;
144- var maxB = getMaxDays ( issuesB , sortOrder ) ;
145- if ( sortOrder === 'newest' ) {
146- return maxA - maxB ;
147- } else {
148- return maxB - maxA ;
149- }
150- } ) ;
151-
152- libraryItems . forEach ( function ( item ) {
153- topList . appendChild ( item ) ;
154- } ) ;
155- }
156-
157122 setParams ( ) ;
158123}
159124
160- function getMaxDays ( issues , sortOrder ) {
161- var result = sortOrder === 'newest' ? Infinity : 0 ;
162- issues . forEach ( function ( issue ) {
163- var days = getIssueDays ( issue ) ;
164- if ( sortOrder === 'newest' ) {
165- result = Math . min ( result , days ) ;
166- } else {
167- result = Math . max ( result , days ) ;
168- }
169- } ) ;
170- return result === Infinity ? 0 : result ;
171- }
172-
173125function restoreOriginalOrder ( ) {
174- // Restore library-level order
175- var topList = document . querySelector ( '.open-issues > ul' ) ;
176- if ( topList && topList . dataset . originalOrder ) {
177- var libraryItems = Array . from ( topList . querySelectorAll ( ':scope > li' ) ) ;
178- libraryItems . sort ( function ( a , b ) {
179- return ( parseInt ( a . dataset . originalIndex ) || 0 ) - ( parseInt ( b . dataset . originalIndex ) || 0 ) ;
180- } ) ;
181- libraryItems . forEach ( function ( item ) {
182- topList . appendChild ( item ) ;
183- } ) ;
184- }
185-
186126 // Restore issue-level order within each list
187127 var issuesLists = document . querySelectorAll ( '.issues-list' ) ;
188128 issuesLists . forEach ( function ( list ) {
0 commit comments