Skip to content
This repository was archived by the owner on May 16, 2019. It is now read-only.

Commit c28e1fd

Browse files
committed
The add/remove moderator button works now. The code involved is probably messy, but I did some simple tests and it seems to work fine.
1 parent f70a2de commit c28e1fd

File tree

1 file changed

+55
-8
lines changed

1 file changed

+55
-8
lines changed

js/views/userPageVw.js

Lines changed: 55 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ var __ = require('underscore'),
2121
setTheme = require('../utils/setTheme.js'),
2222
sanitizeHTML = require('sanitize-html'),
2323
storeWizardVw = require('./storeWizardVw'),
24+
saveToAPI = require('../utils/saveToAPI'),
2425
moderatorSettingsVw = require('./moderatorSettingsVw');
2526

2627
var defaultItem = {
@@ -709,15 +710,14 @@ module.exports = baseVw.extend({
709710
},
710711

711712
getIsModerator: function () {
712-
console.log(this.model.get('user').vendor);
713713
if(this.userProfile.get('profile').moderator == true && this.options.ownPage == false && this.model.get('user').vendor) {
714714
var pageGuid = this.userProfile.get('profile').guid;
715715
var mods = this.model.get('user').moderators;
716716
var found = false;
717717
var self = this;
718718
this.toggleModeratorButtons(false);
719719
__.each(mods, function(mod) {
720-
if(mod.guid == pageGuid) {
720+
if(mod.guid == pageGuid || mod == pageGuid) {
721721
found = true;
722722
}
723723
});
@@ -1456,19 +1456,66 @@ module.exports = baseVw.extend({
14561456
var $targ = $(e.target).closest('.js-addmoderator');
14571457

14581458
$targ.addClass('loading');
1459-
/*this.followUser({'guid': this.pageID}).fail(() => {
1460-
$targ.removeClass('loading');
1461-
});*/
1459+
1460+
var user = this.model.get('user');
1461+
var self = this;
1462+
1463+
var modList = {};
1464+
modList.moderators = user.moderators;
1465+
modList.moderators[modList.moderators.length] = this.userProfile.get('profile').guid;
1466+
user.moderators = modList.moderators;
1467+
1468+
saveToAPI('', user, user.serverUrl + "settings",
1469+
function(){
1470+
// confirmed
1471+
$targ.removeClass('loading');
1472+
},
1473+
function(){
1474+
// failed
1475+
}, modList,'',
1476+
function(){
1477+
// invalid
1478+
}).always(function(){
1479+
$targ.removeClass('loading');
1480+
self.getIsModerator();
1481+
});
14621482
},
14631483

14641484
removeModeratorClick: function(e){
14651485
var $targ = $(e.target).closest('.js-removemoderator');
14661486

14671487
if($targ.hasClass('confirm')){
14681488
$targ.addClass('loading').removeClass('confirm');
1469-
/*this.unfollowUser({'guid': this.pageID}).fail(() => {
1470-
$(e.target).removeClass('loading')
1471-
});*/
1489+
1490+
1491+
var user = this.model.get('user');
1492+
var self = this;
1493+
1494+
var modList = {};
1495+
modList.moderators = [];
1496+
var guid = this.userProfile.get('profile').guid;
1497+
1498+
__.each(user.moderators, function(mod) {
1499+
if(mod != guid && (typeof(mod) !== 'object' || mod.guid != guid)) {
1500+
modList.moderators[modList.moderators.length] = mod;
1501+
}
1502+
})
1503+
user.moderators = modList.moderators;
1504+
1505+
saveToAPI('', user, user.serverUrl + "settings",
1506+
function(){
1507+
// confirmed
1508+
$targ.removeClass('loading');
1509+
},
1510+
function(){
1511+
// failed
1512+
}, modList,'',
1513+
function(){
1514+
// invalid
1515+
}).always(function(){
1516+
$targ.removeClass('loading');
1517+
self.getIsModerator();
1518+
});
14721519
} else {
14731520
$targ.addClass('confirm');
14741521
}

0 commit comments

Comments
 (0)