@@ -44,7 +44,9 @@ export class HomeView {
4444 homeViewHTMLElement . innerHTML = "" ;
4545 homeViewHTMLElement . appendChild ( this . render ( ) ) ;
4646
47- this . generateScorecard ( ) ;
47+ if ( window . settings . config . disableExternalRequests === false ) {
48+ this . generateScorecard ( ) ;
49+ }
4850 this . generateHeader ( ) ;
4951 this . generateOverview ( ) ;
5052 this . generatePackagesToWatch ( ) ;
@@ -133,25 +135,25 @@ export class HomeView {
133135 document . getElementById ( "project-links" ) . appendChild ( linksFragment ) ;
134136 }
135137
136- async generateOverview ( ) {
137- const fragment = document . createDocumentFragment ( ) ;
138+ #createOverviewDiv( icon , title , value ) {
139+ const titleDiv = utils . createDOMElement ( "div" , {
140+ className : "title" ,
141+ childs : [
142+ utils . createDOMElement ( "i" , { className : icon } ) ,
143+ utils . createDOMElement ( "p" , { text : title } )
144+ ]
145+ } ) ;
138146
139- function createOverviewDiv ( icon , title , value ) {
140- const titleDiv = utils . createDOMElement ( "div" , {
141- className : "title" ,
142- childs : [
143- utils . createDOMElement ( "i" , { className : icon } ) ,
144- utils . createDOMElement ( "p" , { text : title } )
145- ]
146- } ) ;
147+ return utils . createDOMElement ( "div" , {
148+ childs : [
149+ titleDiv ,
150+ utils . createDOMElement ( "span" , { text : value } )
151+ ]
152+ } ) ;
153+ }
147154
148- return utils . createDOMElement ( "div" , {
149- childs : [
150- titleDiv ,
151- utils . createDOMElement ( "span" , { text : value } )
152- ]
153- } ) ;
154- }
155+ async generateOverview ( ) {
156+ const fragment = document . createDocumentFragment ( ) ;
155157
156158 const { name } = this . secureDataSet . linker . get ( 0 ) ;
157159 let directDependencies = 0 ;
@@ -160,35 +162,27 @@ export class HomeView {
160162 directDependencies ++ ;
161163 }
162164 }
163- fragment . appendChild ( createOverviewDiv (
165+ fragment . appendChild ( this . # createOverviewDiv(
164166 "icon-cubes" , `# ${ window . i18n [ this . lang ] . home . overview . dependencies } ` , this . secureDataSet . dependenciesCount
165167 ) ) ;
166- fragment . appendChild ( createOverviewDiv (
168+ fragment . appendChild ( this . # createOverviewDiv(
167169 "icon-archive" , window . i18n [ this . lang ] . home . overview . totalSize , this . secureDataSet . prettySize
168170 ) ) ;
169- fragment . appendChild ( createOverviewDiv (
171+ fragment . appendChild ( this . # createOverviewDiv(
170172 "icon-link" , `# ${ window . i18n [ this . lang ] . home . overview . directDeps } ` , directDependencies
171173 ) ) ;
172- fragment . appendChild ( createOverviewDiv (
174+ fragment . appendChild ( this . # createOverviewDiv(
173175 "icon-sitemap" , `# ${ window . i18n [ this . lang ] . home . overview . transitiveDeps } ` , this . secureDataSet . indirectDependencies
174176 ) ) ;
175177
176178 const homeOverviewElement = document . querySelector ( ".home--overview" ) ;
177179 homeOverviewElement . appendChild ( fragment ) ;
178180
179- try {
180- const { downloads } = await getJSON ( `/downloads/${ name . replaceAll ( "/" , "%2F" ) } ` ) ;
181-
182- if ( downloads ) {
183- const formattedNumber = new Intl . NumberFormat ( "de-DE" ) . format ( downloads ) ;
184- homeOverviewElement . appendChild ( createOverviewDiv (
185- "icon-chart-bar" , window . i18n [ this . lang ] . home . overview . downloadsLastWeek , formattedNumber
186- ) ) ;
187- }
188- }
189- catch {
190- // DO NOTHING
181+ if ( window . settings . config . disableExternalRequests ) {
182+ return ;
191183 }
184+
185+ this . generateDownloads ( ) ;
192186 }
193187
194188 generatePackagesToWatch ( ) {
@@ -322,6 +316,29 @@ export class HomeView {
322316 . render ( ) ;
323317 }
324318
319+ async generateDownloads ( ) {
320+ const homeOverviewElement = document . querySelector ( ".home--overview" ) ;
321+ const { name } = this . secureDataSet . linker . get ( 0 ) ;
322+
323+ try {
324+ const { downloads } = await getJSON ( `/downloads/${ name . replaceAll ( "/" , "%2F" ) } ` ) ;
325+
326+ if ( downloads ) {
327+ const downloadsElement = document . querySelector ( ".home--overview div:has(i.icon-chart-bar)" ) ;
328+ downloadsElement ?. remove ( ) ;
329+ const formattedNumber = new Intl . NumberFormat ( "de-DE" ) . format ( downloads ) ;
330+ homeOverviewElement . appendChild ( this . #createOverviewDiv(
331+ "icon-chart-bar" ,
332+ window . i18n [ this . lang ] . home . overview . downloadsLastWeek ,
333+ formattedNumber
334+ ) ) ;
335+ }
336+ }
337+ catch {
338+ // DO NOTHING
339+ }
340+ }
341+
325342 handleReport ( ) {
326343 document . querySelector ( ".home--header--report" ) . addEventListener ( "click" , async ( ) => {
327344 window . popup . open (
0 commit comments