Content
View differences
Updated by Wieland Lindenthal about 8 hours ago
# Goal
Work with rich representations of OpenProject objects within documents. We'll want to make these extensions available as a library soon-ish (tm).
# Extensions
### Link ## Embed existing work package
See <mention class="mention" data-id="66326" data-id="67552" data-type="work_package" data-text="###66326">###66326</mention> data-text="###67552">###67552</mention>&nbsp;
##
###
## Create and embed work package
See <mention class="mention" data-id="67552" data-type="work_package" data-text="###67552">###67552</mention>
### ##
## Batch create work packages mode
###
See <mention class="mention" data-id="67553" data-type="work_package" data-text="###67553">###67553</mention>
### ##
## Convert text list into individual work packages embeds
###
See <mention class="mention" data-id="67559" data-type="work_package" data-text="###67559">###67559</mention>
<br>
# Long tail:
\- If you select text and add a link, that's just a normal link.
###
### Copy & Paste
* When copy & pasting from BlockNote into a plain text editor/field, the work package embeds should be turned into plain links
* When copy & pasting into another BlockNote Blocknote instance
* if the receiving BlockNote Blocknote instance has our extensions
* maintain the embeds
* if the receiving BlockNote Blocknote has our extensions, but does not have access to the data
* maintain the embeds but show links + 'missing access' info
* if the receiving BlockNote Blocknote does not have our extension
* display as plain links (how can we do this?)
* <br>
\- Copy/paste text, graceful degradation of embeds into links when it doesn't have access to that data. But if the "embed" can be restored if it has access to that information.
\- On copy we can put the data with multiple different MIME types into the clipboard - the receiving client chooses the MIME type that makes sense. So we can keep embeds when we're copying from one document to another, but offer good data when copying to a simple text editor.
\- Open question: How do we gracefully degrade if it's copied to another BlockNote Blocknote instance that does not have access to the original OP instance (and even be able to restore full info if the access to that OP instance is granted)?
\- Open question: How do we gracefully degrade if it's copied to a BlockNote Blocknote instance that does not have our extension? extension?\\
[Article explaining the use of different MIME types in the clipboard](https://www.stefanjudis.com/notes/a-clipboard-magic-trick-how-to-use-different-mime-types-with-the-clipboard/)
[Paste handling in BlockNote](https://www.blocknotejs.org/docs/reference/editor/paste-handling)
### Permissions
\* Users who don't have access to a certain work package will not be able see them (for cards)
\* They'll see "Ghost references" (so they know there's something there they can't see). The link to WP will still be exposed, but the anonymous /wp/#id (without leaking project name).
# How
\* / command, pick OP item from general list
\* /op command, pick from only OP-specific command set
\* Type #, ##, ### and have a search
\* Paste link
Thinks to start keeping track/follow/up/having-on-the-radar:
- Configure Gateway path
#
#
#
# User Problem
## User
_What persona, persona segment, or customer type experiences the problem most acutely?_
* Project manager
* Project member
* Product owner
* Customer
* ....
## Problem
_What problem or job does the user have?_
* ...
* <br>
## Pain
_What is the primary workaround that users perform that we could remove or replace? Why is it painful?_
* ....
* <br>
# Business Case
## Reach
_About how many users, customers or potential customers currently have this problem? (Low / Worst Case)_
> Add this value to the custom field and delete this section.
## Impact
_Among relevant customers or prospects, how much value do they get from a comprehensive solution to this problem? (Conservative case)_
> Add this value to the custom field and delete this section.
## Confidence
_What are the top risk factors that could inhibit our ability to deliver this solution? Please consider how we can mitigate these risks._
> Add this value to the custom field and delete this section.
## Urgency and Priority
_What is the relative priority of this opportunity in your backlog? What tradeoffs must you make? Is there a hard deadline or could this wait?_
> Add this value to the custom field and delete this section.
## Solution
_How do we solve the user’s problem. What is our “pain killer”? What must we achieve in the first version of the solution in order to achieve value for the user?_
* ....
* <br>
## Out of Scope for the MVC
_What should NOT be in the minimal viable change, and can be considered for future iterations? Why? Please order them by importance._
* ...
## Differentiation
_What do you believe will differentiate us from the current experience or competitive experiences?_
* ...
## Next iteration
_What is the next solution that would allow us to release meaningful customer value quickly?_
* ...
* <br>
# Launch and Growth
## Measures
_How will you know you solved the problem? Please list measurable, quantitative indicators (preferred) or qualitative ways you plan on assessing the solution?_
* ...
## Messaging
_If you were to write a press release, how would you describe the value to customers?_
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Headline</p></th><td class="op-uc-table--cell"><p class="op-uc-p"><br data-cke-filler="true"></p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">First Paragraph</p></th><td class="op-uc-table--cell"><p class="op-uc-p"><br data-cke-filler="true"></p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Customer Quote</p></th><td class="op-uc-table--cell"><p class="op-uc-p"><br data-cke-filler="true"></p></td></tr></tbody></table></figure>
## Go to market
_How are you planning on getting this into users' hands?_
Work with rich representations of OpenProject objects within documents. We'll want to make these extensions available as a library soon-ish (tm).
# Extensions
### Link
See <mention class="mention" data-id="66326"
##
See <mention class="mention" data-id="67552" data-type="work_package" data-text="###67552">###67552</mention>
###
##
###
##
\- If you select text and add a link, that's just a normal link.
###
###
* When copy & pasting from BlockNote into a plain text editor/field, the work package embeds should be turned into plain links
* When copy & pasting into another BlockNote
* if the receiving BlockNote
* maintain the embeds
* if the receiving BlockNote
* maintain the embeds but show links + 'missing access' info
* if the receiving BlockNote
* display as plain links (how can we do this?)
* <br>
\- On copy we can put the data with multiple different MIME types into the clipboard - the receiving client chooses the MIME type that makes sense. So we can keep embeds when we're copying from one document to another, but offer good data when copying to a simple text editor.
\- Open question: How do we gracefully degrade if it's copied to another BlockNote
\- Open question: How do we gracefully degrade if it's copied to a BlockNote
[Article explaining the use of different MIME types in the clipboard](https://www.stefanjudis.com/notes/a-clipboard-magic-trick-how-to-use-different-mime-types-with-the-clipboard/)
[Paste handling in BlockNote](https://www.blocknotejs.org/docs/reference/editor/paste-handling)
### Permissions
\* Users who don't have access to a certain work package will not be able see them (for cards)
\* They'll see "Ghost references" (so they know there's something there they can't see). The link to WP will still be exposed, but the anonymous /wp/#id (without leaking project name).
# How
\* / command, pick OP item from general list
\* /op command, pick from only OP-specific command set
\* Type #, ##, ### and have a search
\* Paste link
Thinks to start keeping track/follow/up/having-on-the-radar:
- Configure Gateway path
#
#
#
# User Problem
## User
_What persona, persona segment, or customer type experiences the problem most acutely?_
* Project manager
* Project member
* Product owner
* Customer
* ....
## Problem
_What problem or job does the user have?_
* ...
* <br>
## Pain
_What is the primary workaround that users perform that we could remove or replace? Why is it painful?_
* ....
* <br>
# Business Case
## Reach
_About how many users, customers or potential customers currently have this problem? (Low / Worst Case)_
> Add this value to the custom field and delete this section.
## Impact
_Among relevant customers or prospects, how much value do they get from a comprehensive solution to this problem? (Conservative case)_
> Add this value to the custom field and delete this section.
## Confidence
_What are the top risk factors that could inhibit our ability to deliver this solution? Please consider how we can mitigate these risks._
> Add this value to the custom field and delete this section.
## Urgency and Priority
_What is the relative priority of this opportunity in your backlog? What tradeoffs must you make? Is there a hard deadline or could this wait?_
> Add this value to the custom field and delete this section.
## Solution
_How do we solve the user’s problem. What is our “pain killer”? What must we achieve in the first version of the solution in order to achieve value for the user?_
* ....
* <br>
## Out of Scope for the MVC
_What should NOT be in the minimal viable change, and can be considered for future iterations? Why? Please order them by importance._
* ...
## Differentiation
_What do you believe will differentiate us from the current experience or competitive experiences?_
* ...
## Next iteration
_What is the next solution that would allow us to release meaningful customer value quickly?_
* ...
* <br>
# Launch and Growth
## Measures
_How will you know you solved the problem? Please list measurable, quantitative indicators (preferred) or qualitative ways you plan on assessing the solution?_
* ...
## Messaging
_If you were to write a press release, how would you describe the value to customers?_
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Headline</p></th><td class="op-uc-table--cell"><p class="op-uc-p"><br data-cke-filler="true"></p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">First Paragraph</p></th><td class="op-uc-table--cell"><p class="op-uc-p"><br data-cke-filler="true"></p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Customer Quote</p></th><td class="op-uc-table--cell"><p class="op-uc-p"><br data-cke-filler="true"></p></td></tr></tbody></table></figure>
## Go to market
_How are you planning on getting this into users' hands?_