6002 Commits (4833a2b90c26cfdd1da0bd85b05c06162aa2174f)

Author SHA1 Message Date
Barış Soner Uşaklı 617f4730a0 fix: crash if unreadTopics is undefined 4 years ago
Barış Soner Uşaklı f45c0aab51 fix: dont crash if login el doesnt exist 4 years ago
Barış Soner Uşaklı 52082e1296 feat: add resolve flag to post tools 4 years ago
Julian Lam 2a939aad8d fix: regression via c1b3079d93
Also refactored privilege render logic so that it no longer needs a server-side hack to render column count
4 years ago
Julian Lam 4cbd13fd9c feat: hide revert button in ACP > Privileges until privileges change 4 years ago
Julian Lam 8472513093 fix: change notification updateCount to use client-side hooks 4 years ago
Julian Lam 98bf4064e7 refactor: account edit logic and template, closes #9364 4 years ago
Barış Soner Uşaklı e787e6ea22 fix: if no in passed use "titles" to match header search 4 years ago
Barış Soner Uşaklı 696c489524 feat: add back topic id input 4 years ago
Barış Soner Uşaklı 8a4c361ece fix: #9354, don't close quicksearch results if mouse is down on them 4 years ago
Julian Lam c5e257888a fix: #9351 bad logic when inserting rows to privilege tables, also a missing tfoot 🦶 4 years ago
Julian Lam c265016944 fix: app.parseAndTranslate to always return promise 4 years ago
psychobunny 66196d2caf feat: allow for settings.save/settings.load on client side
w/ optional data-socket-get / data-socket-set params on form element for custom calls
4 years ago
Barış Soner Uşaklı 48bc23c065 refactor: remove startsWith/endsWith 4 years ago
Julian Lam b5a6a3149d refactor: app.parseAndTranslate to return promise if no callback passed 4 years ago
Julian Lam c1b3079d93 feat: category privilege API routes
closes #9342
4 years ago
Julian Lam 1e579428e7 fix: bug where fallback window trigger was not firing if there were no hook listeners attached
... so in essence the backwards compatibility was not working at all.

