@@ -992,6 +992,17 @@ $style.addAll({
992992 }
993993} )
994994class Tools {
995+ static _NUMBER_UNITS = {
996+ "" : 1 ,
997+ "K" : 1e3 ,
998+ "M" : 1e3 ,
999+ "B" : 1e3 ,
1000+ "T" : 1e3 ,
1001+ "P" : 1e3 ,
1002+ "E" : 1e3 ,
1003+ "Z" : 1e3 ,
1004+ "Y" : 1e3 ,
1005+ }
9951006 static formatTime ( seconds ) {
9961007 if ( seconds < 0 || seconds == null ) return $i18n . t ( "format.count_time.days" , {
9971008 day : "--" ,
@@ -1027,6 +1038,8 @@ class Tools {
10271038 value_i18n : "" ,
10281039 title_variable : ( ) => { } ,
10291040 value_variable : ( ) => { } ,
1041+ aria_label_value : ( ) => { } ,
1042+ aria_label_title : ( ) => { } ,
10301043 i18n : { }
10311044 } ) {
10321045 var i18n = params . i18n || { } ;
@@ -1039,17 +1052,28 @@ class Tools {
10391052 "value"
10401053 ] ) {
10411054 label [ key ] . i18n ( params [ key + "_i18n" ] )
1055+ var title = ref ( { } , {
1056+ handler : ( args ) => {
1057+ console . log ( args )
1058+ label [ key ] . aria_label ( args . object . value )
1059+ }
1060+ } )
10421061 var obj = ref ( { } , {
10431062 handler : ( args ) => {
10441063 label [ key ] . t18n ( args . object )
10451064 }
10461065 } )
1047- var handler = params [ key + "_variable" ]
1048- if ( ! handler ) continue ;
1049- try {
1050- handler ( obj )
1051- } catch ( e ) {
1052- console . error ( e )
1066+ var handlers = [
1067+ [ params [ key + "_variable" ] , obj ] ,
1068+ [ params [ "aria_label_" + key ] , title ] ,
1069+ ]
1070+ for ( let [ handler , o ] of handlers ) {
1071+ if ( ! handler ) continue ;
1072+ try {
1073+ handler ( o )
1074+ } catch ( e ) {
1075+ console . error ( e )
1076+ }
10531077 }
10541078 }
10551079 } )
@@ -1100,6 +1124,18 @@ class Tools {
11001124 // convert number to belike: 100,000, if 100000.0, we are 100,000.0
11011125 return number . toString ( ) . replace ( / \B (? = ( \d { 3 } ) + (? ! \d ) ) / g, ", " )
11021126 }
1127+ static formatUnitNumber ( number ) {
1128+ var i = 0
1129+ for ( const [ u , un ] of Object . entries ( Tools . _NUMBER_UNITS ) . slice ( 1 ) ) {
1130+ if ( number / un < 1 ) {
1131+ break
1132+ }
1133+ number /= un
1134+ i += 1
1135+ }
1136+ let unit = Object . keys ( Tools . _NUMBER_UNITS ) [ i ]
1137+ return `${ number . toFixed ( unit . length != 0 ? ( number % 1 == 0 ? 0 : 1 ) : 2 ) } ${ unit } `
1138+ }
11031139 static _BYTES = {
11041140 "iB" : 1 ,
11051141 "KiB" : 1024 ,
@@ -1141,7 +1177,6 @@ class UserAuth {
11411177 } )
11421178 }
11431179}
1144-
11451180const $userAuth = new UserAuth ( ) ;
11461181
11471182async function load ( ) {
@@ -1334,6 +1369,9 @@ async function load() {
13341369 value_variable : ( obj ) => {
13351370 $dashboard_locals . files_info_today_hits = obj ;
13361371 } ,
1372+ aria_label_value : ( obj ) => {
1373+ $dashboard_locals . files_info_today_hits_label = obj ;
1374+ } ,
13371375 i18n : {
13381376 "zh_CN" : {
13391377 "dashboard.title.today.hits" : "今日下载数" ,
@@ -1360,6 +1398,9 @@ async function load() {
13601398 value_variable : ( obj ) => {
13611399 $dashboard_locals . files_info_30days_hits = obj ;
13621400 } ,
1401+ aria_label_value : ( obj ) => {
1402+ $dashboard_locals . files_info_30days_hits_label = obj ;
1403+ } ,
13631404 i18n : {
13641405 "zh_CN" : {
13651406 "dashboard.title.30days.hits" : "30 天下载数" ,
@@ -1920,28 +1961,32 @@ async function load() {
19201961 handler, obj, data
19211962 } of [
19221963 {
1923- handler : Tools . formatSimpleNumber ,
1924- obj : $dashboard_locals . files_info_today_hits ,
1964+ handler : Tools . formatUnitNumber ,
1965+ obj : 'today_hits' ,
19251966 data : rdata . hourly_hits
19261967 } ,
19271968 {
1928- handler : Tools . formatSimpleNumber ,
1929- obj : $dashboard_locals . files_info_30days_hits ,
1969+ handler : Tools . formatUnitNumber ,
1970+ obj : '30days_hits' ,
19301971 data : rdata . daily_hits
19311972 } ,
19321973 {
19331974 handler : Tools . formatBytes ,
1934- obj : $dashboard_locals . files_info_today_bytes ,
1975+ obj : 'today_bytes' ,
19351976 data : rdata . hourly_bytes
19361977 } ,
19371978 {
19381979 handler : Tools . formatBytes ,
1939- obj : $dashboard_locals . files_info_30days_bytes ,
1980+ obj : '30days_bytes' ,
19401981 data : rdata . daily_bytes
19411982 }
19421983 ] ) {
19431984 var formatted = handler ( data )
1944- obj . value = formatted
1985+ var o = $dashboard_locals [ `files_info_${ obj } ` ]
1986+ var label = $dashboard_locals [ `files_info_${ obj } _label` ]
1987+ o . value = formatted
1988+ if ( label == undefined ) continue
1989+ label . value = data
19451990 }
19461991 } ) ( ) ;
19471992 for ( const [ statistics_type , data ] of Object . entries ( temp_response ) ) {
0 commit comments