Skip to content

Design pass and team pages - #2846

Open
marcoambrosini wants to merge 19 commits into
masterfrom
vertical-navigation
Open

Design pass and team pages#2846
marcoambrosini wants to merge 19 commits into
masterfrom
vertical-navigation

Conversation

@marcoambrosini

@marcoambrosini marcoambrosini commented Aug 28, 2026

Copy link
Copy Markdown
Member

Re-organize the existing features, polishing and add a new team pages feature.

Screenshot 2026-08-28 at 17 23 16 Screenshot 2026-08-28 at 17 23 34 Screenshot 2026-08-28 at 17 23 45

Marco Ambrosini added 19 commits August 28, 2026 17:29
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
@marcoambrosini
marcoambrosini requested a review from artonge August 28, 2026 15:39
@github-project-automation github-project-automation Bot moved this to Backlog in 馃懃 Teams Aug 28, 2026
@marcoambrosini marcoambrosini moved this from Backlog to In review in 馃懃 Teams Aug 28, 2026
@marcoambrosini marcoambrosini self-assigned this Aug 28, 2026
@alimmroth alimmroth added this to the Nextcloud 35 milestone Aug 28, 2026

@artonge artonge left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good overall, still some comments.
I also would like to the opinion of a frontender before merging.

Comment thread lib/Controller/TeamTabsController.php
Comment thread LICENSES/LicenseRef-NextcloudTrademarks.txt
Comment thread src/teams/components/TeamAvatar.vue
Comment thread vite.config.ts
Comment thread REUSE.toml
Comment thread src/teams/api.ts
Comment thread src/teams/api.ts
Comment thread src/teams/api.ts
Comment thread src/teams/views/PageView.vue
Comment thread src/teams/views/PageView.vue
Comment thread src/teams/resourcesStore.ts
@artonge
artonge requested a review from pringelmann August 28, 2026 20:29
: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" />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)">

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Comment thread src/teams/api.ts
* 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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@pringelmann

Copy link
Copy Markdown
Contributor

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:
https://docs.github.com/en/pull-requests/how-tos/stacked-pull-requests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

4 participants