diff --git a/common/locales/en/challenge.json b/common/locales/en/challenge.json
index c89f1caf16..abce3c33a6 100644
--- a/common/locales/en/challenge.json
+++ b/common/locales/en/challenge.json
@@ -56,5 +56,8 @@
"backToChallenges": "Back to all challenges",
"prizeValue": "<%= gemcount %> <%= gemicon %> Prize",
"clone": "Clone",
- "challengeNotEnoughGems": "You do not have enough gems to post this challenge."
+ "challengeNotEnoughGems": "You do not have enough gems to post this challenge.",
+ "noPermissionEditChallenge": "You don't have permissions to edit this challenge",
+ "noPermissionDeleteChallenge": "You don't have permissions to delete this challenge",
+ "noPermissionCloseChallenge": "You don't have permissions to close this challenge"
}
diff --git a/test/api/challenges.coffee b/test/api/challenges.coffee
index 1f47dbc1d8..ad4172c30a 100644
--- a/test/api/challenges.coffee
+++ b/test/api/challenges.coffee
@@ -10,7 +10,7 @@ describe "Challenges", ->
updateTodo = undefined
group = undefined
- before (done) ->
+ beforeEach (done) ->
async.waterfall [
(cb) ->
registerNewUser(cb, true)
@@ -23,68 +23,123 @@ describe "Challenges", ->
group = res.body
expect(group.members.length).to.equal 1
expect(group.leader).to.equal user._id
+ cb()
+ , (cb) ->
+ request.post(baseURL + "/challenges").send(
+ group: group._id
+ dailys: [
+ type: "daily"
+ text: "Challenge Daily"
+ ]
+ todos: [{
+ type: "todo"
+ text: "Challenge Todo 1"
+ notes: "Challenge Notes"
+ }]
+ rewards: []
+ habits: []
+ ).end (res) ->
+ challenge = res.body
done()
]
- it "Creates a challenge", (done) ->
- request.post(baseURL + "/challenges").send(
- group: group._id
- dailys: [
- type: "daily"
- text: "Challenge Daily"
- ]
- todos: [{
- type: "todo"
- text: "Challenge Todo 1"
- notes: "Challenge Notes"
- }, {
- type: "todo"
- text: "Challenge Todo 2"
- notes: "Challenge Notes"
- }]
- rewards: []
- habits: []
- official: true
- ).end (res) ->
- expectCode res, 200
- async.parallel [
- (cb) ->
- User.findById user._id, cb
- (cb) ->
- Challenge.findById res.body._id, cb
- ], (err, results) ->
- _user = results[0]
- challenge = results[1]
- expect(_user.dailys[_user.dailys.length - 1].text).to.equal "Challenge Daily"
- updateTodo = _user.todos[_user.todos.length - 1]
- expect(updateTodo.text).to.equal "Challenge Todo 2"
- expect(challenge.official).to.equal false
- user = _user
- done()
-
- it "User updates challenge notes", (done) ->
- updateTodo.notes = "User overriden notes"
- request.put(baseURL + "/user/tasks/" + updateTodo.id).send(updateTodo).end (res) ->
- done() # we'll do the check down below
-
- it "Change challenge daily", (done) ->
- challenge.dailys[0].text = "Updated Daily"
- challenge.todos[0].notes = "Challenge Updated Todo Notes"
- request.post(baseURL + "/challenges/" + challenge._id).send(challenge).end (res) ->
- setTimeout (->
- User.findById user._id, (err, _user) ->
- expectCode res, 200
- expect(_user.dailys[_user.dailys.length - 1].text).to.equal "Updated Daily"
- expect(res.body.todos[0].notes).to.equal "Challenge Updated Todo Notes"
- expect(_user.todos[_user.todos.length - 1].notes).to.equal "User overriden notes"
- user = _user
+ describe 'POST /challenge', ->
+
+ it "Creates a challenge", (done) ->
+ request.post(baseURL + "/challenges").send(
+ group: group._id
+ dailys: [
+ type: "daily"
+ text: "Challenge Daily"
+ ]
+ todos: [{
+ type: "todo"
+ text: "Challenge Todo 1"
+ notes: "Challenge Notes"
+ }, {
+ type: "todo"
+ text: "Challenge Todo 2"
+ notes: "Challenge Notes"
+ }]
+ rewards: []
+ habits: []
+ official: true
+ ).end (res) ->
+ expectCode res, 200
+ async.parallel [
+ (cb) ->
+ User.findById user._id, cb
+ (cb) ->
+ Challenge.findById res.body._id, cb
+ ], (err, results) ->
+ user = results[0]
+ challenge = results[1]
+ expect(user.dailys[user.dailys.length - 1].text).to.equal "Challenge Daily"
+ expect(challenge.official).to.equal false
done()
- ), 500 # we have to wait a while for users' tasks to be updated, called async on server
- it "Shows user notes on challenge page", (done) ->
- request.get(baseURL + "/challenges/" + challenge._id + "/member/" + user._id).end (res) ->
- expect(res.body.todos[res.body.todos.length - 1].notes).to.equal "User overriden notes"
- done()
+ describe 'POST /challenge/:cid', ->
+ it "updates the notes on user's version of a challenge task's note without updating the challenge", (done) ->
+ updateTodo = challenge.todos[0]
+ updateTodo.notes = "User overriden notes"
+ async.waterfall [
+ (cb) ->
+ request.put(baseURL + "/user/tasks/" + updateTodo.id).send(updateTodo).end (res) ->
+ cb()
+ , (cb) ->
+ Challenge.findById challenge._id, cb
+ , (chal, cb) ->
+ expect(chal.todos[0].notes).to.eql("Challenge Notes")
+ cb()
+ , (cb) ->
+ request.get(baseURL + "/user/tasks/" + updateTodo.id)
+ .end (res) ->
+ expect(res.body.notes).to.eql("User overriden notes")
+ done()
+ ]
+
+ it "changes user's copy of challenge tasks when the challenge is updated", (done) ->
+ challenge.dailys[0].text = "Updated Daily"
+ request.post(baseURL + "/challenges/" + challenge._id)
+ .send(challenge)
+ .end (res) ->
+ challenge = res.body
+ expect(challenge.dailys[0].text).to.equal "Updated Daily"
+ User.findById user._id, (err, _user) ->
+ expectCode res, 200
+ expect(_user.dailys[_user.dailys.length - 1].text).to.equal "Updated Daily"
+ done()
+
+ it "does not changes user's notes on tasks when challenge task notes are updated", (done) ->
+ challenge.todos[0].notes = "Challenge Updated Todo Notes"
+ request.post(baseURL + "/challenges/" + challenge._id)
+ .send(challenge)
+ .end (res) ->
+ challenge = res.body
+ expect(challenge.todos[0].notes).to.equal "Challenge Updated Todo Notes"
+ User.findById user._id, (err, _user) ->
+ expectCode res, 200
+ expect(_user.todos[_user.todos.length - 1].notes).to.equal "Challenge Notes"
+ done()
+
+
+ it "shows user notes on challenge page", (done) ->
+ updateTodo = challenge.todos[0]
+ updateTodo.notes = "User overriden notes"
+ async.waterfall [
+ (cb) ->
+ request.put(baseURL + "/user/tasks/" + updateTodo.id).send(updateTodo).end (res) ->
+ cb()
+ , (cb) ->
+ Challenge.findById challenge._id, cb
+ , (chal, cb) ->
+ expect(chal.todos[0].notes).to.eql("Challenge Notes")
+ cb()
+ , (cb) ->
+ request.get(baseURL + "/challenges/" + challenge._id + "/member/" + user._id).end (res) ->
+ expect(res.body.todos[res.body.todos.length - 1].notes).to.equal "User overriden notes"
+ done()
+ ]
it "Complete To-Dos", (done) ->
User.findById user._id, (err, _user) ->
@@ -116,7 +171,7 @@ describe "Challenges", ->
done()
), 100 # we need to wait for challenge to update user, it's a background job for perf reasons
- it "Admin creates a challenge", (done) ->
+ it "admin creates a challenge", (done) ->
User.findByIdAndUpdate user._id,
$set:
"contributor.admin": true
@@ -204,3 +259,85 @@ describe "Challenges", ->
User.findById user._id, (err, _user) ->
expect(_user.balance).to.equal 5.5
done()
+
+ describe "non-owner permissions", () ->
+ challenge = undefined
+
+ beforeEach (done) ->
+ async.waterfall [
+ (cb) ->
+ request.post(baseURL + "/challenges").send(
+ group: group._id
+ name: 'challenge name'
+ dailys: [
+ type: "daily"
+ text: "Challenge Daily"
+ ]
+ ).end (res) ->
+ challenge = res.body
+ cb()
+
+ (cb) ->
+ registerNewUser(done, true)
+ ]
+
+ context "non-owner", () ->
+
+ it 'can not edit challenge', (done) ->
+ challenge.name = 'foobar'
+ request.post(baseURL + "/challenges/" + challenge._id)
+ .send(challenge)
+ .end (res) ->
+ error = res.body.err
+
+ expect(error).to.eql("You don't have permissions to edit this challenge")
+ done()
+
+ it 'can not close challenge', (done) ->
+ request.post(baseURL + "/challenges/" + challenge._id + "/close?uid=" + user._id)
+ .end (res) ->
+ error = res.body.err
+
+ expect(error).to.eql("You don't have permissions to close this challenge")
+ done()
+
+ it 'can not delete challenge', (done) ->
+ request.del(baseURL + "/challenges/" + challenge._id)
+ .end (res) ->
+ error = res.body.err
+
+ expect(error).to.eql("You don't have permissions to delete this challenge")
+ done()
+
+ context "non-owner that is an admin", () ->
+
+ beforeEach (done) ->
+ User.findByIdAndUpdate(user._id, { 'contributor.admin': true }, done)
+
+ it 'can edit challenge', (done) ->
+ challenge.name = 'foobar'
+ request.post(baseURL + "/challenges/" + challenge._id)
+ .send(challenge)
+ .end (res) ->
+ expect(res.body.err).to.not.exist
+ Challenge.findById challenge._id, (err, chal) ->
+ expect(chal.name).to.eql('foobar')
+ done()
+
+ it 'can close challenge', (done) ->
+ request.post(baseURL + "/challenges/" + challenge._id + "/close?uid=" + user._id)
+ .end (res) ->
+ expect(res.body.err).to.not.exist
+ User.findById user._id, (err, usr) ->
+ expect(usr.achievements.challenges[0]).to.eql(challenge.name)
+ done()
+
+ it 'can delete challenge', (done) ->
+ request.del(baseURL + "/challenges/" + challenge._id)
+ .end (res) ->
+ expect(res.body.err).to.not.exist
+ request.get(baseURL + "/challenges/" + challenge._id)
+ .end (res) ->
+ error = res.body.err
+ expect(error).to.eql("Challenge #{challenge._id} not found")
+ done()
diff --git a/website/public/front/.DS_Store b/website/public/front/.DS_Store
deleted file mode 100644
index 4101a837aa..0000000000
Binary files a/website/public/front/.DS_Store and /dev/null differ
diff --git a/website/public/front/css/.DS_Store b/website/public/front/css/.DS_Store
deleted file mode 100644
index 5008ddfcf5..0000000000
Binary files a/website/public/front/css/.DS_Store and /dev/null differ
diff --git a/website/public/front/images/.DS_Store b/website/public/front/images/.DS_Store
deleted file mode 100644
index a032bfd2f7..0000000000
Binary files a/website/public/front/images/.DS_Store and /dev/null differ
diff --git a/website/public/front/images/avatar/.DS_Store b/website/public/front/images/avatar/.DS_Store
deleted file mode 100644
index 5008ddfcf5..0000000000
Binary files a/website/public/front/images/avatar/.DS_Store and /dev/null differ
diff --git a/website/public/front/images/party/.DS_Store b/website/public/front/images/party/.DS_Store
deleted file mode 100644
index 5008ddfcf5..0000000000
Binary files a/website/public/front/images/party/.DS_Store and /dev/null differ
diff --git a/website/public/front/images/presslogos/.DS_Store b/website/public/front/images/presslogos/.DS_Store
deleted file mode 100644
index 5008ddfcf5..0000000000
Binary files a/website/public/front/images/presslogos/.DS_Store and /dev/null differ
diff --git a/website/public/front/images/testimonials/.DS_Store b/website/public/front/images/testimonials/.DS_Store
deleted file mode 100644
index 5008ddfcf5..0000000000
Binary files a/website/public/front/images/testimonials/.DS_Store and /dev/null differ
diff --git a/website/public/front/images/uses/.DS_Store b/website/public/front/images/uses/.DS_Store
deleted file mode 100644
index 5008ddfcf5..0000000000
Binary files a/website/public/front/images/uses/.DS_Store and /dev/null differ
diff --git a/website/public/front/js/.DS_Store b/website/public/front/js/.DS_Store
deleted file mode 100644
index 5008ddfcf5..0000000000
Binary files a/website/public/front/js/.DS_Store and /dev/null differ
diff --git a/website/src/controllers/challenges.js b/website/src/controllers/challenges.js
index 8dea70cd1d..a8bc4dc244 100644
--- a/website/src/controllers/challenges.js
+++ b/website/src/controllers/challenges.js
@@ -225,7 +225,7 @@ api.update = function(req, res, next){
},
function(_before, cb) {
if (!_before) return cb('Challenge ' + cid + ' not found');
- if (_before.leader != user._id) return cb("You don't have permissions to edit this challenge");
+ if (_before.leader != user._id && !user.contributor.admin) return cb(shared.i18n.t('noPermissionEditChallenge', req.language));
// Update the challenge, since syncing will need the updated challenge. But store `before` we're going to do some
// before-save / after-save comparison to determine if we need to sync to users
before = _before;
@@ -307,7 +307,7 @@ api['delete'] = function(req, res, next){
},
function(chal, cb){
if (!chal) return cb('Challenge ' + cid + ' not found');
- if (chal.leader != user._id) return cb("You don't have permissions to edit this challenge");
+ if (chal.leader != user._id && !user.contributor.admin) return cb(shared.i18n.t('noPermissionDeleteChallenge', req.language));
if (chal.group != 'habitrpg') user.balance += chal.prize/4; // Refund gems to user if a non-tavern challenge
user.save(cb);
},
@@ -336,7 +336,7 @@ api.selectWinner = function(req, res, next) {
function(_chal, cb){
chal = _chal;
if (!chal) return cb('Challenge ' + cid + ' not found');
- if (chal.leader != user._id) return cb("You don't have permissions to edit this challenge");
+ if (chal.leader != user._id && !user.contributor.admin) return cb(shared.i18n.t('noPermissionCloseChallenge', req.language));
User.findById(req.query.uid, cb)
},
function(winner, cb){
diff --git a/website/views/options/inventory/pets.jade b/website/views/options/inventory/pets.jade
index e01d89c17c..6fbe1f5fcd 100644
--- a/website/views/options/inventory/pets.jade
+++ b/website/views/options/inventory/pets.jade
@@ -36,7 +36,7 @@ mixin petList(source)
each t,k in env.Content.specialPets
- var egg = k.split('-')[0], pot = k.split('-')[1]
button(ng-if='user.items.pets["#{egg}-#{pot}"]', class="pet-button Pet-#{egg}-#{pot}", ng-class='{active: user.items.currentPet == "#{egg}-#{pot}"}', ng-click='choosePet("#{egg}", "#{pot}")', popover=env.t(t), popover-trigger='mouseenter', popover-placement='bottom')
- a(target='_blank', href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG')
+ a(target='_blank', href='http://habitica.wikia.com/wiki/Contributing_to_Habitica')
button(ng-if='!user.items.pets["Dragon-Hydra"]', class="pet-button pet-not-owned", popover-trigger='mouseenter', popover-placement='right', popover=env.t('rarePetPop1'), popover-title=env.t('rarePetPop2'))
.PixelPaw-Gold
diff --git a/website/views/options/inventory/time-travelers.jade b/website/views/options/inventory/time-travelers.jade
index 2a3f5e48d3..7e7332429a 100644
--- a/website/views/options/inventory/time-travelers.jade
+++ b/website/views/options/inventory/time-travelers.jade
@@ -16,7 +16,7 @@
.pull-right
span.inventory_special_trinket.inline-gems
b x{{user.purchased.plan.consecutive.trinkets}}
- p!=env.t('timeTravelersPopover', {linkStart: "", linkEnd: ""})
+ p!=env.t('timeTravelersPopover', {linkStart: "", linkEnd: ""})
.row: .col-md-12
li.customize-menu.inventory-gear
diff --git a/website/views/options/social/challenge-box.jade b/website/views/options/social/challenge-box.jade
index f3013b5e46..25364798d0 100644
--- a/website/views/options/social/challenge-box.jade
+++ b/website/views/options/social/challenge-box.jade
@@ -3,7 +3,7 @@
.panel-heading
h3.panel-title=env.t('challenges')
|
- a.pull-right(target='_blank', href='http://habitrpg.wikia.com/wiki/Challenges')
+ a.pull-right(target='_blank', href='http://habitica.wikia.com/wiki/Challenges')
small=env.t('moreInfo')
.panel-body.modal-fixed-height(bindonce='group.challenges')
div(ng-if='group.challenges.length > 0')
diff --git a/website/views/options/social/challenges.jade b/website/views/options/social/challenges.jade
index 9a78e79dcc..fd1ccd7549 100644
--- a/website/views/options/social/challenges.jade
+++ b/website/views/options/social/challenges.jade
@@ -30,7 +30,7 @@ script(type='text/ng-template', id='partials/options.social.challenges.detail.me
script(type='text/ng-template', id='partials/options.social.challenges.detail.html')
// Edit button
- div(bindonce='challenge', ng-if='challenge.leader._id==user._id')
+ div(bindonce='challenge', ng-if='challenge.leader._id==user._id || user.contributor.admin')
div(ng-hide='challenge._locked==false')
button.btn.btn-sm.btn-default(ng-click='edit(challenge)')=env.t('edit')
button.btn.btn-sm.btn-success(ng-click='clone(challenge)')=env.t('clone')
diff --git a/website/views/options/social/tavern.jade b/website/views/options/social/tavern.jade
index 30974567c2..6589d3fcbb 100644
--- a/website/views/options/social/tavern.jade
+++ b/website/views/options/social/tavern.jade
@@ -37,13 +37,13 @@
a(target='_blank', href='https://vimeo.com/57654086')=env.t('tutorial')
tr
td
- a(target='_blank', href='http://habitrpg.wikia.com/wiki/FAQ')=env.t('FAQ')
+ a(target='_blank', href='http://habitica.wikia.com/wiki/FAQ')=env.t('FAQ')
tr
td
- a(target='_blank', href='http://habitrpg.wikia.com/wiki/Glossary')=env.t('glossary')
+ a(target='_blank', href='http://habitica.wikia.com/wiki/Glossary')=env.t('glossary')
tr
td
- a(target='_blank', href='http://habitrpg.wikia.com/')=env.t('wiki')
+ a(target='_blank', href='http://habitica.wikia.com/')=env.t('wiki')
tr
td
a(target='_blank', href='https://oldgods.net/habitrpg/habitrpg_user_data_display.html')=env.t('dataTool')
@@ -55,7 +55,7 @@
a(target='_blank', href='https://trello.com/c/odmhIqyW/440-read-first-table-of-contents')= ' ' + env.t('requestAF')
tr
td
- a(target='_blank', href='http://habitrpg.wikia.com/wiki/Special:Forum')=env.t('community')
+ a(target='_blank', href='http://habitica.wikia.com/wiki/Special:Forum')=env.t('community')
// Player Tiers
.panel.panel-default(popover=env.t('tierPop'), popover-trigger="mouseenter", popover-placement="right")
@@ -66,10 +66,10 @@
|
=env.t('visitHeroes')
|
- |
+ |
=env.t('conLearn')
|
- |
+ |
=env.t('conLearnHow')
|
table.table.table-striped.panel-tiers
diff --git a/website/views/shared/header/menu.jade b/website/views/shared/header/menu.jade
index 75adc03d94..251ef447af 100644
--- a/website/views/shared/header/menu.jade
+++ b/website/views/shared/header/menu.jade
@@ -56,7 +56,7 @@ nav.toolbar(ng-controller='MenuCtrl')
a(ui-sref='options.settings.export')=env.t('exportData')
ul.toolbar-submenu
li
- a(target="_blank" href='http://habitrpg.wikia.com/wiki/')=env.t('overview')
+ a(target="_blank" href='http://habitica.wikia.com/wiki/')=env.t('overview')
li
a(target="_blank" href='https://github.com/HabitRPG/habitrpg/issues/2760')=env.t('reportBug')
li
@@ -64,9 +64,9 @@ nav.toolbar(ng-controller='MenuCtrl')
li
a(target="_blank" href='https://trello.com/c/odmhIqyW/440-read-first-table-of-contents')=env.t('requestAF')
li
- a(target="_blank" href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG')=env.t('contributeToHRPG')
+ a(target="_blank" href='http://habitica.wikia.com/wiki/Contributing_to_Habitica')=env.t('contributeToHRPG')
li
- a(target="_blank" href='http://habitrpg.wikia.com/wiki/FAQ')=env.t('FAQ')
+ a(target="_blank" href='http://habitica.wikia.com/wiki/FAQ')=env.t('FAQ')
ul.toolbar-controls
li.toolbar-subscribe-button
button(ng-if='!user.purchased.plan.customerId',ui-sref='options.settings.subscription',popover-trigger='mouseenter',popover-placement='bottom',popover-title=env.t('subscriptions'),popover=env.t('subDescription'),popover-append-to-body='true')=env.t('subscribe')
@@ -147,7 +147,7 @@ nav.toolbar(ng-controller='MenuCtrl')
li
a(ui-sref='options.settings.export')=env.t('exportData')
li.toolbar-button-dropdown.highlight
- a(target="_blank" href='http://habitrpg.wikia.com/wiki/')
+ a(target="_blank" href='http://habitica.wikia.com/wiki/')
span.glyphicon.glyphicon-question-sign
span=env.t('help')
a(ng-click='expandMenu("help")', ng-class='{active: _expandedMenu == "help"}')
@@ -155,7 +155,7 @@ nav.toolbar(ng-controller='MenuCtrl')
div(ng-if='_expandedMenu == "help"')
ul.toolbar-submenu(ng-click='expandMenu(null)')
li
- a(target="_blank" href='http://habitrpg.wikia.com/wiki/')=env.t('overview')
+ a(target="_blank" href='http://habitica.wikia.com/wiki/')=env.t('overview')
li
a(target="_blank" href='https://github.com/HabitRPG/habitrpg/issues/2760')=env.t('reportBug')
li
@@ -163,9 +163,9 @@ nav.toolbar(ng-controller='MenuCtrl')
li
a(target="_blank" href='https://trello.com/c/odmhIqyW/440-read-first-table-of-contents')=env.t('requestAF')
li
- a(target="_blank" href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG')=env.t('contributeToHRPG')
+ a(target="_blank" href='http://habitica.wikia.com/wiki/Contributing_to_Habitica')=env.t('contributeToHRPG')
li
- a(target="_blank" href='http://habitrpg.wikia.com/wiki/FAQ')=env.t('FAQ')
+ a(target="_blank" href='http://habitica.wikia.com/wiki/FAQ')=env.t('FAQ')
ul.toolbar-subscribe(ng-if='!user.purchased.plan.customerId')
li.toolbar-subscribe-button
button.highlight(ui-sref='options.settings.subscription',popover-trigger='mouseenter',popover-placement='bottom',popover-title=env.t('subscriptions'),popover=env.t('subDescription'),popover-append-to-body='true')=env.t('subscribe')
@@ -252,7 +252,7 @@ nav.toolbar(ng-controller='MenuCtrl')
a(ui-sref='options.settings.notifications')=env.t('notifications')
ul.toolbar-submenu(ng-click='expandMenu(null)')
li
- a(href="http://habitrpg.wikia.com/wiki/FAQ", target='_blank')=env.t('FAQ')
+ a(href="http://habitica.wikia.com/wiki/FAQ", target='_blank')=env.t('FAQ')
li
a(href="https://vimeo.com/57654086", target='_blank')=env.t('tutorials')
ul.toolbar-controls
diff --git a/website/views/shared/modals/achievements.jade b/website/views/shared/modals/achievements.jade
index 3b0470abe2..142415be8f 100644
--- a/website/views/shared/modals/achievements.jade
+++ b/website/views/shared/modals/achievements.jade
@@ -81,7 +81,7 @@ script(id='modals/achievements/contributor.html', type='text/ng-template')
div(class="#{env.worldDmg.guide ? 'npc_justin_broken.float-left' : 'npc_justin.float-left'}")
p
!=env.t('contribModal', {name: "{{user.profile.name}}", level: "{{user.contributor.level}}"}) + ' '
- a(href='http://habitrpg.wikia.com/wiki/Contributor_Rewards' target='_blank')=env.t('contribLink')
+ a(href='http://habitica.wikia.com/wiki/Contributor_Rewards' target='_blank')=env.t('contribLink')
.modal-footer
button.btn.btn-default(ng-click='set({"flags.contributor":false}); $close()')=env.t('ok')
diff --git a/website/views/shared/tasks/edit/advanced_options.jade b/website/views/shared/tasks/edit/advanced_options.jade
index fbd805289e..9c206c5766 100644
--- a/website/views/shared/tasks/edit/advanced_options.jade
+++ b/website/views/shared/tasks/edit/advanced_options.jade
@@ -29,7 +29,7 @@ div(ng-if='::task.type!="reward"')
fieldset.option-group.advanced-option(ng-show="task._advanced")
legend.option-title
- a.hint.priority-multiplier-help(href='http://habitrpg.wikia.com/wiki/Difficulty', target='_blank', popover-title=env.t('difficultyHelpTitle'), popover-trigger='mouseenter', popover=env.t('difficultyHelpContent'))=env.t('difficulty')
+ a.hint.priority-multiplier-help(href='http://habitica.wikia.com/wiki/Difficulty', target='_blank', popover-title=env.t('difficultyHelpTitle'), popover-trigger='mouseenter', popover=env.t('difficultyHelpContent'))=env.t('difficulty')
ul.priority-multiplier
li
button(type='button', ng-class='{active: task.priority==0.1}',
diff --git a/website/views/static/community-guidelines.jade b/website/views/static/community-guidelines.jade
index eede0d5a3d..1eaf145697 100644
--- a/website/views/static/community-guidelines.jade
+++ b/website/views/static/community-guidelines.jade
@@ -17,7 +17,7 @@ block vars
- var layoutEnv = env
block title
- title HabitRPG |
+ title Habitica |
=env.t('communityGuidelines')
block content
@@ -334,7 +334,7 @@ block content
|:
=env.t('commGuideLink02description')
li
- a(href='http://habitrpg.wikia.com/wiki/HabitRPG_Wiki' target='_blank')=env.t('commGuideLink03')
+ a(href='http://habitica.wikia.com/wiki/Habitica_Wiki' target='_blank')=env.t('commGuideLink03')
|:
=env.t('commGuideLink03description')
li
@@ -342,19 +342,19 @@ block content
|:
=env.t('commGuideLink04description')
li
- a(href='https://trello.com/b/EpoYEYod/habitrpg' target='_blank')=env.t('commGuideLink05')
+ a(href='https://trello.com/b/EpoYEYod/' target='_blank')=env.t('commGuideLink05')
|:
=env.t('commGuideLink05description')
li
- a(href='https://trello.com/b/mXK3Eavg/habitrpg-mobile' target='_blank')=env.t('commGuideLink06')
+ a(href='https://trello.com/b/mXK3Eavg/' target='_blank')=env.t('commGuideLink06')
|:
=env.t('commGuideLink06description')
li
- a(href='https://trello.com/b/vwuE9fbO/habitrpg-pixel-art' target='_blank')=env.t('commGuideLink07')
+ a(href='https://trello.com/b/vwuE9fbO/' target='_blank')=env.t('commGuideLink07')
|:
=env.t('commGuideLink07description')
li
- a(href='https://trello.com/b/nnv4QIRX/habitrpg-quests' target='_blank')=env.t('commGuideLink08')
+ a(href='https://trello.com/b/nnv4QIRX/' target='_blank')=env.t('commGuideLink08')
|:
=env.t('commGuideLink08description')
diff --git a/website/views/static/contact.jade b/website/views/static/contact.jade
index 61eae5b530..53c172cf1f 100644
--- a/website/views/static/contact.jade
+++ b/website/views/static/contact.jade
@@ -15,28 +15,28 @@ block content
p
=env.t('reportAccountProblems')
| :
- a(href='mailto:admin@habitica.com') admin@habitrpg.com
+ a(href='mailto:admin@habitica.com') admin@habitica.com
br
=env.t('reportBug')
| :
a(target='_blank', href='https://github.com/HabitRPG/habitrpg/issues?q=is%3Aopen') Github
br
- =env.t('reportCommunityIssues')
+ =env.t('reportCommunityIssues')
| :
- a(href='mailto:leslie@habitica.com') leslie@habitrpg.com
+ a(href='mailto:leslie@habitica.com') leslie@habitica.com
br
- =env.t('generalQuestionsSite')
+ =env.t('generalQuestionsSite')
| :
- a(target='_blank', href='http://habitrpg.wikia.com/wiki/The_Keep:The_Newbies_Guild') Newbies Guild
+ a(target='_blank', href='http://habitica.wikia.com/wiki/The_Keep:The_Newbies_Guild') Newbies Guild
br
- =env.t('businessInquiries')
+ =env.t('businessInquiries')
| :
- a(href='mailto:vicky@habitica.com') vicky@habitrpg.com
+ a(href='mailto:vicky@habitica.com') vicky@habitica.com
br
- =env.t('merchandiseInquiries')
+ =env.t('merchandiseInquiries')
| :
- a(href='mailto:store@habitica.com') store@habitrpg.com
+ a(href='mailto:store@habitica.com') store@habitica.com
br
- =env.t('marketingInquiries')
+ =env.t('marketingInquiries')
| :
- a(href='mailto:leslie@habitica.com') leslie@habitrpg.com
+ a(href='mailto:leslie@habitica.com') leslie@habitica.com
diff --git a/website/views/static/plans.jade b/website/views/static/plans.jade
index ea320448c6..5b16dba306 100644
--- a/website/views/static/plans.jade
+++ b/website/views/static/plans.jade
@@ -15,15 +15,15 @@ block content
p
=env.t('indivPlan1')
|
- a(href='http://habitrpg.wikia.com/wiki/Guilds' target='_blank')=env.t('guilds')
+ a(href='http://habitica.wikia.com/wiki/Guilds' target='_blank')=env.t('guilds')
= ' ' + env.t('and') + ' '
- a(href='http://habitrpg.wikia.com/wiki/Challenges' target='_blank')=env.t('challenges')
+ a(href='http://habitica.wikia.com/wiki/Challenges' target='_blank')=env.t('challenges')
|
=env.t('indivPlan2')
p
=env.t('groupText1')
|
- a(href='http://habitrpg.wikia.com/wiki/Habitica' target='_blank')=env.t('habitica')
+ a(href='http://habitica.wikia.com/wiki/Habitica' target='_blank')=env.t('habitica')
|.
=env.t('groupText2')
diff --git a/website/views/static/privacy.jade b/website/views/static/privacy.jade
index fd32c6f8fd..e3a2895d14 100644
--- a/website/views/static/privacy.jade
+++ b/website/views/static/privacy.jade
@@ -4,7 +4,7 @@ block vars
- var layoutEnv = env
block title
- title HabitRPG | Privacy
+ title Habitica | Privacy
block content
.row
@@ -20,8 +20,8 @@ block content
p
strong PLEASE READ THIS PRIVACY POLICY CAREFULLY.
br
- | By accessing or otherwise using habitrpg.com or any sub domains thereto ("the Sites"),
- | or using a habitrpg.com or HabitRPG application on a mobile device ("the Applications"),
+ | By accessing or otherwise using habitica.com or any sub domains thereto ("the Sites"),
+ | or using a habitica.com or Habitica application on a mobile device ("the Applications"),
| you agree to be bound contractually by this Privacy Policy. Individually
| or collectively, the Applications and the Sites may be referred to as
| the "Services."
@@ -274,7 +274,7 @@ block content
| personally identifiable information without your permission or consent,
| we will remove the information from our active list, at your request. To
| request the removal of your child's information, please email us at
- | admin@habitrpg.com and be sure to include in
+ | admin@habitica.com and be sure to include in
| your message the same login information that your child submitted.
p
strong
@@ -305,4 +305,4 @@ block content
| Los Angeles, CA 90025
br
| Email:
- a(href='mailto:admin@habitrpg.com') admin@habitrpg.com
+ a(href='mailto:admin@habitica.com') admin@habitica.com
diff --git a/website/views/static/terms.jade b/website/views/static/terms.jade
index 78222bc12a..6215ae92c5 100644
--- a/website/views/static/terms.jade
+++ b/website/views/static/terms.jade
@@ -220,7 +220,7 @@ block content
br
| Los Angeles, CA 90025
br
- | E-Mail: admin@habitrpg.com
+ | E-Mail: admin@habitica.com
p
| Again, we cannot take action unless you give us all the required
| information.
@@ -574,4 +574,4 @@ block content
strong Contacting Us
br
| If you have any questions about these Terms of Service, please contact
- | us at admin@habitrpg.com
+ | us at admin@habitica.com