Commit Graph

147 Commits

Author SHA1 Message Date
Daniël Klabbers
1ba4a0b87e Fix existing Post component classes being dropped 2019-11-12 20:26:07 +01:00
Daniël Klabbers
1f2566c32c Improved naming of class for post by actor.
Made class list for post extensible by using a separate method.
2019-11-11 12:59:26 +01:00
Matthew Kilgore
d5d769ebb1 Added border around post made by active user 2019-11-11 12:13:36 +01:00
David Sevilla Martin
54c5c09693 Cleanup some code and fix alert dismiss not working 2019-11-09 08:50:24 -05:00
Moritz Stueckler
c87ebaef08 feat: re-add debug button/modal
Fixes #1687
2019-11-09 08:50:24 -05:00
Daniël Klabbers
937354512b Update User.js
Use recommended `anonymous`, see https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/crossOrigin
2019-10-28 16:35:45 +01:00
J.C.Ködel
2dedfe4b92 Fix Color Thief cross origin bug
When users have external avatar urls (for instance: in a SSO environment where the avatar is provided by another domain), color thief fails to get the avatar dominant color because the canvas would be tainted. 

Following the instructions here (https://lokeshdhakar.com/projects/color-thief/ on the "Does it work if the image is hosted on another domain?"), adding an `image.crossOrigin = 'Anonymous';` solves the issue.

Tested on my forum which before suffered from a JS error and works fine (without this fix, the canvas remain in the `body` while an script error is thrown by color thief)
2019-10-28 16:35:45 +01:00
Madalin Tache
bbd891965f Update window size (#1894)
This small change attempts to fix #1727, as i just got my eye on it and figured i could simply fix it while seeing it.
2019-10-01 23:48:54 +02:00
David Sevilla Martín
7a684660e9 Enable scrollbars in login button popups (#1900)
Fixes #1716
2019-10-01 23:37:42 +02:00
David Sevilla Martín
a9557c399a Fix errors caused by deletion alert when deleting users (#1883)
Refs #1788

TypeError: t.showDeletionAlert is not a function
  at onSuccess(./src/forum/utils/UserControls.js:104:12)

Also, don't override 'this' param with user object for editAction
2019-09-13 00:34:05 +02:00
David Sevilla Martin
119831e51c
Fixes an issue where deleting a nonexistent model would error instead of resolving gracefully 2019-09-11 18:14:37 -04:00
David Sevilla Martín
24964b94bf Mark notification as read without visiting discussion (#1874) 2019-09-09 23:36:06 +02:00
David Sevilla Martín
2e647cdda8
Fix error thrown if textarea doesn't exist in TextEditor (#1852)
* Prevent textarea not existing from causing errors to be thrown

* Replace [0] with .length
2019-09-09 17:05:11 -04:00
Matthew Kilgore
8b3913339a Fix the new edit user permission label (#1870) 2019-09-08 13:31:57 -04:00
Franz Liedke
0191babb05
Optimize ScrollListener performance
Listen to "scroll" event and throttle callback executions instead
of actively polling for changes to the scroll position.

Fixes #1222.
2019-09-05 02:17:09 +02:00
Matthew Kilgore
4df455cf04 Add Edit User permission to permissions grid (#1859) 2019-09-03 23:54:38 +02:00
Franz Liedke
29df6b60be
Tweak translation keys, always use full keys
Makes them easier to grep when editing / removing.

Refs #1750, #1788.
2019-08-14 08:34:36 +02:00
Franz Liedke
1e6f175379
Extract real method
Refs #1750, #1788.
2019-08-14 08:34:14 +02:00
Tobias Karlsson
37e0a5579b Improve feedback on user deletion
Fixes #1750, #1777
2019-08-13 22:56:24 +02:00
Franz Liedke
c5122bf5d5
a11y: Try to make screenreaders read tooltips
Refs #1835.
2019-08-08 22:40:30 +02:00
David Sevilla Martín
985b87da6c
Visit home page if no previous route exists
Fixes #1777
2019-06-27 14:58:05 -04:00
Franz Liedke
0c4de6f163
Fix storing dynamic mail settings
Refs #1169.
2019-03-20 22:02:06 +01:00
Franz Liedke
5154d7e5a6
Allow configuring all drivers via frontend (#1169)
This includes an API endpoint for fetching the list of possible
drivers and their configuration fields. In the future, this can
be extended to include more meta information about each field.
2019-03-19 09:56:20 +01:00
Franz Liedke
2bd40b50c7
Remove dead code
Probably a leftover from copy-pasting the BasicsPage.
2019-03-17 19:02:46 +01:00
Franz Liedke
57204c6ed0
Fix last commit 2019-03-15 17:57:11 +01:00
Franz Liedke
a21052c903
Mail settings: Only show necessary fields (#1169) 2019-03-15 17:54:14 +01:00
Daniël Klabbers
f3931b537c Copied over logic from EditTagModal to allow additional attributes to be send
to the API based on additional fields rendered by extending the fields.
2019-02-18 08:43:47 +01:00
Daniël Klabbers
c7d2e165d7 Fixes #1686
- further cleaned up the toggle action
- there's no way to remove the redraws because then the jquery isn't being fired properly
2019-01-25 05:37:45 +01:00
Daniël Klabbers
c67fb2d4b6 fixes #1686, unable to edit user password 2019-01-16 09:58:22 +01:00
Toby Zerner
40dc6ac604 Fix discussion list scroll position not being maintained when hero is not visible 2018-12-03 08:50:54 +10:30
Toby Zerner
2ef66ac716 Add "clear cache" button to admin 2018-11-22 08:03:43 +10:30
Toby Zerner
b474843cc2 Clear the search loading indicator after pressing Enter 2018-11-14 11:38:28 +10:30
David Sevilla Martín
e8b8cd0078 Move EditUserModal fields into an ItemList to make more extendable (#1593) 2018-11-14 08:00:43 +10:30
Toby Zerner
b826f9ce36 Trigger input event when text is programmatically inserted 2018-11-12 17:21:37 +10:30
Toby Zerner
c13dfa2228 Add a toolbar area to the TextEditor component
This is to be used for formatting buttons and the like. Although it is
displayed in the controls area at the moment, it is conceptually
different and may be relocated to the top of the text editor in the
future.
2018-11-12 17:21:15 +10:30
Toby Zerner
bf3934d16f Improve appearance of text editor buttons
- Change preview icon to Font Awesome Regular instead of Solid
- Give the preview button a tooltip
- Change submit button icon to paper plane (shown on mobile)
- Tweak mobile header button touch target
- Scroll overflowing text editor controls horizontally
2018-11-12 17:19:37 +10:30
Clark Winkelmann
0f9118fe2b
Clean PostStreamScrubber code 2018-11-11 19:03:22 +01:00
Clark Winkelmann
95f0edcd80
Fix scrubber index not limited to max items count when bypassing view() 2018-11-11 19:00:51 +01:00
Toby Zerner
9de786d1e6 Fix notification list not displaying "empty" message 2018-11-11 16:46:54 +10:30
Clark Winkelmann
f283f0c7bd Use ItemList for EditGroupModal fields (#1625) 2018-11-07 22:15:19 +01:00
Daniël Klabbers
7db6cfac3f
Update EditGroupModal.js
fixed placeholder icon name fa 4 style to fa 5 style with `fas fa-bolt`
2018-10-31 14:28:50 +01:00
Toby Zerner
104d3982fe Fix regression in admin routing in subdirectory. fixes #1606
Because admin routing uses the "hash" strategy, the base path does not
need to be taken into account.
2018-10-29 07:25:17 +10:30
Clark Winkelmann
f062f69f00 Update Font Awesome icons page link (#1615) 2018-10-24 21:20:49 +02:00
Franz Liedke
81f6ce220e
Merge pull request #1594 from datitisev/item-list
Allow ItemList method chaining (add, merge, remove, replace)
2018-10-10 00:28:03 +02:00
David Sevilla Martín
7b34636636
Allow ItemList method chaining (add, merge, remove, replace) 2018-10-05 19:30:14 -04:00
Toby Zerner
3006f58274 The document JS payload attribute was previously renamed to apiDocument 2018-09-30 09:24:25 +09:30
Toby Zerner
1736fe3f58 Clean up PostsUserPage placeholder 2018-09-23 10:12:12 +09:30
David Sevilla Martín
8c679c715c Allow admins to see last online text (#1540)
* Allow admins to see last online text

* Use viewLastSeenAt permission

* Move permission to UserSerializer, removed from ForumSerializer

* Remove extra comma from ForumSerializer to keep diff clean

* Add permission to new seed migration
2018-09-22 23:55:53 +02:00
David Sevilla Martín
26a5b107bd
Make user posts page similar to discussion page, add empty text 2018-09-22 14:02:14 -04:00
Clark Winkelmann
fe868af224 Clean composer promises (#1439)
* Remove unused login promise code

* Make promise usage consistent across composer action methods
2018-09-22 14:25:19 +09:30
Toby Zerner
5dfb9b474c
Auth token and avatarUrl security improvements (#1514)
* Remove AbstractOAuth2Controller

There is no reason to provide an implementation for a specific oAuth2
library in core; it's not generic enough (eg. auth-twitter can't use it).

This code could be moved into another package which auth extensions
depend on, but it's a negligible amount of relatively simple code that
I don't think it's worth the trouble.

* Introduce login providers

Users can have many login providers (a combination of a provider name
and an identifier for that user, eg. their Facebook ID).

After retrieving user data from a provider (eg. Facebook), you pass the
login provider details into the Auth\ResponseFactory. If an associated
user is found, a response that logs them in will be returned. If not, a
registration token will be created so the user can proceed to sign up.
Once the token is fulfilled, the login provider will be associated with
the user.
2018-09-22 13:48:27 +09:30
Toby Zerner
64686ef7a9 Remove the "debug" button from request error alerts
Using the browser's console to debug failed requests is much more powerful
2018-09-21 14:27:39 +09:30
Toby Zerner
184ffcd991 Sort user discussion list properly 2018-09-21 11:55:00 +09:30
Toby Zerner
c15bbc9c5e Add "tiny" preset for LoadingIndicator
This is used in various places but had not been added since presets were
removed from Spin.js in a recent version upgrade.
2018-09-21 11:19:32 +09:30
Toby Zerner
6c8c525e57 Fix regression introduced by #1543
The Page component's config method wasn't being called, therefore the
bodyClass would not be applied.
2018-09-21 11:17:54 +09:30
Toby Zerner
72d46bc461 Fix up Notification model 2018-08-24 22:13:06 +09:30
Toby Zerner
9792576464 Rename notification.sender 2018-08-24 22:13:06 +09:30
Toby Zerner
5c0c2d1c40 Rename notification.time 2018-08-24 22:13:05 +09:30
Toby Zerner
ce39bc9070 Rename user.newNotificationsCount 2018-08-24 22:13:05 +09:30
Toby Zerner
37ffd04b3f Rename user.unreadNotificationsCount 2018-08-24 22:13:05 +09:30
Toby Zerner
d8d2de438f Rename user.readTime 2018-08-24 22:13:05 +09:30
Toby Zerner
70058652b5 Rename user.isActivated 2018-08-24 22:13:05 +09:30
Toby Zerner
d9d8162684 Rename user.lastSeenTime 2018-08-24 22:13:05 +09:30
Toby Zerner
2ee10bb49f Rename user.commentCount 2018-08-24 22:13:05 +09:30
Toby Zerner
64abbde8b2 Rename user.discussionsCount 2018-08-24 22:13:05 +09:30
Toby Zerner
ca93c8c609 Rename post.hideUser 2018-08-24 22:13:05 +09:30
Toby Zerner
8248ba2f7a Rename post.editUser 2018-08-24 22:13:05 +09:30
Toby Zerner
dd65801d57 Rename post.hideTime 2018-08-24 22:13:05 +09:30
Toby Zerner
07c08ca798 Rename post.editTime 2018-08-24 22:13:05 +09:30
Toby Zerner
ae75f21b6b Rename post.time 2018-08-24 22:13:05 +09:30
Toby Zerner
d47c406d9c Rename discussion.repliesCount 2018-08-24 22:13:05 +09:30
Toby Zerner
29cef23404 Rename discussion.hideUser 2018-08-24 22:13:05 +09:30
Toby Zerner
a7ffed6778 Rename discussion.readNumber 2018-08-24 22:13:05 +09:30
Toby Zerner
9074f7e592 Rename discussion.readTime 2018-08-24 22:13:05 +09:30
Toby Zerner
99e5013ac3 Rename discussion.hideTime 2018-08-24 22:13:05 +09:30
Toby Zerner
1e9d9b8322 Rename discussion.lastTime 2018-08-24 22:13:05 +09:30
Toby Zerner
568006fe73 Rename discussion.startTime 2018-08-24 22:13:05 +09:30
Toby Zerner
4756bf1daf Rename discussion.lastPostedUser 2018-08-24 22:13:05 +09:30
Toby Zerner
8ecb67d49d Rename discussion.startUser 2018-08-24 22:13:05 +09:30
Toby Zerner
e241518506 Rename discussion.startPost 2018-08-24 22:13:05 +09:30
Toby Zerner
7716944616 Rename discussion.commentsCount 2018-08-24 22:13:05 +09:30
Toby Zerner
809b161d71 Merge branch 'master' into 1236-database-changes 2018-08-24 17:03:50 +09:30
David Sevilla Martín
6057151c29 Fix PR issues from #1496 (#1553)
* Remove `+` added from copying a diff somewhere

* Fix font-size
2018-08-22 09:34:18 +09:30
Arda Çebi
190bcb5e9a Add descriptions and optimize extensions page (#1496) 2018-08-21 23:16:02 +02:00
David Sevilla Martín
62e7a7188c Add a permission check to the Search sources (#1527) 2018-08-19 23:43:49 +02:00
David Sevilla Martín
fd36d18729 Change tab title after renaming discussion (#1543)
* Change tab title after renaming discussion

* Uncommit dist

* Uncommit package-lock.json

* Fix for VDOM

* Move setTitle into DiscussionPage#config
2018-08-14 22:15:47 +02:00
Edward Betts
641079b3fe Correct spelling mistakes. (#1546) 2018-08-14 21:46:53 +02:00
David Sevilla Martín
0452838802 ModalManager: Fix issue when app.current is not defined (#1530) 2018-08-14 06:33:39 +09:30
Sajjad Hashemian
640b93af36 configure spinner only once 2018-07-24 19:25:09 +04:30
Toby Zerner
677a7dd2d3 Merge branch 'master' into 1236-database-changes
# Conflicts:
#	src/Forum/Controller/IndexController.php
#	src/User/UserMetadataUpdater.php
2018-07-21 21:37:49 +09:30
Toby Zerner
6f3eb3f335 Fix discussion and post list sorting 2018-07-21 17:10:02 +09:30
Toby Zerner
6a6b9ac6b1 Use flexbox for sideNav. fixes #1408 2018-07-20 12:34:43 +09:30
AFR
034b82f4d4 Create new hidePosts permission (#1466) 2018-07-14 22:15:40 +02:00
Toby Zerner
0e73785498
Frontend refactor (#1471)
Refactor Frontend + Asset code

- Use Laravel's Filesystem component for asset IO, meaning theoretically
  assets should be storable on S3 etc.

- More reliable checking for asset recompilation when debug mode is on,
  so you don't have to constantly delete the compiled assets to force
  a recompile. Should also fix issues with locale JS files being
  recompiled with the same name and cached.

- Remove JavaScript minification, because it will be done by Webpack
  (exception is for the TextFormatter JS).

- Add support for JS sourcemaps.

- Separate frontend view and assets completely. This is an important
  distinction because frontend assets are compiled independent of a
  request, whereas putting together a view depends on a request.

- Bind frontend view/asset factory instances to the container (in
  service providers) rather than subclassing. Asset and content
  populators can be added to these factories – these are simply objects
  that populate the asset compilers or the view with information.

- Add RouteHandlerFactory functions that make it easy to hook up a
  frontend controller with a frontend instance ± some content.

- Remove the need for "nojs"

- Fix cache:clear command

- Recompile assets when settings/enabled extensions change
2018-06-30 12:31:12 +09:30
Sajjad Hashemian
aac194616a check class string before concat 2018-06-25 09:40:06 +04:30
Toby Zerner
805768a9e0
[WIP] JS Extender API foundation (#1468)
* Run extenders exported by extensions
* Add some basic extenders
* Patch Mithril as the very first thing so extension code can run safely
* Load the payload into the app before booting extensions
* Setup default routes before booting extensions
2018-06-22 10:49:46 +09:30
Toby Zerner
3f683dd6ee
Webpack (#1367)
* Replace gulp with webpack and npm scripts for JS compilation
* Set up Travis CI to commit compiled JS
* Restructure `js` directory; only one instance of npm, forum/admin are "submodules"
* Refactor JS initializers into Application subclasses
* Maintain partial compatibility API (importing from absolute paths) for extensions
* Remove minification responsibility from PHP asset compiler
* Restructure `less` directory
2018-06-20 13:20:31 +09:30