瀏覽代碼

fix(AdvancedTable): Able to filter and sort by blacklisted properties

Owen Diffey 3 年之前
父節點
當前提交
35a6fbf4b8

+ 8 - 6
backend/logic/actions/dataRequests.js

@@ -60,15 +60,17 @@ export default {
 						} else if (filterType === "datetimeAfter") {
 							newQuery[filter.property] = { $gte: new Date(data) };
 						} else if (filterType === "numberLesserEqual") {
-							newQuery[filter.property] = { $lte: data };
+							newQuery[filter.property] = { $lte: Number(data) };
 						} else if (filterType === "numberLesser") {
-							newQuery[filter.property] = { $lt: data };
+							newQuery[filter.property] = { $lt: Number(data) };
 						} else if (filterType === "numberGreater") {
-							newQuery[filter.property] = { $gt: data };
+							newQuery[filter.property] = { $gt: Number(data) };
 						} else if (filterType === "numberGreaterEqual") {
-							newQuery[filter.property] = { $gte: data };
-						} else if (filterType === "numberEquals" || filterType === "boolean") {
-							newQuery[filter.property] = { $eq: data };
+							newQuery[filter.property] = { $gte: Number(data) };
+						} else if (filterType === "numberEquals") {
+							newQuery[filter.property] = { $eq: Number(data) };
+						} else if (filterType === "boolean") {
+							newQuery[filter.property] = { $eq: !!data };
 						}
 
 						return newQuery;

+ 8 - 6
backend/logic/actions/news.js

@@ -156,15 +156,17 @@ export default {
 						} else if (filterType === "datetimeAfter") {
 							newQuery[filter.property] = { $gte: new Date(data) };
 						} else if (filterType === "numberLesserEqual") {
-							newQuery[filter.property] = { $lte: data };
+							newQuery[filter.property] = { $lte: Number(data) };
 						} else if (filterType === "numberLesser") {
-							newQuery[filter.property] = { $lt: data };
+							newQuery[filter.property] = { $lt: Number(data) };
 						} else if (filterType === "numberGreater") {
-							newQuery[filter.property] = { $gt: data };
+							newQuery[filter.property] = { $gt: Number(data) };
 						} else if (filterType === "numberGreaterEqual") {
-							newQuery[filter.property] = { $gte: data };
-						} else if (filterType === "numberEquals" || filterType === "boolean") {
-							newQuery[filter.property] = { $eq: data };
+							newQuery[filter.property] = { $gte: Number(data) };
+						} else if (filterType === "numberEquals") {
+							newQuery[filter.property] = { $eq: Number(data) };
+						} else if (filterType === "boolean") {
+							newQuery[filter.property] = { $eq: !!data };
 						}
 
 						if (filter.property === "createdBy")

+ 8 - 6
backend/logic/actions/punishments.js

@@ -215,15 +215,17 @@ export default {
 						} else if (filterType === "datetimeAfter") {
 							newQuery[filter.property] = { $gte: new Date(data) };
 						} else if (filterType === "numberLesserEqual") {
-							newQuery[filter.property] = { $lte: data };
+							newQuery[filter.property] = { $lte: Number(data) };
 						} else if (filterType === "numberLesser") {
-							newQuery[filter.property] = { $lt: data };
+							newQuery[filter.property] = { $lt: Number(data) };
 						} else if (filterType === "numberGreater") {
-							newQuery[filter.property] = { $gt: data };
+							newQuery[filter.property] = { $gt: Number(data) };
 						} else if (filterType === "numberGreaterEqual") {
-							newQuery[filter.property] = { $gte: data };
-						} else if (filterType === "numberEquals" || filterType === "boolean") {
-							newQuery[filter.property] = { $eq: data };
+							newQuery[filter.property] = { $gte: Number(data) };
+						} else if (filterType === "numberEquals") {
+							newQuery[filter.property] = { $eq: Number(data) };
+						} else if (filterType === "boolean") {
+							newQuery[filter.property] = { $eq: !!data };
 						}
 
 						if (filter.property === "value") return { $or: [newQuery, { valueUsername: newQuery.value }] };

+ 8 - 6
backend/logic/actions/reports.js

@@ -159,15 +159,17 @@ export default {
 						} else if (filterType === "datetimeAfter") {
 							newQuery[filter.property] = { $gte: new Date(data) };
 						} else if (filterType === "numberLesserEqual") {
-							newQuery[filter.property] = { $lte: data };
+							newQuery[filter.property] = { $lte: Number(data) };
 						} else if (filterType === "numberLesser") {
-							newQuery[filter.property] = { $lt: data };
+							newQuery[filter.property] = { $lt: Number(data) };
 						} else if (filterType === "numberGreater") {
-							newQuery[filter.property] = { $gt: data };
+							newQuery[filter.property] = { $gt: Number(data) };
 						} else if (filterType === "numberGreaterEqual") {
-							newQuery[filter.property] = { $gte: data };
-						} else if (filterType === "numberEquals" || filterType === "boolean") {
-							newQuery[filter.property] = { $eq: data };
+							newQuery[filter.property] = { $gte: Number(data) };
+						} else if (filterType === "numberEquals") {
+							newQuery[filter.property] = { $eq: Number(data) };
+						} else if (filterType === "boolean") {
+							newQuery[filter.property] = { $eq: !!data };
 						}
 
 						if (filter.property === "createdBy")

+ 10 - 6
backend/logic/actions/users.js

