challenge gems: popover for closing (delete or select winner)

This commit is contained in:
Tyler Renelle
2013-10-31 13:26:18 -07:00
parent 35e6f40cb6
commit f6ebd9997e
2 changed files with 51 additions and 12 deletions

View File

@@ -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');
challenge.$delete(function(){
$state.go('options.challenges'); $state.go('options.challenges');
$scope.challenges = Challenges.Challenge.query(); $scope.challenges = Challenges.Challenge.query();
User.log({}); 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(){
$scope.popoverEl.popover('destroy');
backToChallenges();
}); });
}; };
$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

View File

@@ -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