ether / etherpad-lite

Etherpad: A modern really-real-time collaborative document editor.
http://docs.etherpad.org/
Apache License 2.0
16.49k stars 2.84k forks source link

Database Seams Okay - Web Pad Is Empty #5762

Closed wilkis3 closed 2 months ago

wilkis3 commented 1 year ago

Describe the bug On the web the pad is empty and the time slider shows also empty pads. All the pad and revisions are still in the postgres database. But I can export the pad.

To Reproduce Steps to reproduce the behavior:

  1. Open the link of the pad
  2. Use the current version or use the time slider

Expected behavior

Screenshots Screenshot from 2023-06-24 07-16-09

Screenshot from 2023-06-24 07-16-22

Server (please complete the following information):

Additional context

JohnMcLear commented 1 year ago

On very large pads I remember a bug w/ timeslider where it wouldn't load because it was too much effort to load all prior history/revisions etc. My thought is that it's related to that..

Do you get any errors on server console or in browser console? F12

https://github.com/ether/etherpad-lite/issues/5271 and https://github.com/ether/etherpad-lite/issues/5214

wilkis3 commented 1 year ago

If I open the pad with being in the time slider I get the following error:

Uncaught ReferenceError: require is not defined
    <anonymous> https://pad.domain.example/javascripts/lib/ep_etherpad-lite/static/js/ace2_inner.js?callback=require.define&v=9f2c609e:1
