nextcloud / nextcloud/notes

Rich Text Editing No Auto Save

Open
#1,361 10 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug feature: Rich Text
Dominant language
JavaScript
Stars
738
Forks
162
Avg merge
6h 2m
Merged PRs (30d)
35

Description

Steps to reproduce

  1. Enable notes rich text editing
  2. Type something
  3. Observe no auto save like traditional edit mode
Expected behaviour

Like in edit mode, the rich text edit mode should save a second or two after inactivity.

Actual behaviour

Rich Text editor mode has no auto save feature and requires manually saving each time

Logs
Log entry every time the edit tries to save:
{
  "reqId": "1bwjjYeH9WwzGQNiCVcl",
  "level": 3,
  "time": "2024-08-24T23:58:35+00:00",
  "remoteAddr": "192.168.0.2",
  "user": "admin1",
  "app": "text",
  "method": "PUT",
  "url": "/apps/text/session/12914/create",
  "message": "No permission to access this file",
  "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0",
  "version": "29.0.5.1",
  "exception": {
    "Exception": "OCP\\Files\\NotFoundException",
    "Message": "",
    "Code": 0,
    "Trace": [
      {
        "file": "/var/www/nextcloud/apps/text/lib/Service/ApiService.php",
        "line": 92,
        "function": "getFileById",
        "class": "OCA\\Text\\Service\\DocumentService",
        "type": "->"
      },
      {
        "file": "/var/www/nextcloud/apps/text/lib/Controller/SessionController.php",
        "line": 62,
        "function": "create",
        "class": "OCA\\Text\\Service\\ApiService",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 232,
        "function": "create",
        "class": "OCA\\Text\\Controller\\SessionController",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 138,
        "function": "executeController",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->"
      },
      {
        "file": "/var/www/nextcloud/lib/private/AppFramework/App.php",
        "line": 184,
        "function": "dispatch",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->"
      },
      {
        "file": "/var/www/nextcloud/lib/private/Route/Router.php",
        "line": 338,
        "function": "main",
        "class": "OC\\AppFramework\\App",
        "type": "::"
      },
      {
        "file": "/var/www/nextcloud/lib/base.php",
        "line": 1053,
        "function": "match",
        "class": "OC\\Route\\Router",
        "type": "->"
      },
      {
        "file": "/var/www/nextcloud/index.php",
        "line": 49,
        "function": "handleRequest",
        "class": "OC",
        "type": "::"
      }
    ],
    "File": "/var/www/nextcloud/apps/text/lib/Service/DocumentService.php",
    "Line": 514,
    "message": "No permission to access this file",
    "exception": [],
    "CustomMessage": "No permission to access this file"
  },
  "id": "66cad25acd457"
}
root@cloud:~$ ls -l /var/www/nextcloud/apps/text/lib/Service/DocumentService.php 
-rw-r--r-- 1 www-data www-data 22096 Aug 20 17:56 /var/www/nextcloud/apps/text/lib/Service/DocumentService.php
root@cloud:~$ ls -ld /var/www/nextcloud/apps/text/lib/Service/                    
drwxr-xr-x 2 www-data www-data 4096 Aug 22 16:15 /var/www/nextcloud/apps/text/lib/Service/
root@cloud:~$ ls -ld /var/www/nextcloud/apps/text/lib         
drwxr-xr-x 16 www-data www-data 4096 Aug 22 16:15 /var/www/nextcloud/apps/text/lib
root@cloud:~$ ls -ld /var/www/nextcloud/apps/text    
drwxr-xr-x 9 www-data www-data 4096 Aug 22 16:15 /var/www/nextcloud/apps/text
root@cloud:~$ ls -ld /var/www/nextcloud/apps     
drwxr-xr-x 65 www-data www-data 4096 Aug 23 18:30 /var/www/nextcloud/apps
root@cloud:~$ ls -ld /var/www/nextcloud     
drwxr-xr-x 14 www-data www-data 4096 Aug 22 16:15 /var/www/nextcloud
4 S root       80081       1  0  80   0 - 145893 do_epo Aug16 ?       00:00:35   php-fpm: master process (/etc/php/8.3/fpm/php-fpm.conf)
5 S www-data  147329   80081  0  80   0 - 170681 skb_wa Aug22 ?       00:02:33     php-fpm: pool www
5 S www-data  158782   80081  0  80   0 - 171344 skb_wa Aug23 ?       00:01:32     php-fpm: pool www
5 S www-data  171566   80081  0  80   0 - 171481 skb_wa 23:37 ?       00:00:04     php-fpm: pool www
5 S root      147295       1  0  80   0 -  5664 sigsus Aug22 ?        00:00:00   nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
5 S www-data  147296  147295  0  80   0 -  6359 do_epo Aug22 ?        00:00:22     nginx: worker process
5 S www-data  147297  147295  0  80   0 -  6266 do_epo Aug22 ?        00:00:21     nginx: worker process
5 S www-data  147298  147295  0  80   0 -  6229 do_epo Aug22 ?        00:00:21     nginx: worker process
5 S www-data  147299  147295  0  80   0 -  6164 do_epo Aug22 ?        00:00:21     nginx: worker process

