1
0
mirror of https://github.com/mattermost/focalboard.git synced 2025-03-29 21:01:01 +02:00

46 Commits

Author SHA1 Message Date
Doug Lauder
f874c3dce3
don't redundantly send config chg messages to cluster nodes ()
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-05-19 13:59:04 -06:00
Miguel de la Cruz
cda064a83a
Add team access checks () 2022-04-25 17:39:40 +02:00
Doug Lauder
b47e70579b
cleanup log levels () 2022-04-18 08:21:44 -04:00
Jesús Espino
bc37e97ae9
Applying migration changes ()
* Applying migration changes

* Fixing linter erros

* Restoring userID

* Updated user id length

* Update server/app/category_boards.go

* Skiped creating categories for boards belonging to DMs

* Handled private group messages as well

* fix sql error for insert_at

* fix timestamp parsing

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
2022-04-13 16:10:53 -06:00
Harshil Sharma
d744d69b43 Added category change broaadcast to cluster 2022-04-13 15:46:35 +05:30
Harshil Sharma
280e38604f Merge branch 'main' into category-websocket-broadcast-fix 2022-04-13 15:09:49 +05:30
Miguel de la Cruz
5f963af701 Use the right single user ID on the WS implementation 2022-04-11 19:16:16 +02:00
Harshil Sharma
2358e3e792 Broadcasting category changes only to the correct user 2022-04-07 15:33:56 +05:30
Jesús Espino
3dba5c8fcd
Upgrading all the server libraries ()
* Upgrading all the server libraries

* upgrading dependencies in the mattermost-plugin directory

* Executing go generate

* Upgrading the linux app

* Running go mod tidy everywhere
2022-03-25 17:05:56 -06:00
Jesús Espino
aa540e73ce
Permissions feature branch ()
* wip

* Added data migration for populating categories

* wip

* Added data migration for populating categories

* Store WIP

* migration WIP

* category CRUD APIs complete

* category block API WIP

* block category update API done

* Fetcehed data into store

* Started displayting sidebar data

* sidebar WIP

* Dashboard - basic changes

* Sidebar dashboard btn and board switcher UI only

* Sidebar dashboard btn and board switcher UI only

* create category dialog WIP

* Create category webapp side done

* Integrated move card to other category

* board to block

* Disabled dashboard route for now as we'll implement it in phase 2

* WIP

* Added logic to open last board/view on per team level

* Add workspace to teams and boards migrations ()

* Add workspace to teams and boards migrations

* Update json annotations on board models

* boards search dialog WIP

* Seach dialog WIP

* Implemented opening boiard from search results

* Boards switcher styliung

* Handled update category WS event

* Template support

* personal server support and styling fixes

* test fix WIP

* Fixed a bug causing boards to not be moved correctly beteen categories

* Fixed webapp tests

* fix

* Store changes ()

* Permissions phase 1 - Websocket updates ()

* Store changes

* Websockets changes

* Permissions phase 1 - Permissions service ()

* Store changes

* Websockets changes

* Permissions service

* Api and app updates ()

* Store changes

* Websockets changes

* Permissions service

* New API and App changes

* Delete and Patch boards and blocks endpoints

* Used correct variable

* Webapp changes WIP

* Open correct team URL

* Fixed get block API

* Used React context for workspace users

* WIP

* On load navigation sorted out

* WIP

* Nav fix

* categories WS broadcast

* Used real search API

* Fixed unfurl ppreview

* set active team in sidebar

* IMplemented navigation on changing team in sidebar

* Misc fixes

* close rows inside transaction ()

* update syntax for mysql ()

* Upadted mutator for new patchBlock API

* Updated patchBlock API to use new URL

* Listeining to correct event in plugin mode

* Implemented WS messages for category operations:

* Fix duplicated build tags on Makefile

* Sidebar enhancements

* Add missing prefix to SQLite migration and fix flaky tests

* Sidebar boards menu enhancement

* Fix board page interactions ()

* Fix patch board card properties error

* Fix board interactions

* Fix insert blocks interactions

* Fix app tests ()