@@ -201,6 +201,8 @@ export default {
 				(pipeline, next) => {
 					if (queries.filter(query => blacklistedProperties.includes(query.filter.property)).length > 0)
 						return next("Unable to filter by blacklisted property.");
+					if (Object.keys(sort).filter(property => blacklistedProperties.includes(property)).length > 0)
+						return next("Unable to sort by blacklisted property.");
 					return next(null, pipeline);
 				},
 
@@ -246,15 +248,17 @@ export default {
 						} else if (filterType === "datetimeAfter") {
 							newQuery[filter.property] = { $gte: new Date(data) };
 						} else if (filterType === "numberLesserEqual") {
-							newQuery[filter.property] = { $lte: data };
+							newQuery[filter.property] = { $lte: Number(data) };
 						} else if (filterType === "numberLesser") {
-							newQuery[filter.property] = { $lt: data };
+							newQuery[filter.property] = { $lt: Number(data) };
 						} else if (filterType === "numberGreater") {
-							newQuery[filter.property] = { $gt: data };
+							newQuery[filter.property] = { $gt: Number(data) };
 						} else if (filterType === "numberGreaterEqual") {
-							newQuery[filter.property] = { $gte: data };
-						} else if (filterType === "numberEquals" || filterType === "boolean") {
-							newQuery[filter.property] = { $eq: data };
+							newQuery[filter.property] = { $gte: Number(data) };
+						} else if (filterType === "numberEquals") {
+							newQuery[filter.property] = { $eq: Number(data) };
+						} else if (filterType === "boolean") {
+							newQuery[filter.property] = { $eq: !!data };
 						}
 
 						return newQuery;

+ 8 - 6
backend/logic/playlists.js

@@ -1014,15 +1014,17 @@ class _PlaylistsModule extends CoreClass {
 							} else if (filterType === "datetimeAfter") {
 								newQuery[filter.property] = { $gte: new Date(data) };
 							} else if (filterType === "numberLesserEqual") {
-								newQuery[filter.property] = { $lte: data };
+								newQuery[filter.property] = { $lte: Number(data) };
 							} else if (filterType === "numberLesser") {
-								newQuery[filter.property] = { $lt: data };
+								newQuery[filter.property] = { $lt: Number(data) };
 							} else if (filterType === "numberGreater") {
-								newQuery[filter.property] = { $gt: data };
+								newQuery[filter.property] = { $gt: Number(data) };
 							} else if (filterType === "numberGreaterEqual") {
-								newQuery[filter.property] = { $gte: data };
-							} else if (filterType === "numberEquals" || filterType === "boolean") {
-								newQuery[filter.property] = { $eq: data };
+								newQuery[filter.property] = { $gte: Number(data) };
+							} else if (filterType === "numberEquals") {
+								newQuery[filter.property] = { $eq: Number(data) };
+							} else if (filterType === "boolean") {
+								newQuery[filter.property] = { $eq: !!data };
 							}
 
 							if (filter.property === "createdBy")

+ 8 - 6
backend/logic/songs.js

@@ -371,15 +371,17 @@ class _SongsModule extends CoreClass {
 							} else if (filterType === "datetimeAfter") {
 								newQuery[filter.property] = { $gte: new Date(data) };
 							} else if (filterType === "numberLesserEqual") {
-								newQuery[filter.property] = { $lte: data };
+								newQuery[filter.property] = { $lte: Number(data) };
 							} else if (filterType === "numberLesser") {
-								newQuery[filter.property] = { $lt: data };
+								newQuery[filter.property] = { $lt: Number(data) };
 							} else if (filterType === "numberGreater") {
-								newQuery[filter.property] = { $gt: data };
+								newQuery[filter.property] = { $gt: Number(data) };
 							} else if (filterType === "numberGreaterEqual") {
-								newQuery[filter.property] = { $gte: data };
-							} else if (filterType === "numberEquals" || filterType === "boolean") {
-								newQuery[filter.property] = { $eq: data };
+								newQuery[filter.property] = { $gte: Number(data) };
+							} else if (filterType === "numberEquals") {
+								newQuery[filter.property] = { $eq: Number(data) };
+							} else if (filterType === "boolean") {
+								newQuery[filter.property] = { $eq: !!data };
 							}
 
 							if (filter.property === "requestedBy")

+ 8 - 6
backend/logic/stations.js

@@ -497,15 +497,17 @@ class _StationsModule extends CoreClass {
 							} else if (filterType === "datetimeAfter") {
 								newQuery[filter.property] = { $gte: new Date(data) };
 							} else if (filterType === "numberLesserEqual") {
-								newQuery[filter.property] = { $lte: data };
+								newQuery[filter.property] = { $lte: Number(data) };
 							} else if (filterType === "numberLesser") {
-								newQuery[filter.property] = { $lt: data };
+								newQuery[filter.property] = { $lt: Number(data) };
 							} else if (filterType === "numberGreater") {
-								newQuery[filter.property] = { $gt: data };
+								newQuery[filter.property] = { $gt: Number(data) };
 							} else if (filterType === "numberGreaterEqual") {
-								newQuery[filter.property] = { $gte: data };
-							} else if (filterType === "numberEquals" || filterType === "boolean") {
-								newQuery[filter.property] = { $eq: data };
+								newQuery[filter.property] = { $gte: Number(data) };
+							} else if (filterType === "numberEquals") {
+								newQuery[filter.property] = { $eq: Number(data) };
+							} else if (filterType === "boolean") {
+								newQuery[filter.property] = { $eq: !!data };
 							}
 
 							if (filter.property === "owner")

+ 0 - 1
frontend/src/pages/Admin/tabs/Songs.vue

@@ -391,7 +391,6 @@ export default {
 					displayName: "Status",
 					properties: ["status"],
 					sortProperty: "status",
-					defaultVisibility: "hidden",
 					minWidth: 120,
 					defaultWidth: 120
 				},