Log says no permission to that php file. There is access to that file. Globally. And all directories above it.

Server

Please complete the following information.

  • Notes app version: 4.10.1
  • Nextcloud version: 29.0.5
  • OS: Debian 12 AMD64
  • Web server: nginx 1.27.1
  • PHP version: php8.3
  • Database: mariadb 10.11.6

Nextcloud configuration:

``` { "system": { "proxy": "apt.example.com:3142", "proxyexclude": [ "cloud.example.com", "sso.example.com" ], "instanceid": "***REMOVED SENSITIVE VALUE***", "passwordsalt": "***REMOVED SENSITIVE VALUE***", "secret": "***REMOVED SENSITIVE VALUE***", "overwritehost": "cloud.example.com", "trusted_proxies": "***REMOVED SENSITIVE VALUE***", "trusted_domains": [ "cloud.example.com:443" ], "connectivity_check_domains": [ "www.nextcloud.com" ], "datadirectory": "***REMOVED SENSITIVE VALUE***", "dbtype": "mysql", "version": "29.0.5.1", "overwrite.cli.url": "https:\/\/cloud.example.com\/", "dbname": "***REMOVED SENSITIVE VALUE***", "dbhost": "***REMOVED SENSITIVE VALUE***", "dbtableprefix": "oc_", "mysql.utf8mb4": true, "dbuser": "***REMOVED SENSITIVE VALUE***", "dbpassword": "***REMOVED SENSITIVE VALUE***", "installed": true, "maintenance": false, "maintenance_window_start": 1, "theme": "", "auth.webauthn.enabled": false, "loglevel": 2, "memcache.local": "\\OC\\Memcache\\APCu", "memcache.distributed": "\\OC\\Memcache\\Redis", "redis": { "host": "***REMOVED SENSITIVE VALUE***", "port": 0, "dbindex": 0, "timeout": 1.5 }, "memcache.locking": "\\OC\\Memcache\\Redis", "default_phone_region": "US", "allow_local_remote_servers": true, "mail_smtpmode": "sendmail", "mail_sendmailmode": "smtp", "mail_from_address": "***REMOVED SENSITIVE VALUE***", "mail_domain": "***REMOVED SENSITIVE VALUE***", "app_install_overwrite": [ "breezedark" ], "app.mail.verify-tls-peer": false, "memories.exiftool_no_local": true, "memories.vod.path": "\/var\/www\/nextcloud\/apps\/memories\/bin-ext\/go-vod-amd64" } } ```

Client

Please complete the following information.

  • Browser (incl. version): Firefox 129
  • OS: Debian 12 AMD64

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 tracing the rich-text save flow from PUT /apps/text/session/.../create through apps/text/lib/Service/ApiService.php, SessionController.php, and DocumentService.php, comparing it with traditional edit mode. Reproduce the two-second inactivity case and the reported permission error; done means rich-text edits save automatically without requiring manual saves.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, php
Domain
api, backend, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.