diff --git a/assets/profile.css b/assets/profile.css index 0454ec0..c59cc73 100644 --- a/assets/profile.css +++ b/assets/profile.css @@ -16,8 +16,8 @@ .circle-progress { float: left; position: relative; - width: 7rem; - height: 7rem; + width: 6rem; + height: 6rem; } .circle-progress .tooltiptext { @@ -58,7 +58,7 @@ svg { } .language { - padding-top: 2.5rem; + padding-top: 2rem; margin: auto; text-align: center; } diff --git a/assets/profile.html.eex b/assets/profile.html.eex index cfba4a5..0570dd5 100644 --- a/assets/profile.html.eex +++ b/assets/profile.html.eex @@ -1,4 +1,4 @@ - +

${profile.user} Level ${profile.level} (${profile.total_xp} XP) <% if( profile.new_xp > 0 ) { %> ( @@ -62,5 +62,3 @@ <% } %> - - \ No newline at end of file diff --git a/src/profile-provider.ts b/src/profile-provider.ts index 22eda66..c3c7260 100644 --- a/src/profile-provider.ts +++ b/src/profile-provider.ts @@ -50,33 +50,32 @@ export class ProfileProvider implements TextDocumentContentProvider { return [ xpP, nxpP ]; } - function getSortedArray(profile: any, obj: string): any[] { + function getSortedArray(obj: any): any[] { - let langs = []; - let languages_object = profile[obj] - for( let lang in languages_object) { - let percents = getLevelProgress(languages_object[lang].xps, languages_object[lang].new_xps); - langs.push( + let items = []; + + for( let prop in obj) { + let item = obj[prop]; + let percents = getLevelProgress(item.xps, item.new_xps); + items.push( { - name: lang, - level: getLevel(languages_object[lang].xps), - xp: languages_object[lang].xps, - new_xp: languages_object[lang].new_xps, + name: prop, + level: getLevel(item.xps), + xp: item.xps, + new_xp: item.new_xps, progress: percents[0], new_progress: percents[1] } ); } - langs = langs.sort( (a,b) => {return b.xp - a.xp;}); - return langs; + return items.sort( (a,b) => {return b.xp - a.xp;}); } return this.api.getProfile().then(profile => { let htmlTemplate = fs.readFileSync(this.context.asAbsolutePath("assets/profile.html.eex")); - - profile["style"] = this.context.asAbsolutePath("assets/profile.css"); + profile["level"] = getLevel(profile["total_xp"]); let percents = getLevelProgress(profile["total_xp"], profile["new_xp"]); @@ -84,15 +83,12 @@ export class ProfileProvider implements TextDocumentContentProvider { profile["progress"] = percents[0]; profile["new_progress"] = percents[1]; - let langs = getSortedArray(profile, "languages"); - - let machines = getSortedArray(profile, "machines"); - - - + let languages = getSortedArray(profile["languages"]); + let machines = getSortedArray(profile["machines"]); + let html = template(htmlTemplate); - return html({profile: profile, languages: langs, machines: machines}); + return html({profile: profile, languages: languages, machines: machines, style: this.context.asAbsolutePath("assets/profile.css")}); }); }