[ace2_inner.js:1:1](https://pad.domain.example/javascripts/lib/ep_etherpad-lite/static/js/ace2_inner.js?callback=require.define&v=9f2c609e)
    <anonym> https://pad.domain.example/javascripts/lib/ep_etherpad-lite/static/js/ace2_inner.js?callback=require.define&v=9f2c609e:1

If I open the time slider, I get the following error/warning:

Unexpected error: could not translate element content for key timeslider.toolbar.returnbutton 
<a class="grouped-right" data-l10n-id="timeslider.toolbar.returnbutton">
wilkis3 commented 1 year ago

We have an other pad with ~50.000 revisions and it can be open easily. That happens very often that a pad have so many revisions.

wilkis3 commented 1 year ago

I updated the Etherpad server from 1.8.18 to 1.9.0 one day before we get the report that this pad is broken.

wilkis3 commented 1 year ago

DEBUG logs from server console:

  1. It do all the things with createAuthorIfNotExistsFor, mapper2author, mapper2group, createGroupIfNotExistsFor, createSession, session, group2sessions, author2sessions.
  2. GET request
  3. Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.115] [DEBUG] http - 200, GET /p/g.GROUPID%24PAD_NAME
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.222] [INFO] Minify - Compress JS file js/basic_error_handler.js.
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.228] [INFO] Minify - Compress CSS file css/pad.css.
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.230] [DEBUG] http - 200, GET /static/js/basic_error_handler.js?v=6a749d6b
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.231] [INFO] Minify - Compress CSS file skins/colibris/pad.css.
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.234] [DEBUG] http - 304, GET /static/plugins/ep_comments_page/static/css/main.css
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.239] [DEBUG] http - 304, GET /static/plugins/ep_comments_page/static/css/comment.css
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.252] [DEBUG] http - 200, GET /javascripts/lib/ep_etherpad-lite/static/js/pad.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.252] [DEBUG] http - 200, GET /javascripts/lib/ep_etherpad-lite/static/js/ace2_common.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.262] [DEBUG] http - 304, GET /static/plugins/ep_comments_page/static/js/jquery.tmpl.min.js
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.263] [DEBUG] http - 200, GET /static/img/brand.svg
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.294] [DEBUG] http - 200, GET /static/skins/colibris/pad.css?v=6a749d6b
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.294] [INFO] Minify - Compress JS file js/require-kernel.js.
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.297] [DEBUG] http - 200, GET /static/css/pad.css?v=6a749d6b
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.298] [INFO] Minify - Compress JS file skins/colibris/pad.js.
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.300] [DEBUG] http - 200, GET /static/skins/colibris/pad.js?v=6a749d6b
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.358] [DEBUG] http - 200, GET /static/js/require-kernel.js?v=6a749d6b
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.639] [DEBUG] http - 304, GET /static/font/Roboto-Regular.ttf
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.639] [DEBUG] http - 304, GET /static/font/Quicksand-Medium.ttf
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.642] [DEBUG] http - 304, GET /static/font/Quicksand-Bold.ttf
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.856] [DEBUG] http - 304, GET /static/font/fontawesome-etherpad.woff?2
    Jun 25 21:34:08 host run.sh[2912775]: [2023-06-25 21:34:08.892] [DEBUG] http - 200, GET /pluginfw/plugin-definitions.json?v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.070] [DEBUG] http - 200, GET /javascripts/lib/ep_prompt_for_name/static/js/index.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.109] [DEBUG] http - 200, GET /javascripts/lib/ep_headings2/static/js/index.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.152] [DEBUG] http - 200, GET /javascripts/lib/ep_headings2/static/js/shared.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.198] [DEBUG] http - 200, GET /javascripts/lib/ep_font_color/static/js/index.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.250] [DEBUG] http - 200, GET /javascripts/lib/ep_font_color/static/js/shared.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.301] [DEBUG] http - 200, GET /javascripts/lib/ep_comments_page/static/js/index.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.353] [DEBUG] http - 200, GET /javascripts/lib/ep_etherpad-lite/static/js/browser.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.405] [DEBUG] http - 200, GET /javascripts/lib/ep_comments_page/static/js/commentBoxes.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.456] [DEBUG] http - 200, GET /javascripts/lib/ep_comments_page/static/js/commentIcons.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.504] [DEBUG] http - 200, GET /javascripts/lib/ep_comments_page/static/js/commentL10n.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.554] [DEBUG] http - 200, GET /javascripts/lib/ep_comments_page/static/js/copyPasteEvents.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.599] [DEBUG] http - 200, GET /javascripts/lib/ep_comments_page/static/js/shared.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.643] [DEBUG] http - 200, GET /javascripts/lib/ep_comments_page/static/js/moment-with-locales.min.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.884] [DEBUG] http - 200, GET /javascripts/lib/ep_comments_page/static/js/newComment.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:09 host run.sh[2912775]: [2023-06-25 21:34:09.927] [DEBUG] http - 200, GET /javascripts/lib/ep_comments_page/static/js/preCommentMark.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.014] [DEBUG] http - 200, GET /javascripts/lib/ep_author_hover/static/js/index.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.057] [DEBUG] http - 200, GET /javascripts/lib/ep_align/static/js/index.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.103] [DEBUG] http - 200, GET /javascripts/lib/ep_align/static/js/shared.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.229] [DEBUG] socket.io - Xwl8nyN46ToSAAqzAAAG connected from IP ANONYMOUS
    Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.342] [DEBUG] socket.io - from Xwl8nyN46ToSAAqzAAAG: {
    Jun 25 21:34:10 host run.sh[2912775]:   component: 'pad',
    Jun 25 21:34:10 host run.sh[2912775]:   type: 'CLIENT_READY',
    Jun 25 21:34:10 host run.sh[2912775]:   padId: 'g.GROUPID%24PAD_NAME',
    Jun 25 21:34:10 host run.sh[2912775]:   sessionID: 's.5092c3ba80542e09e99c324553821224',
    Jun 25 21:34:10 host run.sh[2912775]:   token: 't.heGO0XL9TiOrrfMeLRlu',
    Jun 25 21:34:10 host run.sh[2912775]:   userInfo: { colorId: null, name: null }
    Jun 25 21:34:10 host run.sh[2912775]: }
    Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.347] [DEBUG] ueberDB - GET    - pad2readonly:g.GROUPID%24PAD_NAME - "r.76542154117acedc056aafb2a6edea08" - from database
    Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.347] [DEBUG] ueberDB - GET    - pad:g.GROUPID%24PAD_NAME - {<CONTEXT REMOVED> - from cache
    Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.347] [DEBUG] ueberDB - GET    - session:s.5092c3ba80542e09e99c324553821224 - <CONTEXT REMOVED> - from cache
    Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.347] [DEBUG] ueberDB - GET    - globalAuthor:a.KZeMbZCAwsje1xnN - <CONTEXT REMOVED> - from cache
    Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.348] [DEBUG] ueberDB - GET    - pad:g.GROUPID%24PAD_NAME:revs:107402 - <CONTEXT REMOVED> - from database
    Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.348] [DEBUG] ueberDB - GETSUB - pad:g.GROUPID%24PAD_NAME:revs:107402["meta","timestamp"] - 1687673095060
    Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.348] [DEBUG] ueberDB - GET    - globalAuthor:a.yhZGeN8euHwxpW6J - <CONTEXT REMOVED> - from cache
    Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.348] [DEBUG] ueberDB - GET    - globalAuthor:a.K865BmHyrvvEE2r6 - <CONTEXT REMOVED> - from cache
    Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.348] [DEBUG] ueberDB - GET    - globalAuthor:a.KZeMbZCAwsje1xnN - <CONTEXT REMOVED> - from cache
  4. globalAuthor stuff
  5. Jun 25 21:34:10 host run.sh[2912775]: [2023-06-25 21:34:10.365] [INFO] access - [ENTER] pad:g.uInKPGsMRVLwN6UI$2020_08_protokoll socket:Xwl8nyN46ToSAAqzAAAG IP:ANONYMOUS authorID:a.KZeMbZCAwsje1xnN
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.365] [DEBUG] socket.io - to Xwl8nyN46ToSAAqzAAAG: {"type":"CLIENT_VARS","data":{"skinName":"colibris","skinVariants":"super-light-toolbar super-light-editor light-background","randomVersionString":"6a749d6b","accountPrivs":{"maxRevisions":100},"automaticReconnectionTimeout":0,"initialRevisionList":[],"initialOptions":{},"savedRevisions":[],"collab_client_vars":{"initialAttributedText":{"text":"\n\n\n\n\n\n","attribs":"|3+3*0|2+2|1+1"},"clientIp":"127.0.0.1","padId":"g.GROUP_ID$PAD_NAME","historicalAuthorData": <CONTEXT REMOVED> ,"nextNum":1},"rev":107402,"time":1687673095060},"colorPalette":["#ffc7c7","#fff1c7","#e3ffc7","#c7ffd5","#c7ffff","#c7d5ff","#e3c7ff","#ffc7f1","#ffa8a8","#ffe699","#cfff9e","#99ffb3","#a3ffff","#99b3ff","#cc99ff","#ff99e5","#e7b1b1","#e9dcAf","#cde9af","#bfedcc","#b1e7e7","#c3cdee","#d2b8ea","#eec3e6","#e9cece","#e7e0ca","#d3e5c7","#bce1c5","#c1e2e2","#c1c9e2","#cfc1e2","#e0bdd9","#baded3","#a0f8eb","#b1e7e0","#c3c8e4","#cec5e2","#b1d5e7","#cda8f0","#f0f0a8","#f2f2a6","#f5a8eb","#c5f9a9","#ececbb","#e7c4bc","#daf0b2","#b0a0fd","#bce2e7","#cce2bb","#ec9afe","#edabbd","#aeaeea","#c4e7b1","#d722bb","#f3a5e7","#ffa8a8","#d8c0c5","#eaaedd","#adc6eb","#bedad1","#dee9af","#e9afc2","#f8d2a0","#b3b3e6"],"clientIp":"127.0.0.1","userColor":"#e204cb","padId":"g.GROUP_ID$PAD_NAME","padOptions":{"noColors":false,"showControls":true,"showChat":true,"showLineNumbers":true,"useMonospaceFont":false,"userName":null,"userColor":null,"rtl":false,"alwaysShowChat":false,"chatAndUsers":false,"lang":null},"padShortcutEnabled":{"altF9":true,"altC":true,"delete":true,"cmdShift2":true,"return":true,"esc":true,"cmdS":true,"tab":true,"cmdZ":true,"cmdY":true,"cmdB":true,"cmdI":true,"cmdU":true,"cmd5":true,"cmdShiftL":true,"cmdShiftN":true,"cmdShift1":true,"cmdShiftC":true,"cmdH":true,"ctrlHome":true,"pageUp":true,"pageDown":true},"initialTitle":"Pad: g.GROUP_ID$PAD_NAME","opts":{},"chatHead":2,"numConnectedUsers":0,"readOnlyId":"r.76542154117acedc056aafb2a6edea08","readonly":false,"serverTimestamp":1687721650365,"sessionRefreshInterval":86400000,"userId":"a.KZeMbZCAwsje1xnN","abiwordAvailable":"yes","sofficeAvailable":"no","exportAvailable":"yes","plugins":{"plugins":{"ep_align":{"parts":[{"name":"main","client_hooks":{"aceEditEvent":"ep_align/static/js/index","postToolbarInit":"ep_align/static/js/index","aceDomLineProcessLineAttributes":"ep_align/static/js/index","postAceInit":"ep_align/static/js/index","aceInitialized":"ep_align/static/js/index","aceAttribsToClasses":"ep_align/static/js/index","collectContentPre":"ep_align/static/js/shared","aceRegisterBlockElements":"ep_align/static/js/index"},"hooks":{"eejsBlock_editbarMenuLeft":"ep_align/index","collectContentPre":"ep_align/static/js/shared","collectContentPost":"ep_align/static/js/shared","padInitToolbar":"ep_align/index","getLineHTMLForExport":"ep_align/index"},"plugin":"ep_align","full_name":"ep_align/main"}],"package":{"author":{"name":"John McLear","email":"john@mclear.co.uk"},"license":"Apache2","bugs":{"url":"https://github.com/ether/ep_align/issues"},"description":"Etherpad plugin to set left, center, right, or full justification for a paragraph","homepage":"https://github.com/ether/ep_align#readme","keywords":["etherpad","plugin","ep"],"name":"ep_align","repository":{"type":"git","url":"git+https://github.com/ether/ep_align.git"},"version":"0.3.53","funding":{"type":"individual","url":"https://etherpad.org/"},"devDependencies":{"eslint":"^8.11.0","eslint-config-etherpad":"^3.0.9","typescript":"^4.6.2"},"scripts":{"lint":"eslint .","lint:fix":"eslint --fix ."},"engines":{"node":">=12.17.0"},"peerDependencies":{"ep_etherpad-lite":">=1.8.6"},"readme":"![Publish Status](https://github.com/ether/ep_align/workflows/Node.js%20Package/badge.svg) ![Publish Status](https://github.com/ether/ep_align/workflows/Node.js%20Package/badge.svg)\n\n![Screenshot](https://user-images.githubusercontent.com/220864/107214131-5c3dd600-6a01-11eb-82d9-b2d67ec8ae93.png)\r\n\r\n# What is this?\r\nAn Etherpad Plugin to apply Text Alignment in a pad.  Currently supports:\r\n\r\n* Left\r\n* Center\r\n* Justify\r\n* Right\r\n\r\n# Export support\r\nExperimental.  As attributes are line by line on Etherpad some weirdness may be experienced.\r\n\r\n# History\r\nI decided to copy/pasta the ep_headings2 plugin over ep_align to fix a load of issues.\r\n\r\n# License\r\nApache 2\r\n\r\n# Development\r\nDevelopment done for free to help support continued learning due to distruption by the corona virus.  26LLC supported.\r\n","readmeFilename":"README.md","_id":"ep_align@0.3.53","optionalDependencies":{},"_dependencies":{},"path":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/node_modules/ep_align","error":"[Circular]","extraneous":false,"realPath":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/node_modules/ep_align"}},"ep_author_hover":{"parts":[{"name":"ep_author_hover","hooks":{"eejsBlock_mySettings":"ep_author_hover/index"},"client_hooks":{"postAceInit":"ep_author_hover/static/js/index"},"plugin":"ep_author_hover","full_name":"ep_author_hover/ep_author_hover"}],"package":{"author":{"name":"John McLear","email":"john@mclear.co.uk","url":"http://mclear.co.uk"},"name":"ep_author_hover","description":"Adds author names to span titles (shows on hover), works as authors change their name.  Hover includes author color and fast switching between author spans.  Hat tip to Martyn York for the initial work on this.","version":"0.3.37","repository":{"type":"git","url":"git+ssh://git@github.com/JohnMcLear/ep_author_hover.git"},"funding":{"type":"individual","url":"https://etherpad.org/"},"devDependencies":{"eslint":"^8.11.0","eslint-config-etherpad":"^3.0.9","typescript":"^4.6.2"},"scripts":{"lint":"eslint .","lint:fix":"eslint --fix ."},"engines":{"node":">=12.17.0"},"peerDependencies":{"ep_etherpad-lite":">=1.8.6"},"readme":"![Publish Status](https://github.com/ether/ep_author_hover/workflows/Node.js%20Package/badge.svg) ![Backend Tests Status](https://github.com/ether/ep_author_hover/workflows/Backend%20tests/badge.svg)\n\n\n# Show Author Name on hover\n\nHover over an author to see their name\n\n# Other functionality\n\nShows the author color on hover\nSupports fast switching between hovers (Doesn't depend on native browser support)\n\n# Settings\n## Disable/enable author hover locally in your browser\nThis plugin adds a new switch called _Show Author on Hover_ to the settings menu. This allows you to disable/enable the display of author names on hover in your browser.\n\n## Disable author hover by default for all clients\nTo don't show the author names on hover by default (the user has to activate in manually), add the following to your `setting.json`:\n```json\n  // disable author hover by default\n  \"ep_author_hover\": {\n    \"disabledByDefault\": true\n  }\n```\n\n# Why did I rewrite this?\nI don't really like plugins that depdend on manipulating the ACE inner DOM, rewriting this plugin and using events meant I could still have hover functionality without the risk of running into nasty ACE issues down the line.  It also meant that as new authors joined and updated their name I could update hte hovers in real time.  Previous attempts at writing this plugin have required a browser refresh to know who authors are, that wasn't good enough for me.\n\n# TODO\n\n* use JQTip\n* Your ideas here..\n* Test in IE\n* Settings for font size/background color switch\n* Your sponsorship here..\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/JohnMcLear/ep_author_hover/issues"},"homepage":"https://github.com/JohnMcLear/ep_author_hover#readme","_id":"ep_author_hover@0.3.37","optionalDependencies":{},"_dependencies":{},"path":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/node_modules/ep_author_hover","error":"[Circular]","extraneous":false,"realPath":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/node_modules/ep_author_hover"}},"ep_comments_page":{"parts":[{"name":"comments_page","pre":["ep_etherpad-lite/webaccess","ep_page_view/page_view"],"post":["ep_etherpad-lite/static"],"client_hooks":{"postToolbarInit":"ep_comments_page/static/js/index","postAceInit":"ep_comments_page/static/js/index","collectContentPre":"ep_comments_page/static/js/shared","aceAttribsToClasses":"ep_comments_page/static/js/index","aceEditorCSS":"ep_comments_page/static/js/index","aceEditEvent":"ep_comments_page/static/js/index","aceInitialized":"ep_comments_page/static/js/index"},"hooks":{"padInitToolbar":"ep_comments_page/index","padRemove":"ep_comments_page/index","padCopy":"ep_comments_page/index","socketio":"ep_comments_page/index","expressCreateServer":"ep_comments_page/index","collectContentPre":"ep_comments_page/static/js/shared","eejsBlock_editbarMenuLeft":"ep_comments_page/index","eejsBlock_scripts":"ep_comments_page/index","eejsBlock_mySettings":"ep_comments_page/index","eejsBlock_styles":"ep_comments_page/index","clientVars":"ep_comments_page/index","exportHtmlAdditionalTagsWithData":"ep_comments_page/exportHTML","getLineHTMLForExport":"ep_comments_page/exportHTML","exportEtherpadAdditionalContent":"ep_comments_page/index","exportHTMLAdditionalContent":"ep_comments_page/exportHTML","handleMessageSecurity":"ep_comments_page/index"},"plugin":"ep_comments_page","full_name":"ep_comments_page/comments_page"}],"package":{"description":"Adds comments on sidebar and link it to the text.  For no-skin use ep_page_view.","name":"ep_comments_page","version":"1.0.5","author":{"name":"Nicolas Lescop","email":"limplementeur@gmail.com"},"license":"Apache-2.0","contributors":[{"name":"Nicolas Lescop","email":"limplementeur@gmail.com"},{"name":"John McLear","email":"john@mclear.co.uk"},{"name":"Luiza Pagliari","email":"lpagliari@gmail.com"}],"devDependencies":{"eslint":"^8.11.0","eslint-config-etherpad":"^3.0.9","socket.io-client":"^2.3.0","superagent":"^7.1.1","typescript":"^4.6.2"},"scripts":{"lint":"eslint<<< .","lint:fix":"eslint --fix ."},"engines":{"node":">=12.17.0"},"peerDependencies":{"ep_etherpad-lite":">=1.8.6"},"repository":{"type":"git","url":"git+https://github.com/ether/ep_comments.git"},"funding":{"type":"individual","url":"https://etherpad.org/"},"readme":"![Publish Status](https://github.com/ether/ep_comments_page/workflows/Node.js%20Package/badge.svg) ![Backend Tests Status](https://github.com/ether/ep_comments_page/workflows/Backend%20tests/badge.svg)\n\n# Comments and annotations for Etherpad\n\n![Screen shot](https://user-images.githubusercontent.com/220864/98013526-617ff900-1df2-11eb-88b6-cf259372f6ca.PNG)\n\n## Installing this plugin with npm.\n```\nnpm install ep_comments_page\n```\n\n## Extra settings\nThis plugin has some extra features that can be enabled by changing values on `settings.json` of your Etherpad instance.\n\n### Alternative comment display\nThere is an alternative way to display comments. Instead of having all comments visible on the right of the page, you can have just an icon on the right margin of the page. Comment details are displayed when user clicks on the comment icon:\n\n![Screen shot](http://i.imgur.com/cEo7PdL.png)\n\nTo use this way of displaying comments, add the following to your `settings.json`:\n```\n// Display comments as icons, not boxes\n\"ep_comments_page\": {\n  \"displayCommentAsIcon\": true\n},\n```\n\n### Highlight selected text when creating a comment\nIt is also possible to mark the text originally selected when user adds a comment:\n![Screen shot](http://i.imgur.com/AhaVgRZ.png)\n\nTo enable this feature, add the following code to your `settings.json`:\n```\n// Highlight selected text when adding comment\n\"ep_comments_page\": {\n  \"highlightSelectedText\": true\n},\n```\n\n**Warning**: there is a side effect when you enable this feature: a revision is created everytime the text is highlighted, resulting on apparently \"empty\" changes when you check your pad on the timeslider. If that is an issue for you, we don't recommend you to use this feature.\n\n### Disable HTML export\nBy default comments are exported to HTML, but if you don't wish to do that then you can disable it by adding the following to your `settings.json`:\n```\n\"ep_comments_page\": {\n  \"exportHtml\": false\n},\n```\n\n## Creating comment via API\nIf you need to add comments to a pad:\n\n* Call this route to create the comments on Etherpad and get the comment ids:\n  ```\n  curl -X POST http://localhost:9001/p/THE_PAD_ID/comments -d \"apikey=YOUR_API_KEY\" -d 'data=[{\"name\":\"AUTHOR\",\"text\":\"COMMENT\"}, {\"name\":\"ANOTHER_AUTHOR\",\"text\":\"ANOTHER_COMMENT\"}]'\n  ```\n\n  The response will be:\n  ```\n  {\"code\":0,\"commentIds\":[\"c-VEtzKolgD5krJOVU\",\"c-B8MEmAT0NJ9usUwc\"]}\n  ```\n\n* Use the returned comment ids to set the pad HTML [via API](http://etherpad.org/doc/v1.5.6/#index_sethtml_padid_html):\n  ```\n  My comment goes <span class=\"comment c-VEtzKolgD5krJOVU\">here<span>.\n  ```\n\n  Result:\n  ![Screen shot](http://i.imgur.com/KM4lPJx.png)\n\nNOTE: Adding a comment to a pad via API will make the other editors with that pad to be alerted, but this feature is only active if your Etherpad is run in `loadTest` mode. Read [the Etherpad Guide](https://github.com/ether/etherpad-lite/wiki/Load-Testing-Etherpad) for how to enable load testing.\n\n## License\nApache 2\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/ether/ep_comments/issues"},"homepage":"https://github.com/ether/ep_comments#readme","_id":"ep_comments_page@1.0.5","optionalDependencies":{},"_dependencies":{"cheerio":"^0.22.0","formidable":"^2.0.1","underscore":"^1.13.2"},"path":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/node_modules/ep_comments_page","error":"[Circular]","extraneous":false,"realPath":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/node_modules/ep_comments_page"}},"ep_etherpad-lite":{"parts":[{"name":"DB","hooks":{"shutdown":"ep_etherpad-lite/node/db/DB"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/DB"},{"name":"Minify","hooks":{"shutdown":"ep_etherpad-lite/node/utils/Minify"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/Minify"},{"name":"express","hooks":{"createServer":"ep_etherpad-lite/node/hooks/express","restartServer":"ep_etherpad-lite/node/hooks/express","shutdown":"ep_etherpad-lite/node/hooks/express"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/express"},{"name":"static","hooks":{"expressPreSession":"ep_etherpad-lite/node/hooks/express/static"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/static"},{"name":"stats","hooks":{"shutdown":"ep_etherpad-lite/node/stats"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/stats"},{"name":"i18n","hooks":{"expressPreSession":"ep_etherpad-lite/node/hooks/i18n"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/i18n"},{"name":"specialpages","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/specialpages","expressPreSession":"ep_etherpad-lite/node/hooks/express/specialpages"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/specialpages"},{"name":"padurlsanitize","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/padurlsanitize"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/padurlsanitize"},{"name":"apicalls","hooks":{"expressPreSession":"ep_etherpad-lite/node/hooks/express/apicalls"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/apicalls"},{"name":"importexport","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/importexport"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/importexport"},{"name":"errorhandling","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/errorhandling"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/errorhandling"},{"name":"socketio","hooks":{"expressCloseServer":"ep_etherpad-lite/node/hooks/express/socketio","expressCreateServer":"ep_etherpad-lite/node/hooks/express/socketio","socketio":"ep_etherpad-lite/node/handler/PadMessageHandler"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/socketio"},{"name":"tests","hooks":{"expressPreSession":"ep_etherpad-lite/node/hooks/express/tests"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/tests"},{"name":"admin","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/admin"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/admin"},{"name":"adminplugins","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/adminplugins","socketio":"ep_etherpad-lite/node/hooks/express/adminplugins"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/adminplugins"},{"name":"adminsettings","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/adminsettings","socketio":"ep_etherpad-lite/node/hooks/express/adminsettings"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/adminsettings"},{"name":"openapi","hooks":{"expressPreSession":"ep_etherpad-lite/node/hooks/express/openapi"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/openapi"}],"package":{"name":"ep_etherpad-lite","description":"A free and open source realtime collaborative editor","homepage":"https://etherpad.org","keywords":["etherpad","realtime","collaborative","editor"],"author":{"name":"Etherpad Foundation"},"contributors":[{"name":"John McLear"},{"name":"Antonio Muci"},{"name":"Hans Pinckaers"},{"name":"Robin Buse"},{"name":"Marcel Klehr"},{"name":"Peter Martischka"}],"bin":{"etherpad":"node/server.js","etherpad-healthcheck":"bin/etherpad-healthcheck","etherpad-lite":"node/server.js"},"devDependencies":{"eslint":"^8.14.0","eslint-config-etherpad":"^3.0.13","etherpad-cli-client":"^2.0.1","mocha":"^9.2.2","mocha-froth":"^0.2.10","nodeify":"^1.0.1","openapi-schema-validation":"^0.4.2","selenium-webdriver":"^4.1.1","set-cookie-parser":"^2.4.8","sinon":"^13.0.2","split-grid":"^1.0.11","supertest":"^6.2.4","typescript":"^4.6.4"},"engines":{"node":">=14.15.0","npm":">=6.14.0"},"repository":{"type":"git","url":"git+https://github.com/ether/etherpad-lite.git"},"scripts":{"lint":"eslint .","test":"mocha --timeout 120000 --recursive tests/backend/specs ../node_modules/ep_*/static/tests/backend/specs","test-container":"mocha --timeout 5000 tests/container/specs/api"},"version":"1.9.0","license":"Apache-2.0","readme":"Ignore this file and see the file in the base installation folder\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/ether/etherpad-lite/issues"},"_id":"ep_etherpad-lite@1.9.0","optionalDependencies":{},"_dependencies":{"async":"^3.2.2","clean-css":"^5.3.0","cookie-parser":"^1.4.6","cross-spawn":"^7.0.3","ejs":"^3.1.7","etherpad-require-kernel":"^1.0.15","etherpad-yajsml":"0.0.12","express":"4.18.2","express-rate-limit":"^6.4.0","express-session":"npm:@etherpad/express-session@^1.18.1","fast-deep-equal":"^3.1.3","find-root":"1.1.0","formidable":"^2.1.2","http-errors":"^2.0.0","js-cookie":"^3.0.1","jsdom":"^19.0.0","jsonminify":"0.4.2","languages4translatewiki":"0.1.3","lodash.clonedeep":"4.5.0","log4js":"0.6.38","measured-core":"^2.0.0","mime-types":"^2.1.35","npm":"^6.14.15","openapi-backend":"^5.3.0","proxy-addr":"^2.0.7","rate-limiter-flexible":"^2.4.1","rehype":"^12.0.1","rehype-minify-whitespace":"^5.0.1","request":"2.88.2","resolve":"1.22.0","security":"1.0.0","semver":"^7.3.7","socket.io":"^2.4.1","superagent":"^8.0.9","terser":"^5.16.5","threads":"^1.7.0","tinycon":"0.6.8","ueberdb2":"^2.2.4","underscore":"1.13.3","unorm":"1.6.0","wtfnode":"^0.9.1"},"path":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/node_modules/ep_etherpad-lite","error":"[Circular]","extraneous":false,"link":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/src","realPath":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/src"}},"ep_font_color":{"parts":[{"name":"main","client_hooks":{"postAceInit":"ep_font_color/static/js/index","aceInitialized":"ep_font_color/static/js/index","aceEditEvent":"ep_font_color/static/js/index","aceEditorCSS":"ep_font_color/static/js/index","aceCreateDomLine":"ep_font_color/static/js/index","postToolbarInit":"ep_font_color/static/js/index","aceAttribsToClasses":"ep_font_color/static/js/index","collectContentPre":"ep_font_color/static/js/shared"},"hooks":{"eejsBlock_editbarMenuLeft":"ep_font_color/index","collectContentPre":"ep_font_color/static/js/shared","collectContentPost":"ep_font_color/static/js/shared","exportHtmlAdditionalTagsWithData":"ep_font_color/exportHTML","stylesForExport":"ep_font_color/exportHTML","getLineHTMLForExport":"ep_font_color/exportHTML","eejsBlock_dd_format":"ep_font_color/index","padInitToolbar":"ep_font_color/index"},"plugin":"ep_font_color","full_name":"ep_font_color/main"}],"package":{"description":"Apply colors to fonts","name":"ep_font_color","version":"0.0.63","license":"Apache-2.0","author":{"name":"John McLear","email":"john@mclear.co.uk"},"engines":{"node":">=12.17.0"},"repository":{"type":"git","url":"git+https://github.com/JohnMcLear/ep_font_color.git"},"funding":{"type":"individual","url":"https://etherpad.org/"},"devDependencies":{"eslint":"^8.11.0","eslint-config-etherpad":"^3.0.9","typescript":"^4.6.2"},"scripts":{"lint":"eslint .","lint:fix":"eslint --fix ."},"peerDependencies":{"ep_etherpad-lite":">=1.8.6"},"readme":"![Publish Status](https://github.com/ether/ep_font_color/workflows/Node.js%20Package/badge.svg) ![Backend Tests Status](https://github.com/ether/ep_font_color/workflows/Backend%20tests/badge.svg)\n\n# Etherpad plugin to change font color\nIf you want to reposition the color select in toolbar then in `settings.json` under `toolbar` add button `fontColor` example:\n```\n\"toolbar\": {\n    \"left\": [\n      [\n        \"fontColor\",\n        \"bold\",\n        \"italic\",\n        \"underline\",\n        \"strikethrough\"\n      ]\n}\n```","readmeFilename":"README.md","bugs":{"url":"https://github.com/JohnMcLear/ep_font_color/issues"},"homepage":"https://github.com/JohnMcLear/ep_font_color#readme","_id":"ep_font_color@0.0.63","optionalDependencies":{},"_dependencies":{},"path":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/node_modules/ep_font_color","error":"[Circular]","extraneous":false,"realPath":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/node_modules/ep_font_color"}},"ep_headings2":{"parts":[{"name":"main","client_hooks":{"aceEditorCSS":"ep_headings2/static/js/index","aceEditEvent":"ep_headings2/static/js/index","aceDomLineProcessLineAttributes":"ep_headings2/static/js/index","postAceInit":"ep_headings2/static/js/index","aceInitialized":"ep_headings2/static/js/index","aceAttribsToClasses":"ep_headings2/static/js/index","collectContentPre":"ep_headings2/static/js/shared","aceRegisterBlockElements":"ep_headings2/static/js/index"},"hooks":{"eejsBlock_editbarMenuLeft":"ep_headings2/index","collectContentPre":"ep_headings2/static/js/shared","collectContentPost":"ep_headings2/static/js/shared","getLineHTMLForExport":"ep_headings2/index","stylesForExport":"ep_headings2/index"},"plugin":"ep_headings2","full_name":"ep_headings2/main"}],"package":{"description":"Adds heading support to Etherpad Lite.  Includes improved suppot for export, i18n etc.","name":"ep_headings2","version":"0.2.44","author":{"name":"John McLear","email":"john@mclear.co.uk"},"contributors":[{"name":"Matthias Bartelmeß","email":"mba@fourplusone.de"},{"name":"John McLear","email":"john@mclear.co.uk"},{"name":"Gedion Woldeselassie","email":"gwy321@gmail.com","url":"https://github.com/gedion"}],"keywords":["ep","etherpad","plugin"],"engines":{"node":">=12.17.0"},"homepage":"https://github.com/ether/ep_headings2#readme","bugs":{"url":"https://github.com/ether/ep_headings2/issues"},"devDependencies":{"eslint":"^8.11.0","eslint-config-etherpad":"^3.0.9","typescript":"^4.6.2"},"peerDependencies":{"ep_etherpad-lite":">=1.8.6"},"repository":{"type":"git","url":"git+https://github.com/ether/ep_headings2.git"},"funding":{"type":"individual","url":"https://etherpad.org/"},"scripts":{"lint":"eslint .","lint:fix":"eslint --fix ."},"readme":"![Publish Status](https://github.com/ether/ep_headings2/workflows/Node.js%20Package/badge.svg) ![Publish Status](https://github.com/ether/ep_headings2/workflows/Node.js%20Package/badge.svg)\n# Section headings for Etherpad\n\nAn Etherpad Plugin to apply h1 etc. headings to a pad.\n\n![Screenshot](screenshot.png)\n\n## Features\n\n- [x] Test coverage\n- [x] Linted\n- [x] i18n (translations)\n- [x] Import/export support\n- [x] Copy/paste support\n- [x] Shows active Heading\n- [x] Maintained by the Etherpad Foundation\n\n## Copyright and License\n\nCopyright the ep_headings2 authors and contributors.\n\nLicensed under the [Apache License, Version 2.0](LICENSE) (the \"License\"); you\nmay not use this file except in compliance with the License. You may obtain a\ncopy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed\nunder the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\nCONDITIONS OF ANY KIND, either express or implied. See the License for the\nspecific language governing permissions and limitations under the License.\n","readmeFilename":"README.md","_id":"ep_headings2@0.2.44","optionalDependencies":{},"_dependencies":{},"path":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/node_modules/ep_headings2","error":"[Circular]","extraneous":false,"realPath":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/node_modules/ep_headings2"}},"ep_prompt_for_name":{"parts":[{"name":"prompt_for_name","client_hooks":{"aceInitialized":"ep_prompt_for_name/static/js/index"},"plugin":"ep_prompt_for_name","full_name":"ep_prompt_for_name/prompt_for_name"}],"package":{"name":"ep_prompt_for_name","description":"Prompt an author for their name 5 seconds after they type","version":"1.0.20","author":{"name":"johnyma22","email":"john@mclear.co.uk","url":"John McLear"},"engines":{"node":">=12.17.0"},"repository":{"type":"git","url":"git+https://github.com/JohnMcLear/ep_prompt_for_name.git"},"funding":{"type":"individual","url":"https://etherpad.org/"},"devDependencies":{"eslint":"^8.11.0","eslint-config-etherpad":"^3.0.9","typescript":"^4.6.2"},"scripts":{"lint":"eslint .","lint:fix":"eslint --fix ."},"peerDependencies":{"ep_etherpad-lite":">=1.8.6"},"readme":"![Publish Status](https://github.com/ether/ep_prompt_for_name/workflows/Node.js%20Package/badge.svg) ![Backend Tests Status](https://github.com/ether/ep_prompt_for_name/workflows/Backend%20tests/badge.svg)\n\n# Prompts user to insert their name 5 seconds after they start typing\n\nOnly shows if user hasn't already set their name.\n\nTakes 5 seconds to show up.\n\nTimer starts once user starts writing.\n\nUseful for pads and instances with lots of transient users.\n\n## Installation\nInstall using ``/admin/plugins`` or ``npm install ep_prompt_for_name``\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/JohnMcLear/ep_prompt_for_name/issues"},"homepage":"https://github.com/JohnMcLear/ep_prompt_for_name#readme","_id":"ep_prompt_for_name@1.0.20","optionalDependencies":{},"_dependencies":{},"path":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/node_modules/ep_prompt_for_name","error":"[Circular]","extraneous":false,"realPath":"/srv/etherpad/pad.domain.example/etherpad-lite-1.9.0/node_modules/ep_prompt_for_name"}}},"parts":[{"name":"prompt_for_name","client_hooks":{"aceInitialized":"ep_prompt_for_name/static/js/index"},"plugin":"ep_prompt_for_name","full_name":"ep_prompt_for_name/prompt_for_name"},{"name":"main","client_hooks":{"aceEditorCSS":"ep_headings2/static/js/index","aceEditEvent":"ep_headings2/static/js/index","aceDomLineProcessLineAttributes":"ep_headings2/static/js/index","postAceInit":"ep_headings2/static/js/index","aceInitialized":"ep_headings2/static/js/index","aceAttribsToClasses":"ep_headings2/static/js/index","collectContentPre":"ep_headings2/static/js/shared","aceRegisterBlockElements":"ep_headings2/static/js/index"},"hooks":{"eejsBlock_editbarMenuLeft":"ep_headings2/index","collectContentPre":"ep_headings2/static/js/shared","collectContentPost":"ep_headings2/static/js/shared","getLineHTMLForExport":"ep_headings2/index","stylesForExport":"ep_headings2/index"},"plugin":"ep_headings2","full_name":"ep_headings2/main"},{"name":"main","client_hooks":{"postAceInit":"ep_font_color/static/js/index","aceInitialized":"ep_font_color/static/js/index","aceEditEvent":"ep_font_color/static/js/index","aceEditorCSS":"ep_font_color/static/js/index","aceCreateDomLine":"ep_font_color/static/js/index","postToolbarInit":"ep_font_color/static/js/index","aceAttribsToClasses":"ep_font_color/static/js/index","collectContentPre":"ep_font_color/static/js/shared"},"hooks":{"eejsBlock_editbarMenuLeft":"ep_font_color/index","collectContentPre":"ep_font_color/static/js/shared","collectContentPost":"ep_font_color/static/js/shared","exportHtmlAdditionalTagsWithData":"ep_font_color/exportHTML","stylesForExport":"ep_font_color/exportHTML","getLineHTMLForExport":"ep_font_color/exportHTML","eejsBlock_dd_format":"ep_font_color/index","padInitToolbar":"ep_font_color/index"},"plugin":"ep_font_color","full_name":"ep_font_color/main"},{"name":"openapi","hooks":{"expressPreSession":"ep_etherpad-lite/node/hooks/express/openapi"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/openapi"},{"name":"adminsettings","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/adminsettings","socketio":"ep_etherpad-lite/node/hooks/express/adminsettings"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/adminsettings"},{"name":"adminplugins","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/adminplugins","socketio":"ep_etherpad-lite/node/hooks/express/adminplugins"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/adminplugins"},{"name":"admin","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/admin"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/admin"},{"name":"tests","hooks":{"expressPreSession":"ep_etherpad-lite/node/hooks/express/tests"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/tests"},{"name":"socketio","hooks":{"expressCloseServer":"ep_etherpad-lite/node/hooks/express/socketio","expressCreateServer":"ep_etherpad-lite/node/hooks/express/socketio","socketio":"ep_etherpad-lite/node/handler/PadMessageHandler"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/socketio"},{"name":"errorhandling","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/errorhandling"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/errorhandling"},{"name":"importexport","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/importexport"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/importexport"},{"name":"apicalls","hooks":{"expressPreSession":"ep_etherpad-lite/node/hooks/express/apicalls"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/apicalls"},{"name":"padurlsanitize","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/padurlsanitize"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/padurlsanitize"},{"name":"specialpages","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/specialpages","expressPreSession":"ep_etherpad-lite/node/hooks/express/specialpages"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/specialpages"},{"name":"i18n","hooks":{"expressPreSession":"ep_etherpad-lite/node/hooks/i18n"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/i18n"},{"name":"stats","hooks":{"shutdown":"ep_etherpad-lite/node/stats"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/stats"},{"name":"express","hooks":{"createServer":"ep_etherpad-lite/node/hooks/express","restartServer":"ep_etherpad-lite/node/hooks/express","shutdown":"ep_etherpad-lite/node/hooks/express"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/express"},{"name":"Minify","hooks":{"shutdown":"ep_etherpad-lite/node/utils/Minify"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/Minify"},{"name":"DB","hooks":{"shutdown":"ep_etherpad-lite/node/db/DB"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/DB"},{"name":"comments_page","pre":["ep_etherpad-lite/webaccess","ep_page_view/page_view"],"post":["ep_etherpad-lite/static"],"client_hooks":{"postToolbarInit":"ep_comments_page/static/js/index","postAceInit":"ep_comments_page/static/js/index","collectContentPre":"ep_comments_page/static/js/shared","aceAttribsToClasses":"ep_comments_page/static/js/index","aceEditorCSS":"ep_comments_page/static/js/index","aceEditEvent":"ep_comments_page/static/js/index","aceInitialized":"ep_comments_page/static/js/index"},"hooks":{"padInitToolbar":"ep_comments_page/index","padRemove":"ep_comments_page/index","padCopy":"ep_comments_page/index","socketio":"ep_comments_page/index","expressCreateServer":"ep_comments_page/index","collectContentPre":"ep_comments_page/static/js/shared","eejsBlock_editbarMenuLeft":"ep_comments_page/index","eejsBlock_scripts":"ep_comments_page/index","eejsBlock_mySettings":"ep_comments_page/index","eejsBlock_styles":"ep_comments_page/index","clientVars":"ep_comments_page/index","exportHtmlAdditionalTagsWithData":"ep_comments_page/exportHTML","getLineHTMLForExport":"ep_comments_page/exportHTML","exportEtherpadAdditionalContent":"ep_comments_page/index","exportHTMLAdditionalContent":"ep_comments_page/exportHTML","handleMessageSecurity":"ep_comments_page/index"},"plugin":"ep_comments_page","full_name":"ep_comments_page/comments_page"},{"name":"static","hooks":{"expressPreSession":"ep_etherpad-lite/node/hooks/express/static"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/static"},{"name":"ep_author_hover","hooks":{"eejsBlock_mySettings":"ep_author_hover/index"},"client_hooks":{"postAceInit":"ep_author_hover/static/js/index"},"plugin":"ep_author_hover","full_name":"ep_author_hover/ep_author_hover"},{"name":"main","client_hooks":{"aceEditEvent":"ep_align/static/js/index","postToolbarInit":"ep_align/static/js/index","aceDomLineProcessLineAttributes":"ep_align/static/js/index","postAceInit":"ep_align/static/js/index","aceInitialized":"ep_align/static/js/index","aceAttribsToClasses":"ep_align/static/js/index","collectContentPre":"ep_align/static/js/shared","aceRegisterBlockElements":"ep_align/static/js/index"},"hooks":{"eejsBlock_editbarMenuLeft":"ep_align/index","collectContentPre":"ep_align/static/js/shared","collectContentPost":"ep_align/static/js/shared","padInitToolbar":"ep_align/index","getLineHTMLForExport":"ep_align/index"},"plugin":"ep_align","full_name":"ep_align/main"}]},"indentationOnNewLine":true,"scrollWhenFocusLineIsOutOfViewport":{"percentage":{"editionAboveViewport":0,"editionBelowViewport":0},"duration":0,"scrollWhenCaretIsInTheLastLineOfViewport":false,"percentageToScrollWhenUserPressesArrowUp":0},"initialChangesets":[],"userName":"Marvin","displayCommentAsIcon":false,"highlightSelectedText":false}}
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.366] [DEBUG] socket.io - to Xwl8nyN46ToSAAqzAAAG: {"type":"COLLABROOM","data":{"type":"USER_NEWINFO","userInfo":{<CONTEXT REMOVED>}}}
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.447] [DEBUG] socket.io - from Xwl8nyN46ToSAAqzAAAG: {
    Jun 25 21:34:10 wechange run.sh[2912775]:   type: 'COLLABROOM',
    Jun 25 21:34:10 wechange run.sh[2912775]:   component: 'pad',
    Jun 25 21:34:10 wechange run.sh[2912775]:   data: { type: 'GET_CHAT_MESSAGES', start: 0, end: 2 }
    Jun 25 21:34:10 wechange run.sh[2912775]: }
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.448] [DEBUG] ueberDB - GET    - pad:g.GROUP_ID$PAD_NAME - {"atext":{"text":"\n\n\n\n\n\n","attribs":"|3+3*2k|2+2|1+1"},"pool":{<CONTEXT REMOVED>},"nextNum":93},"head":107402,"chatHead":2,"publicStatus":false,"savedRevisions":[],"passwordHash":null} - from cache
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.448] [DEBUG] ueberDB - GET    - session:s.5092b3ba60542e09e99c3275538213334 - <CONTEXT REMOVED> - from cache
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.449] [DEBUG] ueberDB - GET    - pad:g.GROUP_ID$PAD_NAME:chat:0 - <CONTEXT REMOVED> - from database
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.450] [DEBUG] ueberDB - GET    - globalAuthor:a.<CONTEXT REMOVED> - <CONTEXT REMOVED> - from cache
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.450] [DEBUG] ueberDB - GETSUB - globalAuthor:a.<CONTEXT REMOVED>["name"] - <CONTEXT REMOVED>
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.450] [DEBUG] ueberDB - GET    - pad:g.GROUP_ID$PAD_NAME:chat:1 - <CONTEXT REMOVED> - from database
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.450] [DEBUG] ueberDB - GET    - globalAuthor:a.<CONTEXT REMOVED> - <CONTEXT REMOVED> - from cache
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.450] [DEBUG] ueberDB - GETSUB - globalAuthor:a.<CONTEXT REMOVED>["name"] - "<CONTEXT REMOVED>"
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.450] [DEBUG] ueberDB - GET    - pad:g.GROUP_ID$PAD_NAME:chat:2 - <CONTEXT REMOVED> - from database
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.450] [DEBUG] ueberDB - GET    - globalAuthor:a.<CONTEXT REMOVED> - <CONTEXT REMOVED> - from cache
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.450] [DEBUG] ueberDB - GETSUB - globalAuthor:a.<CONTEXT REMOVED>["name"] - <CONTEXT REMOVED>
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.450] [DEBUG] socket.io - to Xwl8nyN46ToSAAqzAAAG: <CONTEXT REMOVED>
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.451] [DEBUG] http - 304, GET /static/empty.html
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.605] [INFO] Minify - Compress CSS file css/iframe_editor.css.
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.610] [DEBUG] http - 304, GET /static/plugins/ep_headings2/static/css/editor.css
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.611] [DEBUG] http - 304, GET /static/plugins/ep_font_color/static/css/color.css
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.616] [DEBUG] http - 304, GET /static/plugins/ep_comments_page/static/css/commentIcon.css
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.626] [DEBUG] http - 200, GET /static/css/iframe_editor.css?v=6a749d6b
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.686] [DEBUG] http - 200, GET /javascripts/lib/ep_etherpad-lite/static/js/ace2_inner.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:10 wechange run.sh[2912775]: [2023-06-25 21:34:10.727] [DEBUG] http - 200, GET /javascripts/lib/ep_etherpad-lite/static/js/ace2_inner.js?callback=require.define&v=6a749d6b
    Jun 25 21:34:11 wechange run.sh[2912775]: [2023-06-25 21:34:11.152] [DEBUG] http - 304, GET /static/font/RobotoMono-Regular.ttf
    Jun 25 21:34:11 wechange run.sh[2912775]: [2023-06-25 21:34:11.221] [DEBUG] http - 200, GET /
    Jun 25 21:34:11 wechange run.sh[2912775]: [2023-06-25 21:34:11.364] [DEBUG] ueberDB - GET    - pad2readonly:g.GROUP_ID$PAD_NAME - "r.76542154117acedc056aafb2a6edea08" - from cache
    Jun 25 21:34:11 wechange run.sh[2912775]: [2023-06-25 21:34:11.364] [DEBUG] ueberDB - GET    - comments:g.GROUP_ID$PAD_NAME - null - from cache
    Jun 25 21:34:11 wechange run.sh[2912775]: [2023-06-25 21:34:11.377] [DEBUG] ueberDB - GET    - pad2readonly:g.GROUP_ID$PAD_NAME - "r.76542154117acedc056aafb2a6edea08" - from cache
    Jun 25 21:34:11 wechange run.sh[2912775]: [2023-06-25 21:34:11.377] [DEBUG] ueberDB - GET    - comment-replies:g.GROUP_ID$PAD_NAME - null - from database
