@@ -56,11 +56,25 @@ TABS.firmware_flasher.initialize = function (callback) {
5656 worker . postMessage ( str ) ;
5757 }
5858
59+ function getReleaseMajor ( releaseName ) {
60+ // "name":"inav-9.0.0-dev-20250124-28-d1ef85e82d8aa5bb8b85e518893c8e4f6ab61d6e"
61+ var releaseNameExpression = / ^ i n a v - ( \d + ) ( [ \d . ] + ) - ( c i | d e v ) - ( \d { 4 } ) ( \d { 2 } ) ( \d { 2 } ) - ( \d + ) - ( \w + ) $ / ;
62+ var match = releaseNameExpression . exec ( releaseName ) ;
63+
64+ if ( ! match ) {
65+ console . log ( releaseName + " not matched" ) ;
66+ //alert(releaseName);
67+ return 0 ;
68+ }
69+
70+ return match [ 1 ] ;
71+ }
72+
5973 function parseDevFilename ( filename ) {
6074 //var targetFromFilenameExpression = /inav_([\d.]+)?_?([^.]+)\.(.*)/;
6175 // inav_8.0.0_TUNERCF405_dev-20240617-88fb1d0.hex
6276 // inav_8.0.0_TUNERCF405_ci-20240617-88fb1d0.hex
63- var targetFromFilenameExpression = / ^ i n a v _ ( [ \d . ] + ) _ ( [ A - Z 0 - 9 _ ] + ) _ ( c i | d e v ) - ( \d { 4 } ) ( \d { 2 } ) ( \d { 2 } ) - ( \w + ) \. ( h e x ) $ / ;
77+ var targetFromFilenameExpression = / ^ i n a v _ ( \d + ) ( [ \d . ] + ) _ ( [ A - Z a - z 0 - 9 _ ] + ) _ ( c i | d e v ) - ( \d { 4 } ) ( \d { 2 } ) ( \d { 2 } ) - ( \w + ) \. ( h e x ) $ / ;
6478 var match = targetFromFilenameExpression . exec ( filename ) ;
6579
6680 if ( ! match ) {
@@ -69,9 +83,11 @@ TABS.firmware_flasher.initialize = function (callback) {
6983 }
7084
7185 return {
72- raw_target : match [ 2 ] ,
73- target : match [ 2 ] . replace ( "_" , " " ) ,
74- format : match [ 8 ] ,
86+ raw_target : match [ 3 ] ,
87+ target : match [ 3 ] . replace ( "_" , " " ) ,
88+ format : match [ 9 ] ,
89+ version : match [ 1 ] + match [ 2 ] ,
90+ major : match [ 1 ]
7591 } ;
7692 }
7793
@@ -151,14 +167,12 @@ TABS.firmware_flasher.initialize = function (callback) {
151167 } ) ;
152168
153169 if ( showDevReleases ) {
170+ var majorCount = { } ;
154171 TABS . firmware_flasher . devReleasesData . forEach ( function ( release ) {
155172 release . assets . forEach ( function ( asset ) {
156173 var result = parseDevFilename ( asset . name ) ;
157174
158- if ( ( ! showDevReleases && release . prerelease ) || ! result ) {
159- return ;
160- }
161- if ( $ . inArray ( result . target , unsortedTargets ) == - 1 ) {
175+ if ( result && $ . inArray ( result . target , unsortedTargets ) == - 1 ) {
162176 unsortedTargets . push ( result . target ) ;
163177 }
164178 } ) ;
@@ -212,8 +226,20 @@ TABS.firmware_flasher.initialize = function (callback) {
212226 } ) ;
213227 } ) ;
214228
215- if ( showDevReleases ) {
229+ if ( showDevReleases && TABS . firmware_flasher . devReleasesData ) {
230+ var majorCount = { } ;
216231 TABS . firmware_flasher . devReleasesData . forEach ( function ( release ) {
232+ var major = getReleaseMajor ( release . name ) ;
233+
234+ if ( ! ( major in majorCount ) ) {
235+ majorCount [ major ] = 0 ;
236+ }
237+
238+ if ( majorCount [ major ] >= 10 ) {
239+ return ;
240+ }
241+
242+ majorCount [ major ] ++ ;
217243
218244 var versionFromTagExpression = / v ? ( .* ) / ;
219245 var matchVersionFromTag = versionFromTagExpression . exec ( release . tag_name ) ;
@@ -278,7 +304,7 @@ TABS.firmware_flasher.initialize = function (callback) {
278304 return ;
279305 } ;
280306
281- $ . get ( 'https://api.github.com/repos/iNavFlight/inav-nightly/releases?per_page=10 ' , function ( releasesData ) {
307+ $ . get ( 'https://api.github.com/repos/iNavFlight/inav-nightly/releases?per_page=50 ' , function ( releasesData ) {
282308 TABS . firmware_flasher . devReleasesData = releasesData ;
283309 } ) . fail ( function ( data ) {
284310 TABS . firmware_flasher . devReleasesData = { } ;
0 commit comments