closes #2920
parent
8bc80abde6
commit
9e832e006a
@ -0,0 +1,27 @@
|
||||
"use strict";
|
||||
/*global define, socket*/
|
||||
|
||||
define('admin/general/social', [], function() {
|
||||
var social = {};
|
||||
|
||||
social.init = function() {
|
||||
$('#save').on('click', function() {
|
||||
var networks = [];
|
||||
$('#postSharingNetworks input[type="checkbox"]').each(function() {
|
||||
if ($(this).prop('checked')) {
|
||||
networks.push($(this).attr('id'));
|
||||
}
|
||||
});
|
||||
|
||||
socket.emit('admin.social.savePostSharingNetworks', networks, function(err) {
|
||||
if (err) {
|
||||
return app.alertError(err);
|
||||
}
|
||||
|
||||
app.alertSuccess('Successfully saved Post Sharing Networks!');
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
return social;
|
||||
});
|
@ -0,0 +1,20 @@
|
||||
'use strict';
|
||||
|
||||
var social = require('../../social');
|
||||
|
||||
var socialController = {};
|
||||
|
||||
|
||||
socialController.get = function(req, res, next) {
|
||||
social.getPostSharing(function(err, posts) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
res.render('admin/general/social', {
|
||||
posts: posts
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = socialController;
|
@ -0,0 +1,58 @@
|
||||
"use strict";
|
||||
|
||||
var plugins = require('./plugins');
|
||||
var db = require('./database');
|
||||
var async = require('async');
|
||||
|
||||
var social = {};
|
||||
|
||||
social.getPostSharing = function(callback) {
|
||||
var networks = [
|
||||
{
|
||||
id: "facebook",
|
||||
name: "Facebook",
|
||||
class: "fa-facebook"
|
||||
},
|
||||
{
|
||||
id: "twitter",
|
||||
name: "Twitter",
|
||||
class: "fa-twitter"
|
||||
},
|
||||
{
|
||||
id: "google",
|
||||
name: "Google+",
|
||||
class: "fa-google-plus"
|
||||
}
|
||||
];
|
||||
|
||||
async.waterfall([
|
||||
function(next) {
|
||||
plugins.fireHook('filter:social.posts', networks, next);
|
||||
},
|
||||
function(networks, next) {
|
||||
db.getSetMembers('social:posts.activated', function(err, activated) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
networks.forEach(function(network, i) {
|
||||
networks[i].activated = (activated.indexOf(network.id) !== -1);
|
||||
});
|
||||
|
||||
next(null, networks);
|
||||
});
|
||||
}
|
||||
], callback);
|
||||
};
|
||||
|
||||
social.setActivePostSharingNetworks = function(networkIDs, callback) {
|
||||
db.delete('social:posts.activated', function(err) {
|
||||
if (!networkIDs.length) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
db.setAdd('social:posts.activated', networkIDs, callback);
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = social;
|
@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
var social = require('../../social'),
|
||||
SocketSocial = {};
|
||||
|
||||
SocketSocial.savePostSharingNetworks = function(socket, data, callback) {
|
||||
social.setActivePostSharingNetworks(data, callback);
|
||||
};
|
||||
|
||||
module.exports = SocketSocial;
|
@ -0,0 +1,24 @@
|
||||
<div class="social settings" class="row">
|
||||
<form role="form">
|
||||
<div class="row">
|
||||
<div class="col-sm-2 col-xs-12 settings-header">Post Sharing</div>
|
||||
<div class="col-sm-10 col-xs-12">
|
||||
<div class="form-group" id="postSharingNetworks">
|
||||
<!-- BEGIN posts -->
|
||||
<div class="checkbox">
|
||||
<label for="{posts.id}" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
|
||||
<input type="checkbox" class="mdl-switch__input" id="{posts.id}" data-field="{posts.id}" name="{posts.id}" <!-- IF posts.activated -->checked<!-- ENDIF posts.activated --> />
|
||||
<span class="mdl-switch__label"><i class="fa {posts.class}"></i> {posts.name}</span>
|
||||
</label>
|
||||
</div>
|
||||
<!-- END posts -->
|
||||
<small>Plugins can add additional networks for sharing posts.</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<button id="save" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
|
||||
<i class="material-icons">save</i>
|
||||
</button>
|
Loading…
Reference in New Issue