nextcloud / nextcloud/notes

Pasting text using cmd-V into the web version of Notes does not trigger the "changed" flag.

Open
#1,525 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop bug
Dominant language
JavaScript
Stars
738
Forks
162
Avg merge
6h 2m
Merged PRs (30d)
35

Description

I started using notes by copying text from my previous note-taking app into the web-version of nextcloud notes. I noticed that the text stayed in the browser, but the .md files on the server stayed empty. It took me a while to find out that the "changed" flag was not triggered by a paste, and therefore the new version is not pushed to the server. It stayed in the browser memory, so I could save all my lost notes by going back to them on the same client.

Steps to reproduce

  1. Open Notes app in the web interface
  2. Press "New note" button
  3. Paste some text into the text window without actually typing any text into the field.
  4. Note that the "green light" next to the checkmark never lights up
  5. Type "^Z" and notice that the paste is not undone.
  6. Note that the file stays empty on the server.
  7. Type something into the note and remove it again. The green light shows and after a little while the file on the server is updated with the content.
Expected behaviour

The "content has changed" mark should be triggered when text is pasted into the note.

Actual behaviour

The "content has changed" mark does not trigger when text is pasted into the note

Screenshots

Don't see what screenshots I could make to illustrate this issue.

Server

  • Notes app version: 4.11.0
  • Nextcloud version: 30.0.8
  • OS: Linux raspberrypi 6.12.20+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.20-1+rpt1~bpo12+1 (2025-03-19) aarch64 GNU/Linux
  • Web server: AIO?
  • PHP version: AIO?
  • Database: AIO?

Nextcloud configuration: All-in-one installation.

``` { "system": { "one-click-instance": true, "one-click-instance.user-limit": 100, "memcache.local": "\\OC\\Memcache\\APCu", "apps_paths": [ { "path": "\/var\/www\/html\/apps", "url": "\/apps", "writable": false }, { "path": "\/var\/www\/html\/custom_apps", "url": "\/custom_apps", "writable": true } ], "check_data_directory_permissions": false, "memcache.distributed": "\\OC\\Memcache\\Redis", "memcache.locking": "\\OC\\Memcache\\Redis", "redis": { "host": "***REMOVED SENSITIVE VALUE***", "password": "***REMOVED SENSITIVE VALUE***", "port": 6379 }, "overwritehost": "", "overwriteprotocol": "https", "passwordsalt": "***REMOVED SENSITIVE VALUE***", "secret": "***REMOVED SENSITIVE VALUE***", "trusted_domains": [ "localhost", "" ], "datadirectory": "***REMOVED SENSITIVE VALUE***", "dbtype": "pgsql", "version": "30.0.8.1", "overwrite.cli.url": "https:\/\/nextcloud.hooft.net\/", "dbname": "***REMOVED SENSITIVE VALUE***", "dbhost": "***REMOVED SENSITIVE VALUE***", "dbport": "", "dbtableprefix": "oc_", "dbuser": "***REMOVED SENSITIVE VALUE***", "dbpassword": "***REMOVED SENSITIVE VALUE***", "installed": true, "instanceid": "***REMOVED SENSITIVE VALUE***", "maintenance": false, "loglevel": 2, "log_type": "file", "logfile": "\/var\/www\/html\/data\/nextcloud.log", "log_rotate_size": 10485760, "log.condition": { "apps": [ "admin_audit" ] }, "preview_max_x": 2048, "preview_max_y": 2048, "jpeg_quality": 60, "enabledPreviewProviders": { "1": "OC\\Preview\\Image", "2": "OC\\Preview\\MarkDown", "3": "OC\\Preview\\MP3", "4": "OC\\Preview\\TXT", "5": "OC\\Preview\\OpenDocument", "6": "OC\\Preview\\Movie", "7": "OC\\Preview\\Krita", "0": "OC\\Preview\\Imaginary", "23": "OC\\Preview\\ImaginaryPDF" }, "enable_previews": true, "upgrade.disable-web": true, "mail_smtpmode": "smtp", "trashbin_retention_obligation": "auto, 30", "versions_retention_obligation": "auto, 30", "activity_expire_days": 30, "simpleSignUpLink.shown": false, "share_folder": "\/Shared", "one-click-instance.link": "https:\/\/nextcloud.com\/all-in-one\/", "upgrade.cli-upgrade-link": "https:\/\/github.com\/nextcloud\/all-in-one\/discussions\/2726", "updatedirectory": "\/nc-updater", "maintenance_window_start": 100, "allow_local_remote_servers": true, "davstorage.request_timeout": 3600, "documentation_url.server_logs": "https:\/\/github.com\/nextcloud\/all-in-one\/discussions\/5425", "htaccess.RewriteBase": "\/", "dbpersistent": false, "auth.bruteforce.protection.enabled": true, "ratelimit.protection.enabled": true, "files_external_allow_create_new_local": false, "trusted_proxies": "***REMOVED SENSITIVE VALUE***", "preview_imaginary_url": "***REMOVED SENSITIVE VALUE***", "preview_imaginary_key": "***REMOVED SENSITIVE VALUE***", "mail_smtpauth": 1, "mail_sendmailmode": "smtp", "mail_smtpsecure": "ssl", "mail_from_address": "***REMOVED SENSITIVE VALUE***", "mail_domain": "***REMOVED SENSITIVE VALUE***", "mail_smtphost": "***REMOVED SENSITIVE VALUE***", "mail_smtpport": "465", "mail_smtpname": "***REMOVED SENSITIVE VALUE***", "mail_smtppassword": "***REMOVED SENSITIVE VALUE***", "default_phone_region": "NL", "DOMAIN": "" } } ho```

Client

  • Browser (incl. version): Firefox 137.0.0.1 (aarch64)
  • OS: MacOS Sequoia 15.3.2

Log files

Add relevant parts of your nextcloud.log and/or your browser's JavaScript console here.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the paste-only workflow in the web Notes editor and inspect the entry points handling paste, undo, and the content-changed indicator. Confirm the fix by verifying that pasted text marks the note changed and is persisted to the server without requiring extra typing.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.