Skip to content

[pr#5098] Enhance Company Goals & OKRs template and card formatting #154

Description

@officialjaware

Imported from upstream pull request #5098

Summary

Enhances Company Goals & OKRs template with dynamic goal card management, disableAutoEmoji board property, and rich text formatting toolbar (bold, italic, underline, strikethrough, lists) with keyboard shortcuts.

Triage

Field Value
Category feature
Complexity medium
Area frontend
👤 Auto-attempt: NO — UI/UX decisions involved (formatting toolbar, template structure changes); requires human review of design choices and template JSON correctness
Test hint Verify template loads with single example goal card; confirm emoji is not auto-assigned; test rich text formatting toolbar keyboard shortcuts (Ctrl+B, Ctrl+I, Ctrl+U, Ctrl+S); add and delete goal cards dynamically.

Original description

  • Allow dynamic addition/deletion of main Goal cards by starting with one example goal
  • Remove automatic emoji assignment by adding disableAutoEmoji board property
  • Add rich text formatting (bold, italic, underline, strikethrough, lists) to card descriptions
  • Improve template flexibility for real-world planning scenarios
  • Add formatting toolbar with keyboard shortcuts (Ctrl+B, Ctrl+I, Ctrl+U, Ctrl+S)

Thank you for contributing a pull request! Here are a few tips to help you:

  1. If this is your first contribution, make sure you've read the Contribution Checklist https://developers.mattermost.com/contribute/getting-started/contribution-checklist/
  2. Read our blog post about "Submitting Great PRs" https://developers.mattermost.com/blog/2019-01-24-submitting-great-prs
  3. Take a look at other repository specific documentation at https://developers.mattermost.com/contribute

Assign two reviewers for this pull request from the names suggested. If no names are suggested or you are not sure who to assign, set Core Focalboard as the reviewer.

Summary

Enhanced Company Goals & OKRs template with dynamic goal management, optional emoji assignment, and rich text formatting for card descriptions including bold, italic, underline, strikethrough, and lists with keyboard shortcuts.

Ticket Link

Fixes mattermost-community#5093

Original patch

diff --git a/server/assets/templates-boardarchive/bcm39o11e4ib8tye8mt6iyuec9o/board.jsonl b/server/assets/templates-boardarchive/bcm39o11e4ib8tye8mt6iyuec9o/board.jsonl
index 8801780ed73..847545e47f3 100644
--- a/server/assets/templates-boardarchive/bcm39o11e4ib8tye8mt6iyuec9o/board.jsonl
+++ b/server/assets/templates-boardarchive/bcm39o11e4ib8tye8mt6iyuec9o/board.jsonl
@@ -1,12 +1,5 @@
-{"type":"board","data":{"id":"bcm39o11e4ib8tye8mt6iyuec9o","teamId":"qghzt68dq7bopgqamcnziq69ao","channelId":"","createdBy":"edrkkih4cinzf8ueeszh6rmfoo","modifiedBy":"edrkkih4cinzf8ueeszh6rmfoo","type":"P","minimumRole":"","title":"Company Goals \u0026 OKRs","description":"Use this template to plan your company goals and OKRs more efficiently.","icon":"⛳","showDescription":true,"isTemplate":false,"templateVersion":0,"properties":{},"cardProperties":[{"id":"a6amddgmrzakw66cidqzgk6p4ge","name":"Objective","options":[{"color":"propColorGreen","id":"auw3afh3kfhrfgmjr8muiz137jy","value":"Grow Revenue"},{"color":"propColorOrange","id":"apqfjst8massbjjhpcsjs3y1yqa","value":"Delight Customers"},{"color":"propColorPurple","id":"ao9b5pxyt7tkgdohzh9oaustdhr","value":"Drive Product Adoption"}],"type":"select"},{"id":"a17ryhi1jfsboxkwkztwawhmsxe","name":"Status","options":[{"color":"propColorGray","id":"a6robxx81diugpjq5jkezz3j1fo","value":"Not Started"},{"color":"propColorBlue","id":"a8nukezwwmknqwjsygg7eaxs9te","value":"In Progress"},{"color":"propColorYellow","id":"apnt1f7na9rzgk1rt49keg7xbiy","value":"At Risk"},{"color":"propColorRed","id":"axbz3m1amss335wzwf9s7pqjzxr","value":"Missed"},{"color":"propColorGreen","id":"abzfwnn6rmtfzyq5hg8uqmpsncy","value":"Complete 🙌"}],"type":"select"},{"id":"azzbawji5bksj69sekcs4srm1ky","name":"Department","options":[{"color":"propColorBrown","id":"aw5i7hmpadn6mbwbz955ubarhme","value":"Engineering"},{"color":"propColorBlue","id":"afkxpcjqjypu7hhar7banxau91h","value":"Product"},{"color":"propColorOrange","id":"aehoa17cz18rqnrf75g7dwhphpr","value":"Marketing"},{"color":"propColorGreen","id":"agrfeaoj7d8p5ianw5iaf3191ae","value":"Sales"},{"color":"propColorYellow","id":"agm9p6gcq15ueuzqq3wd4be39wy","value":"Support"},{"color":"propColorPink","id":"aucop7kw6xwodcix6zzojhxih6r","value":"Design"},{"color":"propColorPurple","id":"afust91f3g8ht368mkn5x9tgf1o","value":"Finance"},{"color":"propColorGray","id":"acocxxwjurud1jixhp7nowdig7y","value":"Human Resources"}],"type":"select"},{"id":"adp5ft3kgz7r5iqq3tnwg551der","name":"Priority","options":[{"color":"propColorRed","id":"a8zg3rjtf4swh7smsjxpsn743rh","value":"P1 🔥"},{"color":"propColorYellow","id":"as555ipyzopjjpfb5rjtssecw5e","value":"P2"},{"color":"propColorGray","id":"a1ts3ftyr8nocsicui98c89uxjy","value":"P3"}],"type":"select"},{"id":"aqxyzkdrs4egqf7yk866ixkaojc","name":"Quarter","options":[{"color":"propColorBlue","id":"ahfbn1jsmhydym33ygxwg5jt3kh","value":"Q1"},{"color":"propColorBrown","id":"awfu37js3fomfkkczm1zppac57a","value":"Q2"},{"color":"propColorGreen","id":"anruuoyez51r3yjxuoc8zoqnwaw","value":"Q3"},{"color":"propColorPurple","id":"acb6dqqs6yson7bbzx6jk9bghjh","value":"Q4"}],"type":"select"},{"id":"adu6mebzpibq6mgcswk69xxmnqe","name":"Due Date","options":[],"type":"date"},{"id":"asope3bddhm4gpsng5cfu4hf6rh","name":"Assignee","options":[],"type":"multiPerson"},{"id":"ajwxp866f9obs1kutfwaa5ru7fe","name":"Target","options":[],"type":"number"},{"id":"azqnyswk6s1boiwuthscm78qwuo","name":"Actual","options":[],"type":"number"},{"id":"ahz3fmjnaguec8hce7xq3h5cjdr","name":"Completion (%)","options":[],"type":"text"},{"id":"a17bfcgnzmkwhziwa4tr38kiw5r","name":"Note","options":[],"type":"text"}],"createAt":1667430124226,"updateAt":1667431508571,"deleteAt":0}}
+{"type":"board","data":{"id":"bcm39o11e4ib8tye8mt6iyuec9o","teamId":"qghzt68dq7bopgqamcnziq69ao","channelId":"","createdBy":"edrkkih4cinzf8ueeszh6rmfoo","modifiedBy":"edrkkih4cinzf8ueeszh6rmfoo","type":"P","minimumRole":"","title":"Company Goals \u0026 OKRs","description":"Use this template to plan your company goals and OKRs more efficiently. Add and delete goals as needed for your planning.","icon":"","showDescription":true,"isTemplate":false,"templateVersion":0,"properties":{"allowDynamicGoals":true,"disableAutoEmoji":true},"cardProperties":[{"id":"a6amddgmrzakw66cidqzgk6p4ge","name":"Objective","options":[{"color":"propColorGreen","id":"auw3afh3kfhrfgmjr8muiz137jy","value":"Grow Revenue"},{"color":"propColorOrange","id":"apqfjst8massbjjhpcsjs3y1yqa","value":"Delight Customers"},{"color":"propColorPurple","id":"ao9b5pxyt7tkgdohzh9oaustdhr","value":"Drive Product Adoption"}],"type":"select"},{"id":"a17ryhi1jfsboxkwkztwawhmsxe","name":"Status","options":[{"color":"propColorGray","id":"a6robxx81diugpjq5jkezz3j1fo","value":"Not Started"},{"color":"propColorBlue","id":"a8nukezwwmknqwjsygg7eaxs9te","value":"In Progress"},{"color":"propColorYellow","id":"apnt1f7na9rzgk1rt49keg7xbiy","value":"At Risk"},{"color":"propColorRed","id":"axbz3m1amss335wzwf9s7pqjzxr","value":"Missed"},{"color":"propColorGreen","id":"abzfwnn6rmtfzyq5hg8uqmpsncy","value":"Complete ??"}],"type":"select"},{"id":"azzbawji5bksj69sekcs4srm1ky","name":"Department","options":[{"color":"propColorBrown","id":"aw5i7hmpadn6mbwbz955ubarhme","value":"Engineering"},{"color":"propColorBlue","id":"afkxpcjqjypu7hhar7banxau91h","value":"Product"},{"color":"propColorOrange","id":"aehoa17cz18rqnrf75g7dwhphpr","value":"Marketing"},{"color":"propColorGreen","id":"agrfeaoj7d8p5ianw5iaf3191ae","value":"Sales"},{"color":"propColorYellow","id":"agm9p6gcq15ueuzqq3wd4be39wy","value":"Support"},{"color":"propColorPink","id":"aucop7kw6xwodcix6zzojhxih6r","value":"Design"},{"color":"propColorPurple","id":"afust91f3g8ht368mkn5x9tgf1o","value":"Finance"},{"color":"propColorGray","id":"acocxxwjurud1jixhp7nowdig7y","value":"Human Resources"}],"type":"select"},{"id":"adp5ft3kgz7r5iqq3tnwg551der","name":"Priority","options":[{"color":"propColorRed","id":"a8zg3rjtf4swh7smsjxpsn743rh","value":"P1 ??"},{"color":"propColorYellow","id":"as555ipyzopjjpfb5rjtssecw5e","value":"P2"},{"color":"propColorGray","id":"a1ts3ftyr8nocsicui98c89uxjy","value":"P3"}],"type":"select"},{"id":"aqxyzkdrs4egqf7yk866ixkaojc","name":"Quarter","options":[{"color":"propColorBlue","id":"ahfbn1jsmhydym33ygxwg5jt3kh","value":"Q1"},{"color":"propColorBrown","id":"awfu37js3fomfkkczm1zppac57a","value":"Q2"},{"color":"propColorGreen","id":"anruuoyez51r3yjxuoc8zoqnwaw","value":"Q3"},{"color":"propColorPurple","id":"acb6dqqs6yson7bbzx6jk9bghjh","value":"Q4"}],"type":"select"},{"id":"adu6mebzpibq6mgcswk69xxmnqe","name":"Due Date","options":[],"type":"date"},{"id":"asope3bddhm4gpsng5cfu4hf6rh","name":"Assignee","options":[],"type":"multiPerson"},{"id":"ajwxp866f9obs1kutfwaa5ru7fe","name":"Target","options":[],"type":"number"},{"id":"azqnyswk6s1boiwuthscm78qwuo","name":"Actual","options":[],"type":"number"},{"id":"ahz3fmjnaguec8hce7xq3h5cjdr","name":"Completion (%)","options":[],"type":"text"},{"id":"a17bfcgnzmkwhziwa4tr38kiw5r","name":"Note","options":[],"type":"text"}],"createAt":1667430124226,"updateAt":1667431508571,"deleteAt":0}}
 {"type":"block","data":{"id":"vangk4cpd5fgpbr7635tx6oxg7c","parentId":"","createdBy":"edrkkih4cinzf8ueeszh6rmfoo","modifiedBy":"edrkkih4cinzf8ueeszh6rmfoo","schema":1,"type":"view","title":"By Quarter","fields":{"cardOrder":[],"collapsedOptionIds":[],"columnCalculations":{},"columnWidths":{"__title":452,"a17ryhi1jfsboxkwkztwawhmsxe":148,"a6amddgmrzakw66cidqzgk6p4ge":230,"azzbawji5bksj69sekcs4srm1ky":142},"defaultTemplateId":"","filter":{"filters":[],"operation":"and"},"groupById":"aqxyzkdrs4egqf7yk866ixkaojc","hiddenOptionIds":[""],"kanbanCalculations":{},"sortOptions":[],"viewType":"table","visibleOptionIds":[],"visiblePropertyIds":["a6amddgmrzakw66cidqzgk6p4ge","a17ryhi1jfsboxkwkztwawhmsxe","azzbawji5bksj69sekcs4srm1ky","adp5ft3kgz7r5iqq3tnwg551der","aqxyzkdrs4egqf7yk866ixkaojc","adu6mebzpibq6mgcswk69xxmnqe","asope3bddhm4gpsng5cfu4hf6rh","ajwxp866f9obs1kutfwaa5ru7fe","azqnyswk6s1boiwuthscm78qwuo","ahz3f

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions