diff --git a/.gitignore b/.gitignore index 3ea46aa65b..42a1b3c705 100644 --- a/.gitignore +++ b/.gitignore @@ -66,6 +66,7 @@ coverage test/files/normalise.jpg.png test/files/normalise-resized.jpg package-lock.json +/package.json *.mongodb link-plugins.sh test.sh diff --git a/dump.rdb b/dump.rdb deleted file mode 100644 index bbebdd9251..0000000000 Binary files a/dump.rdb and /dev/null differ diff --git a/package.json b/package.json deleted file mode 100644 index de8424d847..0000000000 --- a/package.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "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-location-to-map": "^0.1.1", - "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", - "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" - } - ] -} diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js index c02efd743b..e59e34ee3f 100644 --- a/public/src/admin/admin.js +++ b/public/src/admin/admin.js @@ -12,55 +12,35 @@ app.onDomReady(); (function () { let logoutTimer = 0; let logoutMessage; - - // Separate the translation logic into a function that returns a promise - function translateMessage(callback) { - require(['translator'], function (translator) { - translator.translate('[[login:logged-out-due-to-inactivity]]', callback); - }); - } - // Separate function to generate the logout message - function getLogoutMessage() { - return new Promise((resolve) => { - if (logoutMessage) { - resolve(logoutMessage); - } else { - translateMessage((translated) => { + function startLogoutTimer() { + if (app.config.adminReloginDuration <= 0) { + return; + } + if (logoutTimer) { + clearTimeout(logoutTimer); + } + // pre-translate language string gh#9046 + if (!logoutMessage) { + require(['translator'], function (translator) { + translator.translate('[[login:logged-out-due-to-inactivity]]', function (translated) { logoutMessage = translated; - resolve(logoutMessage); }); - } - }); - } - // Separate the bootbox logic into its own function - function showLogoutAlert() { - getLogoutMessage().then((message) => { + }); + } + + logoutTimer = setTimeout(function () { require(['bootbox'], function (bootbox) { bootbox.alert({ closeButton: false, - message: message, + message: logoutMessage, callback: function () { window.location.reload(); }, }); }); - }); - } - - // Logout timer start logic - function startLogoutTimer() { - if (app.config.adminReloginDuration <= 0) { - return; - } - - if (logoutTimer) { - clearTimeout(logoutTimer); - } - - logoutTimer = setTimeout(() => { - showLogoutAlert(); }, 3600000); } + require(['hooks', 'admin/settings'], (hooks, Settings) => { hooks.on('action:ajaxify.end', (data) => { updatePageTitle(data.url);