From 88d5f972809539608caae972f0560aab104c4435 Mon Sep 17 00:00:00 2001 From: psychobunny Date: Mon, 29 May 2017 17:12:02 -0400 Subject: [PATCH] closes #5717 --- package.json | 2 +- public/language/en-GB/admin/manage/categories.json | 1 + public/src/admin/manage/category.js | 13 ++++++++++++- src/categories/data.js | 1 + src/controllers/helpers.js | 4 ++-- src/views/admin/manage/category.tpl | 10 ++++++++++ 6 files changed, 27 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index f19e975b18..d65ac4a8d2 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "nodebb-plugin-spam-be-gone": "0.5.0", "nodebb-rewards-essentials": "0.0.9", "nodebb-theme-lavender": "4.0.0", - "nodebb-theme-persona": "5.0.3", + "nodebb-theme-persona": "5.0.4", "nodebb-theme-vanilla": "6.0.3", "nodebb-widget-essentials": "3.0.0", "nodemailer": "2.6.4", diff --git a/public/language/en-GB/admin/manage/categories.json b/public/language/en-GB/admin/manage/categories.json index 7e2a5ce12e..871affe560 100644 --- a/public/language/en-GB/admin/manage/categories.json +++ b/public/language/en-GB/admin/manage/categories.json @@ -10,6 +10,7 @@ "custom-class": "Custom Class", "num-recent-replies": "# of Recent Replies", "ext-link": "External Link", + "is-section": "Treat this category as a section", "upload-image": "Upload Image", "delete-image": "Remove", "category-image": "Category Image", diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js index 1dbd31aaac..c241dd8840 100644 --- a/public/src/admin/manage/category.js +++ b/public/src/admin/manage/category.js @@ -146,6 +146,10 @@ define('admin/manage/category', [ iconSelect.init($(this).find('i'), modified); }); + $('[type="checkbox"]').on('change', function () { + modified($(this)); + }); + $('button[data-action="setParent"], button[data-action="changeParent"]').on('click', Category.launchParentSelector); $('button[data-action="removeParent"]').on('click', function () { var payload = {}; @@ -172,8 +176,15 @@ define('admin/manage/category', [ var cid = ajaxify.data.category.cid; if (cid) { + var value; + if ($(el).is(':checkbox')) { + value = $(el).is(':checked') ? 1 : 0; + } else { + value = $(el).val(); + } + modified_categories[cid] = modified_categories[cid] || {}; - modified_categories[cid][$(el).attr('data-name')] = $(el).val(); + modified_categories[cid][$(el).attr('data-name')] = value; app.flags = app.flags || {}; app.flags._unsaved = true; diff --git a/src/categories/data.js b/src/categories/data.js index e3d9296c72..73c9300902 100644 --- a/src/categories/data.js +++ b/src/categories/data.js @@ -30,6 +30,7 @@ module.exports = function (Categories) { category.name = validator.escape(String(category.name || '')); category.disabled = category.hasOwnProperty('disabled') ? parseInt(category.disabled, 10) === 1 : undefined; + category.isSection = category.hasOwnProperty('isSection') ? parseInt(category.isSection, 10) === 1 : undefined; category.icon = category.icon || 'hidden'; if (category.hasOwnProperty('post_count')) { category.post_count = category.post_count || 0; diff --git a/src/controllers/helpers.js b/src/controllers/helpers.js index 9ee0ebc0d9..761faafa82 100644 --- a/src/controllers/helpers.js +++ b/src/controllers/helpers.js @@ -65,12 +65,12 @@ helpers.buildCategoryBreadcrumbs = function (cid, callback) { async.whilst(function () { return parseInt(cid, 10); }, function (next) { - categories.getCategoryFields(cid, ['name', 'slug', 'parentCid', 'disabled'], function (err, data) { + categories.getCategoryFields(cid, ['name', 'slug', 'parentCid', 'disabled', 'isSection'], function (err, data) { if (err) { return next(err); } - if (!parseInt(data.disabled, 10)) { + if (!parseInt(data.disabled, 10) && !parseInt(data.isSection, 10)) { breadcrumbs.unshift({ text: validator.escape(String(data.name)), url: nconf.get('relative_path') + '/category/' + data.slug, diff --git a/src/views/admin/manage/category.tpl b/src/views/admin/manage/category.tpl index c8be81ab8f..56ebb5591d 100644 --- a/src/views/admin/manage/category.tpl +++ b/src/views/admin/manage/category.tpl @@ -83,6 +83,16 @@ +
+
+
+ +
+
+