- add category selector to privileges and category create modals
- allow category selector to work for multiple selectors on same page
This commit is contained in:
Barış Soner Uşaklı
2018-12-04 14:32:43 -05:00
parent 89acb89659
commit f581c052ee
8 changed files with 82 additions and 78 deletions

View File

@@ -1,7 +1,11 @@
'use strict';
define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-serializeobject.min', 'translator', 'benchpress'], function (serialize, translator, Benchpress) {
define('admin/manage/categories', [
'vendor/jquery/serializeObject/jquery.ba-serializeobject.min',
'translator',
'benchpress',
'categorySelector',
], function (serialize, translator, Benchpress, categorySelector) {
var Categories = {};
var newCategoryId = -1;
var sortables;
@@ -54,11 +58,16 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri
};
Categories.throwCreateModal = function () {
socket.emit('admin.categories.getNames', {}, function (err, categories) {
socket.emit('categories.getSelectCategories', {}, function (err, categories) {
if (err) {
return app.alertError(err.message);
}
categories.unshift({
cid: 0,
name: '[[admin/manage/categories:parent-category-none]]',
icon: 'fa-none',
});
Benchpress.parse('admin/partials/categories/create', {
categories: categories,
}, function (html) {
@@ -74,11 +83,15 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri
},
});
var parentSelector = categorySelector.init(modal.find('#parentCidGroup [component="category-selector"]'));
var cloneFromSelector = categorySelector.init(modal.find('#cloneFromCidGroup [component="category-selector"]'));
function submit() {
var formData = modal.find('form').serializeObject();
formData.description = '';
formData.icon = 'fa-comments';
formData.uid = app.user.uid;
formData.parentCid = parentSelector.getSelectedCid();
formData.cloneFromCid = cloneFromSelector.getSelectedCid();
Categories.create(formData);
modal.modal('hide');
@@ -87,11 +100,11 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri
$('#cloneChildren').on('change', function () {
var check = $(this);
var parentSelect = $('#parentCid');
var parentSelect = modal.find('#parentCidGroup [component="category-selector"] .dropdown-toggle');
if (check.prop('checked')) {
parentSelect.attr('disabled', 'disabled');
parentSelect.val('');
parentSelector.selectCategory(0);
} else {
parentSelect.removeAttr('disabled');
}

View File

@@ -13,11 +13,10 @@ define('admin/manage/privileges', [
Privileges.init = function () {
cid = ajaxify.data.cid || 0;
$('ul[for="category-selector"]').on('click', 'li', function () {
var val = this.getAttribute('data-cid');
ajaxify.go('admin/manage/privileges/' + (val === 'global' ? '' : val));
categorySelector.init($('[component="category-selector"]'), function (category) {
var cid = parseInt(category.cid, 10);
ajaxify.go('admin/manage/privileges/' + (cid || ''));
});
Privileges.setupPrivilegeTable();
};
@@ -179,7 +178,7 @@ define('admin/manage/privileges', [
};
Privileges.copyPrivilegesFromCategory = function () {
categorySelector.modal(function (fromCid) {
categorySelector.modal(ajaxify.data.categories.slice(1), function (fromCid) {
socket.emit('admin.categories.copyPrivilegesFrom', { toCid: cid, fromCid: fromCid }, function (err) {
if (err) {
return app.alertError(err.message);