* Add json1 tag to vscode launch ()

* Fix add, delete and update boards and add board patch generation ()

* Fix update boards and add board patch generation

* Make add board and add template work, as well as deleting a board

* Update the state on board deletion

* Delete unused variable

* Fix bad parenthesis

* Fix board creation inside plugin, options were coming null due websocket message serialization

* update property type mutators to use boards API ()

* Add permissions modal ()

* Initial integration

* Permissions modal, websocket updates and API tests implemented

* Avoid updating/removing user if there is only one admin left

* Fix duplicates on board search

* Adds integration test

* Addressing PR review comments

Co-authored-by: Jesús Espino <jespinog@gmail.com>

* Merge

* I'm able to compile now

* Some fixes around tests execution

* Fixing migrations

* Fixing migrations order

* WIP

* Fixing some other compilation problems on tests

* Some typescript tests fixed

* Fixing javascript tests

* Fixing compilation

* Fixing some problems to create boards

* Load the templates on initial load

* Improvements over initial team templates import

* Adding new fields in the database

* Working on adding duplicate board api

* Removing RootID concept entirely

* Improving a bit the subscriptions

* Fixing store tests for notificationHints

* Fixing more tests

* fixing tests

* Fixing tests

* Fixing tests

* Fixing some small bugs related to templates

* Fixing registration link generation/regeneration

* Fixing cypress tests

* Adding store tests for duplicateBoard and duplicateBlock

* Addressing some TODO comments

* Making the export api simpler

* Add redirect component for old workspace urls

* Removing Dashboard code

* Delete only the built-in templates on update

* fixing tests

* Adding users autocompletion

* Updating snapshots

* Fixing bad merge

* fix panic when creating new card in notifysubscriptions ()

* fix lint errors ()

* fix lint errors

* fix panic when creating new card in notifysubscriptions ()

* fix lint errors

* fix unit test

* Revert "fix unit test"

This reverts commit 0ad78aed65745521c0bb45790c9ea91b6c316c44.

Co-authored-by: Doug Lauder <wiggin77@warpmail.net>

* fix sql syntax error for SearchUsersByTeam ()

* Fix mentions delivery ()

* fix sql syntax error for SearchUsersByTeam

* fix mentions delivery

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* update api for octoClient calls, pass correct variables to mutator ()

* Fixing tests after merge

* Fix sidebar context menu UI issue ()

* Fix notification diff for text blocks ()

* fix notification diff for text blocks; fix various linter errors.

* fix URLs to cards

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Permissions branch: Fix card links ()

* fix notification diff for text blocks; fix various linter errors.

* fix URLs to cards

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Fixing sqlite tests

* Fixing server tests

* Update migrations to create global templates. ()

* fix duplicate templates

* revert migrate.go

* update UI for empty templates

* implement updating built-in templates as global (teamId = 0)

* handle error if board not found

* update unit test

* fix more tests

* Update blocks_test.go

Fix merge issue

* fix migration sql error ()

* Fixing frontend tests

* Set target team ID when using a global template ()

* Fix some server tests

* Fixing onboarding creation

* Permissions branch: Fix unit tests and CI errors (part 1) ()

* Fixing some small memory leaks ()

* Fixing some small memory leaks

* fixing tests

* passing the tags to all test targets

* Increasing the timeout of the tests

* Fix some type checkings

* Permissions branch: Fixes all the linter errors ()

* fix linter errors

* Reestructuring the router and splitting in more subcomponents ()

* Reestructuring the router and splitting in more subcomponents

* Removing console.log calls

* Removing unneeded selector

* Addressing PR comment

* Fix redirection to one team when you load directly the boards home path

* Using properly the lastTeamID to redirect the user if needed

* don't allow last admin change/deleted ()

* don't allow last admin change/deleted

* update for i18-extract

* fixed en.json

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>

* Splitting BoardPage component into simpler/smaller components ()

* Splitting BoardPage component into simpler/smaller components

* Removing unneeded import

* Replace go migrate with morph permissions ()

* merge origin/replace-go-migrate-with-morph

