feat(pastebin): add pastebin web app#268
Open
dschmidt wants to merge 10 commits intoopencloud-eu:mainfrom
Open
feat(pastebin): add pastebin web app#268dschmidt wants to merge 10 commits intoopencloud-eu:mainfrom
dschmidt wants to merge 10 commits intoopencloud-eu:mainfrom
Conversation
3f786c5 to
4b8eb9a
Compare
A code sharing app for OpenCloud. Users can create pastebins with multiple files, share them via public links, and view them with syntax highlighting. Features: - Create pastebins with multiple named files and optional title - Syntax highlighting for 13+ languages via highlight.js - Public link sharing with password support (ODS password input with policy validation and generator when server enforces it) - Edit existing pastebins: add, rename, delete files, modify content - List view with delete, sorted by date - Per-file anchor links with scrollTo for deep linking - Copy content and download raw file buttons - Read-only mode support (hides edit controls) - Context route integration (closing app returns to pastebin list) - All strings translatable via vue3-gettext - Locale-aware date formatting via web-pkg Luxon helpers Structure: - Create.vue, Edit.vue, View.vue, List.vue (page components) - AppHeader.vue, PastebinEditor.vue, PastebinFile.vue (shared components) - useDeletePastebin composable (shared delete modal logic) - utils.ts (loadRevisionFiles, ensurePastebinFolders, scrollToElement, etc.) - 26 e2e tests with PastebinPage page object covering create, list, edit, view, public links (with/without password), navigation, and close behavior
c0ccc99 to
e3e3b28
Compare
…here - Include folder fileId in anchor URLs so AppWrapper's replaceInvalidFileRoute preserves scrollTo query param - Show anchor links on public link views too (fall back to current URL) - Add e2e test that opens a public link with scrollTo and verifies the target file is visible (skipped until opencloud-eu/web#2199)
kulmann
reviewed
Mar 23, 2026
3 tasks
JammingBen
reviewed
Mar 23, 2026
Member
JammingBen
left a comment
There was a problem hiding this comment.
I'm gonna be honest, this is way cooler than I thought it would be 😄 Awesome stuff, really!
I left a bunch of comments, mostly minor stuff though, some things might even be suitable for a follow up.
- Add aria-labels to all spinners for accessibility - Use SharingLinkType.View enum instead of string literal - Remove password from notification (already in clipboard) - Use stable clientId keys instead of array index for v-for - Replace router-link wrapping oc-button with type="router-link" - Use appearance="outline" for secondary actions (Cancel, Edit, Delete) - Integrate LoadingService for save operations - Change AppHeader h1 to nav element for a11y - Fix public link title to "Copy public link" - Add comments explaining intentional <a> usage for browser link features - Update e2e tests for changed selectors
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A code sharing app for OpenCloud. Users can create pastebins with multiple files, share them via public links, and view them with syntax highlighting.
pastebin-demo.mp4
Features
scrollToquery param for deep linking into specific files$gettext()for i18nStorage format
Test plan
E2e tests with a
PastebinPagepage object (support/pages/pastebinPage.ts):Tests pass with and without server-enforced link passwords.