Age | Commit message (Collapse) | Author |
|
Hide it in table settings so it is harder to hit by accident.
Undo still works - but still - it is quite a destructive action.
Signed-off-by: Max <max@nextcloud.com>
|
|
little bit of padding on the top of the text so it is in the middle of the cell
on single line cells.
Use icons that are better destinguishable for delete commands.
Signed-off-by: Max <max@nextcloud.com>
|
|
Signed-off-by: Max <max@nextcloud.com>
|
|
There is enough space already due to the size of the actions button.
Signed-off-by: Max <max@nextcloud.com>
|
|
Signed-off-by: Max <max@nextcloud.com>
|
|
Signed-off-by: Max <max@nextcloud.com>
|
|
Signed-off-by: Max <max@nextcloud.com>
|
|
Only create a new row when we have reached the end of the table.
Signed-off-by: Max <max@nextcloud.com>
|
|
Signed-off-by: Max <max@nextcloud.com>
|
|
Prosemirror expects colspan, rowspan and the like to calculate the table layout.
Signed-off-by: Max <max@nextcloud.com>
|
|
Signed-off-by: Max <max@nextcloud.com>
|
|
Prosemirrors `goToNextCell` command checks for a node with tableRole `row`.
Without this the command fails.
Signed-off-by: Max <max@nextcloud.com>
|
|
Signed-off-by: Max <max@nextcloud.com>
|
|
Also make sure that table rows are rendered on one line each.
Signed-off-by: Max <max@nextcloud.com>
|
|
Signed-off-by: Max <max@nextcloud.com>
|
|
Signed-off-by: Max <max@nextcloud.com>
|
|
Each node is responsible for rendering its markdown content.
This splits the responsibility and simplifies the `toMarkdown` functions a lot.
At the same time it makes it harder to beautify the entire table
because every cell only knows about itself - not about the rest of the column.
To work around this we can introduce padding attributes for TableCell and TableHeader.
These need to be updated when the content of the table changes.
They will also allow us to preserve the original padding from a markdown file.
Signed-off-by: Max <max@nextcloud.com>
|
|
First take at parsing and serializing markdown tables.
Use TableHead and TableBody nodes to mimic the markdown table structure
with a single heading line on top and multiple td lines following.
Signed-off-by: Max <max@nextcloud.com>
|
|
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
|
|
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
|
|
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
|
|
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
|
|
remove image upload by link
move 'image insertion from files' from MenuBar to EditorWrapper
allow uploading multiple files
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
|
|
Signed-off-by: Max <max@nextcloud.com>
|
|
Signed-off-by: Vinicius Reis <vinicius.reis@nextcloud.com>
|
|
Signed-off-by: Vinicius Reis <vinicius.reis@nextcloud.com>
|
|
Signed-off-by: Vinicius Reis <vinicius.reis@nextcloud.com>
|
|
Signed-off-by: Vinicius Reis <vinicius.reis@nextcloud.com>
|
|
- Only paragraph inside container
- Change and remove container
Signed-off-by: Vinicius Reis <vinicius.reis@nextcloud.com>
|
|
All content was transformed into plain text, missing all node data.
Signed-off-by: Vinicius Reis <vinicius.reis@nextcloud.com>
|
|
also add some css improviments
Signed-off-by: Vinicius Reis <vinicius.reis@nextcloud.com>
|
|
use type in toMarkdown
Signed-off-by: Vinicius Reis <vinicius.reis@nextcloud.com>
|
|
Signed-off-by: Vinicius Reis <vinicius.reis@nextcloud.com>
|
|
define info, warn, error and success containers
Signed-off-by: Vinicius Reis <vinicius.reis@nextcloud.com>
|
|
create a tiptap extention to create a custom-container element, missing markdown-it-container
Signed-off-by: Vinicius Reis <vinicius.reis@nextcloud.com>
|
|
using help-circle from material icons
we expect to use i icon for the custom-containers feature
Signed-off-by: Vinicius Reis <vinicius.reis@nextcloud.com>
|
|
Signed-off-by: Max <max@nextcloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
|
|
Simplify the session creation code a bit:
* handle the two ways of initializing a sesson only in SyncService.
* use async instead of .then(...)
* handle errors in helper function.
Signed-off-by: Max <max@nextcloud.com>
|
|
Also rename `initialLoading` in `EditorWrapper` to `contentLoaded`.
This flag is set during the `initialLoading` state change.
It does indicates that the loading happened
Use the past tense to indicate that.
The editor wrapper is now loading in different steps.
The menus will load after the content.
So `content` seems more fitting then `initial`.
Signed-off-by: Max <max@nextcloud.com>
|
|
Rendering the menubar and menububble takes a significant amount of time.
First display the content and then render the menus.
Signed-off-by: Max <max@nextcloud.com>
|
|
Do not show the spinning wheel unless the file actually changed.
* Resolves #2215.
* Targets: master.
Opening Readme.md in the sidebar triggers a PROPFIND.
We parse its response just like the initial file list load.
Readme.md is part of the response and our handler attempts to open it.
Only set the vm.ready if the file actually changed.
Only a changed file will make the editor load again.
Only then will it set ready to true and stop the spinning wheel.
Signed-off-by: Max <max@nextcloud.com>
|
|
Using `mdiOrderBoolAscendingVariant` as suggested in #2018.
Fixes #2018 together with the previous commit.
Signed-off-by: Max <max@nextcloud.com>
|
|
See #2018.
Use tiptap TaskList and TaskItem.
Markdown-it happily mixes tasks and bullet points in the same list.
Tiptap lists are strictly separated.
Split bullet and tasks into BulletList and TaskList in markdown-io.
Just like this will turn into three different lists:
* one
- two
+ three
This will now also turn into three different lists
with the middle one being a task list:
* first list
* [ ] todo
* [x] done
* third list
Signed-off-by: Max <max@nextcloud.com>
|
|
Cypress tests were failing because they triggered editor.focus on a read only doc.
Focus seems to cause sendable steps - maybe because the current cursor changes.
Prevent this on various levels:
* Do not autofocus read only docs.
* Do not send steps to read only docs.
* Handle server response with 403 without content gracefully when sending steps.
The last originated here:
https://github.com/nextcloud/text/blob/master/lib/Service/ApiService.php#L158
So wither the session was not valid or the document read only.
Not entirely sure what best to do in this situation.
Logging to console.error for now.
Signed-off-by: Max <max@nextcloud.com>
|
|
In public shares data did not include a name if i remember correctly.
When the Readme gets created it will trigger a PROPFIND
but that will only look for the Readme itself - not the entire directory.
Also detect that Readme so the view gets updated
and shows the rich workspace when a Readme.md is created.
This covers the main usecase that people click on the empty workspace.
It does not cover creating a localized readme file
or one named README.md or so.
We also did not cover that before - so this seems okay.
Signed-off-by: Max <max@nextcloud.com>
|
|
Signed-off-by: Max <max@nextcloud.com>
|
|
Signed-off-by: Max <max@nextcloud.com>
|
|
See #2171.
Even though this is meant to improve load times
I did not observe any improvements locally.
I suspect that is because the workspace was loaded in parallel with the PROPFIND anyway.
Experience may differ in production environments obviously.
It is still one request less and the code also seems more clean.
Signed-off-by: Max <max@nextcloud.com>
|
|
https://github.com/DerpgonCz/text into DerpgonCz-fix/master/image_data_urls
|
|
* Autofix `vue/first-attribute-linebreak`.
* Explicitely import `Store` from `vuex`.
* Allow importing default with the same name as named for tiptap extensions.
This is the way used in tiptap documentation:
`import Document from '@tiptap/extension-document'`
Disable `import/no-named-as-default` - but only for the lines in question.
Signed-off-by: Max <max@nextcloud.com>
|