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