wilkis3 commented 1 year ago

Sometimes the pad loads the authors at the time slider.

JohnMcLear commented 1 year ago

Any chance you can dump the .etherpad file using the export function?

wilkis3 commented 1 year ago

Any chance you can dump the .etherpad file using the export function?

Yes, it takes a few minutes for the download to start.

webzwo0i commented 1 year ago

btw log looks sane and the require error is benign. Etherpad has problems with the timeslider - known issue but it should display the pad in editor (and it should be editable of course)

Completely other idea: Did you try clearing the cache, e.g. open browser console->network tab->select "disable cache" and reload the pad?

wilkis3 commented 1 year ago

Completely other idea: Did you try clearing the cache, e.g. open browser console->network tab->select "disable cache" and reload the pad?

Yes, I did it and a few users (I didn't know them, may they have different browser and OS) too.

wilkis3 commented 1 year ago

The problem still exist with 1.9.1.

JohnMcLear commented 1 year ago

@wilkis3 if you reimport the .etherpad file into a new Pad does it work then?

Alternatively dump the .etherpad file somewhere that we can grab and debug.

SamTV12345 commented 1 year ago

@wilkis3 Any update on this one?

SamTV12345 commented 1 year ago

@wilkis3 1.9.2 didn't change anything?

SamTV12345 commented 2 months ago

Describe the bug On the web the pad is empty and the time slider shows also empty pads. All the pad and revisions are still in the postgres database. But I can export the pad.

To Reproduce Steps to reproduce the behavior:

  1. Open the link of the pad
  2. Use the current version or use the time slider

Expected behavior

  • It is empty. No text is in there.
  • The time slider know there revision numbers but can't display anything
  • The date/time of any revision is the same

Screenshots Screenshot from 2023-06-24 07-16-09

Screenshot from 2023-06-24 07-16-22

Server (please complete the following information):

  • Etherpad version: 1.9.0
  • OS: Ubuntu 20.04
  • Node.js version (node --version): v16.20.0
  • npm version (npm --version): 8.19.4
  • Is the server free of plugins: No

    • ep_align
    • ep_author_hover
    • ep_comments_page
    • ep_font_color
    • ep_headings2
    • ep_prompt_for_name

Additional context

  • I can export the etherpad e.g. .etherpad. The file have a size of 190 MB and I working to upload it now.
  • File socket connection between NGINX and Etherpad
  • File socket connection between Postgres and Etherpad

Found the issue. The maxTransportSize is too low. You can increase it safely to 100 kB or 1MB. Beyond that is not recommended as you can then DOS the server with large fragments