28 Commits

Author SHA1 Message Date
Davide Iadeluca
c8dc8f6922
refactor: unify frontend initializers naming (#4003)
* refactor: use consistent naming for frontend initializers

* refactor: use arrow functions for frontend initializers
2024-06-22 10:45:17 +01:00
Sami Mazouz
29ede5aa27
feat: JS Notification extender (#3974)
* feat: JS `Notification` extender

* fix
2024-05-14 21:10:07 +01:00
Ngô Quốc Đạt
1aa7806244
Fix notify for all posts switch field loading state (#3938) 2024-01-19 12:04:25 +01:00
Sami Mazouz
3a34136e36
feat: search UI/UX revamp (#3941)
* feat: first iteration

* chore: tweak

* feat: second iteration

* chore: incorrect code organization

* feat: gambit input suggestions

* feat: gambit keyboard navigation

* chore: bugs

* feat: negative gambits

* feat: improve gambit highlighting

* refactor: localize gambits

* feat: negative and positive gambit buttons

* fix: permissions

* chore: wat

* per: lazy load search modal

* fix: extensibility and bug fixes

* fix: bugs

* feat: reusable autocomplete dropdown

* chore: format

* fix: tag filter
2024-01-09 21:51:01 +00:00
Sami Mazouz
4b126d9f4c
feat: revamp search (#3893)
* refactor: move gambits to frontend (#3885)
* refactor: move gambits to frontend
* test: GambitManager
* refactor: merge filterer and searcher concepts (#3892)
* chore: drop remaining backend regex gambits
* refactor: merge filterer & searcher concept
* refactor: adapt extenders
* refactor: no longer need to push gambits to `q`
* refactor: filters to gambits
* refactor: drop shred `Query` namespace
* chore: cleanup
* chore: leftover gambit references on the backend (#3894)
* chore: leftover gambit references on the backend
* chore: namespace
* feat: search driver backend extension API (#3902)
* feat: first iteration of search drivers
* feat: indexer API & tweaks
* feat: changes after POC driver
* fix: properly fire custom observables
* chore: remove debugging code
* fix: phpstan
* fix: custom eloquent events
* chore: drop POC usage
* test: indexer extender API
* fix: extension searcher fails without filters
* fix: phpstan
* fix: frontend created gambit
* feat: advanced page and localized driver settings (#3905)
* feat: allow getting total search results and replacing filters (#3906)
* feat: allow accessing total search results
* feat: allow replacing filters
* chore: phpstan
2023-11-11 19:43:09 +01:00
Sami Mazouz
5ab5257ff5
feat: theming and extensibility improvements (#3876)
* feat: make page structure customizable across different pages (#3867)

* feat: create `PageStructure` component
* feat: apply to `DiscussionPage`
* feat: apply to `UserPage`
* feat: apply to `TagsPage`
* fix: adapt subscriptions ext
* chore: cleanup

* chore: use grid & flexbox for the discussion list item (#3868)

* chore: rename `DiscussionPage-list` to `DiscussionListPane`
* chore: itemlistify `DiscussionListItem`
* chore: use flex and grid for `DiscussionListItem`

* chore: use flexbox for `App-header` (#3869)

* chore: use flex and grid for `App-header`
* chore: drop search floats
* fix: adapt admin styles

* chore: use flexbox in dropdowns and SplitDropdown for subscriptions (#3874)

* chore: flexbox dropdown menu items
* chore: normalize subscriptions menu (use slit dropdown)
* chore: cleanup

* chore: misc flexbox/grid changes (#3875)

* chore: `TagsPage` to tsx
* chore: `TagsPage` flexbox/grid
* chore: `IndexPage-toolbar` flexbox
* chore: `UserCard` flexbox & itemlists
* fix: `Post` improve spacing logic
* chore: `Post` grid and proper spacing
* fix: avatar editor hover layer layout
* chore: `Button` flex

* chore: normalize form semantics (#3877)

* chore: normalize fieldsets
* fix: `LinkButton` spacing
* chore: consistent form semantics

* fix: styling regressions (#3878)

* fix: post spacing goes off in other pages
* fix: regression

* feat: extract reusable components from `NotificationsDropdown` (#3879)

* feat: extensible global notices (#3880)

* fix: js error on null item list
* feat: extensible global notices

* chore: housekeeping (#3881)

* chore: use CSS variables where still not using
* chore: cleanup suspension modal
* chore: cleanup post flag
* fix: badge vertical align
* chore: use CSS variables for custom coloring
* chore: `icon` helper to `Icon` component
* chore: `avatar` helper to `Avatar` component
* fix: chunk loading fails on admin frontend
* chore: format

* feat: reusable `UploadImageButton` component (#3882)

* chore: convert `UploadImageButton` to tsx
* feat: reusable `UploadImageButton` component
* feat: add `image-upload` setting type

* feat: extensible default footer component (#3883)

* chore: yarn format
2023-10-10 21:36:08 +01:00
Sami Mazouz
229a7affa5
feat: Code Splitting (#3860)
* feat: configure webpack to allow splitting chunks
* feat: `JsDirectoryCompiler` and expose js assets URL
* chore: support es2020 dynamic importing
* feat: control which URL to fetch chunks from
* feat: allow showing async modals & split 'LogInModal'
* feat: split `SignUpModal`
* feat: allow rendering async pages & split `UserSecurityPage`
* fix: module might not be listed in chunk
* feat: lazy load user pages
* feat: track the chunk containing each module
* chore: lightly warn
* chore: split `Composer`
* feat: add common frontend (for split common chunks)
* fix: jsDoc typing imports should be ignored
* feat: split `PostStream` `ForgotPasswordModal` and `EditUserModal`
* fix: multiple inline async imports not picked up
* chore: new `common` frontend assets only needs a jsdir compiler
* feat: add revision hash to chunk import URL
* fix: nothing to split for `admin` frontend yet
* chore: cleanup registry API
* chore: throw an error in debug mode if attempting to import a non-loaded module
* feat: defer `extend` & `override` until after module registration
* fix: plugin not picking up on all module sources
* fix: must override default chunk loader function from webpack plugin
* feat: split tags `TagDiscussionModal` and `TagSelectionModal`
* fix: wrong export name
* feat: import chunked modules from external packages
* feat: extensions compatibility
* feat: Router frontend extender async component
* chore: clean JS output path (removes stale chunks)
* fix: common chunks also need flushing
* chore: flush backend stale chunks
* Apply fixes from StyleCI
* feat: loading alert when async page component is loading
* chore: `yarn format`
* chore: typings
* chore: remove exception
* Apply fixes from StyleCI
* chore(infra): bundlewatch
* chore(infra): bundlewatch split chunks
* feat: split text editor
* chore: tag typings
* chore: bundlewatch
* fix: windows paths
* fix: wrong planned ext import format
2023-08-02 17:57:57 +01:00
David Wheatley
e63e161be6
chore: major frontend JS cleanup (#3609) 2023-05-07 17:40:18 +01:00
Sami Mazouz
47b670aa29
feat: frontend Model extender (#3646)
* feat: reintroduce frontend extenders
* chore: used `Routes` extender in bundled extensions
* chore: used `PostTypes` extender in bundled extensions
* chore: `yarn format`
* feat: `Model` frontend extender
* chore: naming
* chore(review): attributes can be nullable or undefined
* chore(review): delay extender implementation
* chore(review): unnecessary check
* chore(review): stay consistent
* chore: merge conflicts
* chore: unused import
* chore: multiline extenders
* feat: add Store extender

Signed-off-by: Sami Mazouz <sychocouldy@gmail.com>
2023-02-08 21:13:53 +01:00
Sami Mazouz
d7f4975330
feat: introduce frontend extenders (#3645)
* feat: reintroduce frontend extenders
* chore: used `Routes` extender in bundled extensions
* chore: used `PostTypes` extender in bundled extensions
* chore: `yarn format`
* chore: naming
* chore(review): unnecessary check
* chore(review): stay consistent
* chore: unused import

Signed-off-by: Sami Mazouz <sychocouldy@gmail.com>
2023-01-17 19:10:24 +01:00
David Wheatley
87aaaf6971
feat(subscriptions): add option to send notifications when not caught up (#3503) 2022-08-31 11:13:51 +02:00
David Sevilla Martin
cd8ed6cf66
fix(subscriptions): filter followed discussions when searching (#3376)
Fixes #3375
2022-04-03 17:14:56 -04:00
Ian Morland
30b2fcce66 Format JS 2022-01-07 17:31:22 +00:00
Ian Morland
a4b678ce51 Update JS imports 2022-01-07 17:31:06 +00:00
Ian Morland
99644abb30 fix: set priority on subscription item (#43) 2021-11-16 14:58:34 +00:00
David Wheatley
f3ac771980 Fix Tooltip deprecation warnings 2021-05-17 01:45:00 +01:00
sl-kr
e783a7603d change value of subscribed from false to null in the JSON API (#37) 2021-03-18 12:38:21 -04:00
Alexander Skvortsov
58fa8d4b8c Update for beta 16 2021-03-13 16:32:48 -05:00
Alexander Skvortsov
b222856744 Add an onFollowing param to GlobalSearchState (#38)
Add an `onFollowing` param to GlobalSearchState

This ensures that it will be taken into account by IndexPage's `refreshParams` call, preventing the following page from being shown if the user:

1. goes to following
2. goes to any other page not inheriting IndexPage
3. goes to 'all discussions'

Ref https://github.com/flarum/core/issues/2516 for a full explanation.
2021-01-07 10:24:41 -05:00
Alexander Skvortsov
6bdbee70db Mithril 2 Update (#32)
Update for Mithril 2
2020-09-23 22:56:47 -04:00
Franz Liedke
0654a93c1e Fix extension to work with latest state changes
Refs flarum/core#2151.
2020-06-26 16:11:16 +02:00
Franz Liedke
04ee85f266 Fix extension to work with latest state changes
Refs flarum/core#2150.
2020-06-26 16:06:16 +02:00
Franz Liedke
6c6975a750 Remove unused imports 2020-06-26 16:06:05 +02:00
Alexander Skvortsov
a67e90adf4 Added meta title to following page (#23)
Refs flarum/core#495.
2020-06-03 12:46:05 +02:00
Toby Zerner
3e09c2bf33 Database changes (#18)
* Update core references

* Update core attribute names
2018-09-16 20:50:44 +02:00
Toby Zerner
078eec06d2 Webpack (#17)
See https://github.com/flarum/core/pull/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"
* Restructure `less` directory
2018-06-20 13:36:12 +09:30
Toby Zerner
3729a91be3 Update for new API 2015-07-23 16:40:54 +09:30
Toby Zerner
5ea3579f76 Initial commit 2015-06-26 12:24:07 +09:30