From 85c532fe8a31f22a3e8f24793db4caa515dfcb4a Mon Sep 17 00:00:00 2001 From: Matt Harrington Date: Sun, 3 Jan 2016 23:54:48 +0000 Subject: [PATCH 01/10] docker maintenance - removing broken sed (was also updating BASE_URL) in favor of NODE_DB_URI (will require documentation) - changing build order to reduce rebuilding some things unnecessarily - more effectively using WORKDIR to simplify commands --- Dockerfile | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index fa9accc94a..618454c978 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM ubuntu:trusty MAINTAINER Sabe Jones # Avoid ERROR: invoke-rc.d: policy-rc.d denied execution of start. -RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d +RUN echo -e '#!/bin/sh\nexit 0' > /usr/sbin/policy-rc.d # Install prerequisites RUN apt-get update @@ -22,20 +22,19 @@ RUN apt-get install -y nodejs RUN apt-get clean RUN rm -rf /var/lib/apt/lists/* -# Clone Habitica repo and install dependencies -RUN git clone https://github.com/HabitRPG/habitrpg.git +# Install global packages RUN npm install -g gulp grunt-cli bower -RUN cd /habitrpg && npm install -RUN cd /habitrpg && bower install --allow-root + +# Clone Habitica repo and install dependencies +WORKDIR /habitrpg +RUN git clone https://github.com/HabitRPG/habitrpg.git /habitrpg +RUN npm install +RUN bower install --allow-root # Create environment config file and build directory -RUN cd /habitrpg && cp config.json.example config.json -RUN mkdir -p /habitrpg/website/build - -# Point config.json to Mongo instance. Edit the IP address to your running Mongo container's IP before running. -RUN cd /habitrpg && sed -i 's/localhost/0.0.0.0/g' config.json +RUN cp config.json.example config.json +RUN mkdir -p ./website/build # Start Habitica EXPOSE 3000 -WORKDIR /habitrpg/ CMD ["npm", "start"] From 67f184c0f4ca21077f2924120762e6a5e6cc88bb Mon Sep 17 00:00:00 2001 From: Matt Harrington Date: Mon, 4 Jan 2016 03:33:51 +0000 Subject: [PATCH 02/10] docker maintenance - added docker-compose.yml for quick one-command spinup - added docker-compose.dev.yml to override /habitrpg mount - modified Dockerfile to accept /habitrpg mount --- Dockerfile | 2 ++ docker-compose.dev.yml | 3 +++ docker-compose.yml | 13 +++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 docker-compose.dev.yml create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile index 618454c978..1bcc66313e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,11 +28,13 @@ RUN npm install -g gulp grunt-cli bower # Clone Habitica repo and install dependencies WORKDIR /habitrpg RUN git clone https://github.com/HabitRPG/habitrpg.git /habitrpg +#RUN test -e /habitrpg || git clone https://github.com/HabitRPG/habitrpg.git /habitrpg RUN npm install RUN bower install --allow-root # Create environment config file and build directory RUN cp config.json.example config.json +#RUN test -e config.json || cp config.json.example config.json RUN mkdir -p ./website/build # Start Habitica diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 0000000000..33216b0184 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,3 @@ +web: + volumes: + - '.:/habitrpg' diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000000..898000def7 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,13 @@ +web: + build: . + ports: + - "3000:3000" + links: + - mongo + environment: + - NODE_DB_URI=mongodb://mongo/habitrpg + +mongo: + image: mongo + ports: + - "27017:27017" From 1a1823bd4331477e09adc7f27e5c693b1a53890a Mon Sep 17 00:00:00 2001 From: Matt Harrington Date: Mon, 11 Jan 2016 05:17:20 +0000 Subject: [PATCH 03/10] fixup --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1bcc66313e..618454c978 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,13 +28,11 @@ RUN npm install -g gulp grunt-cli bower # Clone Habitica repo and install dependencies WORKDIR /habitrpg RUN git clone https://github.com/HabitRPG/habitrpg.git /habitrpg -#RUN test -e /habitrpg || git clone https://github.com/HabitRPG/habitrpg.git /habitrpg RUN npm install RUN bower install --allow-root # Create environment config file and build directory RUN cp config.json.example config.json -#RUN test -e config.json || cp config.json.example config.json RUN mkdir -p ./website/build # Start Habitica From b6b2c25358b6e7613491f98ad0a3ba5de1026f45 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Thu, 14 Jan 2016 15:58:14 -0500 Subject: [PATCH 04/10] style(modal): text and visual tweaks for Gems --- common/locales/en/subscriber.json | 18 +++++++++--------- website/public/css/shared.styl | 3 +++ website/views/shared/modals/buy-gems.jade | 5 ++--- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/common/locales/en/subscriber.json b/common/locales/en/subscriber.json index d87c529b09..dcaf660735 100644 --- a/common/locales/en/subscriber.json +++ b/common/locales/en/subscriber.json @@ -1,14 +1,14 @@ { "subscription": "Subscription", "subscriptions": "Subscriptions", - "subDescription": "Buy gems with gold, get monthly mystery items, retain progress history, double daily drop-caps, support the devs. Click for more info.", + "subDescription": "Buy Gems with gold, get monthly mystery items, retain progress history, double daily drop-caps, support the devs. Click for more info.", "buyGemsGold": "Buy Gems with Gold", - "buyGemsGoldText": "Alexander the Merchant will sell you gems at a cost of <%= gemCost %> gold per gem. His monthly shipments are initially capped at <%= gemLimit %> gems per month, but this cap increases by 5 gems for every three months of consecutive subscription, up to a maximum of 50 gems per month!", + "buyGemsGoldText": "Alexander the Merchant will sell you Gems at a cost of <%= gemCost %> gold per gem. His monthly shipments are initially capped at <%= gemLimit %> Gems per month, but this cap increases by 5 Gems for every three months of consecutive subscription, up to a maximum of 50 Gems per month!", "retainHistory": "Retain full history entries", "retainHistoryText": "Makes your full history available in graphs and export. Non-subscriber histories get consolidated for database optimization.", "doubleDrops": "Daily drop-caps doubled", "doubleDropsText": "Complete your stable faster!", - "mysteryItem": "Exclusive Monthly Items", + "mysteryItem": "Exclusive monthly items", "mysteryItemText": "Each month you will receive a unique cosmetic item for your avatar! Plus, for every three months of consecutive subscription, the Mysterious Time Travelers will grant you access to historic (and futuristic!) cosmetic items.", "supportDevs": "Supports the developers", "supportDevsText": "Your subscription helps keep Habitica thriving and helps fund the development of new features. Thank you for your generosity!", @@ -47,9 +47,9 @@ "timeSupportText": "We will provide support for training, bugs, installation, and feature requests.", "gameFeatures": "Game features", "gold2Gem": "Gems purchasable with gold", - "gold2GemText": "Members will be able to purchase gems with gold, meaning none of your participants need to buy anything with real money.", - "infiniteGem": "Infinite leader gems", - "infiniteGemText": "We will provide the organization leaders with as many gems as they need, for things like challenge prizes, guild-creation, etc.", + "gold2GemText": "Members will be able to purchase Gems with gold, meaning none of your participants need to buy anything with real money.", + "infiniteGem": "Infinite leader Gems", + "infiniteGemText": "We will provide the organization leaders with as many Gems as they need, for things like challenge prizes, guild-creation, etc.", "notYetPlan": "Plan not yet available, but click to contact us and we'll keep you updated.", "contactUs": "Contact Us", "checkout": "Checkout", @@ -60,11 +60,11 @@ "subGemPop": "Because you subscribe to Habitica, you can purchase a number of Gems each month using Gold. You can see how many Gems are available to buy at the corner of the Gem icon.", "subGemName": "Subscriber Gems", "freeGemsTitle": "Obtain Gems for Free", - "maxBuyGems": "You have bought all the gems you can this month. Thanks for subscribing!", + "maxBuyGems": "You have bought all the Gems you can this month. More will become available within the first three days of next month. Thanks for subscribing!", "buyGemsAllow1": "You can buy", - "buyGemsAllow2": "more gems this month", + "buyGemsAllow2": "more Gems this month", "purchaseGemsSeparately": "Purchase Additional Gems", - "subFreeGemsHow": "Habitica players can earn gems for free by winning challenges that award gems as a prize, or as a contributor reward by helping the development of Habitica.", + "subFreeGemsHow": "Habitica players can earn Gems for free by winning challenges that award Gems as a prize, or as a contributor reward by helping the development of Habitica.", "timeTravelers": "Time Travelers", "timeTravelersTitleNoSub": "<%= linkStartTyler %>Tyler<%= linkEnd %> and <%= linkStartVicky %>Vicky<%= linkEnd %>", "timeTravelersTitle": "Mysterious Time Travelers", diff --git a/website/public/css/shared.styl b/website/public/css/shared.styl index 2e772ed26f..b14355f9c3 100644 --- a/website/public/css/shared.styl +++ b/website/public/css/shared.styl @@ -107,3 +107,6 @@ li.spaced .row-margin margin: auto auto 1em auto + +.text-right + text-align: right diff --git a/website/views/shared/modals/buy-gems.jade b/website/views/shared/modals/buy-gems.jade index 783c657f0b..ae39d52467 100644 --- a/website/views/shared/modals/buy-gems.jade +++ b/website/views/shared/modals/buy-gems.jade @@ -70,6 +70,5 @@ script(id='modals/buyGems.html', type='text/ng-template') h3=env.t('becomeSubscriber') div(ng-include="'partials/options.settings.subscription.html'") - - .modal-footer - button.btn.btn-default(ng-click='$close()')=env.t('cancel') + .text-right + button.btn.btn-default(ng-click='$close()')=env.t('close') From 23720e0a43f9235b51e238f87a89b1ae25bd2781 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Fri, 15 Jan 2016 14:10:02 -0500 Subject: [PATCH 05/10] style(subscription): more tweaks --- common/locales/en/subscriber.json | 1 + website/public/css/shared.styl | 3 +++ website/views/options/settings.jade | 29 ++++++++++++----------- website/views/shared/modals/buy-gems.jade | 3 +++ 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/common/locales/en/subscriber.json b/common/locales/en/subscriber.json index dcaf660735..6ac584486a 100644 --- a/common/locales/en/subscriber.json +++ b/common/locales/en/subscriber.json @@ -65,6 +65,7 @@ "buyGemsAllow2": "more Gems this month", "purchaseGemsSeparately": "Purchase Additional Gems", "subFreeGemsHow": "Habitica players can earn Gems for free by winning challenges that award Gems as a prize, or as a contributor reward by helping the development of Habitica.", + "seeSubscriptionDetails": "Go to Settings > Subscription to see your subscription details!", "timeTravelers": "Time Travelers", "timeTravelersTitleNoSub": "<%= linkStartTyler %>Tyler<%= linkEnd %> and <%= linkStartVicky %>Vicky<%= linkEnd %>", "timeTravelersTitle": "Mysterious Time Travelers", diff --git a/website/public/css/shared.styl b/website/public/css/shared.styl index b14355f9c3..fbea14566c 100644 --- a/website/public/css/shared.styl +++ b/website/public/css/shared.styl @@ -110,3 +110,6 @@ li.spaced .text-right text-align: right + +.reduce-top-margin + margin-top: -10px diff --git a/website/views/options/settings.jade b/website/views/options/settings.jade index 13458c0a68..aad9b8b476 100644 --- a/website/views/options/settings.jade +++ b/website/views/options/settings.jade @@ -328,9 +328,9 @@ script(id='partials/options.settings.notifications.html', type="text/ng-template script(id='partials/options.settings.subscription.html',type='text/ng-template') //-h2=env.t('individualSub') .container-fluid(ng-init='_subscription={key:"basic_earned"}') + h3= env.t('benefits') .row .col-md-6 - h3= env.t('benefits') +subPerks() .col-md-6 @@ -354,7 +354,7 @@ script(id='partials/options.settings.subscription.html',type='text/ng-template') li #{env.t('mysticHourglasses')} {{user.purchased.plan.consecutive.trinkets}} div(ng-if='!user.purchased.plan.customerId || (user.purchased.plan.customerId && user.purchased.plan.dateTerminated)') h4(ng-if='(user.purchased.plan.customerId && user.purchased.plan.dateTerminated)')= env.t("resubscribe") - .form-group + .form-group.reduce-top-margin .radio(ng-repeat='block in Content.subscriptionBlocks | toArray | omit: "discount==true" | orderBy:"months"') label input(type="radio", name="subRadio", ng-value="block.key", ng-model='_subscription.key') @@ -370,19 +370,20 @@ script(id='partials/options.settings.subscription.html',type='text/ng-template') input.form-control(type='text', ng-model='_subscription.coupon', placeholder= env.t('couponPlaceholder')) .form-group button.pull-right.btn.btn-small(type='button',ng-click='applyCoupon(_subscription.coupon)')= env.t("apply") - - p.resubscribe - small.muted=env.t('subscribeUsing') - a.purchase.btn.btn-primary(ng-click='Payments.showStripe({subscription:_subscription.key, coupon:_subscription.coupon})', ng-disabled='!_subscription.key')= env.t('card') - .container-fluid.slight-vertical-padding - .row.text-center - .col-xs-6 - a.purchase(href='/paypal/subscribe?_id={{user._id}}&apiToken={{user.apiToken}}&sub={{_subscription.key}}{{_subscription.coupon ? "&coupon="+_subscription.coupon : ""}}', ng-disabled='!_subscription.key') - img(src='https://www.paypalobjects.com/webstatic/en_US/i/buttons/pp-acceptance-small.png',alt=env.t('paypal')) - .col-xs-6 - a.purchase(ng-click="Payments.amazonPayments.init({type: 'subscription', subscription:_subscription.key, coupon:_subscription.coupon})") - img(src='https://payments.amazon.com/gp/cba/button',alt=env.t('amazonPayments')) div(ng-if='user.purchased.plan.customerId') .btn.btn-primary(ng-if='!user.purchased.plan.dateTerminated && user.purchased.plan.paymentMethod=="Stripe"', ng-click='Payments.showStripeEdit()')=env.t('subUpdateCard') .btn.btn-sm.btn-danger(ng-if='!user.purchased.plan.dateTerminated', ng-click='Payments.cancelSubscription()')=env.t('cancelSub') + + .container-fluid.slight-vertical-padding(ng-if='!user.purchased.plan.customerId || (user.purchased.plan.customerId && user.purchased.plan.dateTerminated)') + small.muted=env.t('subscribeUsing') + .row.text-center + .col-xs-4 + a.purchase.btn.btn-primary(ng-click='Payments.showStripe({subscription:_subscription.key, coupon:_subscription.coupon})', ng-disabled='!_subscription.key')= env.t('card') + .col-xs-4 + a.purchase(href='/paypal/subscribe?_id={{user._id}}&apiToken={{user.apiToken}}&sub={{_subscription.key}}{{_subscription.coupon ? "&coupon="+_subscription.coupon : ""}}', ng-disabled='!_subscription.key') + img(src='https://www.paypalobjects.com/webstatic/en_US/i/buttons/pp-acceptance-small.png',alt=env.t('paypal')) + .col-xs-4 + a.purchase(ng-click="Payments.amazonPayments.init({type: 'subscription', subscription:_subscription.key, coupon:_subscription.coupon})") + img(src='https://payments.amazon.com/gp/cba/button',alt=env.t('amazonPayments')) + diff --git a/website/views/shared/modals/buy-gems.jade b/website/views/shared/modals/buy-gems.jade index ae39d52467..6655da5c53 100644 --- a/website/views/shared/modals/buy-gems.jade +++ b/website/views/shared/modals/buy-gems.jade @@ -47,6 +47,7 @@ script(id='modals/buyGems.html', type='text/ng-template') p=env.t('buyGemsAllow1') |  {{Shared.planGemLimits.convCap + User.user.purchased.plan.consecutive.gemCapExtra - User.user.purchased.plan.gemsBought}}  =env.t('buyGemsAllow2') + p!=env.t('seeSubscriptionDetails') div(ng-if='user.purchased.plan.customerId') .well h3=env.t('purchaseGemsSeparately') @@ -70,5 +71,7 @@ script(id='modals/buyGems.html', type='text/ng-template') h3=env.t('becomeSubscriber') div(ng-include="'partials/options.settings.subscription.html'") + div(ng-if='user.purchased.plan.customerId').pull-left + p!=env.t('seeSubscriptionDetails') .text-right button.btn.btn-default(ng-click='$close()')=env.t('close') From fd62e39f2025b248e25cac4e06541bcd686f7d3e Mon Sep 17 00:00:00 2001 From: Alys Date: Tue, 19 Jan 2016 04:47:50 +1000 Subject: [PATCH 06/10] fix spelling mistake: crystaline -> crystalline --- common/locales/en/questsContent.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/locales/en/questsContent.json b/common/locales/en/questsContent.json index 7b0f28f532..2ead69f3fe 100644 --- a/common/locales/en/questsContent.json +++ b/common/locales/en/questsContent.json @@ -6,7 +6,7 @@ "questEvilSantaDropBearCubPolarMount": "Polar Bear (Mount)", "questEvilSanta2Text": "Find The Cub", - "questEvilSanta2Notes": "When Trapper Santa captured the polar bear mount, her cub ran off into the icefields. You hear twig-snaps and snow crunch through the crystaline sound of the forest. Paw prints! You start racing to follow the trail. Find all the prints and broken twigs, and retrieve the cub!", + "questEvilSanta2Notes": "When Trapper Santa captured the polar bear mount, her cub ran off into the icefields. You hear twig-snaps and snow crunch through the crystalline sound of the forest. Paw prints! You start racing to follow the trail. Find all the prints and broken twigs, and retrieve the cub!", "questEvilSanta2Completion": "You've found the cub! It will keep you company forever.", "questEvilSanta2CollectTracks": "Tracks", "questEvilSanta2CollectBranches": "Broken Twigs", From d0de12abac9284ad433ae212c922e176f0074550 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 18 Jan 2016 20:52:27 +0100 Subject: [PATCH 07/10] Add viirus to Community Guidelines page. Fixes #6546 --- .../community-guidelines-images/staff.png | Bin 9444 -> 10620 bytes .../views/static/community-guidelines.jade | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) mode change 100755 => 100644 website/public/community-guidelines-images/staff.png diff --git a/website/public/community-guidelines-images/staff.png b/website/public/community-guidelines-images/staff.png old mode 100755 new mode 100644 index 1ae892bce8ee00f9315d67b6963de14ceda63c47..5a08622d7ce344c1cab40fa662f671af1513d83e GIT binary patch delta 7973 zcmYkBbyQSQx4;Jk2|-#^x(9|5q#J1j$pK;L5-BN>7zgQ4dO#Y6uA#f6aVS9$kdC1R znW6LH`@Xl<`{%B6*131@v(LF_pS|~QUHwXrB~nLQm6Z4?F#rG{RaaBe0|0Q4cWo=e z`*+V6Y2{bdELp@b#v*kk1%nU2_so31(oDhSiWqShevo<%v68BhkK-tj)_nQ;<~gVJ ze9)UoT_NkM$v3O)*@skO2w-G@yHGX}`$PBpk=6)2k-Vmrs3=|@Cu`%7WX_-(uSPF1 zEuYNuJl6$JbI-CRrvT0NjjOB47w)^iD*U{6=drC03aqR;Fd#K?C_;XDn@#6mi-$i{ zF;@p@;Ld&5QOu3fyz5ZohdsO?q;~I_skW(T^V-&fGT)8y{qLK_t9t)FW98B*)uDKx z=JyVD{vdMzE@}Xze)}I8G%5cCQqSVOMR6&2Fgt#$Zl^7D?(`Z^<^{PF>%fZp3jV)l zA(8@O8VO};nI``OS5Wpzg%Id=<#i!}`>`;%kb>6uwd0Hb)BS(5j3;^ns9|-BJ6fi_ z6nlM6Hl|%&laC|v_;s$%e}x-D{u!fVOXZ8@q4)A~RJoXKt5<>beSM(^3xHac!p9_F zNpM=3)(j(k5kv4ISaKSrLB>N(T;KF>8Fb(2Y?6eolDl_T6M-sce+10LDCEAGj?$b6 z-qaFbKwV!PJL=2LH9&Xv^c{P;yG;f5e}(7h0Du3p<)7w9DT?FfEG5lFOp+tM5WV-o ztzO>;y~XzDd0#E^R^Vo0z7knfyLa>|x3$qRo#~!Pm zFuVM0@7-TC!_gcvM3+-98)^hH)a`y81}^SdHEDgIL3xS*ny+&zJP~n=*AQ8$a|j}) zQMEUmhh3PSwd&@aF_i_O>x>6zNx0jdJKI)ql>o48Ks>IUvU$$<53ye<1c7P8<`iTZ z?jtIoPSF9a*-XfW>A6g46^8U)M-`?Vg&bW2$(6i6;oeq|2y<1wNWYsrgAlu&Pj?jy zc(KO26)xsl(deO@vJd9x-`U%%MRs(dD%-wO|6IihWGOo!n(T^EfllQMSLQQd{nrH_=^f~21fEpp zP3yXd6Yi(9MB0Kain!Q7M&*;lQSS$lqMG6N+b~_`qia2|c?qX zxczBWD^6q}d9L%qn7+B#TW6SiK5G4}aLg|4D(QRMu{%0A;HnA3mhngKxA!*`m)zhS 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

