mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-11 16:35:47 +01:00
closes #4651
This commit is contained in:
@@ -5,9 +5,8 @@ define('admin/manage/category', [
|
|||||||
'uploader',
|
'uploader',
|
||||||
'iconSelect',
|
'iconSelect',
|
||||||
'admin/modules/colorpicker',
|
'admin/modules/colorpicker',
|
||||||
'autocomplete',
|
'autocomplete'
|
||||||
'Chart'
|
], function(uploader, iconSelect, colorpicker, autocomplete) {
|
||||||
], function(uploader, iconSelect, colorpicker, autocomplete, Chart) {
|
|
||||||
var Category = {};
|
var Category = {};
|
||||||
|
|
||||||
Category.init = function() {
|
Category.init = function() {
|
||||||
@@ -100,46 +99,17 @@ define('admin/manage/category', [
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.copy-settings').on('click', function(e) {
|
$('.copy-settings').on('click', function() {
|
||||||
e.preventDefault();
|
selectCategoryModal(function(cid) {
|
||||||
socket.emit('admin.categories.getNames', function(err, categories) {
|
socket.emit('admin.categories.copySettingsFrom', {fromCid: cid, toCid: ajaxify.data.category.cid}, function(err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return app.alertError(err.message);
|
return app.alertError(err.message);
|
||||||
}
|
|
||||||
|
|
||||||
templates.parse('admin/partials/categories/select-category', {
|
|
||||||
categories: categories
|
|
||||||
}, function(html) {
|
|
||||||
function submit() {
|
|
||||||
var formData = modal.find('form').serializeObject();
|
|
||||||
|
|
||||||
socket.emit('admin.categories.copySettingsFrom', {fromCid: formData['select-cid'], toCid: ajaxify.data.category.cid}, function(err) {
|
|
||||||
if (err) {
|
|
||||||
return app.alertError(err.message);
|
|
||||||
}
|
|
||||||
app.alertSuccess('Settings Copied!');
|
|
||||||
ajaxify.refresh();
|
|
||||||
});
|
|
||||||
|
|
||||||
modal.modal('hide');
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
app.alertSuccess('Settings Copied!');
|
||||||
var modal = bootbox.dialog({
|
ajaxify.refresh();
|
||||||
title: 'Select a Category',
|
|
||||||
message: html,
|
|
||||||
buttons: {
|
|
||||||
save: {
|
|
||||||
label: 'Copy',
|
|
||||||
className: 'btn-primary',
|
|
||||||
callback: submit
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
modal.find('form').on('submit', submit);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.upload-button').on('click', function() {
|
$('.upload-button').on('click', function() {
|
||||||
@@ -229,6 +199,7 @@ define('admin/manage/category', [
|
|||||||
$('.privilege-table-container').on('click', '[data-action="search.user"]', Category.addUserToPrivilegeTable);
|
$('.privilege-table-container').on('click', '[data-action="search.user"]', Category.addUserToPrivilegeTable);
|
||||||
$('.privilege-table-container').on('click', '[data-action="search.group"]', Category.addGroupToPrivilegeTable);
|
$('.privilege-table-container').on('click', '[data-action="search.group"]', Category.addGroupToPrivilegeTable);
|
||||||
$('.privilege-table-container').on('click', '[data-action="copyToChildren"]', Category.copyPrivilegesToChildren);
|
$('.privilege-table-container').on('click', '[data-action="copyToChildren"]', Category.copyPrivilegesToChildren);
|
||||||
|
$('.privilege-table-container').on('click', '[data-action="copyPrivilegesFrom"]', Category.copyPrivilegesFromCategory);
|
||||||
|
|
||||||
Category.exposeAssumedPrivileges();
|
Category.exposeAssumedPrivileges();
|
||||||
};
|
};
|
||||||
@@ -397,5 +368,50 @@ define('admin/manage/category', [
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Category.copyPrivilegesFromCategory = function() {
|
||||||
|
selectCategoryModal(function(cid) {
|
||||||
|
socket.emit('admin.categories.copyPrivilegesFrom', {toCid: ajaxify.data.category.cid, fromCid: cid}, function(err) {
|
||||||
|
if (err) {
|
||||||
|
return app.alertError(err.message);
|
||||||
|
}
|
||||||
|
ajaxify.refresh();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function selectCategoryModal(callback) {
|
||||||
|
socket.emit('admin.categories.getNames', function(err, categories) {
|
||||||
|
if (err) {
|
||||||
|
return app.alertError(err.message);
|
||||||
|
}
|
||||||
|
|
||||||
|
templates.parse('admin/partials/categories/select-category', {
|
||||||
|
categories: categories
|
||||||
|
}, function(html) {
|
||||||
|
function submit() {
|
||||||
|
var formData = modal.find('form').serializeObject();
|
||||||
|
callback(formData['select-cid']);
|
||||||
|
modal.modal('hide');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var modal = bootbox.dialog({
|
||||||
|
title: 'Select a Category',
|
||||||
|
message: html,
|
||||||
|
buttons: {
|
||||||
|
save: {
|
||||||
|
label: 'Copy',
|
||||||
|
className: 'btn-primary',
|
||||||
|
callback: submit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
modal.find('form').on('submit', submit);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return Category;
|
return Category;
|
||||||
});
|
});
|
||||||
@@ -112,4 +112,8 @@ Categories.copySettingsFrom = function(socket, data, callback) {
|
|||||||
categories.copySettingsFrom(data.fromCid, data.toCid, callback);
|
categories.copySettingsFrom(data.fromCid, data.toCid, callback);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Categories.copyPrivilegesFrom = function(socket, data, callback) {
|
||||||
|
categories.copyPrivilegesFrom(data.fromCid, data.toCid, callback);
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = Categories;
|
module.exports = Categories;
|
||||||
@@ -58,6 +58,7 @@
|
|||||||
<div class="btn-toolbar">
|
<div class="btn-toolbar">
|
||||||
<button type="button" class="btn btn-primary pull-right" data-ajaxify="false" data-action="search.group"> Add Group</button>
|
<button type="button" class="btn btn-primary pull-right" data-ajaxify="false" data-action="search.group"> Add Group</button>
|
||||||
<button type="button" class="btn btn-info pull-right" data-ajaxify="false" data-action="copyToChildren"> Copy to Children</button>
|
<button type="button" class="btn btn-info pull-right" data-ajaxify="false" data-action="copyToChildren"> Copy to Children</button>
|
||||||
|
<button type="button" class="btn btn-info pull-right" data-ajaxify="fakse" data-action="copyPrivilegesFrom"> Copy From Category</button>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
Reference in New Issue
Block a user