* run go mod tidy on mattermost-plugin and increase test timeout

* fix merge issue temprorarily

* remove some debug changes

* fixing the linter

* Allow always team 0 (global) templates fetch ()

* Fix problem with viewId 0 in the URL ()

* Migrate from binddata to goembed ()

* Adding join logic to the board switcher ()

* Adding join logic to the board switcher

* Using already existing client function and removing the joinBoard one

* Adding support for autojoin based on url

* Fixing frontend tests

* fix webapp compile error, missing enableSharedBoards ()

* Fixing duplication on postgres

* Adding back views to the sidebar ()

* Fix . Update Swagger comments ()

* Fix the flash of the template selector on board/team switch ()

* Fix the flash of the template selector on board/team switch

* More fixes specially around error handling

* Fixing the bot badge ()

* simplifying a bit the team store sync between channels and focalboard ()

* Fix menu tests ()

* fix failing menu tests

* fix lint error

* Added keyboard shortcut for boards switcher ()

* Added keyboard shortcut for boards switcher

* Fixed a type error

* Added some inline comments

* Fixed lint

* Fixed bug with scroll jumping when the card is opened: ()

- avoid remounting of `ScrollingComponent` for each render of `Kanban` component
  - property `autoFocus` set to false for `CalculationOptions` because it triggers `blur` even for the button in Jest tests and closes the menu
  - snapshots for tests with `CalculationOptions` updated

* Adding the frontend support for permissions and applying it to a big part of the interface. ()

* Initial work on permissions gates

* Applying permissions gates in more places

* Adding more checks to the interface

* Adding more permissions gates and keeping the store up to date

* fixing some tests

* Fixing some more tests

* Fixing another test

* Fixing all tests and adding some more

* Adding no-permission snapshot tests

* Addressing PR review comments

* Fixing invert behavior

* Permissions branch:  No sqlstore calls after app shutdown ()

* fix webapp compile error, missing enableSharedBoards

* refactor app init wip

* - ensure all block change notifications are finished before shutting down app
- fix unit tests for mysql (insert_at only has 1 second resolution!)

* adjust logging

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Fixed migrations to allow upgrading from previous version ()

* Added mechanism to check if schema migration is needed

* WIP

* WIP

* WIP

* WIP

* Fixed migration

* Fixed for SQLite

* minor cleaniup

* Deleted old schema migration table after running migrations

* Removed a debug log

* Fixed a bug where the code always tried to delete a table which may or may not exist

* Show properly the user avatar in the ShareBoard component ()

* Fixing the last CI problems from the permissions-branch ()

* Fix history ordering

* Giving some times to avoid possible race conditions

* Empty

* Reverting accidental change in the config.json

* Optimizing table view ()

* Optimizing table view

* Reducing the amount of rendering for tables

* Some other performance improvements

* Improve the activeView updates

* Some extra simplifications

* Another small improvement

* Fixing tests

* Fixing linter errors

* Reducing a bit the amount of dependency with big objects in the store

* Small simplification

* Removing Commenter role from the user role selector ()

* Shareboard cleanup ()

* Initial work on permissions gates

* Applying permissions gates in more places

* Adding more checks to the interface

* Adding more permissions gates and keeping the store up to date

* fixing some tests

* Fixing some more tests

* Fixing another test

* Fixing all tests and adding some more

* Adding no-permission snapshot tests

* Addressing PR review comments

* cleanup some shareboard settings

* remove unused property, fix for user items being displayed for non admin

* revert change, allow users to show

Co-authored-by: Jesús Espino <jespinog@gmail.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Fixing comments and cards with the new optimizations in the store ()

* Fixing property creation ()

* Fix user selection in table view ()

* Fixing focus new row in table view ()

* Permissions branch: Fix sqlite table lock (CI) ()

* fix sqlite table lock

* remove test db on teardown

* revert .gitignore

* fix goimport on migration code

* fix typo

* more linter fixes

* clean up tmp db for sqlstore tests

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Fixing snapshots

* Migrating center panel to functional component ()

* Migrating center panel to functional component

