From dc75834ec437287f2d3d94c9a23b5b89db79cd08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Larivi=C3=A8re?= Date: Thu, 6 Feb 2014 18:58:40 -0500 Subject: [PATCH] Changed hints style (and small quick fixes) --- CHANGELOG.md | 263 +++++++++++++++++++----- public/css/inventory.styl | 3 +- public/css/shared.styl | 15 +- views/options/inventory/inventory.jade | 10 +- views/options/profile.jade | 22 +- views/options/settings.jade | 30 +-- views/options/social/challenge-box.jade | 5 +- views/options/social/challenges.jade | 11 +- views/shared/profiles/stats.jade | 51 ++--- views/shared/tasks/task.jade | 11 +- 10 files changed, 274 insertions(+), 147 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a7a40f17d..bacc54d3f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,130 +1,279 @@ -HabitRPG -# (2014-01-28) +My app - Changelog +# (2014-02-15) ## Documentation - **rebirth:** Bullet point about repurchase of limited ed gear after Rebirth - ([d3f4a561](https://github.com/habitrpg/habitrpg/commits/d3f4a561fdf137e5d8f406bae03be4fef1caff22)) + ([d3f4a561](watch/commits/d3f4a561fdf137e5d8f406bae03be4fef1caff22)) ## Bug Fixes - **#2003:** healer gear not showing - ([949cd97b](https://github.com/habitrpg/habitrpg/commits/949cd97b91b42e9450eba559bbfea17e239ab100)) + ([949cd97b](watch/commits/949cd97b91b42e9450eba559bbfea17e239ab100)) - **#2375:** merge in @SabreCat's stats.jade changes "More elegant show/hide setup for attribute bonuses" - ([518f200a](https://github.com/habitrpg/habitrpg/commits/518f200a8fc7373b44ed7d7b5f016d921b0746bd)) + ([518f200a](watch/commits/518f200a8fc7373b44ed7d7b5f016d921b0746bd)) +- **allocateNow:** Send empty object to user.ops per @colegleason suggestion + ([f6e12fa2](watch/commits/f6e12fa25e4366622db3e6f1b6ab03e848b49e10)) +- **batch-update:** send errors to client if batch-update found an error, crash pid. + ([f9679629](watch/commits/f967962996be69a5335454610af76d10e1db08b8)) - **beastmaster:** fixes #2557, adds opacity to previously-owned pets after they're mounted. You can earn them back again - ([5caaff1c](https://github.com/habitrpg/habitrpg/commits/5caaff1cea1a68fe572e7ddf4aac50248b13df5d)) + ([5caaff1c](watch/commits/5caaff1cea1a68fe572e7ddf4aac50248b13df5d)) - **bosses:** don't reset progress.up when starting a new quest. We want to be able to carry over damage from the same day a boss battle begins, even if the dailies were completed before battle-start. Fixes #2168 - ([4efd0f5e](https://github.com/habitrpg/habitrpg/commits/4efd0f5ed8708f2491dd483f93e3d7a268a6337d)) + ([4efd0f5e](watch/commits/4efd0f5ed8708f2491dd483f93e3d7a268a6337d)) +- **bower:** updated jquery directory + ([191b789d](watch/commits/191b789d760a7bdc7d1b53727f6127b677c78c94)) +- **bs3:** + - fix to MemberModalCtrl parameter + ([ebd1df93](watch/commits/ebd1df932e28263e5cc01e8a35f545ab26f1e8bd)) + - port pet feeding bar + ([5db96ebc](watch/commits/5db96ebca2fbd5b64f49af03a5137ea80f6b1673)) +- **buffs:** Move help bubble to left of special buffs + ([4f911a68](watch/commits/4f911a68d805742e6744383948eea6f224f2b0ea)) +- **challenges:** + - better handling of deleted challenges. If !chal, break the task.challenge. Move the function into userController#score so we have access to next, etc. fixes #1883 + ([33b326b5](watch/commits/33b326b59685ea6e50f9950094d009460ce80094)) + - challenge csv export now has proper filename + ([36f21196](watch/commits/36f21196f466260b7cd52b283c50b9e16943f668), + [#2689](watch/issues/2689)) - **classes:** - misc fixes - ([d2121a85](https://github.com/habitrpg/habitrpg/commits/d2121a858716cb5a532a53ee9c5a1adaa74a7f69)) + ([d2121a85](watch/commits/d2121a858716cb5a532a53ee9c5a1adaa74a7f69)) - misc class fixes (not @snicker, ng-if on item store since we dynamically swap it sometimes) - ([478be611](https://github.com/habitrpg/habitrpg/commits/478be6111337cd200374f7f31b959725c6a0b945)) + ([478be611](watch/commits/478be6111337cd200374f7f31b959725c6a0b945)) +- **css:** + - temp fix for bailey height + ([c8faffcc](watch/commits/c8faffcc7289090990c3a17ab8c07a00069f5ce4)) + - menu and gems wallet margin + ([975b5165](watch/commits/975b5165730477310aa64bac27ddc07a34ea6c1d)) + - lighter columns title + ([a22e2814](watch/commits/a22e28143f74302c8340c3d33b01af9714875523)) + - better food tray + ([1c41c4dd](watch/commits/1c41c4ddb9a5b04297a371bc4d6aba013ce33f17)) +- **errors:** + - `return next(err)` when experiencing errors, instead of res.json(500,{err:err}). Let the top-level error handler handle this (needed for upcoming versionerror discarding) + ([bf5e9016](watch/commits/bf5e9016a4cb7889b3a9e39b90eb35cb8f7f9ec8)) + - handle if err.message == undefined, send err + ([b42dacf2](watch/commits/b42dacf2035d62453b585cfcf453829a423b59de)) +- **event-tracking:** + - typo + ([ff9d4b88](watch/commits/ff9d4b886ef7a98da0514975441a8bb845496c31)) + - stripe sub, not pp + ([0c99976b](watch/commits/0c99976bf5a3c7f04f031d62a8b07c862c85a0a9)) - **find_uniq_user:** fix - ([ecbe780e](https://github.com/habitrpg/habitrpg/commits/ecbe780e70549b1470504efe052f238c89a9db14)) -- **mounts:** Move avatar upward when mounted regardless of pet - ([bc1adeb1](https://github.com/habitrpg/habitrpg/commits/bc1adeb1277103a5ca1f756e175ed68bbe837a2f)) -- **nodemon:** ignore CHANGELOG.md on watch - ([d6c55952](https://github.com/habitrpg/habitrpg/commits/d6c55952da8b49f36e9d8e4570d80931d081343d)) + ([ecbe780e](watch/commits/ecbe780e70549b1470504efe052f238c89a9db14)) +- **footer:** ensure window.env is accessible from static pages, so we can get deferred scripts on frontpage (esp google analytics) + ([67ee011a](watch/commits/67ee011aa35969db93e2d7dc1cd1e1f587f146de)) +- **groups:** + - pass missing next into Like function + ([afee0968](watch/commits/afee0968f8f6923847e186d3e11b9745ced9606e)) + - send error if +1 errored + ([5b6c4427](watch/commits/5b6c4427b504b6143f24bfee314f562b9803c5a4)) +- **hall:** let's try $gt instead of $ne:null, the query is still slow + ([a72b0131](watch/commits/a72b013131cfc7fa5d3affdbfe59b5b3cb15ae89)) +- **i18n:** do not save user language for now + ([094a4be0](watch/commits/094a4be0015f0f0deaaf94a0734193eb40a8beae)) +- **misc:** + - some styles & translations + ([8f19f225](watch/commits/8f19f225f104960b3cf27e229a5571e014be697c)) + - isStaticPage and debug buttons + ([19139f56](watch/commits/19139f562b8e68ed43f4cab748920f1e0634e86e)) +- **missing-gems:** remove ad-removal from script, since ads are part of subscription + ([e1240dde](watch/commits/e1240dde1d3dcaca4235fad384fea5c07a3706bf)) +- **mongoose:** typo + ([2786b362](watch/commits/2786b362067efdd245c3efa3a4891021fcfaab2d)) +- **mounts:** + - fix pets & mounts css to position the user based on pet/mount equip + ([37340d23](watch/commits/37340d23180da02d3742dc9be40a5fb780ecb13b)) + - Move avatar upward when mounted regardless of pet + ([bc1adeb1](watch/commits/bc1adeb1277103a5ca1f756e175ed68bbe837a2f)) +- **nodemon:** + - Add another ignore for weirdsauce Windoze dev environments + ([3fda08c3](watch/commits/3fda08c366793c8fbcbf701a9594ae3b2fd8bbea)) + - ignore CHANGELOG.md on watch + ([d6c55952](watch/commits/d6c55952da8b49f36e9d8e4570d80931d081343d)) - **party:** Round boss health up instead of to nearest integer - ([626da568](https://github.com/habitrpg/habitrpg/commits/626da5681f5ea95700f8ddf40587c7184926971c), - [#2504](https://github.com/habitrpg/habitrpg/issues/2504)) + ([626da568](watch/commits/626da5681f5ea95700f8ddf40587c7184926971c), + [#2504](watch/issues/2504)) - **paypal:** fixes #2492, remove environment check for now, only have production-mode option. revisit - ([1dc68112](https://github.com/habitrpg/habitrpg/commits/1dc68112d131e4ebdec32ddff938eb6311d6565f)) + ([1dc68112](watch/commits/1dc68112d131e4ebdec32ddff938eb6311d6565f)) +- **performance:** cache spritesmith image, fix #2633 + ([f03d7d7d](watch/commits/f03d7d7dde4f8cb39babd2b982d77e7f88f349b7)) +- **pets:** add questPets to UserSchema.items.mounts too fixes #2814 + ([42766125](watch/commits/42766125d5c8870f25c3a0a001473f700b8f6cc1)) - **profile:** fix bug where empty profile displayed on username click - ([0579c432](https://github.com/habitrpg/habitrpg/commits/0579c432489c4a038e8c9f95ea3b285f5abc146f), - [#2465](https://github.com/habitrpg/habitrpg/issues/2465)) + ([0579c432](watch/commits/0579c432489c4a038e8c9f95ea3b285f5abc146f), + [#2465](watch/issues/2465)) - **quests:** + - quests with a level cap cannot be bought before that level. + ([dab9ddbd](watch/commits/dab9ddbda27f5e10e4545fea703deebfe2dd9975), + [#2707](watch/issues/2707)) - bug fix to multi-drop - ([f478d10c](https://github.com/habitrpg/habitrpg/commits/f478d10c20f816cd104b3f0da814c189957f45f5)) + ([f478d10c](watch/commits/f478d10c20f816cd104b3f0da814c189957f45f5)) - list multiple rewards in dialog - ([e48c7277](https://github.com/habitrpg/habitrpg/commits/e48c7277f8256cf827790aece51e897fe0439374)) -- **settings:** reintroduce space between captions and help bubbles stripped during localization - ([5ddf09fe](https://github.com/habitrpg/habitrpg/commits/5ddf09fe13c7f8d844c8c47be0fb8f8b2fd1df33)) + ([e48c7277](watch/commits/e48c7277f8256cf827790aece51e897fe0439374)) +- **readme:** remove text about translations wip + ([f2bb1fd2](watch/commits/f2bb1fd26e44a9eb0ba325776bf335e021beeece)) +- **settings:** + - remove unnecessary code + ([5f0cf657](watch/commits/5f0cf6575c0dc4cfc041956e3dc27898d8b4242d)) + - reintroduce space between captions and help bubbles stripped during localization + ([5ddf09fe](watch/commits/5ddf09fe13c7f8d844c8c47be0fb8f8b2fd1df33)) - **spells:** + - temp workaround for spell & task being undefined. #2649 #2640 + ([241d0414](watch/commits/241d04140f5db77929d9f597d232f55843bb0f5d)) - more $rootScope spell-casting bug fixes - ([47bd6dcb](https://github.com/habitrpg/habitrpg/commits/47bd6dcb79778d90d6f3ddeb003c3d8e45433333)) + ([47bd6dcb](watch/commits/47bd6dcb79778d90d6f3ddeb003c3d8e45433333)) - add some spells tests, don't send up body to spell paths - ([e0646bb9](https://github.com/habitrpg/habitrpg/commits/e0646bb98d44b6874b5259107c9be5fa34c58933)) + ([e0646bb9](watch/commits/e0646bb98d44b6874b5259107c9be5fa34c58933)) - some $rootScope.applying action fixes so cast-ending is immediate instead of waiting on response. Also, slim down party population to the essentials to avoid RequestEntityTooLarge - ([c6f7ab8a](https://github.com/habitrpg/habitrpg/commits/c6f7ab8a5c6f4e382208a928b90ba5f4eba9cd37)) + ([c6f7ab8a](watch/commits/c6f7ab8a5c6f4e382208a928b90ba5f4eba9cd37)) - to cancel spell-casting - ([a1df41ad](https://github.com/habitrpg/habitrpg/commits/a1df41ad8165cd9eb6d2d5d59c7fe404edde716c)) + ([a1df41ad](watch/commits/a1df41ad8165cd9eb6d2d5d59c7fe404edde716c)) - **stable:** show hatchable combo when petOwned>0 (fyi @deilann) - ([51bff238](https://github.com/habitrpg/habitrpg/commits/51bff23885ca0080e7e71ff752daa0950ae923ae)) + ([51bff238](watch/commits/51bff23885ca0080e7e71ff752daa0950ae923ae)) - **stats:** Better layout for attribute point allocation - ([d782fc6b](https://github.com/habitrpg/habitrpg/commits/d782fc6b6a3cd7e90d327c93a5764626b2990c74)) + ([d782fc6b](watch/commits/d782fc6b6a3cd7e90d327c93a5764626b2990c74)) +- **swagger:** fix jade script warning in swagger + ([2e2fcfcf](watch/commits/2e2fcfcf464fbae21bff9e1be1ca915f071b976b)) - **tests:** - include select2 in test manifest - ([38b4cea7](https://github.com/habitrpg/habitrpg/commits/38b4cea73299f51c4db7f6b2eb12533d219745f8)) + ([38b4cea7](watch/commits/38b4cea73299f51c4db7f6b2eb12533d219745f8)) - don't use cluster in tests, else we get "connection refused" - ([7a479098](https://github.com/habitrpg/habitrpg/commits/7a479098dc6535654e322c737d80813790967941)) + ([7a479098](watch/commits/7a479098dc6535654e322c737d80813790967941)) - **todos:** - add migration for dateCreated & dateCompleted #2478 - ([4cc39f16](https://github.com/habitrpg/habitrpg/commits/4cc39f16a13f5fb9f0e3ddde7d274c0f224f4a0e)) + ([4cc39f16](watch/commits/4cc39f16a13f5fb9f0e3ddde7d274c0f224f4a0e)) - add dateCompleted to todos so they're archived 3 days after completion, not 3 days after creation. Fixes #2478 - ([b1afc177](https://github.com/habitrpg/habitrpg/commits/b1afc177aa4bfc4cbd9b847e40431db91666d9c3)) + ([b1afc177](watch/commits/b1afc177aa4bfc4cbd9b847e40431db91666d9c3)) +- **toolbar:** + - Tweak Settings drop-down + ([e241429c](watch/commits/e241429cc3d2eca18d2f5a9726f6caa6270a1b02)) + - Tweak icon popovers + ([4454204f](watch/commits/4454204f47f80e64119f7896bf246259173d115b)) + - tweaks + ([5501d57e](watch/commits/5501d57e107c0bc7085847b0c808f027360fa405)) - **translation:** Fix #2585. - ([06200acc](https://github.com/habitrpg/habitrpg/commits/06200accada462c3234ab407cfb0f6b684e5effe)) + ([06200acc](watch/commits/06200accada462c3234ab407cfb0f6b684e5effe)) - **translations:** - fix #2564 and similar ones - ([42740902](https://github.com/habitrpg/habitrpg/commits/42740902055a3807532028a5dfb39eff905c104f)) + ([42740902](watch/commits/42740902055a3807532028a5dfb39eff905c104f)) - add env.t to rootScope - ([13131087](https://github.com/habitrpg/habitrpg/commits/13131087ff9563d2d174b2c978102f0dc2b87387)) + ([13131087](watch/commits/13131087ff9563d2d174b2c978102f0dc2b87387)) - remove translations for privacy & terms - ([a9095f34](https://github.com/habitrpg/habitrpg/commits/a9095f346479336be13b2bf341666b908fa30b3d)) + ([a9095f34](watch/commits/a9095f346479336be13b2bf341666b908fa30b3d)) - merge @luveluen pull request, fix some syntax - ([a6c67f17](https://github.com/habitrpg/habitrpg/commits/a6c67f17815558f19895b8f67d29c40c14689f09)) + ([a6c67f17](watch/commits/a6c67f17815558f19895b8f67d29c40c14689f09)) - @lefnire now everything is ok - ([52decb7e](https://github.com/habitrpg/habitrpg/commits/52decb7edeefb4755ea832b0cf63eaeea5e93259)) + ([52decb7e](watch/commits/52decb7edeefb4755ea832b0cf63eaeea5e93259)) - correct some variables - ([fba73953](https://github.com/habitrpg/habitrpg/commits/fba739535bc1b630d73eb469448e9c3706043efd)) + ([fba73953](watch/commits/fba739535bc1b630d73eb469448e9c3706043efd)) - revert some views - ([d000c706](https://github.com/habitrpg/habitrpg/commits/d000c70679ae0e13d9bec749295e42cc8e299c95)) + ([d000c706](watch/commits/d000c70679ae0e13d9bec749295e42cc8e299c95)) +- **user:** + - make sure next is passed to all routes, and is available in err-back of batch updates + ([0c21f54c](watch/commits/0c21f54c67b52b07c417fd8216c6b04bce59d0ab)) + - if need to upgrade site, send 501, not 400 + ([ab86ba11](watch/commits/ab86ba11bdb3379a8d8fa1814879640d61c57227)) + - PUT user retricted path errors are 401, not 500 + ([0aec4caa](watch/commits/0aec4caa785c3b12e15f1c2e19c5b67b20d1a6e1)) +- **winston:** typo + ([83b3739f](watch/commits/83b3739f4671a08466e057242f936140d5c739ef)) ## Features - **administrators:** start adding features page for admin accounts - ([f7f4a0c1](https://github.com/habitrpg/habitrpg/commits/f7f4a0c166558ba7e5461732f7bb6d7bcac25f88)) + ([f7f4a0c1](watch/commits/f7f4a0c166558ba7e5461732f7bb6d7bcac25f88)) +- **attributes:** Add backfill button in flat and classbased allocation modes + ([76a7ab5b](watch/commits/76a7ab5bcce2d486dab3f447f0659ba870d1ff7e)) - **bailey:** notif about STWC updates + scroll-purchase deadlines (@colegleason) - ([90176444](https://github.com/habitrpg/habitrpg/commits/90176444e9c7a318040829e8b71d1493b5d58e9e)) + ([90176444](watch/commits/90176444e9c7a318040829e8b71d1493b5d58e9e)) +- **bug-crushing:** add the critical hammer of bug-crushing + ([00af5f7d](watch/commits/00af5f7d0258b0f7dddef8ede40bd825b057748a)) - **challenges:** - add angular-ui-select2 for simpler find/select challenge winner. - ([9fa45217](https://github.com/habitrpg/habitrpg/commits/9fa452173989889c48ed696a45cf4a1dc16294a4)) + ([9fa45217](watch/commits/9fa452173989889c48ed696a45cf4a1dc16294a4)) - add button for csv export - ([ae0d758d](https://github.com/habitrpg/habitrpg/commits/ae0d758d8fc751219a693fee7f3e3ebcfbd67590)) + ([ae0d758d](watch/commits/ae0d758d8fc751219a693fee7f3e3ebcfbd67590)) - add csv export for challenge progress. WIP, will refine this over time - but we need it something like this for the STWC come 1/31. - ([16a602f9](https://github.com/habitrpg/habitrpg/commits/16a602f94c3b7c99d49e42b47b4835b65a243690)) + ([16a602f9](watch/commits/16a602f94c3b7c99d49e42b47b4835b65a243690)) - markdown in challenge-descriptions - ([41233c7b](https://github.com/habitrpg/habitrpg/commits/41233c7b167905eeccfdff5589789e002ec23f97)) + ([41233c7b](watch/commits/41233c7b167905eeccfdff5589789e002ec23f97)) - **cheating:** prevent +habit spamming with a 10s timer - ([ad4ca665](https://github.com/habitrpg/habitrpg/commits/ad4ca6655a3bdd870bb08173530372f81fdc9102)) + ([ad4ca665](watch/commits/ad4ca6655a3bdd870bb08173530372f81fdc9102)) +- **event-tracking:** + - better page-view tracking via ui-router + ([b093717b](watch/commits/b093717b8d54b61e5d4b44b0d56a1f43308f078c)) + - track registration count + ([72b6c9bc](watch/commits/72b6c9bc9189275909804f9ecab18e9fe1f69d27)) + - pass ga to server user.ops + ([9217b517](watch/commits/9217b5174ab9ab4754269263b214f6bfe45d4f1d)) + - track ecommerce events + ([d89fb17b](watch/commits/d89fb17b03b2e2c0fb1da77fb13cc660a5b6c9d1)) + - add server-side GA tracking for ecommerce events + ([f7b4a04a](watch/commits/f7b4a04a590ade26871abc726ade2c666176488e)) + - start adding some client-side GA event-tracking + ([ffb42906](watch/commits/ffb42906e1d7c6bd8f01e715d98d96426bc6d0de)) +- **groups:** add group chat notifications + ([ce82be63](watch/commits/ce82be637d1d707e899aeee5f315da69367fa367)) +- **habitBirthday:** add habitrpg birthday event. includes cakes for all pets, absurd party robes, npc swap, badge, etc. @lemoness + ([aff885c0](watch/commits/aff885c05c03bd70beeb0db8d68922671fc46309)) - **homepage:** - start cleaning up homepage, add navbar for play button & upcoming links - ([0ddaae4d](https://github.com/habitrpg/habitrpg/commits/0ddaae4d7525277e696a57d20234e49cd6fd1cbc)) + ([0ddaae4d](watch/commits/0ddaae4d7525277e696a57d20234e49cd6fd1cbc)) - use .marketing for centering, add playbutton as static in footer. This is pretty ugly (http://gyazo.com/215e20729569689ab48cf56c71c1fe28), let's iterate / prettify. @deilann - ([47bcaf83](https://github.com/habitrpg/habitrpg/commits/47bcaf83e760dbb266ae7ff2f7299c2a1cdf3712)) + ([47bcaf83](watch/commits/47bcaf83e760dbb266ae7ff2f7299c2a1cdf3712)) - **marketing:** + - more copy for mobile + ([cbb44847](watch/commits/cbb448478edfd0003c43d20ed216bab20d25dadd)) + - start fleshing out the about page with images, content, etc. Create separate videos page + ([cb079977](watch/commits/cb079977e6f35f9308ab28158373dd3e1de9f798)) - add video tuts on "learn more" page until we have some copy - ([5028707c](https://github.com/habitrpg/habitrpg/commits/5028707c7b174b5e050c7c1662155e781a6b415b)) + ([5028707c](watch/commits/5028707c7b174b5e050c7c1662155e781a6b415b)) - some frontpage updates, a screenshot, & "contact us" button mods - ([a582a054](https://github.com/habitrpg/habitrpg/commits/a582a0546d680d36a21c507deff725a6c38fdb28)) + ([a582a054](watch/commits/a582a0546d680d36a21c507deff725a6c38fdb28)) - **premium:** + - subscriber mystery item (doesn't yet do anything) + ([d0342628](watch/commits/d0342628340ce7dce95fa20177ccbcfe1ebf93e6)) + - backport server code for premium subs (it's just ccard handling & uer model stuff) + ([3660f1a8](watch/commits/3660f1a85c1447de118f334a145d0d7698b93981)) - updates to group plans info page - ([66f95cdd](https://github.com/habitrpg/habitrpg/commits/66f95cdd4cfb698fddc765a77b66d29e31eb1361)) + ([66f95cdd](watch/commits/66f95cdd4cfb698fddc765a77b66d29e31eb1361)) - backport client-side premium code to public repo, it's client-side anyway (@colegleason @paglias) - ([2e18f0eb](https://github.com/habitrpg/habitrpg/commits/2e18f0eb82f5efc77544d33d1db3fbb9cc583124)) + ([2e18f0eb](watch/commits/2e18f0eb82f5efc77544d33d1db3fbb9cc583124)) - **quests:** + - add flags.levelDrops for dropping items at certain levels + ([78315d82](watch/commits/78315d828ba9a1033526b9a72b7c385281e6ad0a)) + - allow dropping scrolls in quests + ([54064deb](watch/commits/54064debf3c95390b5507acd826f9db3339b9f09)) + - allow html in quest notes + ([800231cf](watch/commits/800231cf6481351032d4e5143edd54f5e7e3a179)) - add level requirement for quests - ([9e69d795](https://github.com/habitrpg/habitrpg/commits/9e69d7959f174955f44429a94f22ce40fc5f7861)) + ([9e69d795](watch/commits/9e69d7959f174955f44429a94f22ce40fc5f7861)) - add canBuy so we can exclude certain items from the market (if you can only find them on quest-drop, etc). This isn't the prettiest, change? - ([f16654d2](https://github.com/habitrpg/habitrpg/commits/f16654d2354dc86cc7c52e1cf0562f850cf203be)) + ([f16654d2](watch/commits/f16654d2354dc86cc7c52e1cf0562f850cf203be)) - allow quests to drop multiple items - ([d9e5725e](https://github.com/habitrpg/habitrpg/commits/d9e5725ee13f7e9ad329fc548537d5265cf483ca)) + ([d9e5725e](watch/commits/d9e5725ee13f7e9ad329fc548537d5265cf483ca)) +- **rainbow-hair:** add rainbow hair colors + ([82d9233d](watch/commits/82d9233d99167d6704c878884dcc49a55cc7d884)) +- **restore:** add restore-gp back in. Parly to end the winter event, partly due to the convo at #2681 regarding subscriptions. Fixes #2681 + ([179316e1](watch/commits/179316e10fa7597b08573d94721861baa3dbbb1c)) +- **toolbar:** + - try with icons instead of text, test against prod / beta & get a vote. + ([7456f00d](watch/commits/7456f00dc6122ad293652b7a32fb4ce671f75241)) + - add toolbar featuring navigation, gems / subs, bailey, & chat / invite notifications + ([f72cb213](watch/commits/f72cb21300c078b439b3334bfa3e205ba04dc949)) +- **tracking:** gems > toolbar separately from wallet + ([f6abfc67](watch/commits/f6abfc67b31808c0e2d325c235747260855338c9)) +- **valentine:** valentine event + ([fd6eb872](watch/commits/fd6eb8724eae38d02849ffccb09f1f9c7d8e490d)) +- **winter:** + - remove purchasable winter hair colors, keep available if they purchased during event + ([f8796e90](watch/commits/f8796e9028d4f4cd2b5c5ede1734d2876d174dc9)) + - remove winter scrolls & snowballs + ([52f8f0d5](watch/commits/52f8f0d5b0fdf4271fcb5f7d497ad3bf544c24e8)) ## Docs diff --git a/public/css/inventory.styl b/public/css/inventory.styl index 44c4819343..468a9d15db 100644 --- a/public/css/inventory.styl +++ b/public/css/inventory.styl @@ -17,7 +17,8 @@ .equipment-title display: inline-block - vertical-align: middle + vertical-align: bottom + margin-right: 20px .stable .static-popover max-width: 550px diff --git a/public/css/shared.styl b/public/css/shared.styl index 1d4b71b780..3160cf6929 100644 --- a/public/css/shared.styl +++ b/public/css/shared.styl @@ -23,4 +23,17 @@ margin-bottom: 15px img - max-width: 100% \ No newline at end of file + max-width: 100% + +.hint + border-bottom:1px dotted #009999 + text-decoration: none + cursor: help +a.hint + border-bottom:1px dotted #009999 + text-decoration: none + cursor: pointer +a.hint:hover + text-decoration: none; +.vertical-20 + vertical-align: 20% diff --git a/views/options/inventory/inventory.jade b/views/options/inventory/inventory.jade index 94264834df..536220dac7 100644 --- a/views/options/inventory/inventory.jade +++ b/views/options/inventory/inventory.jade @@ -2,18 +2,14 @@ script(type='text/ng-template', id='partials/options.inventory.equipment.html') .container-fluid .row .col-md-6.border-right - h3.equipment-title=env.t('battleGear') -   - .glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('battleGearText')) + h3.equipment-title.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('battleGearText'))=env.t('battleGear') li.customize-menu.inventory-gear menu.pets-menu(label='{{label}}', ng-repeat='(klass,label) in {base:"Base", warrior:"Warrior", wizard:"Mage", rogue:"Rogue", healer:"Healer", special:"Special"}', ng-show='gear[klass]') div(ng-repeat='item in gear[klass]') button.customize-option(popover='{{item.notes}}', popover-title='{{item.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='user.ops.equip({params:{key:item.key}})', class='shop_{{item.key}}', ng-class='{selectableInventory: user.items.gear.equipped[item.type] == item.key}') .col-md-6 - h3.equipment-title=env.t('costume') -   - i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('costumeText')) - .checkbox + h3.equipment-title.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('costumeText'))=env.t('costume') + .checkbox.equipment-title label input(type="checkbox", ng-model="user.preferences.costume", ng-click='set({"preferences.costume":!user.preferences.costume})') |  diff --git a/views/options/profile.jade b/views/options/profile.jade index 18c0d72ef8..7e2008a228 100644 --- a/views/options/profile.jade +++ b/views/options/profile.jade @@ -125,11 +125,9 @@ script(id='partials/options.profile.stats.html', type='text/ng-template') table.table.table-striped tr td - strong + strong.inline {{user.stats.points}}  - =env.t('unallocated') -   - span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('levelPopover')) + strong.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('levelPopover'))=env.t('unallocated') td tr td(colspan=2) @@ -137,28 +135,20 @@ script(id='partials/options.profile.stats.html', type='text/ng-template') .checkbox label input(type='checkbox', ng-model='user.preferences.automaticAllocation', ng-change='set({"preferences.automaticAllocation": user.preferences.automaticAllocation?true: false})', ng-click='set({"preferences.allocationMode":"taskbased"})') - =env.t('autoAllocation') - |  - span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('autoAllocationPop')) + span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('autoAllocationPop'))=env.t('autoAllocation') form(ng-show='user.preferences.automaticAllocation',style='margin-left:1em') .radio label input(type='radio', name='allocationMode', value='flat', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "flat"})') - =env.t('evenAllocation') - |  - span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('evenAllocationPop')) + span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('evenAllocationPop'))=env.t('evenAllocation') .radio label input(type='radio', name='allocationMode', value='classbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "classbased"})') - =env.t('classAllocation') - |  - span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('classAllocationPop')) + span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('classAllocationPop'))=env.t('classAllocation') .radio label input(type='radio', name='allocationMode', value='taskbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "taskbased"})') - =env.t('taskAllocation') - |  - span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('taskAllocationPop')) + span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('taskAllocationPop'))=env.t('taskAllocation') div(ng-show='user.preferences.automaticAllocation && !(user.preferences.allocationMode === "taskbased") && (user.stats.points > 0)') a.btn.btn-primary.btn-xs(ng-click='user.ops.allocateNow({})', popover-trigger='mouseenter', popover-placement='right', popover=env.t('distributePointsPop')) span.glyphicon.glyphicon-download diff --git a/views/options/settings.jade b/views/options/settings.jade index 1befe51f21..5fcb436141 100644 --- a/views/options/settings.jade +++ b/views/options/settings.jade @@ -42,33 +42,23 @@ script(type='text/ng-template', id='partials/options.settings.settings.html') .checkbox label input(type='checkbox', ng-click='set({"preferences.hideHeader":user.preferences.hideHeader?false:true})', ng-checked='user.preferences.hideHeader!==true') - =env.t('showHeader') -   - span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('showHeaderPop')) + span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('showHeaderPop'))=env.t('showHeader') .checkbox label input(type='checkbox', ng-click='toggleStickyHeader()', ng-checked='user.preferences.stickyHeader!==false') - =env.t('stickyHeader') -   - span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('stickyHeaderPop')) + span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('stickyHeaderPop'))=env.t('stickyHeader') .checkbox label input(type='checkbox', ng-model='user.preferences.newTaskEdit', ng-change='set({"preferences.newTaskEdit": user.preferences.newTaskEdit?true: false})') - =env.t('newTaskEdit') -   - span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('newTaskEditPop')) + span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('newTaskEditPop'))=env.t('newTaskEdit') .checkbox label input(type='checkbox', ng-model='user.preferences.tagsCollapsed', ng-change='set({"preferences.tagsCollapsed": user.preferences.tagsCollapsed?true: false})') - =env.t('startCollapsed') -   - span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('startCollapsedPop')) + span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('startCollapsedPop'))=env.t('startCollapsed') .checkbox label input(type='checkbox', ng-model='user.preferences.advancedCollapsed', ng-change='set({"preferences.advancedCollapsed": user.preferences.advancedCollapsed?true: false})') - =env.t('startAdvCollapsed') -   - span.glyphicon.glyphicon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('startAdvCollapsedPop')) + span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('startAdvCollapsedPop'))=env.t('startAdvCollapsed') button.btn.btn-default(ng-click='showTour()', popover-placement='right', popover-trigger='mouseenter', popover=env.t('restartTour'))= env.t('showTour') button.btn.btn-default(ng-click='showBailey()', popover-trigger='mouseenter', popover-placement='right', popover=env.t('showBaileyPop'))= env.t('showBailey') button.btn.btn-default(ng-click='openRestoreModal()', popover-trigger='mouseenter', popover-placement='right', popover=env.t('fixValPop'))= env.t('fixVal') @@ -124,21 +114,21 @@ script(id='partials/options.settings.subscription.perks.html',type='text/ng-temp table.table.table-striped tr td - span.dashed-underline(popover=env.t('disableAdsText'),popover-trigger='mouseenter',popover-placement='right')=env.t('disableAds') + span.hint(popover=env.t('disableAdsText'),popover-trigger='mouseenter',popover-placement='right')=env.t('disableAds') tr td - span.dashed-underline(popover=env.t('buyGemsGoldText', {gemCost: "{{Shared.planGemLimits.convRate}}", gemLimit: "{{Shared.planGemLimits.convCap}}"}),popover-trigger='mouseenter',popover-placement='right')=env.t('buyGemsGold') + span.hint(popover=env.t('buyGemsGoldText', {gemCost: "{{Shared.planGemLimits.convRate}}", gemLimit: "{{Shared.planGemLimits.convCap}}"}),popover-trigger='mouseenter',popover-placement='right')=env.t('buyGemsGold') tr td - span.dashed-underline(popover=env.t('retainHistoryText'),popover-trigger='mouseenter',popover-placement='right')=env.t('retainHistory') + span.hint(popover=env.t('retainHistoryText'),popover-trigger='mouseenter',popover-placement='right')=env.t('retainHistory') tr td - span.dashed-underline(popover=env.t('doubleDropsText'),popover-trigger='mouseenter',popover-placement='right')=env.t('doubleDrops') + span.hint(popover=env.t('doubleDropsText'),popover-trigger='mouseenter',popover-placement='right')=env.t('doubleDrops') //-tr //- td +20 gems to your account tr td - span.dashed-underline(popover=env.t('supportDevsText'),popover-trigger='mouseenter',popover-placement='right')=env.t('supportDevs') + span.hint(popover=env.t('supportDevsText'),popover-trigger='mouseenter',popover-placement='right')=env.t('supportDevs') tr td.alert.alert-info $5  =env.t('monthUSD') diff --git a/views/options/social/challenge-box.jade b/views/options/social/challenge-box.jade index 758a28ece3..d157c0584e 100644 --- a/views/options/social/challenge-box.jade +++ b/views/options/social/challenge-box.jade @@ -1,9 +1,12 @@ // ------ Challenges ------- +<<<<<<< HEAD .panel.panel-default .panel-heading h3.panel-title=env.t('challenges') +   a.pull-right(target='_blank', href='https://trello.com/card/challenges-individual-party-guild-public/50e5d3684fe3a7266b0036d6/58') - span.glyphicon.glyphicon-question-sign + small + ="More info" .panel-body.modal-fixed-height(bindonce='group.challenges') div(ng-if='group.challenges.length > 0') table.table.table-striped diff --git a/views/options/social/challenges.jade b/views/options/social/challenges.jade index 748349de64..7d0ea0aecb 100644 --- a/views/options/social/challenges.jade +++ b/views/options/social/challenges.jade @@ -41,7 +41,7 @@ script(type='text/ng-template', id='partials/options.social.challenges.detail.ht .well(bindonce='challenge', ng-if='challenge.description') markdown(ng-model='challenge.description') - span.glyphicon.glyphicon-question-sign(popover=env.t('challengeDiscription'), popover-trigger='mouseenter', popover-placement='right') + .modal-body=env.t('challengeDiscription') habitrpg-tasks(obj='challenge', main=false) // Member List @@ -105,8 +105,9 @@ script(type='text/ng-template', id='partials/options.social.challenges.html') .form-group input.form-control(type='text', minlength="3", maxlength="16", ng-model='newChallenge.shortName', placeholder=env.t('challengeTag'), required) - a(target='_blank', href='http://habitrpg.wikia.com/wiki/Tags') - span.glyphicon.glyphicon-question-sign(popover=env.t('challengeTagPop'), popover-trigger='mouseenter', popover-placement='right') +   + a.hint.vertical-20(target='_blank', href='http://habitrpg.wikia.com/wiki/Tags', popover=env.t('challengeTagPop'), popover-trigger='mouseenter', popover-placement='right') + ="More info" .form-group textarea.form-control(cols='3', placeholder=env.t('challengeDescr'), ng-model='newChallenge.description') @@ -118,7 +119,9 @@ script(type='text/ng-template', id='partials/options.social.challenges.html') .form-group input.form-control(type='number', min="{{newChallenge.group=='habitrpg' ? 1 : 0}}", max="{{maxPrize}}", ng-model='newChallenge.prize', placeholder=env.t('prize')) span.input-suffix.Pet_Currency_Gem1x.inline-gems - span.glyphicon.glyphicon-question-sign(popover=env.t('prizePop'), popover-trigger='mouseenter', popover-placement='right') +   + span.hint.vertical-20(popover=env.t('prizePop'), popover-trigger='mouseenter', popover-placement='right') + ="More info" span(ng-show='newChallenge.group=="habitrpg"') !=env.t('publicChallenges') diff --git a/views/shared/profiles/stats.jade b/views/shared/profiles/stats.jade index 4f3addef0d..b833f27368 100644 --- a/views/shared/profiles/stats.jade +++ b/views/shared/profiles/stats.jade @@ -29,54 +29,43 @@ h4=env.t('attributes') table.table.table-striped tr(ng-repeat='(k,v) in {str:"Strength (STR)",int:"Intelligence (INT)",con:"Constitution (CON)",per:"Perception (PER)"}') td - span.glyphicon.glyphicon-question-sign(ng-show='k=="str"', popover-title=env.t('strength'), popover-placement='right', popover=env.t('strengthText'), popover-trigger='mouseenter') - |   - span.glyphicon.glyphicon-question-sign(ng-show='k=="con"', popover-title=env.t('constitution'), popover-placement='right', popover=env.t('conText') popover-trigger='mouseenter') - |   - span.glyphicon.glyphicon-question-sign(ng-show='k=="per"', popover-title=env.t('perception'), popover-placement='right', popover=env.t('perText'), popover-trigger='mouseenter') - |   - span.glyphicon.glyphicon-question-sign(ng-show='k=="int"', popover-title=env.t('intelligence'), popover-placement='right', popover=env.t('intText'), popover-trigger='mouseenter') - |   - strong {{v}}: {{profile._statsComputed[k]}} + span.hint(ng-if='k=="str"', popover-title=env.t('strength'), popover-placement='right', popover=env.t('strengthText'), popover-trigger='mouseenter', style='margin-right:3px') + strong {{v}} + span.hint(ng-if='k=="con"', popover-title=env.t('constitution'), popover-placement='right', popover=env.t('conText') popover-trigger='mouseenter', style='margin-right:3px') + strong {{v}} + span.hint(ng-if='k=="per"', popover-title=env.t('perception'), popover-placement='right', popover=env.t('perText'), popover-trigger='mouseenter', style='margin-right:3px') + strong {{v}} + span.hint(ng-if='k=="int"', popover-title=env.t('intelligence'), popover-placement='right', popover=env.t('intText'), popover-trigger='mouseenter', style='margin-right:3px') + strong {{v}} + span + strong : {{profile._statsComputed[k]}} td ul.list-unstyled li(ng-show='profile.stats.lvl > 1') - span.glyphicon.glyphicon-question-sign(popover-title=env.t('levelBonus'), popover-trigger='mouseenter', popover-placement='top', popover=env.t('levelBonusText')) - | - =env.t('level') + span.hint(popover-title=env.t('levelBonus'), popover-trigger='mouseenter', popover-placement='top', popover=env.t('levelBonusText'))=env.t('level') |: {{(profile.stats.lvl - 1) / 2}}  li(ng-show='Content.gear.flat[profile.items.gear.equipped.weapon][k] + Content.gear.flat[profile.items.gear.equipped.armor][k] + Content.gear.flat[profile.items.gear.equipped.head][k] + Content.gear.flat[profile.items.gear.equipped.shield][k] > 0') - span.glyphicon.glyphicon-question-sign(popover-title=env.t('equipment'), popover-trigger='mouseenter', popover-placement='top', popover=env.t('equipmentBonusText')) - | - =env.t('equipment') + span.hint(popover-title=env.t('equipment'), popover-trigger='mouseenter', popover-placement='top', popover=env.t('equipmentBonusText'))=env.t('equipment') |: {{Content.gear.flat[profile.items.gear.equipped.weapon][k] + Content.gear.flat[profile.items.gear.equipped.armor][k] + Content.gear.flat[profile.items.gear.equipped.head][k] + Content.gear.flat[profile.items.gear.equipped.shield][k] || 0}}  li(ng-show='profile._statsComputed[k] - profile.stats.buffs[k] - ((profile.stats.lvl - 1) / 2) - Content.gear.flat[profile.items.gear.equipped.weapon][k] - Content.gear.flat[profile.items.gear.equipped.armor][k] - Content.gear.flat[profile.items.gear.equipped.head][k] - Content.gear.flat[profile.items.gear.equipped.shield][k] - profile.stats[k] > 0') - span.glyphicon.glyphicon-question-sign(popover-title=env.t('classBonus'), popover-trigger='mouseenter', popover-placement='top', popover=env.t('classBonusText')) - | - =env.t('classEquipBonus') + span.hint(popover-title=env.t('classBonus'), popover-trigger='mouseenter', popover-placement='top', popover=env.t('classBonusText'))=env.t('classEquipBonus') |: {{profile._statsComputed[k] - profile.stats.buffs[k] - ((profile.stats.lvl - 1) / 2) - Content.gear.flat[profile.items.gear.equipped.weapon][k] - Content.gear.flat[profile.items.gear.equipped.armor][k] - Content.gear.flat[profile.items.gear.equipped.head][k] - Content.gear.flat[profile.items.gear.equipped.shield][k] - profile.stats[k]}}  li(ng-show='profile.stats[k] > 0') - span.glyphicon.glyphicon-question-sign(popover-title=env.t('allocatedPoints'), popover-trigger='mouseenter', popover-placement='top', popover=env.t('allocatedPointsText')) - | - =env.t('allocated') + span.hint(popover-title=env.t('allocatedPoints'), popover-trigger='mouseenter', popover-placement='top', popover=env.t('allocatedPointsText'))=env.t('allocated') |: {{profile.stats[k] || 0}}  li(ng-show='profile.stats.buffs[k] > 0') - span.glyphicon.glyphicon-question-sign(popover-title=env.t('buffs'), popover-trigger='mouseenter', popover-placement='top', popover=env.t('buffsText')) - | - =env.t('buffs') + span.hint(popover-title=env.t('buffs'), popover-trigger='mouseenter', popover-placement='top', popover=env.t('buffsText'))=env.t('buffs') |: {{profile.stats.buffs[k] || 0}}  tr(ng-if='profile.stats.buffs.stealth') td - i.icon-question-sign(popover-title=env.t('stealth'), popover-trigger='mouseenter', popover-placement='right', popover=env.t('stealthNewDay')) -   - strong=env.t('stealth') - |: {{profile.stats.buffs.stealth}} + span.hint(popover-title=env.t('stealth'), popover-trigger='mouseenter', popover-placement='right', popover=env.t('stealthNewDay')) + strong + =env.t('stealth') + strong : {{profile.stats.buffs.stealth}}  td tr(ng-if='profile.stats.buffs.streaks') td - i.icon-question-sign(popover-title=env.t('streaksFrozen'), popover-trigger='mouseenter', popover-placement='right', popover=env.t('streaksFrozenText')) -   - strong=env.t('streaksFrozen') + strong.hint(popover-title=env.t('streaksFrozen'), popover-trigger='mouseenter', popover-placement='right', popover=env.t('streaksFrozenText'))=env.t('streaksFrozen') td h4(ng-show='user.flags.dropsEnabled')=env.t('pets') diff --git a/views/shared/tasks/task.jade b/views/shared/tasks/task.jade index 6d0e515648..555373642c 100644 --- a/views/shared/tasks/task.jade +++ b/views/shared/tasks/task.jade @@ -125,9 +125,7 @@ li(bindonce='list', bo-id='"task-"+task.id', ng-repeat='task in obj[list.type+"s form.checklist-form(ng-if='task.checklist') fieldset.option-group.task-checklist(ng-if='!$state.includes("options.social.challenges")') legend.option-title - =env.t('checklist') - |     - span.glyphicon.glyphicon-question-sign(popover=env.t('checklistText'),popover-trigger='mouseenter',popover-placement='bottom') + span.hint(popover=env.t('checklistText'),popover-trigger='mouseenter',popover-placement='bottom')=env.t('checklist') ul.list-unstyled li(ng-repeat='item in task.checklist') a.pull-right.checklist-icons(ng-click='removeChecklistItem(task,$event,$index,true)') @@ -192,10 +190,7 @@ li(bindonce='list', bo-id='"task-"+task.id', ng-repeat='task in obj[list.type+"s p.option-title.mega(ng-click='task._advanced = !task._advanced')=env.t('advancedOptions') fieldset.option-group.advanced-option(ng-class="{visuallyhidden: task._advanced}") legend.option-title - a.priority-multiplier-help(href='https://trello.com/card/priority-multiplier/50e5d3684fe3a7266b0036d6/17', target='_blank', popover-title=env.t('difficultyHelpTitle'), popover-trigger='mouseenter', popover=env.t('difficultyHelpContent')) - span.glyphicon.glyphicon-question-sign - |   - =env.t('difficulty') + a.hint.priority-multiplier-help(href='https://trello.com/card/priority-multiplier/50e5d3684fe3a7266b0036d6/17', target='_blank', popover-title=env.t('difficultyHelpTitle'), popover-trigger='mouseenter', popover=env.t('difficultyHelpContent'))=env.t('difficulty') .task-controls.tile-group.priority-multiplier button.task-action-btn.tile(type='button', ng-class='{active: task.priority==1 || !task.priority}', ng-click='task.challenge.id || (task.priority=1)')=env.t('easy') button.task-action-btn.tile(type='button', ng-class='{active: task.priority==1.5}', ng-click='task.challenge.id || (task.priority=1.5)')=env.t('medium') @@ -212,8 +207,6 @@ li(bindonce='list', bo-id='"task-"+task.id', ng-repeat='task in obj[list.type+"s button.task-action-btn.tile(type='button', ng-class='{active: task.attribute=="int"}', ng-click='task.attribute="int"')=env.t('mental') button.task-action-btn.tile(type='button', ng-class='{active: task.attribute=="con"}', ng-click='task.attribute="con"')=env.t('social') button.task-action-btn.tile(type='button', ng-class='{active: task.attribute=="per"}', ng-click='task.attribute="per"', popover=env.t('otherExamples'), popover-trigger='mouseenter', popover-placement='top')=env.t('other') - |  - span.glyphicon.glyphicon-question-sign button.task-action-btn.tile.spacious(type='submit')=env.t('saveAndClose')