From 16fa660e35453afc147aed501bcc4048083764d6 Mon Sep 17 00:00:00 2001 From: French Ben Date: Wed, 4 Nov 2015 17:40:11 -0800 Subject: [PATCH] Added pull count to images - Fixes #1175 Signed-off-by: French Ben --- CONTRIBUTING.md | 4 +-- Gruntfile.js | 47 +++++------------------------- fonts/kitematic.eot | Bin 6108 -> 6468 bytes fonts/kitematic.svg | 43 ++++++++++++++------------- fonts/kitematic.ttf | Bin 5936 -> 6296 bytes fonts/kitematic.woff | Bin 4532 -> 4832 bytes package.json | 1 + src/components/ImageCard.react.js | 7 ++++- src/utils/RegHubUtil.js | 5 ++-- styles/icons.less | 7 +++-- styles/new-container.less | 18 +++++++++--- 11 files changed, 61 insertions(+), 71 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cd8ec49c3b..21febb49bd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,7 +20,8 @@ Before you file an issue or a pull request, read the following tips on how to ke ### Prerequisites for developing Kitematic on Mac You will need to install: - The [Docker Toolbox](https://docker.com/toolbox) -- [Node.js](https://nodejs.org/) +- [Node.js](https://nodejs.org/) +- Wine `brew install wine` (only if you want to generate a Windows release on OS X) - The latest Xcode from the Apple App Store. ### Prerequisites for developing Kitematic on Windows @@ -30,7 +31,6 @@ You will need to install: - Open a command prompt (`cmd`) and run the command `mkdir ~/AppData/Roaming/npm` - [Visual Studio 2013 Community](https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx) (or similar) - You do not need to install any optional packages during install. - [Python](https://www.python.org/downloads/release/python-2710/) -- [Temporary] Set the `DOCKER_TOOLBOX_INSTALL_PATH` environment variable as follows: ![Toolbox Env Var](https://cloud.githubusercontent.com/assets/251292/10656552/adaedb20-7834-11e5-8881-d5402d3fee37.png) diff --git a/Gruntfile.js b/Gruntfile.js index eba8dbb4b7..ee2afeadc6 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -20,25 +20,14 @@ module.exports = function (grunt) { }; var BASENAME = 'Kitematic'; - var APPNAME = BASENAME; - - if (alpha) { - APPNAME += ' (Alpha)'; - } else if (beta) { - APPNAME += ' (Beta)'; - } - + var OSX_APPNAME = BASENAME + ' (Beta)'; + var WINDOWS_APPNAME = BASENAME + ' (Alpha)'; var OSX_OUT = './dist'; - var OSX_OUT_X64 = OSX_OUT + '/' + APPNAME + '-darwin-x64'; - var OSX_FILENAME = OSX_OUT_X64 + '/' + APPNAME + '.app'; + var OSX_OUT_X64 = OSX_OUT + '/' + OSX_APPNAME + '-darwin-x64'; + var OSX_FILENAME = OSX_OUT_X64 + '/' + OSX_APPNAME + '.app'; grunt.initConfig({ IDENTITY: 'Developer ID Application: Docker Inc', - APPNAME: APPNAME, - APPNAME_ESCAPED: APPNAME.replace(/ /g, '\\ ').replace(/\(/g,'\\(').replace(/\)/g,'\\)'), - OSX_OUT: OSX_OUT, - OSX_OUT_ESCAPED: OSX_OUT.replace(/ /g, '\\ ').replace(/\(/g,'\\(').replace(/\)/g,'\\)'), - OSX_OUT_X64: OSX_OUT_X64, OSX_FILENAME: OSX_FILENAME, OSX_FILENAME_ESCAPED: OSX_FILENAME.replace(/ /g, '\\ ').replace(/\(/g,'\\(').replace(/\)/g,'\\)'), @@ -58,7 +47,7 @@ module.exports = function (grunt) { }, osx: { options: { - name: APPNAME, + name: OSX_APPNAME, dir: 'build/', out: 'dist', version: packagejson['electron-version'], @@ -85,8 +74,8 @@ module.exports = function (grunt) { 'version-string': { 'CompanyName': 'Docker', 'ProductVersion': packagejson.version, - 'ProductName': APPNAME, - 'FileDescription': APPNAME, + 'ProductName': WINDOWS_APPNAME, + 'FileDescription': WINDOWS_APPNAME, 'InternalName': BASENAME + '.exe', 'OriginalFilename': BASENAME + '.exe', 'LegalCopyright': 'Copyright 2015 Docker Inc. All rights reserved.' @@ -95,21 +84,6 @@ module.exports = function (grunt) { } }, - 'create-windows-installer': { - config: { - appDirectory: path.join(__dirname, 'dist/' + BASENAME + '-win32-x64'), - outputDirectory: path.join(__dirname, 'dist'), - authors: 'Docker Inc.', - loadingGif: 'util/loading.gif', - setupIcon: 'util/setup.ico', - iconUrl: 'https://raw.githubusercontent.com/kitematic/kitematic/master/util/kitematic.ico', - description: APPNAME, - title: APPNAME, - exe: BASENAME + '.exe', - version: packagejson.version - } - }, - // images copy: { dev: { @@ -269,12 +243,7 @@ module.exports = function (grunt) { }); grunt.registerTask('default', ['newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); - - if (process.platform === 'win32') { - grunt.registerTask('release', ['clean:release', 'babel', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'compress']); - } else { - grunt.registerTask('release', ['clean:release', 'babel', 'less', 'copy:dev', 'electron:osx', 'copy:osx', 'shell:sign', 'shell:zip']); - } + grunt.registerTask('release', ['clean:release', 'babel', 'less', 'copy:dev', 'electron', 'copy:osx', 'shell:sign', 'shell:zip', 'copy:windows', 'rcedit:exes', 'compress']); process.on('SIGINT', function () { grunt.task.run(['shell:electron:kill']); diff --git a/fonts/kitematic.eot b/fonts/kitematic.eot index 3bccd0f7fc486bd5536a93d433d0d70e90b60a83..5f57382eedc751d20afb2ad52a570e0625d4d692 100644 GIT binary patch delta 1352 zcmYk6e`s4(6vxlG@4fr(%a51$l9!}i+pJw6*$+ZVO_R~OrrNF|Ogpe_Lki<9xoJbw zBuipeVOafBP;}h=vA_0*n@kbhMhA9dAj(itspvn#7;}FN5$r!sHyn!dzHWjSF6Vvk z`P_TYd7OK04c{1{)4c#^dQQ>2N)JE0cxv)w`8e!~0rZ>%fd1#E_s_r#P^sso9-Mt? zcx3jk`Rf39MCwDOWw&|c#_X?BZ_3$SaNEsCk3f<9obHFX(asl86cPjaxm2m+<;*kubTU^JC(hK** zCVseo*rU9-w`Tv=c>qnRJiZ@P@baP3qPG{i-f42UPpn6&;x-uy_CNrFU_uBiu*E;5 ztM>$gX2`O|8_HW^Qeh&fI`Id}q_Uw7YL@o39@byf|6nuhib2=*s_TR>W9=UOkSIMc zBF-8yLX+Z(v0HgSQ2b=1dSAb$;3rdsw0kIT+xbIox-d1CGmPArNcdhLR29ppnuLWsc7aTSR| zL_0LQ-7i!0>vm*hDx@87cm1qG*h(@%(i*pm+m@5|b5YbU*ijPQ+P@;xK$38#_ zLlPk33;TeAGA1Yd4OYdS@O-o|frWfJl}_nYr?GhKejIzLn2Q`lDn5uTq9P*B=h_~~ zLs8sxQoZp6iAzkMAca)gBzh6IOiUNsqUnSoe-~91ylf@+1e|DKPtv*&3HB*EBRk$1 z5=Wzbt5(s{$TUii}#Ozb3L55Bb=}Dhr$|@NK1;3ZYvP}j6u!9a@ zA)VTxQ)fHIikQzy5yJRrE;SMxK*w7ei8&#BDxJ#ZMerJm}YcAK%xgRH~(_Tl1A0r6qY!saEwr`Q$6Sq`o3A4>p>-p5ZGU-m1Gbm6xj>R&JcA q*BY+Zb7Z=*(8<<&H$hy8o9P}YROxu!OS~rz-|l4bclU07OgGuEtEEY^oAho8Wj7`1Pi)#GHO5wg<(iEx zYtn3uEfphq@JR_`93Lu$RuGXC3)WQIhk_7FeNe0gtsvD0@j4||S zwq^(Z9=!&Dhe#h8oAk@M#}3bt{tHR@s6Sm^Uk6V3yW}^HPQ3J7R{LRfRUlXnpH#_N{F2gvil7BntiR1p{`1P9nR{&1M zcCI`%{UV>`LCSN6{09MPCYhPLec?!G#|i`)831mb+miinrE>v8RzVs-ZgmY?c^p>M zU0mp+#AL5X!$vHC5@{7|0|+>NL&HE>LZO{Y+}=mB4qlWf`_n@;YgK^(zdFFU|N-dTw~flh2eZ<3>OMA#3V|C2N>a)&a|+4HQcYG!B~*1 zZ^QkJ3Dr{b1x~0xYDVK;&g;ly&P%7#DXB|6=EhcBj7#N51_fh?>f^{UPKi~$v!t~_ z2kcNkIjOpABf5>uCAiF`(z1Z5w8dmhwlUQdO^-3okxHivj+aVKwDduwx}HmeHN7E% zmS7eSB=K_H+H2qN-w;34#Ly6935{2op`9U(y{91~ek7&~UA$R}I;G)=RnK*kH7hM( z37HIVYjH59q0G=@w}Pie-ABz#d#l%)ZO?2|H{FD~=oT|^sy|YP_QGE1gU4YX^uvA_ xfI%3BCt-wM - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/fonts/kitematic.ttf b/fonts/kitematic.ttf index 72bb395c5a4e9bf36fe62a5bc9ad85a201eda2b8..99254250b0823d49ee40698c2ecd4ac3b171e042 100644 GIT binary patch delta 1372 zcmYLJU5pb|6h7z9e}ASk?X=zBvTRMuPnNYyw@Y?m7hSB;pbHU&DA5eOx93W<~4IrqEg?|vue z-1A#bW;%cX5QJkO!Jd46-*bmyV+^3@O*$QTde>8V$b(AwAmO387e>eC?jO7YfCmV_ zR9JKy2fmoQMR<+Y(!AShJa|Bnpl2WH_4(=>rHdEx7XYM_0O3HHyG7-fYr9DI6Rlji z%sZ}}VKO;8bnsYtvAwL`fIh1yU2;V5+`awkYoYD8!OzGI;9GY#`B1XiV-eW zPCVNg?W&1@M*;@A{s0X^UYQ0!29KCZ62S|#M0CB+eIz|AVng;Z2t$PS3R!EQg8>fs zzzJ2lZ7ie@jKE^>4rR{Sjv}L zSbJXkThHqk4Rz&hX_YbESjnqrS$_|VQ4NRFTjcR3_q%x76#&Pj$u*Db?FPevCWD*nC%(-=bs)Qf!;%~4Yif{@}!^dzAR^SHw2*1N0 zVq0iQoDU_@5#NQ9Y#oYwp(hwK#CGc$Oo-#wpcnCsm0)sMT(@?sOh*=AqR-wfA*CqW zUtvXL!v~`i(>Re!r_w1+)znx#b~}!}syGwggR1x^Tt-REM?P0JLk?!d7AMskPp~+d zY13>Xl{T3+gIy8RM9oQe3}Ua!5?-*9n*&ZXusLa+js*K9O=rXJtY@a=OX9`8e~*7J z-9r3Ck@xOpY)Fv;hBad;?39A49*L>4DxdHIL>(`{zKGc`sRmpB{(3FxlT7NEQIPN^ zHBKL03t(6s#EEojSW`RBI*iR=E=wqc@$qbGEH;RacQh7rLbx@Z%I3z%Cbt8#I5@e{ znX)ssZLjM3Dv69e<-EM1-&8043CFi;t@@mVe^NCWY#LlMrffT$u`lcTWjhnL?I~kz zFf!n*>54Mt*H7JY@4UHdt@$v&_fY4`e`@z8jLpT5n2-X;H8+q)Z{K(&@KLx}| z#wR9frF!4aQ}c{}=2Jgcnyznba3uu4a@;;wefin+7X!ZmigS|H@?`0(@#H(taO^Ih zLb*ISS2A+a;LB0N9p&1ES?emcGG1c5r#dxJ>gw3>4Ht+S=4++dIwo;_h^bmup%?9RU}9#O4W zrvb4z%#GL|o%Y6Epu#Aks2v85v9ubsHjLO7MGM~jQYiY^OG`6Jcf6t{Y$;=kb|#Bb8Z?{y zQdDWM`E+Zcudusc^cAw1Y(`t!3c_GL6s?+WG>;lm3PDz?tOVPs)QZ`I-PlV7KeIKT z7GYY3oUZ#aS-nqWvaZyD?vXU(XVX$C!Aw|&64xt!OXY)9yiI9aZhzB=xdwgWw{<1< zCrtUSDI{m60?V+BOO+PCGM;kVl;y|{GMijOcQz?^`MnlX=p1^n3k6yV9yD^jy9#tS zc;ls3=1Z^u25|_(IE*7G;wVNiig7%S6U^XAoWc+evRIDuzcUu;1A-Zr4QaTHq8eym Zg^;~0|NkTv2@PLAee18t{x8z*{J+j-y=MRb diff --git a/fonts/kitematic.woff b/fonts/kitematic.woff index 121ee6e7119aee45712beb0bc176906736068f0c..af71b03b6d47322be514802526f606e627aa8a0b 100644 GIT binary patch delta 4717 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 AT>t<8 diff --git a/package.json b/package.json index e1cf0cdfba..81342308da 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "mixpanel": "kitematic/mixpanel-node", "mkdirp": "^0.5.0", "node-uuid": "^1.4.3", + "numeral": "^1.5.3", "object-assign": "^4.0.1", "osx-release": "^1.1.0", "parseUri": "^1.2.3-2", diff --git a/src/components/ImageCard.react.js b/src/components/ImageCard.react.js index 6d77201f9f..a18420b16c 100644 --- a/src/components/ImageCard.react.js +++ b/src/components/ImageCard.react.js @@ -8,6 +8,7 @@ import containerActions from '../actions/ContainerActions'; import containerStore from '../stores/ContainerStore'; import tagStore from '../stores/TagStore'; import tagActions from '../actions/TagActions'; +import numeral from 'numeral'; var ImageCard = React.createClass({ mixins: [Router.Navigation], @@ -147,6 +148,8 @@ var ImageCard = React.createClass({ ); } + let favCount = (this.props.image.star_count < 1000) ? numeral(this.props.image.star_count).value() : numeral(this.props.image.star_count).format('0.0a').toUpperCase(); + let pullCount = (this.props.image.pull_count < 1000) ? numeral(this.props.image.pull_count).value() : numeral(this.props.image.pull_count).format('0a').toUpperCase(); return (
@@ -185,7 +188,9 @@ var ImageCard = React.createClass({
- {this.props.image.star_count} + {favCount} + + {pullCount}
diff --git a/src/utils/RegHubUtil.js b/src/utils/RegHubUtil.js index 4adf6db830..3bdc56a22e 100644 --- a/src/utils/RegHubUtil.js +++ b/src/utils/RegHubUtil.js @@ -137,7 +137,7 @@ module.exports = { // Get Orgs for user hubUtil.request({ url: `${REGHUB2_ENDPOINT}/user/orgs/`, - qs: { page_size: 50 } + qs: { page_size: 1000 } }, (orgError, orgResponse, orgBody) => { if (orgError) { repositoryServerActions.error({orgError}); @@ -178,7 +178,8 @@ module.exports = { async.map(namespaces, (namespace, cb) => { hubUtil.request({ - url: `${REGHUB2_ENDPOINT}/repositories/${namespace}` + url: `${REGHUB2_ENDPOINT}/repositories/${namespace}`, + qs: { page_size: 1000 } }, (error, response, body) => { if (error) { repositoryServerActions.error({error}); diff --git a/styles/icons.less b/styles/icons.less index de69405330..65f7f2e74e 100644 --- a/styles/icons.less +++ b/styles/icons.less @@ -35,8 +35,8 @@ text-transform: none !important; speak: none; line-height: 1; - //-webkit-font-smoothing: subpixel-antialiased; - -webkit-font-smoothing: antialiased; + -webkit-font-smoothing: subpixel-antialiased; + //-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } @@ -103,3 +103,6 @@ .icon-edit:before { content: "o"; } +.icon-download:before { + content: "p"; +} diff --git a/styles/new-container.less b/styles/new-container.less index c84361a26d..7ca9247a3d 100644 --- a/styles/new-container.less +++ b/styles/new-container.less @@ -366,16 +366,20 @@ font-size: 11px; color: @gray-normal; border-right: 1px solid @color-divider; - padding: 1.1rem 1.2rem; + padding: 1.1rem 1rem; .icon { position: relative; font-size: 11px; - margin-right: 0.5rem; + margin-right: 0.3rem; color: @gray-normal; } + .icon-download { + margin-left: 0.5rem; + } .text { position: relative; top: -0.2rem; + margin-right: 0.3rem; } } .tags { @@ -400,10 +404,16 @@ } .more-menu { flex: 0 auto; - width: 39px; - padding: 0.4rem 1rem; + width: 30px; + padding: 0.4rem 0.5rem; font-size: 20px; .box-button(); + .box-button { + .icon { + font-size: 1.5rem; + margin-left: 0.2rem; + } + } } .action { flex: 0 auto;