Design pass and team pages - #2846
Conversation
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Marco Ambrosini <marco.ambrosini@nextcloud.com> Assisted-by: ClaudeCode:claude-fable-5
d1a2ffa to
88ae97e
Compare
artonge
left a comment
There was a problem hiding this comment.
Good overall, still some comments.
I also would like to the opinion of a frontender before merging.
20e1b7c to
88ae97e
Compare
| :name="resource.label"> | ||
| <template #icon> | ||
| <!-- eslint-disable-next-line vue/no-v-html --> | ||
| <div v-if="resource.iconSvg" class="resource__icon" v-html="resource.iconSvg" /> |
There was a problem hiding this comment.
Even if an exploit path is narrow we should try to avoid XSS vectors like this if the input cannot be fully trusted.
NcIconSvgWrapper is already imported here and sanitises properly:
<NcIconSvgWrapper v-if="resource.iconSvg" :svg="resource.iconSvg" class="resource__icon" />
Kills the eslint-disable too
| </template> | ||
|
|
||
| <template v-if="entry.page && isTeamAdmin" #actions> | ||
| <NcActionButton closeAfterClick @click="onDeletePage(entry.page)"> |
There was a problem hiding this comment.
Deletes on click, right under Rename in the same menu, on a doc the whole team shares. Trash makes it recoverable, but useTeamActions already does showConfirmation for Leave and Delete team. Maybe we do the same here?
| * surfaced as a tab on the team (like the pinned tabs of a Microsoft | ||
| * Teams channel). | ||
| * | ||
| * TODO: store the pages in the team folder's .system folder instead of |
There was a problem hiding this comment.
Can we decide before this ships? Once people start making pages the files are in the folder root, and moving them to .system later becomes a migration.
|
Really nice work, this is a big step up from what we had! One process thing, not a blocker: this is quite a lot to review all at once. ~3.5k new lines over 40+ files with major changes covering four different code sites. Not asking you to split it now, that rebase would be miserable. But maybe next time start with something more self-contained like the tab ordering (new controller, new route, one store field). This is easier for everyone as a standalone PR to review. Github also just made it simpler to stack your PRs so you aren't blocked by reviews: |
Re-organize the existing features, polishing and add a new team pages feature.