added some missing files from previous commits, fixed setParent mechanic which broke after I refactored, #2463

v1.18.x
Julian Lam 10 years ago
parent 25cb1f9284
commit 9dece4a1db

@ -296,6 +296,17 @@
}
}
.category-settings-form {
h3 {
margin-top: 0;
.pointer;
}
h4 {
.pointer;
}
}
.category-preview {
width: 100%;
height: 100px;

@ -0,0 +1,16 @@
.category-list {
padding: 0;
li {
.inline-block;
.pointer;
padding: 0.5em;
margin: 0.25em;
.border-radius(3px);
&.disabled {
-webkit-filter: grayscale(30%);
.opacity(0.5);
}
}
}

@ -126,6 +126,23 @@ define('admin/manage/category', [
iconSelect.init($(this).find('i'), modified);
});
// Parent Category Selector
$('button[data-action="setParent"]').on('click', Category.launchParentSelector);
$('button[data-action="removeParent"]').on('click', function() {
var payload= {};
payload[ajaxify.variables.get('cid')] = {
parentCid: 0
};
socket.emit('admin.categories.update', payload, function(err) {
if (err) {
return app.alertError(err.message);
}
ajaxify.refresh();
});
});
setupEditTargets();
Category.setupPrivilegeTable();
$(function() {
@ -152,169 +169,12 @@ define('admin/manage/category', [
// $(this).addClass('hide').hide();
// });
setupEditTargets();
// $('button[data-action="setParent"]').on('click', function() {
// var cid = $(this).parents('[data-cid]').attr('data-cid'),
// modal = $('#setParent');
// modal.find('select').val($(this).attr('data-parentCid'));
// modal.attr('data-cid', cid).modal();
// });
// $('button[data-action="removeParent"]').on('click', function() {
// var cid = $(this).parents('[data-cid]').attr('data-cid');
// var payload= {};
// payload[cid] = {
// parentCid: 0
// };
// socket.emit('admin.categories.update', payload, function(err) {
// if (err) {
// return app.alertError(err.message);
// }
// ajaxify.go('admin/manage/categories/active');
// });
// });
// $('#setParent [data-cid]').on('click', function() {
// var modalEl = $('#setParent'),
// parentCid = $(this).attr('data-cid'),
// payload = {};
// payload[modalEl.attr('data-cid')] = {
// parentCid: parentCid
// };
// socket.emit('admin.categories.update', payload, function(err) {
// modalEl.one('hidden.bs.modal', function() {
// ajaxify.go('admin/manage/categories/active');
// });
// modalEl.modal('hide');
// });
// });
});
};
// Category.launchPermissionsModal = function(cid) {
// var modal = $('#category-permissions-modal'),
// searchEl = modal.find('#permission-search'),
// resultsEl = modal.find('.search-results.users'),
// groupsResultsEl = modal.find('.search-results.groups'),
// searchDelay;
// // Clear the search field and results
// searchEl.val('');
// resultsEl.html('');
// searchEl.off().on('keyup', function() {
// var searchEl = this,
// liEl;
// clearTimeout(searchDelay);
// searchDelay = setTimeout(function() {
// socket.emit('admin.categories.search', {
// username: searchEl.value,
// cid: cid
// }, function(err, results) {
// if(err) {
// return app.alertError(err.message);
// }
// templates.parse('admin/partials/categories/users', {
// users: results
// }, function(html) {
// resultsEl.html(html);
// });
// });
// }, 250);
// });
// Category.refreshPrivilegeList(cid);
// resultsEl.off().on('click', '[data-priv]', function(e) {
// var anchorEl = $(this),
// uid = anchorEl.parents('li[data-uid]').attr('data-uid'),
// privilege = anchorEl.attr('data-priv');
// e.preventDefault();
// e.stopPropagation();
// socket.emit('admin.categories.setPrivilege', {
// cid: cid,
// uid: uid,
// privilege: privilege,
// set: !anchorEl.hasClass('active')
// }, function(err) {
// if (err) {
// return app.alertError(err.message);
// }
// anchorEl.toggleClass('active', !anchorEl.hasClass('active'));
// Category.refreshPrivilegeList(cid);
// });
// });
// modal.off().on('click', '.members li > img', function() {
// searchEl.val($(this).attr('title'));
// searchEl.keyup();
// });
// // User Groups and privileges
// socket.emit('admin.categories.groupsList', cid, function(err, results) {
// if(err) {
// return app.alertError(err.message);
// }
// templates.parse('admin/partials/categories/groups', {
// groups: results
// }, function(html) {
// groupsResultsEl.html(html);
// });
// });
// groupsResultsEl.off().on('click', '[data-priv]', function(e) {
// var anchorEl = $(this),
// name = anchorEl.parents('li[data-name]').attr('data-name'),
// privilege = anchorEl.attr('data-priv');
// e.preventDefault();
// e.stopPropagation();
// socket.emit('admin.categories.setGroupPrivilege', {
// cid: cid,
// name: name,
// privilege: privilege,
// set: !anchorEl.hasClass('active')
// }, function(err) {
// if (!err) {
// anchorEl.toggleClass('active');
// }
// });
// });
// modal.modal();
// };
// Category.refreshPrivilegeList = function (cid) {
// var modalEl = $('#category-permissions-modal'),
// memberList = $('.members');
// socket.emit('admin.categories.getPrivilegeSettings', cid, function(err, privilegeList) {
// var membersLength = privilegeList.length,
// liEl, x, userObj;
// memberList.html('');
// if (membersLength > 0) {
// for(x = 0; x < membersLength; x++) {
// userObj = privilegeList[x];
// liEl = $('<li/>').attr('data-uid', userObj.uid).html('<img src="' + userObj.picture + '" title="' + userObj.username + '" />');
// memberList.append(liEl);
// }
// } else {
// liEl = $('<li/>').addClass('empty').html('None.');
// memberList.append(liEl);
// }
// });
// };
Category.setupPrivilegeTable = function() {
var searchEl = $('.privilege-search'),
searchObj = autocomplete.user(searchEl);
@ -378,5 +238,36 @@ define('admin/manage/category', [
});
};
Category.launchParentSelector = function() {
socket.emit('categories.get', function(err, categories) {
templates.parse('partials/category_list', {
categories: categories
}, function(html) {
var modal = bootbox.dialog({
message: html,
title: 'Set Parent Category'
});
modal.find('li[data-cid]').on('click', function() {
var parentCid = $(this).attr('data-cid'),
payload = {};
payload[ajaxify.variables.get('cid')] = {
parentCid: parentCid
};
socket.emit('admin.categories.update', payload, function(err) {
if (err) {
return app.alertError(err.message);
}
modal.modal('hide');
ajaxify.refresh();
});
});
});
});
};
return Category;
});

