mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-03-06 12:31:33 +01:00
refactor: more cid parseInt changes
This commit is contained in:
@@ -97,7 +97,7 @@
|
|||||||
"multer": "2.0.2",
|
"multer": "2.0.2",
|
||||||
"nconf": "0.13.0",
|
"nconf": "0.13.0",
|
||||||
"nodebb-plugin-2factor": "7.6.1",
|
"nodebb-plugin-2factor": "7.6.1",
|
||||||
"nodebb-plugin-composer-default": "10.3.22",
|
"nodebb-plugin-composer-default": "10.3.23",
|
||||||
"nodebb-plugin-dbsearch": "6.4.0",
|
"nodebb-plugin-dbsearch": "6.4.0",
|
||||||
"nodebb-plugin-emoji": "6.0.5",
|
"nodebb-plugin-emoji": "6.0.5",
|
||||||
"nodebb-plugin-emoji-android": "4.1.1",
|
"nodebb-plugin-emoji-android": "4.1.1",
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ define('admin/manage/categories', [
|
|||||||
], function (translator, Benchpress, categorySelector, api, Sortable, bootbox, alerts) {
|
], function (translator, Benchpress, categorySelector, api, Sortable, bootbox, alerts) {
|
||||||
Sortable = Sortable.default;
|
Sortable = Sortable.default;
|
||||||
const Categories = {};
|
const Categories = {};
|
||||||
let newCategoryId = -1;
|
let newCategoryId = '-1';
|
||||||
let sortables;
|
let sortables;
|
||||||
|
|
||||||
Categories.init = function () {
|
Categories.init = function () {
|
||||||
@@ -261,15 +261,15 @@ define('admin/manage/categories', [
|
|||||||
};
|
};
|
||||||
|
|
||||||
function itemDidAdd(e) {
|
function itemDidAdd(e) {
|
||||||
newCategoryId = e.to.dataset.cid;
|
newCategoryId = String(e.to.dataset.cid);
|
||||||
}
|
}
|
||||||
|
|
||||||
function itemDragDidEnd(e) {
|
function itemDragDidEnd(e) {
|
||||||
const isCategoryUpdate = parseInt(newCategoryId, 10) !== -1;
|
const isCategoryUpdate = String(newCategoryId) !== '-1';
|
||||||
|
|
||||||
// Update needed?
|
// Update needed?
|
||||||
if ((e.newIndex != null && parseInt(e.oldIndex, 10) !== parseInt(e.newIndex, 10)) || isCategoryUpdate) {
|
if ((e.newIndex != null && parseInt(e.oldIndex, 10) !== parseInt(e.newIndex, 10)) || isCategoryUpdate) {
|
||||||
const cid = e.item.dataset.cid;
|
const cid = String(e.item.dataset.cid);
|
||||||
const modified = {};
|
const modified = {};
|
||||||
// on page 1 baseIndex is 0, on page n baseIndex is (n - 1) * ajaxify.data.categoriesPerPage
|
// on page 1 baseIndex is 0, on page n baseIndex is (n - 1) * ajaxify.data.categoriesPerPage
|
||||||
// this makes sure order is correct when drag & drop is used on pages > 1
|
// this makes sure order is correct when drag & drop is used on pages > 1
|
||||||
@@ -282,8 +282,8 @@ define('admin/manage/categories', [
|
|||||||
modified[cid].parentCid = newCategoryId;
|
modified[cid].parentCid = newCategoryId;
|
||||||
|
|
||||||
// Show/hide expand buttons after drag completion
|
// Show/hide expand buttons after drag completion
|
||||||
const oldParentCid = parseInt(e.from.getAttribute('data-cid'), 10);
|
const oldParentCid = String(e.from.getAttribute('data-cid') || '');
|
||||||
const newParentCid = parseInt(e.to.getAttribute('data-cid'), 10);
|
const newParentCid = String(e.to.getAttribute('data-cid') || '');
|
||||||
if (oldParentCid !== newParentCid) {
|
if (oldParentCid !== newParentCid) {
|
||||||
const toggle = document.querySelector(`.categories li[data-cid="${newParentCid}"] .toggle`);
|
const toggle = document.querySelector(`.categories li[data-cid="${newParentCid}"] .toggle`);
|
||||||
if (toggle) {
|
if (toggle) {
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ define('admin/manage/category', [
|
|||||||
label: '[[modules:bootbox.confirm]]',
|
label: '[[modules:bootbox.confirm]]',
|
||||||
className: 'btn-primary',
|
className: 'btn-primary',
|
||||||
callback: function () {
|
callback: function () {
|
||||||
if (!selectedCid || parseInt(selectedCid, 10) === parseInt(ajaxify.data.category.cid, 10)) {
|
if (!selectedCid || String(selectedCid) === String(ajaxify.data.category.cid)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,10 +68,14 @@ define('admin/manage/group', [
|
|||||||
|
|
||||||
const cidSelector = categorySelector.init($('.member-post-cids-selector [component="category-selector"]'), {
|
const cidSelector = categorySelector.init($('.member-post-cids-selector [component="category-selector"]'), {
|
||||||
onSelect: function (selectedCategory) {
|
onSelect: function (selectedCategory) {
|
||||||
let cids = ($('#memberPostCids').val() || '').split(',').map(cid => parseInt(cid, 10));
|
const cids = new Set(($('#memberPostCids').val() || '').split(',').filter(Boolean));
|
||||||
cids.push(selectedCategory.cid);
|
if (cids.has(String(selectedCategory.cid))) {
|
||||||
cids = cids.filter((cid, index, array) => array.indexOf(cid) === index);
|
cids.delete(String(selectedCategory.cid));
|
||||||
$('#memberPostCids').val(cids.join(','));
|
} else {
|
||||||
|
cids.add(String(selectedCategory.cid));
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#memberPostCids').val(Array.from(cids).join(','));
|
||||||
cidSelector.selectCategory(0);
|
cidSelector.selectCategory(0);
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -233,11 +233,16 @@ define('forum/groups/details', [
|
|||||||
|
|
||||||
const cidSelector = categorySelector.init($('.member-post-cids-selector [component="category-selector"]'), {
|
const cidSelector = categorySelector.init($('.member-post-cids-selector [component="category-selector"]'), {
|
||||||
onSelect: function (selectedCategory) {
|
onSelect: function (selectedCategory) {
|
||||||
let cids = ($('#memberPostCids').val() || '').split(',').map(cid => parseInt(cid, 10));
|
const cids = new Set(($('#memberPostCids').val() || '').split(',').filter(Boolean));
|
||||||
cids.push(selectedCategory.cid);
|
if (cids.has(String(selectedCategory.cid))) {
|
||||||
cids = cids.filter((cid, index, array) => array.indexOf(cid) === index);
|
cids.delete(String(selectedCategory.cid));
|
||||||
$('#memberPostCids').val(cids.join(','));
|
} else {
|
||||||
|
cids.add(String(selectedCategory.cid));
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#memberPostCids').val(Array.from(cids).join(','));
|
||||||
cidSelector.selectCategory(0);
|
cidSelector.selectCategory(0);
|
||||||
|
return false;
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -65,9 +65,7 @@ define('forum/unread', [
|
|||||||
// Generate list of default categories based on topic list
|
// Generate list of default categories based on topic list
|
||||||
let defaultCategories = ajaxify.data.topics.reduce((map, topic) => {
|
let defaultCategories = ajaxify.data.topics.reduce((map, topic) => {
|
||||||
const { category } = topic;
|
const { category } = topic;
|
||||||
let { cid } = category;
|
map.set(String(category.cid), category);
|
||||||
cid = utils.isNumber(cid) ? parseInt(cid, 10) : cid;
|
|
||||||
map.set(cid, category);
|
|
||||||
return map;
|
return map;
|
||||||
}, new Map());
|
}, new Map());
|
||||||
defaultCategories = Array.from(defaultCategories.values());
|
defaultCategories = Array.from(defaultCategories.values());
|
||||||
|
|||||||
@@ -95,11 +95,11 @@ define('topicList', [
|
|||||||
|
|
||||||
const categories = d.selectedCids &&
|
const categories = d.selectedCids &&
|
||||||
d.selectedCids.length &&
|
d.selectedCids.length &&
|
||||||
d.selectedCids.indexOf(parseInt(data.cid, 10)) === -1;
|
!d.selectedCids.includes(parseInt(data.cid, 10));
|
||||||
const filterWatched = d.selectedFilter &&
|
const filterWatched = d.selectedFilter &&
|
||||||
d.selectedFilter.filter === 'watched';
|
d.selectedFilter.filter === 'watched';
|
||||||
const category = d.template.category &&
|
const category = d.template.category &&
|
||||||
parseInt(d.cid, 10) !== parseInt(data.cid, 10);
|
String(d.cid) !== String(data.cid);
|
||||||
|
|
||||||
const preventAlert = !!(categories || filterWatched || category || scheduledTopics.includes(data.tid));
|
const preventAlert = !!(categories || filterWatched || category || scheduledTopics.includes(data.tid));
|
||||||
hooks.fire('filter:topicList.onNewTopic', { topic: data, preventAlert }).then((result) => {
|
hooks.fire('filter:topicList.onNewTopic', { topic: data, preventAlert }).then((result) => {
|
||||||
@@ -126,14 +126,14 @@ define('topicList', [
|
|||||||
const isMain = parseInt(post.topic.mainPid, 10) === parseInt(post.pid, 10);
|
const isMain = parseInt(post.topic.mainPid, 10) === parseInt(post.pid, 10);
|
||||||
const categories = d.selectedCids &&
|
const categories = d.selectedCids &&
|
||||||
d.selectedCids.length &&
|
d.selectedCids.length &&
|
||||||
d.selectedCids.indexOf(parseInt(post.topic.cid, 10)) === -1;
|
!d.selectedCids.includes(parseInt(post.topic.cid, 10));
|
||||||
const filterNew = d.selectedFilter &&
|
const filterNew = d.selectedFilter &&
|
||||||
d.selectedFilter.filter === 'new';
|
d.selectedFilter.filter === 'new';
|
||||||
const filterWatched = d.selectedFilter &&
|
const filterWatched = d.selectedFilter &&
|
||||||
d.selectedFilter.filter === 'watched' &&
|
d.selectedFilter.filter === 'watched' &&
|
||||||
!post.topic.isFollowing;
|
!post.topic.isFollowing;
|
||||||
const category = d.template.category &&
|
const category = d.template.category &&
|
||||||
parseInt(d.cid, 10) !== parseInt(post.topic.cid, 10);
|
String(d.cid) !== String(post.topic.cid);
|
||||||
|
|
||||||
const preventAlert = !!(isMain || categories || filterNew || filterWatched || category);
|
const preventAlert = !!(isMain || categories || filterNew || filterWatched || category);
|
||||||
hooks.fire('filter:topicList.onNewPost', { post, preventAlert }).then((result) => {
|
hooks.fire('filter:topicList.onNewPost', { post, preventAlert }).then((result) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user