~FgY<)Ghg18TV=*S<^Vr1u8|ye4u^llB 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 diff --git a/website/views/static/community-guidelines.jade b/website/views/static/community-guidelines.jade index 1eaf145697..9ba1854d12 100644 --- a/website/views/static/community-guidelines.jade +++ b/website/views/static/community-guidelines.jade @@ -73,6 +73,8 @@ block content strong SabreCat (Sabe) li strong paglias (Matteo) + li + strong viirus (Phillip) p=env.t('commGuidePara010') p @@ -371,4 +373,3 @@ block content li Shaner li Starsystemic li UncommonCriminal - From fe58129cd37df9cdf27801dc2a369ef24390af8c Mon Sep 17 00:00:00 2001 From: Alys Date: Tue, 19 Jan 2016 06:18:49 +1000 Subject: [PATCH 08/10] remove Completion from Octopus quest text - ref https://github.com/HabitRPG/habitrpg/issues/5631#issuecomment-172600908 --- common/locales/en/questsContent.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/locales/en/questsContent.json b/common/locales/en/questsContent.json index 2ead69f3fe..44926b75b2 100644 --- a/common/locales/en/questsContent.json +++ b/common/locales/en/questsContent.json @@ -42,7 +42,7 @@ "questOctopusText": "The Call of Octothulu", "questOctopusNotes": "@Urse, a wild-eyed young scribe, has asked for your help exploring a mysterious cave by the sea shore. Among the twilight tidepools stands a massive gate of stalactites and stalagmites. As you near the gate, a dark whirlpool begins to spin at its base. You stare in awe as a squid-like dragon rises through the maw. \"The sticky spawn of the stars has awakened,\" roars @Urse madly. \"After vigintillions of years, the great Octothulu is loose again, and ravening for delight!\"", - "questOctopusCompletion": "Completion: With a final blow, the creature slips away into the whirlpool from which it came. You cannot tell if @Urse is happy with your victory or saddened to see the beast go. Wordlessly, your companion points to three slimy, gargantuan eggs in a nearby tidepool, set in a nest of gold coins. \"Probably just octopus eggs,\" you say nervously. As you return home, @Urse frantically scribbles in a journal and you suspect this is not the last time you will hear of the great Octothulu.", + "questOctopusCompletion": "With a final blow, the creature slips away into the whirlpool from which it came. You cannot tell if @Urse is happy with your victory or saddened to see the beast go. Wordlessly, your companion points to three slimy, gargantuan eggs in a nearby tidepool, set in a nest of gold coins. \"Probably just octopus eggs,\" you say nervously. As you return home, @Urse frantically scribbles in a journal and you suspect this is not the last time you will hear of the great Octothulu.", "questOctopusBoss": "Octothulu", "questOctopusDropOctopusEgg": "Octopus (Egg)", "questOctopusUnlockText": "Unlocks purchasable octopus eggs in the Market", From 9b008f71a0f4737781e9c7e9e85f9a09f64b25b6 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Mon, 18 Jan 2016 16:13:24 -0500 Subject: [PATCH 09/10] fix(CSS): remove redundant style --- website/public/css/shared.styl | 3 --- 1 file changed, 3 deletions(-) diff --git a/website/public/css/shared.styl b/website/public/css/shared.styl index fbea14566c..09c887ee55 100644 --- a/website/public/css/shared.styl +++ b/website/public/css/shared.styl @@ -108,8 +108,5 @@ li.spaced .row-margin margin: auto auto 1em auto -.text-right - text-align: right - .reduce-top-margin margin-top: -10px From 5b740b1a1145f1f3c8bcc22666be5c39f6f070bd Mon Sep 17 00:00:00 2001 From: Kristian Tashkov Date: Mon, 18 Jan 2016 22:39:04 +0200 Subject: [PATCH 10/10] Fix setting of environment variables in gulp test tasks in Windows See this stackoverflow link for why this is necessary http://stackoverflow.com/questions/27084392/code-coverage-for-mocha-in-windows-7/27193866#27193866 --- package.json | 4 ++-- tasks/gulp-tests.js | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f280469b6a..9e2dde0b21 100644 --- a/package.json +++ b/package.json @@ -87,14 +87,14 @@ "test": "gulp test", "test:api-v2:unit": "mocha test/server_side", "test:api-v2:integration": "mocha test/api/v2 --recursive", - "test:api-legacy": "istanbul cover -i \"website/src/**\" --dir coverage/api mocha test/api-legacy", + "test:api-legacy": "istanbul cover -i \"website/src/**\" --dir coverage/api ./node_modules/mocha/bin/_mocha test/api-legacy", "test:common": "mocha test/common", "test:content": "mocha test/content", "test:karma": "karma start --single-run", "test:karma:watch": "karma start", "test:prepare:webdriver": "webdriver-manager update", "test:e2e:webdriver": "webdriver-manager start", - "test:e2e": "DISPLAY=:99 NODE_ENV=testing protractor protractor.conf.js", + "test:e2e": "protractor protractor.conf.js", "test:nodemon": "gulp test:nodemon", "start": "gulp run:dev", "sprites": "gulp sprites:compile", diff --git a/tasks/gulp-tests.js b/tasks/gulp-tests.js index 097620ffb3..210cde7661 100644 --- a/tasks/gulp-tests.js +++ b/tasks/gulp-tests.js @@ -11,6 +11,7 @@ import psTree from 'ps-tree'; import gulp from 'gulp'; import Q from 'q'; import runSequence from 'run-sequence'; +import os from 'os'; const TEST_SERVER_PORT = 3003 const TEST_DB = 'habitrpg_test' @@ -34,8 +35,16 @@ let testCount = (stdout, regexp) => { return parseInt(match && match[1] || 0); } -let testBin = (string) => { - return `NODE_ENV=testing ${string}`; +let testBin = (string, additionalEnvVariables = '') => { + if(os.platform() === "win32") { + if(additionalEnvVariables != '') { + additionalEnvVariables = additionalEnvVariables.split(' ').join('&&set '); + additionalEnvVariables = 'set ' + additionalEnvVariables + '&&'; + } + return `set NODE_ENV=testing&&${additionalEnvVariables}${string}`; + } else { + return `NODE_ENV=testing ${additionalEnvVariables} ${string}`; + } }; gulp.task('test:nodemon', (done) => { @@ -56,7 +65,7 @@ gulp.task('test:prepare:mongo', (cb) => { gulp.task('test:prepare:server', ['test:prepare:mongo'], () => { if (!server) { - server = exec(`NODE_ENV="TESTING" NODE_DB_URI="${TEST_DB_URI}" PORT="${TEST_SERVER_PORT}" node ./website/src/server.js`, (error, stdout, stderr) => { + server = exec(testBin('node ./website/src/server.js', `NODE_DB_URI=${TEST_DB_URI} PORT=${TEST_SERVER_PORT} `), (error, stdout, stderr) => { if (error) { throw `Problem with the server: ${error}`; } if (stderr) { console.error(stderr); } }); @@ -249,7 +258,7 @@ gulp.task('test:karma:safe', ['test:prepare:build'], (cb) => { gulp.task('test:e2e', ['test:prepare', 'test:prepare:server'], (cb) => { let support = [ 'Xvfb :99 -screen 0 1024x768x24 -extension RANDR', - 'npm run test:e2e:webdriver', + testBin('npm run test:e2e:webdriver', 'DISPLAY=:99'), ].map(exec); support.push(server);