Skip to content

Commit

Permalink
Merge branch 'flagged-as-resolved' of https://github.com/CMU-313/node…
Browse files Browse the repository at this point in the history
…bb-s25-cheese into flagged-as-resolved
  • Loading branch information
Ginka3 committed Feb 22, 2025
2 parents 8893116 + 4090a2c commit cbecdf2
Show file tree
Hide file tree
Showing 11 changed files with 17,969 additions and 172 deletions.
Binary file modified dump.rdb
Binary file not shown.
17,570 changes: 17,570 additions & 0 deletions package-lock.json

Large diffs are not rendered by default.

199 changes: 199 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
{
"name": "nodebb",
"license": "GPL-3.0",
"description": "NodeBB Forum",
"version": "3.8.4",
"homepage": "https://www.nodebb.org",
"repository": {
"type": "git",
"url": "https://github.com/NodeBB/NodeBB/"
},
"main": "app.js",
"scripts": {
"start": "node loader.js",
"lint": "eslint --cache ./nodebb .",
"test": "nyc --reporter=html --reporter=text-summary mocha",
"coverage": "nyc report --reporter=text-lcov > ./coverage/lcov.info",
"coveralls": "nyc report --reporter=text-lcov | coveralls && rm -r coverage"
},
"nyc": {
"exclude": [
"src/upgrades/*",
"test/*"
]
},
"lint-staged": {
"*.js": [
"eslint --fix"
]
},
"dependencies": {
"@adactive/bootstrap-tagsinput": "0.8.2",
"@fontsource/inter": "5.0.18",
"@fontsource/poppins": "5.0.14",
"@fortawesome/fontawesome-free": "6.5.2",
"@isaacs/ttlcache": "1.4.1",
"@nodebb/spider-detector": "2.0.3",
"@popperjs/core": "2.11.8",
"@socket.io/redis-adapter": "8.3.0",
"ace-builds": "1.33.2",
"archiver": "7.0.1",
"async": "3.2.5",
"autoprefixer": "10.4.19",
"bcryptjs": "2.4.3",
"benchpressjs": "2.5.1",
"body-parser": "1.20.2",
"bootbox": "6.0.0",
"bootstrap": "5.3.3",
"bootswatch": "5.3.3",
"chalk": "4.1.2",
"chart.js": "4.4.2",
"cli-graph": "3.2.2",
"clipboard": "2.0.11",
"colors": "1.4.0",
"commander": "12.0.0",
"compare-versions": "6.1.0",
"compression": "1.7.4",
"connect-flash": "0.1.1",
"connect-mongo": "5.1.0",
"connect-multiparty": "2.2.0",
"connect-pg-simple": "9.0.1",
"connect-redis": "7.1.1",
"cookie-parser": "1.4.6",
"cron": "3.1.7",
"cropperjs": "1.6.2",
"csrf-sync": "4.0.3",
"daemon": "1.1.0",
"diff": "5.2.0",
"esbuild": "0.21.2",
"express": "4.19.2",
"express-session": "1.18.0",
"express-useragent": "1.0.15",
"fetch-cookie": "3.0.1",
"file-loader": "6.2.0",
"fs-extra": "11.2.0",
"graceful-fs": "4.2.11",
"helmet": "7.1.0",
"html-to-text": "9.0.5",
"imagesloaded": "5.0.0",
"ioredis": "5.4.1",
"ipaddr.js": "2.2.0",
"jquery": "3.7.1",
"jquery-deserialize": "2.0.0",
"jquery-form": "4.3.0",
"jquery-serializeobject": "1.0.0",
"jquery-ui": "1.13.3",
"jsesc": "3.0.2",
"json2csv": "5.0.7",
"jsonwebtoken": "9.0.2",
"lodash": "4.17.21",
"logrotate-stream": "0.2.9",
"lru-cache": "10.2.2",
"mime": "3.0.0",
"mkdirp": "3.0.1",
"mongodb": "6.6.1",
"morgan": "1.10.0",
"mousetrap": "1.6.5",
"multiparty": "4.2.3",
"nconf": "0.12.1",
"nodebb-plugin-2factor": "7.5.3",
"nodebb-plugin-composer-default": "10.2.36",
"nodebb-plugin-dbsearch": "6.2.5",
"nodebb-plugin-emoji": "5.1.15",
"nodebb-plugin-emoji-android": "4.0.0",
"nodebb-plugin-markdown": "12.2.6",
"nodebb-plugin-mentions": "4.4.3",
"nodebb-plugin-ntfy": "1.7.4",
"nodebb-plugin-spam-be-gone": "2.2.2",
"nodebb-rewards-essentials": "1.0.0",
"nodebb-theme-harmony": "1.2.63",
"nodebb-theme-lavender": "7.1.8",
"nodebb-theme-peace": "2.2.6",
"nodebb-theme-persona": "13.3.25",
"nodebb-widget-essentials": "7.0.18",
"nodemailer": "6.9.13",
"nprogress": "0.2.0",
"passport": "0.7.0",
"passport-http-bearer": "1.0.1",
"passport-local": "1.0.0",
"pg": "8.11.5",
"pg-cursor": "2.10.5",
"postcss": "8.4.38",
"postcss-clean": "1.2.0",
"progress-webpack-plugin": "1.0.16",
"prompt": "1.3.0",
"rimraf": "5.0.7",
"rss": "1.2.2",
"rtlcss": "4.1.1",
"sanitize-html": "2.13.0",
"sass": "1.77.1",
"semver": "7.6.2",
"serve-favicon": "2.5.0",
"sharp": "0.32.6",
"sitemap": "7.1.1",
"socket.io": "4.7.5",
"socket.io-client": "4.7.5",
"sortablejs": "1.15.2",
"spdx-license-list": "6.9.0",
"terser-webpack-plugin": "5.3.10",
"textcomplete": "0.18.2",
"textcomplete.contenteditable": "0.1.1",
"timeago": "1.6.7",
"tinycon": "0.6.8",
"toobusy-js": "0.5.1",
"tough-cookie": "4.1.4",
"validator": "13.12.0",
"webpack": "5.91.0",
"webpack-merge": "5.10.0",
"winston": "3.13.0",
"workerpool": "9.1.1",
"xml": "1.0.1",
"xregexp": "5.1.1",
"yargs": "17.7.2",
"zxcvbn": "4.4.2"
},
"devDependencies": {
"@apidevtools/swagger-parser": "10.1.0",
"@commitlint/cli": "19.3.0",
"@commitlint/config-angular": "19.3.0",
"coveralls": "3.1.1",
"eslint": "8.57.0",
"eslint-config-nodebb": "0.2.1",
"eslint-plugin-import": "2.29.1",
"grunt": "1.6.1",
"grunt-contrib-watch": "1.1.0",
"husky": "8.0.3",
"jsdom": "24.0.0",
"lint-staged": "15.2.2",
"mocha": "10.4.0",
"mocha-lcov-reporter": "1.3.0",
"mockdate": "^3.0.5",
"nyc": "15.1.0",
"sinon": "^19.0.2",
"smtp-server": "3.13.4"
},
"optionalDependencies": {
"sass-embedded": "1.77.1"
},
"resolutions": {
"*/jquery": "3.7.1"
},
"bugs": {
"url": "https://github.com/NodeBB/NodeBB/issues"
},
"engines": {
"node": ">=18"
},
"maintainers": [
{
"name": "Julian Lam",
"email": "julian@nodebb.org",
"url": "https://github.com/julianlam"
},
{
"name": "Barış Soner Uşaklı",
"email": "baris@nodebb.org",
"url": "https://github.com/barisusakli"
}
]
}
6 changes: 6 additions & 0 deletions public/openapi/components/schemas/TopicObject.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ TopicObject:
- $ref: '#/TopicObjectSlim'
- type: object
properties:
resolved:
type: string
description: Whether the topic has been marked as resolved
lastposttime:
type: number
category:
Expand Down Expand Up @@ -193,6 +196,9 @@ TopicObjectSlim:
allOf:
- type: object
properties:
resolved:
type: string
description: Whether the topic has been marked as resolved
tid:
type: number
description: A topic identifier
Expand Down
24 changes: 12 additions & 12 deletions src/api/topics.js
Original file line number Diff line number Diff line change
Expand Up @@ -301,19 +301,19 @@ topicsAPI.bump = async (caller, { tid }) => {


// API for marking/unmarking resolved questions
topicsAPI.setResolved = async function (caller, { tid, resolved }) {
if (typeof resolved !== 'boolean') {
throw new Error('[[error:invalid-data]]');
}
// topicsAPI.setResolved = async function (caller, { tid, resolved }) {
// if (typeof resolved !== 'boolean') {
// throw new Error('[[error:invalid-data]]');
// }

// Check if the user has permission to edit this topic
if (!await privileges.topics.canEdit(tid, caller.uid)) {
throw new Error('[[error:no-privileges]]');
}
// // Check if the user has permission to edit this topic
// if (!await privileges.topics.canEdit(tid, caller.uid)) {
// throw new Error('[[error:no-privileges]]');
// }

// Update the topic's "resolved" field in the database
await db.setObjectField(`topic:${tid}`, 'resolved', resolved);
// // Update the topic's "resolved" field in the database
// await db.setObjectField(`topic:${tid}`, 'resolved', resolved);

return { tid, resolved };
};
// return { tid, resolved };
// };

4 changes: 1 addition & 3 deletions src/controllers/topics.js
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,4 @@ topicsController.setResolved = async function (req, res) {
} catch (error) {
res.status(500).json({ error: error.message });
}
};


};
3 changes: 1 addition & 2 deletions src/routes/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ module.exports = function (app, middleware, controllers) {
middleware.checkAccountPermissions,
], helpers.tryRoute(controllers.accounts.edit.uploadPicture));

//API Routing for marking/unmarking resolved field for a question
// API Routing for marking/unmarking resolved field for a question
router.put('/topics/:tid/resolved', [...middlewares, middleware.ensureLoggedIn], helpers.tryRoute(controllers.topics.setResolved));

};
5 changes: 2 additions & 3 deletions src/topics/create.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,8 @@ module.exports = function (Topics) {
lastposttime: 0,
postcount: 0,
viewcount: 0,

//Newly added fields:
resolved: false
// Newly added fields:
resolved: false,
};

if (Array.isArray(data.tags) && data.tags.length) {
Expand Down
9 changes: 8 additions & 1 deletion src/topics/data.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,14 @@ module.exports = function (Topics) {

Topics.getTopicField = async function (tid, field) {
const topic = await Topics.getTopicFields(tid, [field]);
return topic ? topic[field] : null;
if (!topic) {
return null;
}
// Ensure 'resolved' is returned as a boolean
if (field === 'resolved') {
return topic[field] === 'true';
}
return topic[field];
};

Topics.getTopicFields = async function (tid, fields) {
Expand Down
1 change: 0 additions & 1 deletion src/user/admin.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

'use strict';

const fs = require('fs');
Expand Down
Loading

0 comments on commit cbecdf2

Please sign in to comment.