No description
  • JavaScript 94.3%
  • Vue 4.5%
  • TypeScript 0.6%
  • PHP 0.6%
Find a file
Nextcloud bot 9ede0980d0
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-06-13 01:40:40 +00:00
.github Add workflow to block merges during freeze periods 2026-06-03 09:41:29 +02:00
.tx feat(l10n): Add translation requirements 2026-05-26 13:50:52 +02:00
appinfo chore: Bump Nextcloud version requirement to 35 2026-05-26 17:13:13 +02:00
css fix(l10n): adapt source strings for translators 2026-06-02 06:59:19 +02:00
img 🐛 fix: use document icon instead of cloud for app icon 2026-05-24 01:59:52 +02:00
js fix(l10n): adapt source strings for translators 2026-06-02 06:59:19 +02:00
l10n fix(l10n): Update translations from Transifex 2026-06-13 01:40:40 +00:00
lib 🔧 fix(psalm): add final + Override to satisfy errorLevel=1 on PHP 8.2 2026-05-26 15:28:26 +02:00
src fix(l10n): adapt source strings for translators 2026-06-02 06:59:19 +02:00
templates chore: Initial commit of the app skeleton 2026-05-22 14:23:48 +02:00
tests chore: Initial commit of the app skeleton 2026-05-22 14:23:48 +02:00
vendor-bin chore(deps-dev): Bump rector/rector in /vendor-bin/rector 2026-05-30 01:18:00 +00:00
.eslintrc.cjs fix: 🚨 resolve all lint errors and add stylelint config 2026-05-22 19:01:12 +02:00
.gitignore chore: Remove js/css from gitignore as for shipping the app we need to have compiled assets in the repo 2026-05-26 17:12:48 +02:00
.l10nignore feat(l10n): Add translation requirements 2026-05-26 13:50:52 +02:00
.nextcloudignore chore: Add nextcloudignore file to remove dev files from production build 2026-05-27 16:07:07 +02:00
.nvmrc chore: Initial commit of the app skeleton 2026-05-22 14:23:48 +02:00
.php-cs-fixer.dist.php chore: Initial commit of the app skeleton 2026-05-22 14:23:48 +02:00
.stylelintrc.cjs fix: 🚨 resolve all lint errors and add stylelint config 2026-05-22 19:01:12 +02:00
CHANGELOG.md chore: Initial commit of the app skeleton 2026-05-22 14:23:48 +02:00
CODE_OF_CONDUCT.md chore: Initial commit of the app skeleton 2026-05-22 14:23:48 +02:00
composer.json chore(dev-deps): Bump nextcloud/ocp package 2026-05-31 03:28:07 +00:00
composer.lock chore(dev-deps): Bump nextcloud/ocp package 2026-05-31 03:28:07 +00:00
LICENSE chore: Initial commit of the app skeleton 2026-05-22 14:23:48 +02:00
openapi.json chore: Initial commit of the app skeleton 2026-05-22 14:23:48 +02:00
package-lock.json Merge pull request #3 from nextcloud/dependabot/npm_and_yarn/vue/tsconfig-0.9.1 2026-06-03 10:00:54 +02:00
package.json chore(deps-dev): Bump @vue/tsconfig from 0.8.1 to 0.9.1 2026-05-27 14:10:03 +00:00
psalm.xml 🔧 fix(ci): bump psalm.xml phpVersion to 8.2 to match NC33 minimum 2026-05-26 15:25:50 +02:00
README.md 📝 docs: remove WIP WOPI references; rewrite editor integration section 2026-05-26 15:34:48 +02:00
rector.php chore: Initial commit of the app skeleton 2026-05-22 14:23:48 +02:00
stylelint.config.cjs chore: Initial commit of the app skeleton 2026-05-22 14:23:48 +02:00
tsconfig.json chore: Initial commit of the app skeleton 2026-05-22 14:23:48 +02:00
vite.config.ts chore: Initial commit of the app skeleton 2026-05-22 14:23:48 +02:00

Office

A Nextcloud app that provides a dedicated hub for office documents. Users can browse, filter, search, and create Documents, Spreadsheets, Presentations, and Diagrams from a single page — without going through the Files app.


Features

  • Overview page at /apps/office — categorised file list with sidebar navigation
  • Filters — All / Mine / Shared with me
  • Search — within the active category, with an "Open in Files" escape hatch
  • View toggle — Grid (thumbnail previews) or List, persisted per user
  • Template creator — create new files from editor-provided templates
  • Editor integration — opens files directly in the configured office editor

Local development

Requirements

1. Mount the app into the container

Add to nextcloud-docker-dev/docker-compose.override.yml:

services:
  nextcloud:
    volumes:
      - /path/to/office:/var/www/html/apps-extra/office

Restart the container after saving.

2. Enable the app

docker exec -u www-data nextcloud-docker-dev-nextcloud-1 \
  php occ app:enable office

3. Build the frontend

npm ci
npm run build      # one-off build
npm run watch      # rebuild on file changes

Editor integration

The overview opens files via NC's file shortlink (/f/{fileid}), which redirects to the Files app and triggers the default file action for the installed office editor.

To inject a custom editor URL, a backend component can call provideInitialState('office', 'editor-url', $url) before the page renders. The frontend reads this via loadState('office', 'editor-url', null) and, when present, navigates directly to that URL instead of /f/{fileid}.


Architecture

/apps/office
└── PageController::index()       Renders the SPA shell
    └── OfficeOverview.vue        Full Vue 3 SPA
        ├── officeFiles.ts        WebDAV file listing via @nextcloud/files
        ├── templates.ts          Template discovery and file creation
        └── config.ts             User preference persistence (grid/list view)