* Fixing some tests

* Fixing another test

* Fixing linter errors

* Fixing types errors

* Fixing linter error

* Fixing cypress tests

* Fixing the last cypress test

* Simpliying a bit the code

* Making property insertion more robust

* Updating checkbox test

Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>
Co-authored-by: Miguel de la Cruz <miguel@mcrx.me>
Co-authored-by: Scott Bishel <scott.bishel@mattermost.com>
Co-authored-by: Chen-I Lim <46905241+chenilim@users.noreply.github.com>
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Harshil Sharma <18575143+harshilsharma63@users.noreply.github.com>
Co-authored-by: Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com>
Co-authored-by: kamre <eremchenko@gmail.com>
2022-03-22 08:24:34 -06:00
Doug Lauder
2c21906164
Reduce noise in logs ()
* use PluginLogAdapter to log everything; move some info to debug
2022-02-07 18:04:24 -05:00
Scott Bishel
66f4b90ef2
change log from error to debug () 2022-01-28 11:24:22 -07:00
Doug Lauder
75bd409ba0
Notifications phase 1 ()
Backend support for subscribing/unsubscribing to blocks, typically cards and boards. Notifies subscribers when changes are made to cards they are subscribed to.
2021-12-10 10:46:37 -05:00
Miguel de la Cruz
a184206395
Change the unregistered connection logline to debug level () 2021-10-08 11:59:21 +02:00
Doug Lauder
db8d91f889
use milliseconds for all timestamps (server) () 2021-10-07 07:51:01 -04:00
Miguel de la Cruz
ce98ec55fc
Recovers inactive websockets connections on reconnect in plugin mode ()
* Stores a cache of inactive connections so their subscriptions are recovered on reconnections

* Adds test for getUserIDsForWorkspace and simplify messages through helpers

* Make the plugin websocket client more resilient

* Remove missed event callback and limit ws state polling to one at a time

* Add read lock for the plugin adapter and guarantee atomic ops on inactiveAt

* Add mutex to the plugin adapter client and tests to cover for races

* Split plugin adapter mutex in two and use them to lock only on data access

* Group plugin adapter fields by the mutex that's guarding them
2021-09-29 18:19:34 +02:00
Miguel de la Cruz
a8da028bc7
Adds workspaceID to blocks and makes board page only reacts to the workspace updates () 2021-09-22 13:57:00 -06:00
Scott Bishel
838c6f90b7
Config for share board ()
* initial commit for setting shared board configuration

* add unit test

* working again

* update default config

* initial commit for setting shared board configuration

* add unit test

* working again

* update default config

* add unit tests, some clean up

* more cleanup

* more clean up

* remove header text for GH-1105

* remove unnecessary logs

* update text

* fix lint errors

* more lint fixes

* webapp lint fixes

* Update mattermost-plugin/plugin.json

Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com>

* Update mattermost-plugin/plugin.json

Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com>

* update for review, sync with main

Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com>
2021-09-16 13:31:02 -06:00
Miguel de la Cruz
f7946821a0
Propagate block changes to all of the cluster nodes in plugin mode ()
Co-authored-by: Jesús Espino <jespinog@gmail.com>
2021-09-16 12:18:11 +02:00
Miguel de la Cruz
e10229031f
Add a plugin adapter to reuse MM websocket in plugin mode ()
* Add a plugin adapter to reuse MM websocket in plugin mode

* Remove development replace

* Switch all go.mod files to use 1.16

* Fix linter issues

* Fix linter

* Update server version to contain the new hooks
2021-08-27 10:59:14 +02:00
Doug Lauder
b58497e2ea
Replace mlog with server v6 mlog ()
* replace mlog with server v6 mlog
* remove FB mlog from plugin
2021-08-25 16:08:01 -04:00
Jesús Espino
6a7d3f797b
Websocket client now connects once and subscribe/desubscribe on the fly ()
* Websocket client now connects once and subscribe/desubscribe on the fly

* Fixing eslint error

Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>
2021-07-28 18:14:18 +02:00
Miguel de la Cruz
0bd6233fac
Refactor the websockets connection messages and lifecycle ()
* Refactor the websockets connection messages and lifecycle