closes nodebb/nodebb-plugin-composer-default#147
4 years ago
Julian Lam 7d391d4789 feat: new client-side hook `filter:api.options` to allow plugins to modify api requests 4 years ago
preetykumar 2826c6986c
Update taskbar.js (#9314)
* Update taskbar.js

add aria-label to make the link text discernible to screen readers.

* place quotes around attribute value

Co-authored-by: Peter Jaszkowiak <p.jaszkow@gmail.com>
4 years ago
Julian Lam 114e3a1e76 fix: use components for toggleNavbar instead 4 years ago
Julian Lam 73dc64d9ff feat: add dashboard sub-pages to ACP menu 4 years ago
Julian Lam 655e2c67ad fix: timeago missing on table update 4 years ago
Julian Lam e1ed514b10 feat: topics dashboard details subpage 4 years ago
Julian Lam c57c77030e feat: update user list in dashboard/users on graph update 4 years ago
Julian Lam 3fa2e3cef2 refactor: have Graph.init and Graph.update return promises 4 years ago
Julian Lam f8e1a74c26 fix: wrong qs param, allow string to be passed to util.getDaysArray 4 years ago
Julian Lam 6fdcae7320 feat: req.query parsing and dynamically loading data instead 4 years ago
Julian Lam f561799f74 refactor: abstract out some client side dashboard code into modules, analytics subpages for users, topics, and logins 4 years ago
Julian Lam d0136074b6 feat: allow hook unregistration, and temporary page-based hooks
Temporary hooks automatically unregister themselves on the next ajaxify, making them perfect for in-page events.
4 years ago
Barış Soner Uşaklı 7ae7626c1b Revert "feat: add logout to invalid session"
This reverts commit beb1427387.
4 years ago
Peter Jaszkowiak 0d59fe3d2b fix(#9315): api v3 post, put, del JSON
also allow `app.alertError` to be called without an argument
also fix `./nodebb build --dev` to actually build in dev mode
4 years ago
Julian Lam beaac0a1ab fix: allow hidden inputs in user settings page 4 years ago
Julian Lam c96fd3b19b feat: pass user picture object into change_picture_modal 4 years ago
Julian Lam 28f6931e16 refactor: move picture change client-side logic to its own rjs module 4 years ago
Barış Soner Uşaklı beb1427387 feat: add logout to invalid session 4 years ago
Julian Lam 955021247e feat(user): icon background selector in change picture modal 4 years ago
Julian Lam b4c0b32b26 fix: use root context if buildAvatar context is undefined 4 years ago
Barış Soner Uşaklı fa91525a6d fix: use bootbox module 4 years ago
Barış Soner Uşaklı 9ce6f8ad93 feat: add tag filter to getSortedTopics 4 years ago
Julian Lam 7223074f1d feat: ability to re-order topic thumbnails 4 years ago
Julian Lam db027170a8 feat: add close button to topic thumbnail modal 4 years ago
Julian Lam 36e8d251c8 fix: use of removed URL to get post data 4 years ago
Barış Soner Uşaklı 3595473485 feat: load user posts/topics via xhr on infinitescroll 4 years ago
Peter Jaszkowiak cc9d6fd08b chore: eslint max-len 4 years ago
Peter Jaszkowiak 62869bae3d chore: eslint function-paren-newline 4 years ago
Peter Jaszkowiak 9f6a682ca9 chore: eslint no-script-url 4 years ago
Peter Jaszkowiak dad01e3051 chore: eslint no-bitwise 4 years ago
Julian Lam 16610b2dca fix: pass jquery object in to action:notifications.loaded hook 4 years ago
Julian Lam 7edc8f458d feat: new notifications load/loaded hooks on client side
refactored `toggleTimeagoShorthand` code to be inside of a hook listener
4 years ago
Barış Soner Uşaklı 0cca6893f3 fix: #9275, 4 years ago
Barış Soner Uşaklı cfa0d42390 fix: don't use global bootbox obj 4 years ago
Barış Soner Uşaklı 550cd995e8 fix: remove console.log 4 years ago
Barış Soner Uşaklı fca17cb713 fix: move service worker back to relative_path/service-worker.js 4 years ago
Barış Soner Uşaklı a4878a5b22 fix: markread selector 4 years ago
Barış Soner Uşaklı 3090a2aee4 fix: position when scrolling up
if sorting is newest to oldest scrollTop wont be changed if you are at the top of the page
4 years ago
Barış Soner Uşaklı 47299ea587
Categories refactor (#9257)
* feat: wip categories pagination

* feat: add subCategoriesPerPage setting

* feat: add load more sub categories button to category page

* fix: openapi spec

* feat: show sub categories left on category page

hide button when no more categories left

* breaking: rename categories to allCategories on /search

categories contains the search results

* fix: spec

* refactor: remove cidsPerPage

* fix: tests

* feat: use component for subcategories

* fix: prevent negative subCategoriesLeft

* feat: new category filter/search WIP

* feat: remove categories from /tag

* fix: dont load all categories when showing move modal

* feat: allow adding custom categories to list

* breaking: dont load entire category tree on post queue

removed unused code
add hooks to filter/selector
add options to filter/selector

* feat: make selector modal work again

* feat: replace old search module

* fix: topic move selector

* feat: dont load all categories on create category modal

* fix: fix more categorySelectors

* feat: dont load entire category tree on group details page

* feat: dont load all categories on home page and user settings page

* feat: add pagination to /user/:userslug/categories

* fix: update schemas

* fix: more tests

* fix: test

* feat: flags page, dont return entire category tree

* fix: flag test

* feat: categories manage page

dont load all categories
allow changing root category
clear caches properly

* fix: spec

* feat: admins&mods page

dont load all categories

* fix: spec

* fix: dont load all children when opening dropdown

* fix: on search results dont return all children

* refactor: pass all options, rename options.cids to options.selectedCids

* fix: #9266

* fix: index 0

* fix: spec

* feat: #9265, add setObjectBulk

* refactor: shoter updateOrder

* feat: selectors on categories/category

* fix: tests and search filter

* fix: category update test

* feat: pagination on acp categories page

show order in set order modal

* fix: allow drag&drop on pages > 1 in /admin/manage/categories

* fix: teasers for deep nested categories

fix sub category display on /category page

* fix: spec

* refactor: use eslint-disable-next-line

* refactor: shorter
4 years ago
Julian Lam 67e3fb6498 fix: register returnTo logic to match login route
Login route saves the previous page by checking for the X-Return-To header. This header is automatically set by ajaxify.
Login takes this value and saves it to `req.session`.

Up until now, `/register` saved the previous URL in a hidden input, and redirected based on that value, but it occasionally conflicted with req.session.returnTo. It was also confusing because it did not match how login handled the values.

This commit updates the route handling so it works identically to `/login`.
4 years ago
gasoved 53e0d4d2e0 feat: banned-users group 4 years ago
Julian Lam 4af9c2fcdd fix: autofocus on search field in ACP > Manage > Plugins 4 years ago
gasoved a2a7557cc0 refactor: update dom after diff deletion better 4 years ago
gasoved 4447a64eaa refactor: removed 3 lines 4 years ago
gasoved eb642f40b9 feat: #9109, ability to delete a post's diffs 4 years ago
Julian Lam 501441b736 feat: add .delete() method to api module 4 years ago
psychobunny 58655e9a0b fix: invalid API call when unfollowing a user 4 years ago
Opliko 2bc74cffe6
fix: #9127, scope service worker to relative_path for the forum (#9239)
Adds a `Service-Worker-Allowed` header on `assets/src/service-worker.js` URL and uses `scope` option during registration to ensure the service worker is correctly scoped to the entire forum and only the forum.
4 years ago
Barış Soner Uşaklı d1364c3130
Categories refactor (#9233)
* feat: wip categories pagination

* feat: add subCategoriesPerPage setting

* feat: add load more sub categories button to category page

* fix: openapi spec

* feat: show sub categories left on category page

hide button when no more categories left

* breaking: rename categories to allCategories on /search

categories contains the search results

* fix: spec

* refactor: remove cidsPerPage

* fix: tests

* feat: use component for subcategories

* fix: prevent negative subCategoriesLeft
4 years ago
Julian Lam 5131eb6b90 fix: `action:admin.settingsLoaded` to use new hooks lib 4 years ago
Julian Lam b0f5d5a594 fix: crash on firing action hook that had no listeners registered 4 years ago
Julian Lam 1a04ec6419 fix: bug where `action:settings.sorted-list.loaded` fired early
The hook was fired before the elements had been added to the DOM.

Also, I updated it to use the new hooks lib.
4 years ago
Barış Soner Uşaklı a29dd21de4 fix: don't translate message on every ajaxify 4 years ago
Julian Lam 4029ec3713 fix: multiple sorted-lists do not save to the correct set 4 years ago
Julian Lam f8bf9e99c4 fix: pass module name to `static:script.init`, +comments
I feel it is difficult to know exactly what the original use-cases were for these hooks, so some comments may be helpful.
4 years ago
Julian Lam 4bb3b0323d feat: guard password fields in login/register against accidental caps lock 4 years ago
Barış Soner Uşaklı 05be1c6603 feat: restore action:script.load, allow modifying loaded module via static:script.init 4 years ago
Julian Lam 8b09292e77 chore: add deprecation notice in comments for ajaxify.loadExtraScripts 4 years ago
Julian Lam 7da1b43f2b fix: script failure if client-side page script does not exist 4 years ago
Julian Lam 8e93bf7362 feat(topic-events): client-side handling on topic event log 4 years ago
Julian Lam df2fdd56ba fix(topic-events): repeated invocations of Posts.addTopicEvents caused dupes to be added to DOM 4 years ago
Julian Lam 9559fad8ac refactor(topic-events): expose addTopicEvents method in topic posts lib
+ allow it to accept an array of events, or fall back to ajaxify data otherwise
4 years ago
Julian Lam 882e6a159c feat(topic-events): handle newest_to_oldest sort in topic events, WIP 4 years ago
Julian Lam ab2e1ecb40 feat(topic-events): work in progress topic events logic and client-side implementation 4 years ago
Julian Lam faf5960373 fix: bug where `action:ajaxify.end` was never called if there were no init scripts 4 years ago
Julian Lam 8e5687a4af refactor(hooks): deprecate `action:script.load` client-side hook
Use `static:script.init` instead.
4 years ago
Julian Lam efff8e2ae2 fix(hooks): bug where hook firing would fail if there were no listeners 4 years ago
Julian Lam e7bd038db1 refactor(hooks): better error handling
Hook listeners can both throw and reject, and it will be handled appropriately (e.g. filters won't fail)
4 years ago
Julian Lam 1d77572117 feat(hooks): update action:ajaxify.end to use new hooks module 4 years ago
Julian Lam 412d285850 fix(hooks): fallback handling for core invocations of hooks.fire
+ .on() which is the same as .register()
4 years ago
Julian Lam 01c9b1847e feat(hooks): client-side hooks module
Similar to server-side, comes with three hook types, filter, action, and static. Behaviour also mimics server-side.
4 years ago
Julian Lam 966c4117ec refactor(api): post move to write API 4 years ago
Barış Soner Uşaklı 0fa4c11ea6 fix: don't chagne scrollTop if at the top of page 4 years ago
Julian Lam e118e59ce0 refactor(api): post diffs to use write API 4 years ago
Barış Soner Uşaklı 1590cdf19f fix: #9206, fix double escaped arguments 4 years ago
Barış Soner Uşaklı 0a471b76b5 fix: use max 4 years ago
Barış Soner Uşaklı c30b40abe7 fix: keep 60 topics minimum on topic list 4 years ago
Barış Soner Uşaklı 072a0e32d8 feat: #8813, faster category search dropdown
when you have 4k+ categories manipulating DOM becomes very slow
clone the list and manipulate it outside of DOM, replace list on DOM when search is done
add utils.debounce so list is updated slower
4 years ago
Julian Lam e5edbc6faf feat: automatically attempt socket.io reconnection on ajaxify
Also, updated messaging and toaster to accurately reflect offline-mode state
4 years ago
Barış Soner Uşaklı 3121215e87 fix: #9127, use assets path 4 years ago
Barış Soner Uşaklı c1ecfd1ebf feat: #9135, don't try to reconnect forever 4 years ago
Barış Soner Uşaklı 20c1b684ed fix: #9151, dont use service worker for posts requests 4 years ago
Barış Soner Uşaklı 183cabe90f fix: #9150, fix selector so it doesn't add img-responsive to profile pics 4 years ago
Julian Lam d90aa95808 feat: add confirmation modal when assigning admin:admins-mods privilege 4 years ago
Julian Lam 32e36f7b2e feat(api): group ownership API route, switch client-side to use API route 4 years ago
Julian Lam 1cd2689cf6 refactor(api): deprecated groups update socket in favour of API lib 4 years ago
Julian Lam e640a41a78 refactor(api): update group deletion calls to use write API 4 years ago
Barış Soner Uşaklı 2ef72a94c2 fix: #9136, fix move topic/post timeout errors 4 years ago
Peter Jaszkowiak 2be396ff6e fix: email testing and settings change from ACP
- changing email SMTP settings wouldn't apply the first time
- "Send Test Email" now will report emailer errors in most cases
4 years ago
Barış Soner Uşaklı b369dc888b fix: #9129, event is fired on socket.io 4 years ago
psychobunny b8d4709eec fix(pwa): #9127 service-worker.js missing on subfolder installs 4 years ago
Barış Soner Uşaklı b7b588f5c8 fix: trigger action:posts.edited 4 years ago
Barış Soner Uşaklı feecd66506 fix: api usage 4 years ago
Barış Soner Uşaklı a15ef53c70 feat: add new client side hooks 4 years ago
Barış Soner Uşaklı 3ed55799ab fix: #9114, fix client side groups update for memberPostCids 4 years ago
gasoved 3ba0575584 fix: don't check "select all" if there are no enabled checkboxes 4 years ago
Julian Lam a30c8ab5c8 feat: clent-side modal for managing topic thumbs
closes #9087
4 years ago
Julian Lam cb7e4cda2a feat: helper method to get thumbs by pid 4 years ago
Julian Lam 41379e27c8 fix: hack uploader to handle a response from v3 write api 4 years ago
Julian Lam ef10b6b70d fix: missing file added 4 years ago
Barış Soner Uşaklı ff2aa17bbc fix: show errors when user delete fails 4 years ago
Barış Soner Uşaklı dd9ed23631 fix: dont start logout timer if adminReloginDuration is disabled 4 years ago
Barış Soner Uşaklı 13d5a1440b fix: reconnectin no longer fires on socket.io 3 4 years ago
Barış Soner Uşaklı 74274b60ed feat: allow clicks on navigator, clean dupe code 4 years ago
Barış Soner Uşaklı 4a0d883359 breaking: #8808, remove utils.slugify 4 years ago
Barış Soner Uşaklı 91c20ceca5 fix: #9065, settings v2/v3 conflict 4 years ago
Barış Soner Uşaklı a389a31b4a fix: timeago in navigation 4 years ago
Barış Soner Uşaklı 163d1a39ce fix: navigation fixes 4 years ago
Barış Soner Uşaklı 73d2f51d7a fix: cache some jquery objects 4 years ago
Barış Soner Uşaklı 63d0839550 fix: add ev.cancelable 4 years ago
Barış Soner Uşaklı 790f4e4521 fix: #9046, pretranslate string 4 years ago
Barış Soner Uşaklı 6669496dba
Navigator (#9049)
* feat: navigator changes

* fix: remove extra code

* feat: add lang keys
4 years ago
Barış Soner Uşaklı 5d00b0895b fix: sso redirect on /login & /api/login 4 years ago
Barış Soner Uşaklı 698718f87c feat: allow modifiying browser title on ajaxify 4 years ago
Barış Soner Uşaklı 7e867cf95e fix: #7597, fix progress bar of cover/profile uploads
send big cover images in chunks
4 years ago
Barış Soner Uşaklı 73746bb489 refactor: remove old hack 4 years ago
Barış Soner Uşaklı 6f68f4d20a fix: #9032, fix login redirect for sso plugins 4 years ago
Barış Soner Uşaklı 5f0f476b57 feat: #9005, use timestamp in profile/cover images
delete current one if keepAllUserImages is turned off
fix typo in data
4 years ago
Barış Soner Uşaklı 954dc5b7be feat: #8983, update pin tooltip in topic 4 years ago
psychobunny 53abada5f0 Revert "feat: option to allow auto-joining of groups (optionally skip the "request membership" step)"
This reverts commit 685f3c6aa6.
4 years ago
psychobunny 685f3c6aa6 feat: option to allow auto-joining of groups (optionally skip the "request membership" step) 4 years ago
psychobunny 54dc449fb9 fix(acp): #9008 undefined link for "no users browsing" state on dashboard 4 years ago
psychobunny 286243cd37 fix(acp): #9009 no-users-browsing untranslated on dashboard 4 years ago
Barış Soner Uşaklı 4c650aeead feat: #8989, convert widget nav to dropdown 4 years ago
Barış Soner Uşaklı 5080f35752 fix: #8991, logout on password reset, dont verify email if password expired
dont allow same password on reset
4 years ago
Barış Soner Uşaklı 8adbf54ae6 fix: don't show topic search if no search privilege 4 years ago
Barış Soner Uşaklı 1269103fbb fix: #8984, post-queue ux 4 years ago
Barış Soner Uşaklı d3c04afb98 fix: #8982, copy color on tag rename, dont copy if target exists
refresh page on tag rename
4 years ago
Barış Soner Uşaklı 6e6a7a8f8a fix: #8969, export csv to file 4 years ago
Barış Soner Uşaklı 5c3deb4b0e fix: #8973, fix timestamp on ban modal 4 years ago
Barış Soner Uşaklı c8554b78b9 fix: #8968, don't show topic search if search is not enabled 4 years ago
Barış Soner Uşaklı 4c7374ea33 fix: flicker on tooltips if server call takes long time 4 years ago
gasoved a56a657759
fix: missing select/clear all checkbox added to category privileges template (#8967) 4 years ago
Julian Lam e1432caf92 feat: add cancel button to pin expiration modal 4 years ago
Julian Lam 15c6f32c93 refactor: pin/lock threadTools to use topicCommand, rewrote topicCommand to match categoryCommand signature 4 years ago
Barış Soner Uşaklı 7e6427bca7 fix: dont go back after delete account actions 4 years ago
Barış Soner Uşaklı 5ceda14874 Revert "fix: #8955, popstate to purged topic should go to homepage"
This reverts commit 39dae0aaff.
4 years ago
Julian Lam 39dae0aaff fix: #8955, popstate to purged topic should go to homepage 4 years ago
Barış Soner Uşaklı c037779fa1 feat: add topicOwnerPost #8778 4 years ago
Barış Soner Uşaklı 6a819944d5 chore: remove console.log 4 years ago
Julian Lam d584516947 fix: #8943, session mismatch modal thrown on login (race condition) 4 years ago
Julian Lam ac734b8335 fix: #8912 4 years ago
Barış Soner Uşaklı db1c140ff9 refactor: remove unused require 4 years ago
gasoved 00e75de736
feat: select/clear all checkboxes in privilege table (#8941) 4 years ago
psychobunny 1c0e8c1663 fix: move meta.getServerTime call to admin namespace 4 years ago
Barış Soner Uşaklı f20c12ee40 fix: add client side check for userslug #8939 4 years ago
Barış Soner Uşaklı cf903e4e8f fix: #8931, fix lang string 4 years ago
Barış Soner Uşaklı 95a3f03009 fix: #8932, fix client side error when updating username 4 years ago
Barış Soner Uşaklı 5fa098326f fix: https://github.com/NodeBB/NodeBB/pull/8685
fix category link redirect on cold load
fix helpers.redirect if passed in url is external
fix ajaxify so it doesn't slice first character of external url
4 years ago
Julian Lam 046d0b1637
feat: allow pins to expire (if set) (#8908)
* fix: add back topic assert middleware for pin route

* feat: server-side handling of pin expiries

* refactor: togglePin to not require uid parameter [breaking]

* feat: automatic unpinning if pin has expiration set

* feat: client-side modal for setting pin expiration

* refactor: categories.getPinnedTids to accept multiple cids

... in preparation for pin expiry logic, direct access to *:pinned zsets is discouraged

* fix: remove references to since-removed jobs file for topics

* feat: expire pins when getPinnedTids is called

* refactor: make the togglePin change non-breaking

The 'action:topic.pin' hook now sends uid again, as before. However, if it is a system action (that is, a pin that expired), 'system' will be sent in instead of a valid uid
4 years ago
Barış Soner Uşaklı 46acbfdaf1 fix: show messages after app load 4 years ago
Barış Soner Uşaklı 6ef7e8675f fix: #8915, fix queue not being cleared after firing click events
if you clicked elements early then on every ajaxify.end the same elements were getting click events @julianlam
4 years ago
Julian Lam 00aee84bf7
refactor: use categoryCommand local method for pin/lock in category tools (#8917)
* refactor: use categoryCommand local method for main actions in category tools

* fix: wrong command passed in
4 years ago
Barış Soner Uşaklı e9585b9be2 fix: group userTitles translation escapes 4 years ago
Barış Soner Uşaklı 62b62821c1 fix: navigation highlight
/top was getting hightlighted in navigation if you went into a /topic
4 years ago
Julian Lam a0b7a82350
feat(api): account deletion routes for the Write API (#8881)
* feat(api): account deletion routes for the Write API

* refactor: rewrite client-side calls to account deletion to use api

* style: apply DRY
4 years ago
Opliko 6e43086558
resolve #8444 - Allow nested objects in translations (#8793)
* feat: #8444 Allow nested objects in translations

* feat: #8444 Allow nested objects in translations

* style: don't change formatting

* fix: don't use the first string match if key isn't finished

* feat: #8444 Allow nested objects in translations

* feat: #8444 Allow nested objects in translations

* style: don't change formatting

* fix: don't use the first string match if key isn't finished

* feat: add nested translations test
4 years ago
Barış Soner Uşaklı 1d6bcbebde feat: https://github.com/NodeBB/NodeBB/issues/8147 4 years ago
Julian Lam d83eb7f89e refactor: client-side handlers for user invitations
DRY
4 years ago
gasoved 3ccebf112e
feat: invites regardless of registration type, invite privilege, groups to join on acceptance (#8786)
* feat: allow invites in normal registration mode + invite privilege

* feat: select groups to join from an invite

* test: check if groups from invitations have been joined

* fix: remove unused variable

* feat: write API versions of socket calls

* docs: openapi specs for the new routes

* test: iron out mongo redis difference

* refactor: move inviteGroups endpoint into write API

* refactor: use GET /api/v3/users/:uid/invites/groups

Instead of GET /api/v3/users/:uid/inviteGroups

* fix: no need for /api/v3 prefix when using api module

* fix: tests

* refactor: change POST /api/v3/users/invite

To POST /api/v3/users/:uid/invites

* refactor: make helpers.invite awaitable

* fix: restrict invite API to self-use only

* fix: move invite groups controller to write api, +tests

* fix: tests

Co-authored-by: Julian Lam <julian@nodebb.org>
4 years ago
Barış Soner Uşaklı 9dac9630df fix: check tid in event handlers client side 4 years ago
Julian Lam 8518404e22
feat: allow groups to specify which cids to show member posts from (#8875)
* feat: allow groups to specify which cids to show member posts from

* docs: fix tests for openapi

* fix: test breakage caused by improper conditional

* feat: server-side checking of memberPostCids for validity

* feat: admin panel template update to select categories to include

* refactor: privilege helpers.isUserAllowedTo

... to helpers.isAllowedTo, allowing group names to be passed in
4 years ago
Julian Lam 769aba0aed fix: refresh flags list on bulk action success 4 years ago
Julian Lam f300c933a5 refactor: move session revocation route to write api 4 years ago
Barış Soner Uşaklı 9f7902efdf fix: remove some unnecessary jquery wrappers 4 years ago
Barış Soner Uşaklı 978f1ee04f fix: send back jquery object to keep backwards compat 4 years ago
Peter Jaszkowiak e128264b66
refactor: change Benchpress.parse to .render (#8856)
It has been deprecated with no warning message for a while
Changing these over before enabling the warning message to reduce spam
4 years ago
Barış Soner Uşaklı 2e44639210 fix: guest header/footer cache
allow clearing individual caches
4 years ago
Barış Soner Uşaklı f1f9b225b0
feat: #8824, cache refactor (#8851)
* feat: #8824, cache refactor

ability to disable caches
ability to download contents of cache
refactor cache modules to remove duplicated code

* fix: remove duplicate hit/miss tracking

check cacheEnabled in getUncachedKeys
4 years ago
Julian Lam d263192271 feat: group exists API call in write api 4 years ago
Julian Lam 1446cec77f feat: user exist route in write api 4 years ago
Barış Soner Uşaklı 78ee83324c fix: #8838, fix chat dropdown timestamps
use shorthand like notification dropdown
4 years ago
Julian Lam 1afd215050 feat: add back error handling for a number of api calls 4 years ago
Barış Soner Uşaklı 518d4fa170 fix: undefined call 4 years ago
Barış Soner Uşaklı 5a2b14b751 fix: client side crash when creating groups 4 years ago
psychobunny d40779a4ba feat(acp): autocomplete user search for welcome notifications 4 years ago
Barış Soner Uşaklı 715775a707 feat: #8817, add login clientside hooks
same as logout
4 years ago
Julian Lam a08fb8e53b fix: removed superfluous assignment 4 years ago
Julian Lam 0b6ef61e40 fix: createNewPosts to build tpl with ajaxify.data
If the post template contains references to items outside of the scope of the post, then when the post is loaded via IS, the expected values are empty.

This was due to createNewPosts calling app.parseAndTranslate with a subset of the page payload. This works fine in Persona (and most other themes)
because they do not refer to properties outside of the post object, but it may be helpful to include the rest of the ajaxify data as well.
4 years ago
Julian Lam bff53de03f fix: handle ACP category enable/disable states after call success 4 years ago
Julian Lam aa8faf58a0 refactor: remove /users/{uid}/settings/{setting} route
@baris Also, I am now allowing the following properties to be saved in User.saveSettings:
- categoryTopicSort
- topicPostSort
- setCategorySort
- setTopicSort
4 years ago
Barış Soner Uşaklı 9082062e90 fix: sort setting not using correct field name 4 years ago
Barış Soner Uşaklı a512d99472 refactor: remove unnecessary wrapper 4 years ago
Barış Soner Uşaklı a05905f196
performance improvements (#8795)
* perf: nconf/winston/render

cache nconf.get calls
modify middleware.pageView to call next earlier
don't call winston.verbose on every hook see https://github.com/winstonjs/winston/issues/1669
translate header/footer separately and cache results for guests

* fix: copy paste fail

* refactor: style and fire hook only log in dev mode

* fix: cache key, header changes based on template

* perf: change replace

* fix: add missing await

* perf: category

* perf: lodash clone

* perf: remove escapeRegexChars
4 years ago
Julian Lam c26f2b6599 feat(writeapi): user settings API 4 years ago
Baris Usakli 1a4c0decb7 fix: reset button loading html 4 years ago
Barış Soner Uşaklı e6440c0d21 fix: #8779, fix move all
add new language keys
4 years ago
Barış Soner Uşaklı 3ee4936db6 fix: keep sortBy while searching 4 years ago
Barış Soner Uşaklı 85cfe49d65 fix: autocomplete.user on search page 4 years ago
Barış Soner Uşaklı c107649b40 fix: #8732 4 years ago
Barış Soner Uşaklı d9a16855d0 refactor: posts api 4 years ago
Barış Soner Uşaklı 272e73da53 refactor: post restore/delete/purge 4 years ago
Barış Soner Uşaklı 9738e20207 refactor: merge post.edit
fix: dont fadeout/fadeint if title/post didnt change
4 years ago
Barış Soner Uşaklı 2279e37261 refactor: deprecate socket.emit('users.search') use api route 4 years ago
Barış Soner Uşaklı 083c74e059 refactor: api categories 4 years ago
Barış Soner Uşaklı 51a60d3d46 fix: handler for group.join 4 years ago
Julian Lam 20bb9c7ec8 fix: csrf token only on non-GET routes 4 years ago
Barış Soner Uşaklı 3673accdb8 refactor: api module
only return promise if callback is undefined
dont append baseUrl if url already starts with api
correctly handle writeapi readapi response for data/error
remove unused onError
dont append empty ? to url for get routes
4 years ago
Julian Lam a784d10fff refactor: api module returns promise, error-first cb if cb passed in
no more separate onSuccess onError callbacks

/cc @baris
4 years ago
Barış Soner Uşaklı 4b9444f1a5 fix: avatar selector 4 years ago
Barış Soner Uşaklı 872bacf1c4
Admin/users (#8762)
* feat: wip admin/users

* feat: more work

* feat: more fixes

* feat: #8662, verified/unverified user groups

* feat: add filter

* feat: change user search to use filters array

* refactor: remove unused search call

* fix: tests

* fix: cant join system groups

* fix: upgrade script
4 years ago
Julian Lam 1e07886f30 feat: require csrf token if not using bearer token 4 years ago
Barış Soner Uşaklı ba2e1c4c7e fix: show more lines 4 years ago
Barış Soner Uşaklı 01265d08f3 feat: add stack to deprecate message 4 years ago
Barış Soner Uşaklı dc29f4dca2 refactor: switch to using slugify module 4 years ago
Barış Soner Uşaklı bddfcb5867 feat: #8734, add slugify module, deprecate utils.slugify 4 years ago
Barış Soner Uşaklı eab7489ec5 feat: #8734, move deserialize/serialize to package.json 4 years ago
Barış Soner Uşaklı 948f26143c feat: #5964, #8734 remove colorpicker 4 years ago
Barış Soner Uşaklı c954db84e4 refactor: require style 4 years ago
Barış Soner Uşaklı 931d44b5e2 fix: undefined api require, @julianlam 4 years ago
Barış Soner Uşaklı e2d407b769 fix: watch tooltip 4 years ago
Barış Soner Uşaklı aedd28e0a6 fix: module name 4 years ago
Barış Soner Uşaklı cc705e5e2b feat: #8734, move sortable to package.json 4 years ago
Barış Soner Uşaklı 75c9668656 fix: admin jquerui requires 4 years ago
Barış Soner Uşaklı 8c019a6a3b fix: timeago locale switch 4 years ago
Barış Soner Uşaklı 300a87559f feat: #8734, move bootbox to package.json 4 years ago
Barış Soner Uşaklı 420a312982 Merge branch 'master' of https://github.com/NodeBB/NodeBB 4 years ago
Barış Soner Uşaklı 3b231360d3 feat: load jquery-form before using 4 years ago
Barış Soner Uşaklı fda2aedfd8
feat: #8734, jquery-ui, jquery-form, timeago (#8748)
* feat: #8734, jquery-ui, jquery-form, timeago

get rid of forum/footer.js move that code to app.js & wait for app to load before calling ajaxify.end
make sockets.js a requirejs module
move jquery-ui to node_modules and load via requirejs
move jquery-form to node_modules and load via requirejs
move timeago to node_modules and load via requirejs
only include the css for needed jquery-ui widgets

* feat: keep socket/io global for backwards compat

* refactor: move socket listener to chat
4 years ago
Barış Soner Uşaklı ae3a231fce feat: #8734, remove semver.browser
use compare-versions as a module
4 years ago
Barış Soner Uşaklı 2c1897b373 feat: #8734, move slideout to package.json 4 years ago
Barış Soner Uşaklı 9c157de05d feat: #8734, move tinycon to package.json 4 years ago
Barış Soner Uşaklı 45e8a4d588 fix: #8734 make nprogress module 4 years ago
Barış Soner Uşaklı 12c8b1c2bc fix: dont allow adding duplicates to privileges page
hightlight uid/group if it is added again from autocomplete
4 years ago
Barış Soner Uşaklı f259063f08 fix: #8728, dont add admins to table 4 years ago
Julian Lam f870721fca feat(writeapi): file deletion route 4 years ago
Julian Lam 3ea1aa4780 refactor(writeapi): update route prefix to api/v3, default error option 4 years ago
Julian Lam 0973feea16 feat(writeapi): post bookmarking 4 years ago
Julian Lam 9942c248eb feat(writeapi): post voting 4 years ago
Julian Lam 414169fdfa feat(writeapi): post delete/restore/purge 4 years ago
Julian Lam 9be5629458 feat(writeapi): topic follow/ignore 4 years ago
Julian Lam da25ce4d09 feat: topic delete/restore/purge/(un)pin/(un)lock 4 years ago
Julian Lam 49652e6f1b feat: management of API tokens via ACP 4 years ago
Julian Lam adcadbb2b5 fix: tests 4 years ago
Julian Lam cb9369f10e fix: bad merge w/ category ACP page 4 years ago
Julian Lam a905d7f022 refactor: rewrite modules/api.js in AMD style 4 years ago
Julian Lam 40dc1c38d3 feat(writeapi): added DELETE /groups/:slug/membership/:uid route 4 years ago
Julian Lam 68ecf41ecf fix(writeapi): client-side group join API call 4 years ago
Julian Lam 952dc211dd feat(writeapi): added group joining and deletion 4 years ago
Julian Lam d044c3223e feat(writeapi): abstracted ajax calls out to new api module 4 years ago
Julian Lam ba345e53e8 feat(writeapi): added POST /api/v1/groups 4 years ago
Julian Lam 3072de4812 feat: added DELETE /api/v1/categories/:cid route 4 years ago
Julian Lam e942ad8101 feat: added PUT /api/v1/categories/:cid route
Deprecated admin.categories.update socket call
Showing stack trace in console for errors, when in development mode
4 years ago
Julian Lam a5af2dc819 feat: added PUT/DELETE /api/v1/users/:uid/ban routes 4 years ago
Julian Lam db5c5b2cfb fix: follow route to match spec 4 years ago
Julian Lam b5bbcbaeaa feat: added POST and DELETE /api/v1/users/:uid/follow routes 4 years ago
Julian Lam 7aed174ebc feat: added PUT /api/v1/users/:uid/password route 4 years ago
Julian Lam a1ddc210b2 feat: added DELETE /api/v1/users/:uid and DELETE /api/v1/users 4 years ago
Julian Lam d8879d21db fix: error handling with POST /api/v1/users 4 years ago
Julian Lam 58043e07ba fix: use POST call for user creation in ACP
- Not entirely sure about error handling yet, more research needed
- Also added socket method deprecation utility method
4 years ago
Barış Soner Uşaklı 7138d433b1 fix: selector, so it doesnt effect suggested topics 4 years ago
Julian Lam fc603a5368 fix: use app.parseAndTranslate instead of benchpress.parse 4 years ago
psychobunny 20e0cc5cbb fix: sorted list delete button 4 years ago
Barış Soner Uşaklı b955fd363d fix: dont allow sorting pinned topics on recent 4 years ago
Julian Lam 3c7f79cb8a fix: use console.info instead of console.log for sw registration 4 years ago
Barış Soner Uşaklı 1542a5d7e5 feat: remove post/header selector 4 years ago
psychobunny 60afb110ef fix: prevent mutiple highlighted rows on category/topic pages 4 years ago
Barış Soner Uşaklı 5d9a868142
feat: category filter on post queue (#8710)
* feat: category filter on post queue

category filter module

* feat: add spec
4 years ago
Julian Lam f1de084da3 fix: do not show TOC if fewer than 2 headings 4 years ago
psychobunny caa8c00f89 fix: params cached in autocomplete module 4 years ago
Peter Jaszkowiak 55d5cccf2e
Document deprecations and remove old ones (#8706)
* chore: document deprecation removal versions

* chore: remove deprecations 2+ versions old
4 years ago
Barış Soner Uşaklı 72e82c4aca Merge branch 'master' of https://github.com/NodeBB/NodeBB 4 years ago
psychobunny 1761e13dbd feat: dedicated sorting buttons for plugin ordering in ACP 4 years ago
Barış Soner Uşaklı c33dc90562 Merge branch 'master' of https://github.com/NodeBB/NodeBB 4 years ago
Barış Soner Uşaklı 54737d3076 feat: #8233, search sub categories 4 years ago
psychobunny f4d76f1edd feat: move service-worker.js into its own file 4 years ago
Julian Lam 8437130ec2 fix: early button/anchor clicks do nothing
This reverts commit a395324b52, and
fixes the issue where the ACP became unusable because of the earlier
variant of this code.

Thanks @psychobunny for spotting.
4 years ago
Barış Soner Uşaklı a395324b52 Revert "fix: early button/anchor clicks do nothing"
This reverts commit 966d3f7654.
4 years ago
Julian Lam 966d3f7654 fix: early button/anchor clicks do nothing
This solves a small UX issue where clicking on a button (or anchor
that is not meant to be ajaxified) before ajaxify.end is called
leads to nothing happening because the appropriate click handler
has not been added.

This code will intercept premature clicks, wait until ajaxify.end
is called, and then re-send the click.
4 years ago
Barış Soner Uşaklı ea0f3262f4 feat: #8695, allow sort for guests 4 years ago
psychobunny 6478b32d0e feat: upload maskable icon for PWA 4 years ago
psychobunny aa268d5eeb feat: register service worker, #8126 4 years ago
psychobunny b6f2f0e5d0 fix: #8681 change owner modal's search should check if user is banned 4 years ago
psychobunny 611f3c6155 feat: allow autocomplete to pass optional params to user.search 4 years ago
Julian Lam f8032cd09b fix: add img-responsive to post queue post items 4 years ago
psychobunny 2ad3305879 fix: language key in reset password 4 years ago
Julian Lam 0fffe28941 fix: issue where the last flag filter could not be removed 4 years ago
psychobunny 2cd5f959a0 feat: add row highlighting for popular and unread 4 years ago
psychobunny 48a8ec4ab2 feat: return to previous page and/or category after marking topic unread
... also return to category if pagination is active and previous page was another page in the thread
4 years ago
Barış Soner Uşaklı f2f3ba49b6 feat: hightlight matches in quick search
fix title hightlights
4 years ago
Barış Soner Uşaklı f8ef380b34 fix: multiword match highlight 4 years ago
Barış Soner Uşaklı d38c872259 feat: add loading indicator 4 years ago
psychobunny 82ab6cd3b1 fix: tooltip placement on navbar search 4 years ago
psychobunny 683c01b0d3 fix: rogue tooltip on navbar profile icon 4 years ago
Barış Soner Uşaklı 445a840b88 fix: #8580, @julianlam 4 years ago
psychobunny 703ac1b685 fix: match api when modifying ajaxify.data.deleted (int, not bool) 4 years ago
Barış Soner Uşaklı 9a7c3c689f fix: lock/unlock toggle issue 4 years ago
Barış Soner Uşaklı 02a48e1c64 fix: change user tooltip container to content 4 years ago
Barış Soner Uşaklı 047c414841 fix: add user tooltips to body
so they don't get cutoff  in containers with overflow:hidden
4 years ago
Barış Soner Uşaklı ddc0ac37ab feat: allow adding nested replies to a target component 4 years ago
Julian Lam 43571bac38 feat: hotkey "/" to open ACP search 4 years ago
Julian Lam 763cec31bd feat: ctr-s for save on privileges page too 4 years ago
Julian Lam 8093142340 feat: ctrl-s now saves on settingsv1/v2 forms
... because nobody ever uses ctrl-s on a browser window.
4 years ago
Barış Soner Uşaklı 6669b23d9a feat: single href 4 years ago
Barış Soner Uşaklı 42298fe659 fix: clear old value on focus
hide results if input lost focus during search
4 years ago
Barış Soner Uşaklı c9c9dd2f9b fix: skip elements if they dont have proper index 4 years ago
Barış Soner Uşaklı 7148be2fd1 feat: allow passing in container to threadTools 4 years ago
Barış Soner Uşaklı 99f24c5997 fix: call to reskin 4 years ago
Julian Lam 44309ee62f fix: move necro-post to be in-line with posts 4 years ago
Barış Soner Uşaklı a8e18fdbe6 fix: client side crash if there are no topics 4 years ago
Barış Soner Uşaklı c1c617b323 feat: add topicIndex to category page 4 years ago
Barış Soner Uşaklı 632793b067 fix: dont use hardcoded fontawesome icons for lock pin 4 years ago
Barış Soner Uşaklı f6d564667e feat: switch to using topic/select component for merge
automatically add the selected tids to the merge modal
4 years ago
Julian Lam 762e9fe88c feat: undo for posts move 4 years ago
Julian Lam 65d94a3b6d fix: #8629 and change undo timeout to 10 seconds 4 years ago
Barış Soner Uşaklı 2bebdf017d fix: alert_id selector 4 years ago
Barış Soner Uşaklı 5a40d26b44 feat: #8626, new move posts modal 4 years ago
Barış Soner Uşaklı 5f10d67db5
Remove sounds (#8617)
* feat: remove sounds

* feat: remove more sounds

* feat: disable sounds plugin

* fix: openapi
4 years ago
Barış Soner Uşaklı 5002e0f62c feat: refactor app.js 4 years ago
Barış Soner Uşaklı 19c448612d feat: remove global RELATIVE_PATH 4 years ago
Barış Soner Uşaklı 3cd3b7a172 feat: remove app.template 4 years ago
Barış Soner Uşaklı 630bac2aa5 feat: remove global window.templates 4 years ago
Barış Soner Uşaklı fddeb5c0f8 feat: remove app.isConnected, use socket.connected 4 years ago
Barış Soner Uşaklı 94da9fe55e feat: add partials/footer/js.tpl
add ajaxify.coldLoad which gets called from partials/footer/js.tpl
4 years ago
Peter Jaszkowiak 64a457a441
fix(bug): #8611, custom route logic corrected (#8612) 4 years ago
Barış Soner Uşaklı 57f67e2b91 fix: don't toggle elements if there is no inputEl 4 years ago
Julian Lam f743f92088
refactor: socket posts delete/restore/purge so tid is not necessary (#8607)
* refactor: socket posts delete/restore/purge so tid is not necessary

* refactor: stop trying to be fancy

* fix: tests to not pass in tid into posts.deletePosts

* fix: some more unnecessary tid passing
4 years ago
Barış Soner Uşaklı 09de364e93 feat: add client side action:flag.create 4 years ago
Julian Lam 694f4b2bcf fix: accept/reject in post-queue instead of accept/delete 5 years ago
Barış Soner Uşaklı 9f9164a9be fix: #8582 5 years ago
Julian Lam fb3b4a0293 fix: debug logging 🐶 5 years ago
Julian Lam 56101ae5ae fix: ip-blacklist not working after #8580 5 years ago
Julian Lam c681b4b2e0 fix: ip-blacklist not working after #8580 5 years ago
Julian Lam dc5bd7601f fix: post-queue not working after #8580 5 years ago
Julian Lam abb5e81d0d feat: allow undo of topic move 5 years ago
Julian Lam cd8e7963de feat: added alert.timeoutfn
Also, various alert methods now pass two arguments,
alert and params
5 years ago
Julian Lam 5d60dce379 fix: select all checkbox does not re-enable bulk actions button 5 years ago
Julian Lam 9cbe9389f5 fix: use promises in privilege save
... instead of jQuery Deferreds
5 years ago
Julian Lam 7a5daff4c9 fix: overzealous click handler on flag list row 5 years ago
Julian Lam 9608b44f21 fix: +comment, -debug log 5 years ago
Julian Lam a3a2279358 feat: logic for bulk actions in flags list, #8571 5 years ago
Julian Lam 589216e720 fix: multiple alerts in the same millisecond overwrite each other 5 years ago
Julian Lam b2271eb64f fix: client-side error in flags/detail
... as the filter form is no longer present in the details page
5 years ago
Julian Lam 346db0d84d feat: flags list sorting, closes #8569 5 years ago
Barış Soner Uşaklı 35a538ec2a feat: allow adding multiple users to group 5 years ago
Barış Soner Uşaklı 3f01f4a2b8 Revert "feat: load timeago strings client-side"
This reverts commit 558a2d739c.
5 years ago
Julian Lam 558a2d739c feat: load timeago strings client-side
9adaccd036 introduced the ability to
configure an assetBaseUrl, but the timeago strings were still
calling a hardcoded value as it was handled server-side. There's
no need for the strings to be loaded until timeago is initialised.
5 years ago
Barış Soner Uşaklı 79e847d424 fix: #8558, only navigate if user is in same topic 5 years ago
Julian Lam 9adaccd036 feat: +assetBaseUrl, -l10BaseUrl, -requireBaseUrl
Additional base URLs were necessary for benchpress and translator,
and in order to not clutter the API response with needless one-
time use base URLs, I decided to use a single base that is used
by all of the services, assetBaseUrl.
5 years ago
Julian Lam def16f9e97 feat: introduce overridable l10nBaseUrl config value 5 years ago
Barış Soner Uşaklı 4216c277d5 feat: focus username when modal is shown 5 years ago
Julian Lam 2ee6248316 refactor: for codeclimate 5 years ago
Julian Lam a7071bb808 fix: map instead of forEach in privileges save 5 years ago
Julian Lam a716a5529c
feat: more discrete commit-on-save instead of commit-on-change w/ confirm modals (#8541)
* feat: privileges save button, #8537, WIP

* fix: disable firefox autocomplete on privilege form fields

* feat: closes #8537 privilege changes commit on save

- new language strings for confirmation and success modals/toasts
- indeterminate privilege handling (/cc @psychobunny)
- added new discard button
- both discard and save buttons now have confirmation dialogs

* fix(tests): remove duplicate template helper test

* fix(tests): broken template helper test

* feat: confirm dialogs for all privilege copy actions

Also, ability to add user to a privilege table without needing
to refresh the privilege table.

* feat: group row addition w/o table refresh

breaking: helpers.getUserPrivileges and helpers.getGroupPrivileges
no longer make socket calls to the following hooks:

- filter:privileges.list, filter:privileges.admin.list,
  filter:privileges.global.list, filter:privileges.groups.list,
  filter:privileges.admin.groups.list,
  filter:privileges.gloval.groups.list

The filters are still called, but done before the helper method
is called, and the results are passed in instead. This change
should only affect you if you directly call the helper methods,
otherwise the change is transparent.

* fix: stale ajaxify data on privilege category switch

* fix: implicit privileges not showing for user privs

* fix: groups, not group, also fix tests

* fix(tests): again

* fix: wrong tpl rendered when adding group to global priv table
5 years ago
Barış Soner Uşaklı e7a502e0aa feat: add ability to search groups in group details page 5 years ago
Barış Soner Uşaklı 519e665939 fix: #8538, go to first unread instead of last read 5 years ago
Barış Soner Uşaklı 9e80a9efdd fix: #8534, dont show modal on search 5 years ago
Barış Soner Uşaklı fb7bb8d400 feat: use category selector in category page
fix privilege shortcuts in group page after search
5 years ago
Barış Soner Uşaklı 91411cc47c feat: add privileges shortcut to groups list
fix issues with escape group names
5 years ago
Barış Soner Uşaklı c4829fd8c2 feat: allow changing requirejs base url 5 years ago
Barış Soner Uşaklı bbc7737e14 feat: ability to clear cache from acp 5 years ago
Barış Soner Uşaklı 8d8117ffa1 feat: reduce amount of data loaded on acp admin page
get rid of socket call and use ajaxify.data.categories
5 years ago
Barış Soner Uşaklı fd4c3cda42 fix: #4695, remove new notif alert 5 years ago
Julian Lam 8473e165a6 fix: too small sortable handle for ACP>Manage>Categories
The handle was initially just the icon, but now it is the icon
and the category label itself.
5 years ago
Barış Soner Uşaklı 24535a62e7 feat: make category tools in acp a dropdown
add view category, view privileges into dropdown
5 years ago
Barış Soner Uşaklı 609e37a67b feat: remove deprecated utils.walk 5 years ago
Julian Lam 55b0e902fb feat: consolidation of flags to reduce flagspam, #8510
Squashed commit of the following:

commit c6d09396208a10c244d7b3d22ffd2d7dd1274d3a
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 24 13:41:32 2020 -0400

    fix: more tests

commit 32f9af2a87a81fa62ecca01e71d6f0d5b9d37ba1
Merge: e50907535 4eae927d1
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 24 10:53:04 2020 -0400

    Merge remote-tracking branch 'origin/master' into singleton-flags

commit e50907535109dbdbe8f15c3e2fcdf22d90b1332a
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 24 10:52:46 2020 -0400

    fix: controllers-admin test

commit fd5af99e303de48a80b0ccc166eee19175cf232b
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 17:26:55 2020 -0400

    fix(tests): dummy commit to trigger travisCI

commit c452a6ffcfaef91403de084c4ae16795cb23c60e
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 17:05:09 2020 -0400

    fix(openapi): openapi spec changes

commit 8089a74e89128141ab1e6f8ff83447114b3b846b
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 15:48:00 2020 -0400

    fix: reversing the order of reports for display purposes

commit a099892b377333561c72f1ad5b6b20ddb4ce8a96
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 15:45:44 2020 -0400

    refactor: run all flag creation calls in a single batch

commit b24999682f9d5a33a08a049749c1f0eb4f00facc
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 15:08:23 2020 -0400

    feat: handling multiple reporters per flag, #8510

commit 08c75c020021ada754bf0e39eae77d631b01dee5
Author: Julian Lam <julian@nodebb.org>
Date:   Thu Jul 16 20:53:18 2020 -0400

    feat: upgrade script for #8510
5 years ago
psychobunny bc26883aed refactor: setting codeclimate to A 5 years ago
psychobunny a6ae69737b Merge branch 'master' of https://github.com/NodeBB/NodeBB 5 years ago
psychobunny 10e4ae629c feat: highlight privs row if group is added / navigating from group page 5 years ago
psychobunny 53f6139b8c feat: prevent navigation away from groups page if changes are unsaved 5 years ago
psychobunny 2c83278f97 feat: quick access dropdown on groups page to access privileges page 5 years ago
Barış Soner Uşaklı 844f2b4ed0 feat: #8524, allow editing category of queued topic 5 years ago
Barış Soner Uşaklı ec05783507 feat: remove js-enabled.css 5 years ago
Barış Soner Uşaklı 2485a55092 feat: #8521, allow editing title before posting from queue 5 years ago
Barış Soner Uşaklı 8ddc8dd10f refactor: make msg pretty 5 years ago
Barış Soner Uşaklı 764969ab29 feat: show language when key isn't found 5 years ago
Barış Soner Uşaklı 1e7397b1b8 feat: allow searching categories in ACP 5 years ago
Barış Soner Uşaklı 320008cd49 feat: #8509, don't scroll chat to bottom if user scrolled up 5 years ago
Julian Lam 9fb9185fa7 feat: hide some filters behind 'more filters' button 5 years ago
Julian Lam d52d7bdb10 feat: collapsible daily flags graph 5 years ago
Julian Lam 1441720962 feat: logic for flag note editing, #8499 5 years ago
Julian Lam f85a45c722 feat: logic for flag note deletion, #8499 5 years ago
Barış Soner Uşaklı 5e984d10f0 fix: #8500 5 years ago
Julian Lam 2286ee2a61 fix: invalid session error modal during logout
A brief flash can be seen, but this is exacerbated by slow
connections and/or slow server response.
5 years ago
Julian Lam 3379d65f36 feat: fire action:flag.showModal on flag modal appearance 5 years ago
Barış Soner Uşaklı 00d39fb32c feat: #8460, export groups members as csv 5 years ago
Barış Soner Uşaklı 3dcf538773 feat: #8023, allow wildcard search for uid/email 5 years ago
Barış Soner Uşaklı 46a6686300 fix: category search in selector 5 years ago
Barış Soner Uşaklı 4adbf87c6c feat: warn user if whitelisted tags are less than minTags 5 years ago
Barış Soner Uşaklı 658dd03b03
feat: add tools to recent/unread (#8477)
* feat: add tools to recent/unread

* fix: open api spec

* fix: more api spec
5 years ago
Julian Lam 4f51838df8 feat: fire new hooks on chat message editing 5 years ago
Barış Soner Uşaklı ac6b571ed5 fix: dont allow searching by email/ip if not privileged 5 years ago
Julian Lam f3441fce4f fix: admin privileges client-side regression 5 years ago
Julian Lam da29b947bf feat: add js-enabled.css to list of preloaded css files 5 years ago
Barış Soner Uşaklı bd228d5ee7 feat: fix blocksCount not being returned on user profile
add hook action:user.blocks.toggle
5 years ago
Julian Lam 6cb31791ff feat: polish for user blocks UX 5 years ago
Julian Lam 6931f29d53 feat: allow flagging of user acounts from post tools menu 5 years ago
Barış Soner Uşaklı 2355d9d5dd fix: escape navigation item fields, theme:id, category fields 5 years ago
Barış Soner Uşaklı e53a18f219 fix: #8437, #8433 5 years ago
Barış Soner Uşaklı ed4b5caf2c fix: copy settings showing empty category selection 5 years ago
Barış Soner Uşaklı 0482fb2998 feat: use tags partial instead of post_bar 5 years ago
Barış Soner Uşaklı 8482a54a68 fix: don't init autocomplete if user doesn't have privs 5 years ago
Barış Soner Uşaklı 4f6b6c5631 feat: hide elements if search element is a direct child of dropdown
this fixes themes if they put the search input inside the dropdown
5 years ago
Barış Soner Uşaklı 8383992dcc feat: move export functions into child processes 5 years ago
Barış Soner Uşaklı 48b41debe6
fix: vulnerability in cover and admin uploads (#8419)
* fix: vulnerability in cover and admin uploads

* fix: remove old test

* fix: update tests
5 years ago
Julian Lam 040e6a9a4c fix: reverse tabnabbing exploit in post images 5 years ago
Barış Soner Uşaklı bfd7eafe5b fix: ban 5 years ago
Barış Soner Uşaklı b459592a4e Merge branch 'master' of https://github.com/NodeBB/NodeBB 5 years ago
Barış Soner Uşaklı f70d1648c6 feat: show more relevant snippets 5 years ago
Julian Lam 5a367ecbb4 fix: remove use of 'hidden' class in navbar toggling 5 years ago
Julian Lam f909ed2541 feat: show editor in post diffs if available 5 years ago
Julian Lam 2515aa77ba fix: bug where category privs page thought it was on admin 5 years ago
Julian Lam b3115ea813 fix: #8410 5 years ago
Julian Lam d5af976915 feat: #8408 flags' quick assignment 5 years ago
Julian Lam 58b3d608fc feat: allow post diffs to be restored, #8406 5 years ago
Barış Soner Uşaklı 6349fa03e1 feat: more search changes 5 years ago
Barış Soner Uşaklı 4b38533b15 feat: more merge/search fixes 5 years ago
Barış Soner Uşaklı bb3aa54006 feat: merge changes
allow selecting main topic to merge into
allow specifying a new title for merge topic
upon merge go to correct topic
new tests for merging with options
5 years ago
Barış Soner Uşaklı 8591f5d2cc fix: return false 5 years ago
Barış Soner Uşaklı 5fd05dc942 feat: more search & merge fixes 5 years ago
Barış Soner Uşaklı c4bdeae06e feat: merge improvements wip 5 years ago
Barış Soner Uşaklı d92032dad1 fix: prevent logout form from submitting 5 years ago
Julian Lam 4d60eac60f feat: #8384 options to delete account, content, or both 5 years ago
Julian Lam 67aca822e6 feat: account content deletion, closes #8381 5 years ago
Barış Soner Uşaklı 50703db879 fix: #8363, dont break history 5 years ago
Barış Soner Uşaklı 0c265a41d4 fix: #8363, go to hash when entering topic 5 years ago
Julian Lam a82e9bd7f6
feat: privileges for Admin Control Panel (#8355)
* feat: acp privileges (WIP)

* fix: restore global privilege hooks

* refactor: using cid 0 in admin privs

* fix: no need for zebrastripe-reset

* feat: manage:categories privilege WIP

* feat: renamed prefix to admin:, settigns and dashboard privs

* fix: nofocus on acp privs group find modal

* refactor: privileges.x.get() to not used hardcoded privs

* fix: crash if unable to get latest version

* feat: setting acp priv

* Revert "fix: crash if unable to get latest version"

This reverts commit afdb235f48eb0072d88de45f3a1e0151281095b3.

* feat: user/privilege acp privs

* fix: category selector in manage/privileges

* fix: guests potentially becoming admins

* fix: bug in setting admin privs

* fix: some last minute things + api docs

* fix: some more last minute fixes
5 years ago
Barış Soner Uşaklı 30cc83c033 fix: #8374, revert event delete 5 years ago
Barış Soner Uşaklı 7786187e84 fix: change event name so it doesnt trigger complete event
add data to complete event
5 years ago
Julian Lam 8ea1634824 feat: #8360 flag quick actions for delete/restore/purge 5 years ago
Julian Lam 922d49be0b fix(style): switch..case 5 years ago
Julian Lam a51fff8bd1
refactor: remove general menu from ACP (#8347)
* refactor: remove general menu from ACP

* fix: incorrect translation keys, fixed tests
5 years ago
Barış Soner Uşaklı 9ffcb6f7ba feat: add results into results container 5 years ago
Barış Soner Uşaklı f12d448ef5 feat: quick search changes 5 years ago
Barış Soner Uşaklı bb1a56f0fe feat: move quick search into search module
so it can be used directly
5 years ago
Barış Soner Uşaklı 47d73a2ab4 fix: move checks into timeout 5 years ago
Barış Soner Uşaklı a9315aee7d fix: #8339, add missing translation 5 years ago
Barış Soner Uşaklı 84c20f919b fix: don't explode if server sends `checkSession` 5 years ago
Barış Soner Uşaklı 5781a2dc65
feat: fix session mismatch errors by clearing cookie on logout (#8338)
* feat: fix session mismatch errors by clearing cookie on logout

* feat: remove app.upateHeader

ported from 2.0

* feat: handle if user doesn't click button and just refreshes page
5 years ago
Julian Lam f0e59c149d fix: eliminate unnecessary try..catch 5 years ago
Julian Lam 8d995d1eb6 refactor: flags detail page
- Show account moderation history
- Ban and delete quick actions

Squashed commit of the following:

commit 0e782e65f4d48ae814708e510ec9d01bcdd914e0
Author: Julian Lam <julian@nodebb.org>
Date:   Tue May 26 20:24:53 2020 -0400

    fix(deps): use persona 10.1.41/vanilla 11.1.17

commit 369e073d3c3189d8ce181eb3d573489cbe54d4fc
Author: Julian Lam <julian@nodebb.org>
Date:   Tue May 26 20:23:24 2020 -0400

    fix: allow ban and delete exported methods to have cbs

commit b83a086ea31a77ec82d161306c0b9bc115cb2a3a
Merge: 525aae1ea 256ee45d3
Author: Julian Lam <julian@nodebb.org>
Date:   Tue May 26 08:54:25 2020 -0400

    Merge remote-tracking branch 'origin/master' into flags-improvements

commit 525aae1ea2e5d0103028a0f0c8dde05f172d088e
Author: Julian Lam <julian@nodebb.org>
Date:   Tue May 26 08:53:39 2020 -0400

    feat: integrate ban history and username changes to flag history list

commit 3e68ad28ba266f4c8620a676aa7f463f0a9d1df7
Author: Julian Lam <julian@nodebb.org>
Date:   Mon May 25 18:22:53 2020 -0400

    feat: allow ban and deletion from flag details page

commit a559ea1d8e8883385c2876868d855a0b93516c54
Author: Julian Lam <julian@nodebb.org>
Date:   Mon May 25 18:22:00 2020 -0400

    feat: export banAccount and deleteAccount methods from accounts module
5 years ago
Barış Soner Uşaklı d6c2764fe7 fix: don't trigger quick search if val doesn't change 5 years ago