@ -129,7 +129,7 @@ function getGlobalField(field, callback) {
adminController.categories.get = function(req, res, next) {
async.parallel({
category: async.apply(categories.getCategoryData, req.params.category_id),
category: async.apply(categories.getCategories, [req.params.category_id], req.user.uid),
privileges: async.apply(privileges.categories.list, req.params.category_id)
}, function(err, data) {
if (err) {
@ -137,7 +137,7 @@ adminController.categories.get = function(req, res, next) {
}
res.render('admin/manage/category', {
category: data.category,
category: data.category[0],
privileges: data.privileges
});
});

@ -68,8 +68,10 @@ module.exports = function(Meta) {
source += '\n@import (inline) "..' + path.sep + '..' + path.sep + 'public/vendor/jquery/bootstrap-tagsinput/bootstrap-tagsinput.css";';
source += '\n@import (inline) "..' + path.sep + '..' + path.sep + 'public/vendor/jquery/textcomplete/jquery.textcomplete.css";';
source += '\n@import (inline) "..' + path.sep + '..' + path.sep + 'public/vendor/colorpicker/colorpicker.css";';
source += '\n@import "..' + path.sep + '..' + path.sep + 'public/less/generics.less";';
var acpSource = '\n@import "..' + path.sep + 'public/less/admin/admin";\n' + source;
acpSource += '\n@import "..' + path.sep + 'public/less/generics.less";';
acpSource += '\n@import (inline) "..' + path.sep + 'public/vendor/colorpicker/colorpicker.css";';
source = '@import "./theme";\n' + source;

@ -3,24 +3,29 @@
<div class="col-md-9">
<div class="panel panel-default">
<div class="panel-heading"><i class="fa fa-folder"></i> Category Settings</div>
<div class="panel-body">
<h3 data-edit-target="#cid-{category.cid}-name"><span>{category.name}</span> <small><i class="fa fa-edit"></i></small></h3>
<input id="cid-{category.cid}-name" type="text" class="form-control hide" placeholder="Category Name" data-name="name" value="{category.name}" />
<h4 data-edit-target="#cid-{category.cid}-description"><span>{category.description}</span> <small><i class="fa fa-edit"></i></small></h4>
<input id="cid-{category.cid}-description" data-name="description" placeholder="Category Description" value="{category.description}" class="form-control category_description input-sm description hide"></input>
<div class="panel-body category-settings-form">
<fieldset>
<div class="col-xs-12">
<h3 data-edit-target="#cid-{category.cid}-name"><span>{category.name}</span> <small><i class="fa fa-edit"></i></small></h3>
<input id="cid-{category.cid}-name" type="text" class="form-control hide" placeholder="Category Name" data-name="name" value="{category.name}" />
<h4 data-edit-target="#cid-{category.cid}-description"><span>{category.description}</span> <small><i class="fa fa-edit"></i></small></h4>
<input id="cid-{category.cid}-description" data-name="description" placeholder="Category Description" value="{category.description}" class="form-control category_description input-sm description hide"></input>
</div>
</fieldset>
<fieldset>
<div class="col-xs-12">
<div class="form-group">
<label for="cid-{category.cid}-parentCid">Parent Category</label>
<!-- IF categories.parent.name -->
<!-- IF category.parent.name -->
<br />
<div class="btn-group">
<button type="button" class="btn btn-default" data-action="setParent" data-parentCid="{category.parent.cid}"><i class="fa {category.parent.icon}"></i> {category.parent.name}</button>
<button type="button" class="btn btn-warning" data-action="removeParent" data-parentCid="{category.parent.cid}"><i class="fa fa-times"></i></button>
</div>
<!-- ELSE -->
<button type="button" class="btn btn-default form-control" data-action="setParent"><i class="fa fa-sitemap"></i> (None)</button>
<!-- ENDIF categories.parent.name -->
<!-- ENDIF category.parent.name -->
</div>
</div>
</fieldset>

@ -0,0 +1,32 @@
<div class="privilege-table-container">
<table class="table table-striped table-hover privilege-table">
<tr>
<th colspan="2">User</th>
<!-- BEGIN privileges.labels.users -->
<th class="text-center">{privileges.labels.users.name}</th>
<!-- END privileges.labels.users -->
</tr>
<!-- BEGIN privileges.users -->
<tr data-uid="{uid}">
<td><img src="{picture}" title="{username}" /></td>
<td>{username}</td>
{function.spawnPrivilegeStates, privileges}
</tr>
<!-- END privileges.users -->
</table>
<table class="table table-striped table-hover privilege-table">
<tr>
<th colspan="1">Group</th>
<!-- BEGIN privileges.labels.groups -->
<th class="text-center">{privileges.labels.groups.name}</th>
<!-- END privileges.labels.groups -->
</tr>
<!-- BEGIN privileges.groups -->
<tr data-group-slug="{privileges.groups.slug}">
<td>{privileges.groups.name}</td>
{function.spawnPrivilegeStates, privileges}
</tr>
<!-- END privileges.groups -->
</table>
</div>
Loading…
Cancel
Save