mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 15:48:04 +01:00
challenge gems: popover for closing (delete or select winner)
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
habitrpg.controller("ChallengesCtrl", ['$scope', 'User', 'Challenges', 'Notification', '$compile', 'Groups', '$state', 'API_URL', '$http',
|
habitrpg.controller("ChallengesCtrl", ['$scope', 'User', 'Challenges', 'Notification', '$compile', 'Groups', '$state', '$rootScope',
|
||||||
function($scope, User, Challenges, Notification, $compile, Groups, $state, API_URL, $http) {
|
function($scope, User, Challenges, Notification, $compile, Groups, $state, $rootScope) {
|
||||||
|
|
||||||
// FIXME get this from cache
|
// FIXME get this from cache
|
||||||
Groups.Group.query({type:'party,guilds,tavern'}, function(groups){
|
Groups.Group.query({type:'party,guilds,tavern'}, function(groups){
|
||||||
@@ -85,16 +85,47 @@ habitrpg.controller("ChallengesCtrl", ['$scope', 'User', 'Challenges', 'Notifica
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete
|
* Close Challenge
|
||||||
|
* ------------------
|
||||||
*/
|
*/
|
||||||
$scope["delete"] = function(challenge, $index) {
|
function backToChallenges(){
|
||||||
if (confirm("Delete challenge, are you sure?") !== true) return;
|
$scope.popoverEl.popover('destroy');
|
||||||
|
$state.go('options.challenges');
|
||||||
|
$scope.challenges = Challenges.Challenge.query();
|
||||||
|
User.log({});
|
||||||
|
}
|
||||||
|
$scope.cancelClosing = function() {
|
||||||
|
$scope.popoverEl.popover('destroy');
|
||||||
|
$scope.popoverEl = undefined;
|
||||||
|
$scope.closingChal = undefined;
|
||||||
|
}
|
||||||
|
$scope["delete"] = function(challenge) {
|
||||||
|
if (!confirm("Delete challenge, are you sure?")) return;
|
||||||
challenge.$delete(function(){
|
challenge.$delete(function(){
|
||||||
$state.go('options.challenges');
|
$scope.popoverEl.popover('destroy');
|
||||||
$scope.challenges = Challenges.Challenge.query();
|
backToChallenges();
|
||||||
User.log({});
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
$scope.selectWinner = function(challenge) {
|
||||||
|
if (!confirm("Are you sure?")) return;
|
||||||
|
challenge.$selectWinner({uid:challenge.winner}, function(){
|
||||||
|
$scope.popoverEl.popover('destroy');
|
||||||
|
backToChallenges();
|
||||||
|
})
|
||||||
|
}
|
||||||
|
$scope.close = function(challenge, $event) {
|
||||||
|
$scope.closingChal = challenge;
|
||||||
|
$scope.popoverEl = $($event.target);
|
||||||
|
var html = $compile('<div><div ng-include="\'partials/options.challenges.detail.close.html\'" /></div></div>')($scope);
|
||||||
|
$scope.popoverEl.popover('destroy').popover({
|
||||||
|
html: true,
|
||||||
|
placement: 'right',
|
||||||
|
trigger: 'manual',
|
||||||
|
title: 'Close challenge and...',
|
||||||
|
content: html
|
||||||
|
}).popover('show');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------
|
//------------------------------------------------------------
|
||||||
// Tasks
|
// Tasks
|
||||||
|
|||||||
@@ -1,12 +1,20 @@
|
|||||||
|
script(type='text/ng-template', id='partials/options.challenges.detail.close.html')
|
||||||
|
a.btn.btn-small.btn-danger(ng-click="delete(closingChal)") Delete
|
||||||
|
h5 - Or -
|
||||||
|
small Select a winner and close the challenge:
|
||||||
|
select(ng-model='challenge.winner', name='Winner', ng-options='u._id as u.profile.name for u in closingChal.members', ng-change='selectWinner(closingChal)')
|
||||||
|
small.pull-right
|
||||||
|
a(ng-click='cancelClosing(closingChal)') cancel
|
||||||
|
|
||||||
script(type='text/ng-template', id='partials/options.challenges.detail.html')
|
script(type='text/ng-template', id='partials/options.challenges.detail.html')
|
||||||
// Edit button
|
// Edit button
|
||||||
ul.unstyled
|
ul.unstyled
|
||||||
li(ng-show='challenge.leader==user._id', ng-hide='challenge._locked==false')
|
li(ng-show='challenge.leader==user._id', ng-hide='challenge._locked==false')
|
||||||
button.btn.btn-default(ng-click='challenge._locked = false') Edit
|
button.btn.btn-small.btn-default(ng-click='challenge._locked = false') Edit
|
||||||
li(ng-show='challenge._locked==false')
|
li(ng-show='challenge._locked==false')
|
||||||
button.btn.btn-primary(ng-click='save(challenge)') Save
|
button.btn.btn-small.btn-primary(ng-click='save(challenge)') Save
|
||||||
button.btn.btn-danger(ng-click='delete(challenge, $index)') Delete
|
button.btn.btn-small.btn-default(ng-click='challenge._locked=true') Cancel
|
||||||
button.btn.btn-default(ng-click='challenge._locked=true') Cancel
|
button.btn.btn-small.btn-default(ng-click='close(challenge, $event)', tooltip='Delete or select winner') Close
|
||||||
|
|
||||||
div(ng-show='challenge._locked==false')
|
div(ng-show='challenge._locked==false')
|
||||||
.-options
|
.-options
|
||||||
|
|||||||
Reference in New Issue
Block a user