From 36bfcf7db3d327e8b14ac7a4125d37ac6869085d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bjo=CC=88rn=20Dahlgren?= Date: Mon, 28 Jul 2014 19:46:01 +0200 Subject: [PATCH] Show PWS icon on mods installed from PWS --- package.json | 1 + public/images/playwithsix.png | Bin 0 -> 2167 bytes public/js/tpl/mods/list_item.html | 6 +++++- routes/mods.js | 21 ++++++++++++++++++--- 4 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 public/images/playwithsix.png diff --git a/package.json b/package.json index 9322ed4..7cfe4da 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "start": "node app.js" }, "dependencies": { + "async": "^0.9.0", "express": "3.x", "slug": "~0.4.0", "express-resource": "~1.0.0", diff --git a/public/images/playwithsix.png b/public/images/playwithsix.png new file mode 100644 index 0000000000000000000000000000000000000000..21784b586cc7675eea09f3d207f6c70595dc629f GIT binary patch literal 2167 zcmV--2#EKIP)$L) zM`2~>$U4R}vGmMu*;A`cHG5$G6J&=&eIK>+1)wf#Xq-1UQMTb4oQqB`nR;8uro;D+nC{q>!k z8O^quJn+v8Y>jks!O?pDq&@ahC+ek+7o)iF0L@dbh!_vha<)IJGf74zF#R#+1d;{u z=c%;%J8L?8<#w~5H|*DAC*kEcOk6Znzt>sjRUla~Wf5~mvu{)axq^KpgafW;j(!Cf z$`kR?*ZY%(lnah!P5|UCkM4yLxO(dsoNlvSY9+>|G*@C3gZ?xmhjqsyyLON~72XnAx7X+6RYzv??0OddRK1W536 z5R^<@NJRi>dHa1ju82U}Y9{#sD=NyGqWFYQ!jk#bcH9en|Asw>t8G7)GG#gXtbEb5 z!S%KN0V}@nZ6?)B;Oqr{5mA^1Uo&#^s+cl2x`3^JE@p5E0&U$W4Mg#v2!6iW76CZ1 zdH3P@s7;9kra#6UDVZC8UT#)@@0m*OD+E5uMQaX`0YBY9vB>*nt{-U1m>%MR!))&INE{YstW%ve}umg8L+9+N2&3YU1jnA4(YSNpT;J zdJx$0kbvXZ!)on3$kqdXbo90N&z<%~?sM|Rglf|TGVtg;wbQameB)vxVVf@@fiU&j zWa1cjbS}8(KqO?Ye1WZ=)1RC90^{%WKDjE{WjxLF1+wEESL=w#+v;-5AK={oAyE9c@r-IfrR2&z_Pk7e?U!M zTNr-O4^JI}VjAka$Of(=^=Z~Pz56*N1YL%4!)fhO9=0DeJ3Ee2o^5~?Up4UnkV4h^ zUWASH%?ojb z5cPtO8aZ8bFFf=mm=Rm7^Z|MLB~yPv)8`0wcmIsHDg*#-yNOl6fa}@McDhf&fup9f zP}**Wg|pPewS+rP2AoF7Ho~Um7JN7)_a1{+|6<~00Yhp~23n_5Dd;N%e)klEDUS_F zCvO0oUsT2?)idiCLt_Jp<)n8le7_x<8>*|f{&5`W*qf}sARy(jVQ&YOyk;D1jeU^! zfXTKOl%-nK9)G~DAP7`ONy_b@$on=I0e$CS?&ILsCwA}cd!A|f17i(ruIC%Jo>HpN zcyd3SIcI-+sibmx(&FX1_V5d3-45{b*kcfA%9yqp1Wxbfh%K$^Yt0XL$5Az^q2acL zFI;)SPU83p=zez?x13}MLD#8gIWj5%fC*!wOarO%dMJlqgQKx+qi%E#*(k z7W+YO;w7la7LhC zY=M%9CIDSr)PY%$;GxEPyKY@ZCD8kGjyQq?@#h(Rl35n6ay|INr_w_vjF463CCllx z5FF^423K%PdFzcl1N5c~;8=oM2z7TB zxKM01aVek(Ani(}10_|)_uevvXKJ;prd!HT#xJAY>t|=ujg6F$Yf@*Z_8-6}q t!HX;%=|(0lS480dQLg&`mAL8&{0Bq~z>hqr*Q@{l002ovPDHLkV1oZoFkJuu literal 0 HcmV?d00001 diff --git a/public/js/tpl/mods/list_item.html b/public/js/tpl/mods/list_item.html index ef8a63b..6da8f12 100644 --- a/public/js/tpl/mods/list_item.html +++ b/public/js/tpl/mods/list_item.html @@ -1,9 +1,13 @@ <%-name%> + + <% if (playWithSix) { %> + + <% } %> <% if (outdated) { %> - + Update diff --git a/routes/mods.js b/routes/mods.js index 14c0898..7e67117 100644 --- a/routes/mods.js +++ b/routes/mods.js @@ -1,5 +1,6 @@ var fs = require('fs') , path = require('path') +, async = require('async') , playwithsix = require('playwithsix') , when = require('when') , nodefn = require('when/node/function'); @@ -47,6 +48,15 @@ function walk (directory) { }); }; +function isPlayWithSixMod(modPath, cb) { + var pwsFile = path.join(modPath, '.repository.yml'); + fs.exists(pwsFile, function (exists) { + if (cb) { + cb(exists); + } + }); +}; + exports.index = function(req, res){ fs.readdir(config.path, function (err, files) { if (err) { @@ -57,9 +67,14 @@ exports.index = function(req, res){ }); playwithsix.checkOutdated(config.path, function (err, outdatedMods) { - res.send(mods.map(function (mod) { - return { name: mod, outdated: outdatedMods.indexOf(mod) >= 0 }; - })); + async.map(mods, function (mod, cb) { + var modPath = path.join(config.path, mod); + isPlayWithSixMod(modPath, function (isPlayWithSixMod) { + cb(null, { name: mod, outdated: outdatedMods.indexOf(mod) >= 0, playWithSix: isPlayWithSixMod }); + }); + }, function (err, mods) { + res.send(mods); + }); }); } });