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