diff --git a/README.md b/README.md index 960a904d1..12b4b4d03 100644 --- a/README.md +++ b/README.md @@ -16,17 +16,17 @@ Like what you see? :eyes: Give us a GitHub Star! :star: It helps define, organize, track and manage work across individuals and teams. Focalboard comes in two main editions: -* **[Mattermost Boards](https://www.focalboard.com/download/mattermost/)**: A self-hosted or **[free cloud server](https://mattermost.com/sign-up/?utm_source=focalboard&utm_campaign=focalboard)** for your team to plan and collaborate. +* **[Mattermost Boards](https://www.focalboard.com/download/mattermost/)**: A self-hosted or **[free cloud server](https://mattermost.com/sign-up/?utm_source=github&utm_campaign=focalboard)** for your team to plan and collaborate. -* **[Personal Desktop](https://www.focalboard.com/download/personal-edition/desktop/)**: A standalone, single-user [Mac](https://apps.apple.com/app/apple-store/id1556908618?pt=2114704&ct=website&mt=8), [Windows](https://www.microsoft.com/store/apps/9NLN2T0SX9VF?cid=website), or [Linux](https://www.focalboard.com/download/personal-edition/desktop/#linux-desktop) desktop app for your own todos and personal projects. +* **[Personal Desktop](https://www.focalboard.com/download/personal-edition/desktop/)**: A standalone, single-user [macOS](https://apps.apple.com/app/apple-store/id1556908618?pt=2114704&ct=website&mt=8), [Windows](https://www.microsoft.com/store/apps/9NLN2T0SX9VF?cid=website), or [Linux](https://www.focalboard.com/download/personal-edition/desktop/#linux-desktop) desktop app for your own todos and personal projects. Focalboard can also be installed as a standalone **[Personal Server](https://www.focalboard.com/download/personal-edition/ubuntu/)** for development and personal use. ## Try Focalboard -### Mattermost Boards - [now available as a free cloud server](https://mattermost.com/sign-up/?utm_source=focalboard&utm_campaign=focalboard) +### Mattermost Boards - [now available as a free cloud server](https://mattermost.com/sign-up/?utm_source=github&utm_campaign=focalboard) -**Mattermost Boards** combines project management tools with messaging and collaboration for teams of all sizes. To access and use **Mattermost Boards**, install or upgrade to Mattermost v6.0 or later as a [self-hosted server](https://docs.mattermost.com/guides/deployment.html?utm_source=focalboard&utm_campaign=focalboard) or [Cloud server](https://mattermost.com/sign-up/?utm_source=focalboard&utm_campaign=focalboard). After logging into Mattermost, select the menu in the top left corner and select **Boards**. +**Mattermost Boards** combines project management tools with messaging and collaboration for teams of all sizes. To access and use **Mattermost Boards**, install or upgrade to Mattermost v6.0 or later as a [self-hosted server](https://docs.mattermost.com/guides/deployment.html?utm_source=github&utm_campaign=focalboard) or [Cloud server](https://mattermost.com/sign-up/?utm_source=github&utm_campaign=focalboard). After logging into Mattermost, select the menu in the top left corner and select **Boards**. ***Mattermost Boards** is installed and enabled by default in Mattermost v6.0 and later.* diff --git a/mattermost-plugin/product/api_adapter.go b/mattermost-plugin/product/api_adapter.go index 3ed132462..594445e64 100644 --- a/mattermost-plugin/product/api_adapter.go +++ b/mattermost-plugin/product/api_adapter.go @@ -165,11 +165,11 @@ func (a *serviceAPIAdapter) GetFileInfo(fileID string) (*mm_model.FileInfo, erro // func (a *serviceAPIAdapter) PublishWebSocketEvent(event string, payload map[string]interface{}, broadcast *mm_model.WebsocketBroadcast) { - a.api.clusterService.PublishWebSocketEvent(boardsProductID, event, payload, broadcast) + a.api.clusterService.PublishWebSocketEvent(boardsProductName, event, payload, broadcast) } func (a *serviceAPIAdapter) PublishPluginClusterEvent(ev mm_model.PluginClusterEvent, opts mm_model.PluginClusterEventSendOptions) error { - return a.api.clusterService.PublishPluginClusterEvent(boardsProductID, ev, opts) + return a.api.clusterService.PublishPluginClusterEvent(boardsProductName, ev, opts) } // @@ -201,7 +201,7 @@ func (a *serviceAPIAdapter) GetLogger() mlog.LoggerIFace { // func (a *serviceAPIAdapter) KVSetWithOptions(key string, value []byte, options mm_model.PluginKVSetOptions) (bool, error) { - b, appErr := a.api.kvStoreService.SetPluginKeyWithOptions(boardsProductID, key, value, options) + b, appErr := a.api.kvStoreService.SetPluginKeyWithOptions(boardsProductName, key, value, options) return b, normalizeAppErr(appErr) } diff --git a/mattermost-plugin/webapp/src/index.tsx b/mattermost-plugin/webapp/src/index.tsx index b883bb056..77eec4588 100644 --- a/mattermost-plugin/webapp/src/index.tsx +++ b/mattermost-plugin/webapp/src/index.tsx @@ -201,7 +201,7 @@ export default class Plugin { let theme = mmStore.getState().entities.preferences.myPreferences.theme setMattermostTheme(theme) - const productID = process.env.TARGET_IS_PRODUCT ? 'com.mattermost.boards' : manifest.id + const productID = process.env.TARGET_IS_PRODUCT ? 'boards' : manifest.id // register websocket handlers this.registry?.registerWebSocketEventHandler(`custom_${productID}_${ACTION_UPDATE_BOARD}`, (e: any) => wsClient.updateHandler(e.data)) diff --git a/webapp/src/store/comments.ts b/webapp/src/store/comments.ts index 2b6dbc29f..325d804ab 100644 --- a/webapp/src/store/comments.ts +++ b/webapp/src/store/comments.ts @@ -58,9 +58,9 @@ const commentsSlice = createSlice({ state.comments[block.id] = block as CommentBlock state.commentsByCard[block.parentId] = state.commentsByCard[block.parentId] || [] state.commentsByCard[block.parentId].push(block as CommentBlock) - state.commentsByCard[block.parentId].sort((a, b) => a.createAt - b.createAt) } } + Object.values(state.commentsByCard).forEach((comment) => comment.sort((a, b) => a.createAt - b.createAt)) }) builder.addCase(loadBoardData.fulfilled, (state, action) => { state.comments = {} @@ -70,9 +70,9 @@ const commentsSlice = createSlice({ state.comments[block.id] = block as CommentBlock state.commentsByCard[block.parentId] = state.commentsByCard[block.parentId] || [] state.commentsByCard[block.parentId].push(block as CommentBlock) - state.commentsByCard[block.parentId].sort((a, b) => a.createAt - b.createAt) } } + Object.values(state.commentsByCard).forEach((comment) => comment.sort((a, b) => a.createAt - b.createAt)) }) }, })