* Modify frontend to subscribe to a workspace instead of a set of blocks

* Fixing linter errors

Co-authored-by: Jesús Espino <jespinog@gmail.com>
2021-07-19 15:04:17 +05:30
Doug Lauder
ebd477464b
fix remaining golangci linter warnings ()
* fix remaining linter warnings
2021-07-08 21:09:02 -04:00
Harshil Sharma
1020c03924
Prevented concurrent writes to websocket ()
* retained individual connection objects

* unlocking lock in defer

* Completely abstracted internal connection object

* Completely removed direct use of WS connection
2021-07-01 08:11:29 +02:00
Doug Lauder
66975bdfe9
First pass linter cleanup ()
* first pass linter cleanup

* address review comments
2021-06-21 11:21:42 +02:00
Doug Lauder
417de9f837
Logger for FocalBoard server ()
- structured, asynchronous logging
- supports discreet log levels, including custom levels
- supports output to console, files, and all common log aggregators.
- supports JSON, plain text and GELF formats
- lazy formatting and writing
2021-05-29 02:23:10 -04:00
Jesús Espino
f1b8d88d6b
Changing mattermost-auth method to work based on shared database access ()
* Improving mattermost auth implementation

* Making mattermost-auth based on shared database access

* Reverting unneeded changes in the config.json file

* Fixing tiny problems

* Removing the need of using the mattermost session token

* Fixing some bugs and allowing to not-bind the server to any port

* Small fix to correctly get the templates

* Adding the mattermost-plugin code inside focalboard repo

* Adding a not working code part of the cluster websocket communication

* Updating the mattermost version

* Adding the cluster messages for the websockets

* Updating to the new node version

* Making it compatible with S3

* Addressing some tiny problems

* Fixing server tests

* Adds support for MySQL migrations and initialization

Co-authored-by: Miguel de la Cruz <miguel@mcrx.me>
2021-05-24 19:06:11 +02:00
Chen-I Lim
3531c8307d Global template support 2021-03-30 14:04:00 -07:00
Chen-I Lim
771be97c3e Workspace support in websockets 2021-03-29 13:00:40 -07:00
Chen-I Lim
aa363041e7 Support worksapce in websocket 2021-03-29 12:31:42 -07:00
Chen-I Lim
0b479ff3ae Handle workspace in websocket 2021-03-26 18:04:23 -07:00
Chen-I Lim
725971784b Workspace backend support 2021-03-26 11:01:54 -07:00
Bo-Yi Wu
2b4e03eed6 chore(format): update coding style 2021-03-21 16:28:26 +08:00
Chen-I Lim
0fe96ad7ed Check for single user token 2021-02-09 12:27:34 -08:00
Chen-I Lim
79b79b35bc Auth readToken in websocket 2021-02-02 18:21:37 -08:00
Chen-I Lim
c2894693ea websocket: send not authenticated error 2021-02-02 13:17:34 -08:00
Chen-I Lim
a56cf03e0c websocket private functions 2021-02-02 13:00:22 -08:00
Chen-I Lim
b3e660d354 Websocket auth 2021-02-02 12:06:28 -08:00
Chen-I Lim
3995cbd0e4 Product name 2021-01-26 14:13:46 -08:00
Chen-I Lim
4a7bf165c4 cleanup 2020-11-06 10:20:03 -08:00
Chen-I Lim
0d0bc7a672 Incremental updates on websocket 2020-11-06 10:11:01 -08:00
Jesús Espino
72f4783e34 Some other code improvements from the golangci 2020-10-22 15:22:36 +02:00
Jesús Espino
607b8aa063 Some improvements based on golangci-lint checks, and adding more rules 2020-10-22 13:34:42 +02:00
Chen-I Lim
0b07f454bb WebSocket listener: Handle add/remove blockIds 2020-10-21 12:36:43 -07:00
Jesús Espino
19ab85b329 Splitting the server in multiple packages 2020-10-16 19:12:53 +02:00