mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 15:48:04 +01:00
challenge prize: add to challenge creation form (including min/max validation)
This commit is contained in:
@@ -28,6 +28,12 @@ habitrpg.controller("ChallengesCtrl", ['$scope', 'User', 'Challenges', 'Notifica
|
||||
(typeof $scope.search._isMember == 'undefined' || $scope.search._isMember == chal._isMember));
|
||||
}
|
||||
|
||||
$scope.$watch('newChallenge.group', function(gid){
|
||||
if (!gid) return;
|
||||
var group = _.find($scope.groups, {_id:gid});
|
||||
$scope.maxPrize = User.user.balance*4 + ((group && group.balance && group.leader==User.user._id) ? group.balance*4 : 0);
|
||||
})
|
||||
|
||||
|
||||
//------------------------------------------------------------
|
||||
// Challenge
|
||||
|
||||
@@ -71,7 +71,7 @@ api.list = function(req, res) {
|
||||
{group: 'habitrpg'}
|
||||
]
|
||||
})
|
||||
.select('name description group members')
|
||||
.select('name description group members prize')
|
||||
.populate('group', '_id name')
|
||||
.exec(function(err, challenges){
|
||||
if (err) return res.json(500,{err:err});
|
||||
|
||||
@@ -34,7 +34,7 @@ api.getMember = function(req, res) {
|
||||
*/
|
||||
api.list = function(req, res) {
|
||||
var user = res.locals.user;
|
||||
var groupFields = 'name description memberCount';
|
||||
var groupFields = 'name description memberCount balance leader';
|
||||
var sort = '-memberCount';
|
||||
var type = req.query.type || 'party,guilds,public,tavern';
|
||||
|
||||
|
||||
@@ -17,7 +17,8 @@ var ChallengeSchema = new Schema({
|
||||
group: {type: String, ref: 'Group'},
|
||||
timestamp: {type: Date, 'default': Date.now},
|
||||
members: [{type: String, ref: 'User'}],
|
||||
memberCount: {type: Number, 'default': 0}
|
||||
memberCount: {type: Number, 'default': 0},
|
||||
prize: {type: Number, 'default': 0}
|
||||
});
|
||||
|
||||
ChallengeSchema.virtual('tasks').get(function () {
|
||||
|
||||
@@ -41,9 +41,8 @@ script(type='text/ng-template', id='partials/options.challenges.html')
|
||||
| Either
|
||||
.span10
|
||||
// Creation form
|
||||
div(ng-hide='newChallenge')
|
||||
button.btn.btn-success(ng-click='create()') Create Challenge
|
||||
.create-challenge-from(ng-if='newChallenge')
|
||||
button.btn.btn-success(ng-click='create()', ng-hide='newChallenge') Create Challenge
|
||||
.create-challenge-from.well(ng-if='newChallenge')
|
||||
form(ng-submit='save(newChallenge)')
|
||||
div
|
||||
input.btn.btn-success(type='submit', value='Save')
|
||||
@@ -51,8 +50,16 @@ script(type='text/ng-template', id='partials/options.challenges.html')
|
||||
select(ng-model='newChallenge.group', ng-required='required', name='Group', ng-options='g._id as g.name for g in groups')
|
||||
.challenge-options
|
||||
input.option-content(type='text', ng-model='newChallenge.name', placeholder='Challenge Title', required='required')
|
||||
.challenge-options
|
||||
textarea.option-content(cols='3', placeholder='Description', ng-model='newChallenge.description')
|
||||
|
||||
.challenge-options
|
||||
.option-group.option-medium
|
||||
input.option-content(type='number', min="0", max="{{maxPrize}}", ng-model='newChallenge.prize', placeholder='Prize')
|
||||
span.input-suffix.Pet_Currency_Gem1x.inline-gems
|
||||
i.icon-question-sign(popover="If someone can 'win' your challenge, you can optionally award that winner a Gem prize. Min = 0, Max = the number of gems you own. If you created the guild for this challenge, Max += Guild.balance", popover-trigger='mouseenter', popover-placement='right')
|
||||
|
||||
|
||||
habitrpg-tasks(main=false, obj='newChallenge')
|
||||
|
||||
// Challenges list
|
||||
|
||||
Reference in New Issue
Block a user