Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Import /Export not working correct #5211

Closed
lisandi opened this issue Oct 1, 2021 · 10 comments
Closed

Import /Export not working correct #5211

lisandi opened this issue Oct 1, 2021 · 10 comments

Comments

@lisandi
Copy link

lisandi commented Oct 1, 2021

The export to other formats than Etherpad and MD (separate plugin) functionality does not export the formatting of a text and also ads the user in a color actually not even assigned to the user - if it should get added at all - Instead it would be tetter to add only the contributors on top or underlining.

All plugins like color, fontsize, headers, etc work correctly and format correctly. But the standard core import/export functionailty does not recognize those formats as it looks like when it come to export to other formats than Etherpad and Markup/

i.e.
New.pdf
That is the page that got exported! The same problem with ODT
Screen Shot 2021-10-01 at 17 46 29
Other export formats look as follow - on the same page:
Github doesn't like all formats so .txt got added and needs to get removed first.


Importing the doc, odt, md document which had been exported results first in a red error message while still loading the document
Screen Shot 2021-10-01 at 17 50 30
The loaded Document has no formatting
Screen Shot 2021-10-01 at 17 51 12
The import of the exported etherpad format works fine, when no author had been exported it will set the author to null
Screen Shot 2021-10-01 at 17 52 10
Making adding an author name when entering the pad would be advised to avoid that problem.

When importing the Etherpad format the file menu bar gets no more displayed at the end of the import and it will come back after reloading the page. - Perhaps it would be helpful to reload the page after an import by default to avoid a missing file-menu-bar.
Screen Shot 2021-10-01 at 18 09 38
The file menu is actually still there after an import but has no content anymore - you can check when you move the mouse to the top until the dropdowns of the menu show up
(Screen Shot 2021-10-01 at 18 12 27
empty)

Importing the odt format results in an open office style looking button bar :-) but the text format gets lost.
Screen Shot 2021-10-01 at 18 23 53
... and the odt button bar gets lost after a page reload

  • also here it would be advised to have an automated reload after a page import

The MD import looks fine but during the export the line spacing and the alignment got lost and paragraphs got added a * at the beginning and all that won't get replaced when imported, while headings (beside H5 and H6 which no exist until now) and all list formats get imported OK (dl) not sure!

I would therefore add MD format to the default export formats in the filemenu menu - it would avoid having that plugin to be installed first. MD is actually the only format which comes pretty near to the etherpad format - all other failed!

Screen Shot 2021-10-01 at 18 35 16

@JohnMcLear
Copy link
Member

Please provide exact steps to replicate.

@lisandi
Copy link
Author

lisandi commented Oct 1, 2021

We are just sitting here (already one hour) because the plugin ep_imageconvert crashed the whole site. It was available in admin/plugins to install and boom!

Replicating the issue is pretty simple by installing the plugins we have installed.
All have been installed from Admin/Plugin with a click on the button install.
Here is the list of installed plugins.

Etherpad version
Version number: 1.8.14

Latest available version: 1.8.14

Git sha: d262e31

Installed plugins
ep_aa_file_menu_toolbar
ep_adminpads2
ep_align
ep_announce
ep_author_neat2
ep_author_hover
ep_button_link
ep_author_follow
ep_clear_formatting
ep_comments_page
ep_code_formatting
ep_copy_paste_select_all
ep_custom_inline_toolbar
ep_define
ep_desktop_notifications
ep_embedded_hyperlinks2
ep_embedmedia
ep_etherpad-lite
ep_headings2
ep_font_color
ep_font_family
ep_font_size
ep_image_upload
ep_help_bubbles
ep_markdown
ep_line_spacing
ep_mathjax
ep_padlist2
ep_set_title_on_pad
ep_spellcheck
ep_stats
ep_subscript_and_superscript
ep_table_of_contents
ep_template_content
ep_timestamp
ep_webrtc
ep_workspaces
ep_readonly_guest
Installed parts
ep_readonly_guest/ep_readonly_guest
ep_workspaces/Workspaces
ep_webrtc/ep_webrtc
ep_timestamp/ep_timestamp
ep_template_content/main
ep_table_of_contents/ep_table_of_contents
ep_subscript_and_superscript/main
ep_stats/stats
ep_spellcheck/ep_spellcheck
ep_set_title_on_pad/set_title_on_pad
ep_padlist2/ep_padlist2
ep_mathjax/mathjax
ep_line_spacing/main
ep_markdown/markdown
ep_help_bubbles/help_bubbles
ep_image_upload/ep_image_upload
ep_font_size/main
ep_font_family/main
ep_font_color/main
ep_headings2/main
ep_etherpad-lite/openapi
ep_etherpad-lite/adminsettings
ep_etherpad-lite/adminplugins
ep_etherpad-lite/admin
ep_etherpad-lite/tests
ep_etherpad-lite/socketio
ep_etherpad-lite/errorhandling
ep_etherpad-lite/importexport
ep_etherpad-lite/apicalls
ep_etherpad-lite/padurlsanitize
ep_etherpad-lite/specialpages
ep_etherpad-lite/i18n
ep_etherpad-lite/stats
ep_etherpad-lite/express
ep_etherpad-lite/Minify
ep_etherpad-lite/DB
ep_embedmedia/embedmedia
ep_embedded_hyperlinks2/main
ep_desktop_notifications/ep_desktop_notifications
ep_define/ep_define
ep_custom_inline_toolbar/custom_inline_toolbar
ep_copy_paste_select_all/copy_paste_select_all
ep_code_formatting/ep_code_formatting
ep_etherpad-lite/webaccess
ep_comments_page/comments_page
ep_etherpad-lite/static
ep_clear_formatting/clear_formatting
ep_author_follow/ep_author_follow
ep_button_link/button_link
ep_author_hover/ep_author_hover
ep_author_neat2/ep_author_neat2
ep_announce/ep_announce
ep_align/main
ep_adminpads2/ep_adminpads2
ep_aa_file_menu_toolbar/aa_file_menu_toolbar
Installed hooks
Server-side hooks
aceAttribClasses:
ep_font_family:
main:
ep_font_family/index
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/index
asyncLineHTMLForExport:
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/index
authenticate:
ep_readonly_guest:
ep_readonly_guest:
ep_readonly_guest
ccRegisterBlockElements:
ep_image_upload:
ep_image_upload:
ep_image_upload/static/js/contentCollection
clientVars:
ep_author_follow:
ep_author_follow:
ep_author_follow/index:clientVars
ep_button_link:
button_link:
ep_comments_page:
comments_page:
ep_comments_page/index
ep_custom_inline_toolbar:
custom_inline_toolbar:
ep_custom_inline_toolbar/index
ep_image_upload:
ep_image_upload:
ep_image_upload/index
ep_readonly_guest:
ep_readonly_guest:
ep_readonly_guest
ep_set_title_on_pad:
set_title_on_pad:
ep_set_title_on_pad/handleMessage
ep_webrtc:
ep_webrtc:
collectContentImage:
ep_image_upload:
ep_image_upload:
ep_image_upload/static/js/contentCollection
collectContentPost:
ep_align:
main:
ep_align/static/js/shared
ep_font_color:
main:
ep_font_color/static/js/shared
ep_font_family:
main:
ep_font_family/static/js/shared
ep_headings2:
main:
ep_headings2/static/js/shared
ep_image_upload:
ep_image_upload:
ep_image_upload/static/js/contentCollection
ep_mathjax:
mathjax:
ep_mathjax/static/js/shared
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/static/js/shared
collectContentPre:
ep_align:
main:
ep_align/static/js/shared
ep_comments_page:
comments_page:
ep_comments_page/static/js/shared
ep_font_color:
main:
ep_font_color/static/js/shared
ep_font_family:
main:
ep_font_family/static/js/shared
ep_font_size:
main:
ep_font_size/static/js/shared
ep_headings2:
main:
ep_headings2/static/js/shared
ep_image_upload:
ep_image_upload:
ep_image_upload/static/js/contentCollection
ep_mathjax:
mathjax:
ep_mathjax/static/js/shared
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/static/js/shared
createServer:
ep_etherpad-lite:
express:
ep_etherpad-lite/node/hooks/express
eejsBlock_adminMenu:
ep_adminpads2:
ep_adminpads2:
ep_adminpads2
eejsBlock_body:
ep_aa_file_menu_toolbar:
aa_file_menu_toolbar:
ep_aa_file_menu_toolbar/eejs
ep_custom_inline_toolbar:
custom_inline_toolbar:
ep_custom_inline_toolbar/index
ep_embedmedia:
embedmedia:
ep_embedmedia/hooks:eejsBlock_body
ep_image_upload:
ep_image_upload:
ep_image_upload/index
ep_set_title_on_pad:
set_title_on_pad:
ep_set_title_on_pad/eejs
ep_stats:
stats:
ep_stats/index
ep_template_content:
main:
ep_template_content/client
eejsBlock_dd_edit:
ep_copy_paste_select_all:
copy_paste_select_all:
ep_copy_paste_select_all/copy_paste_select_all
eejsBlock_dd_format:
ep_clear_formatting:
clear_formatting:
ep_clear_formatting/clear_formatting
ep_font_color:
main:
ep_font_color/index
ep_font_family:
main:
ep_font_family/index
ep_font_size:
main:
ep_font_size/index
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/index
eejsBlock_dd_help:
ep_define:
ep_define:
ep_define/eejs
eejsBlock_dd_view:
ep_spellcheck:
ep_spellcheck:
ep_spellcheck/spellcheck
ep_stats:
stats:
ep_stats/index
ep_table_of_contents:
ep_table_of_contents:
ep_table_of_contents/index
eejsBlock_editbarMenuLeft:
ep_align:
main:
ep_align/index
ep_comments_page:
comments_page:
ep_comments_page/index
ep_embedded_hyperlinks2:
main:
ep_embedded_hyperlinks2/index
ep_embedmedia:
embedmedia:
ep_embedmedia/hooks:eejsBlock_editbarMenuLeft
ep_font_color:
main:
ep_font_color/index
ep_font_family:
main:
ep_font_family/index
ep_font_size:
main:
ep_font_size/index
ep_headings2:
main:
ep_headings2/index
ep_image_upload:
ep_image_upload:
ep_image_upload/editbar
ep_line_spacing:
main:
ep_line_spacing/index
ep_mathjax:
mathjax:
ep_mathjax/hooks:eejsBlock_editbarMenuLeft
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/index
ep_template_content:
main:
ep_template_content/client
ep_timestamp:
ep_timestamp:
ep_timestamp/timestamp
eejsBlock_editbarMenuRight:
ep_help_bubbles:
help_bubbles:
ep_help_bubbles/static/js/help_bubbles.js:eejsBlock_editbarMenuRight
eejsBlock_editorContainerBox:
ep_embedded_hyperlinks2:
main:
ep_embedded_hyperlinks2/index
ep_mathjax:
mathjax:
ep_mathjax/hooks:eejsBlock_editorContainerBox
ep_table_of_contents:
ep_table_of_contents:
ep_table_of_contents/index
eejsBlock_exportColumn:
ep_markdown:
markdown:
ep_markdown/index
ep_stats:
stats:
ep_stats/index
eejsBlock_indexWrapper:
ep_padlist2:
ep_padlist2:
ep_padlist2
eejsBlock_mySettings:
ep_author_follow:
ep_author_follow:
ep_author_follow/index
ep_author_hover:
ep_author_hover:
ep_author_hover/index
ep_comments_page:
comments_page:
ep_comments_page/index
ep_custom_inline_toolbar:
custom_inline_toolbar:
ep_custom_inline_toolbar/index
ep_define:
ep_define:
ep_define/eejs
ep_desktop_notifications:
ep_desktop_notifications:
ep_desktop_notifications/desktop_notifications
ep_markdown:
markdown:
ep_markdown/index
ep_set_title_on_pad:
set_title_on_pad:
ep_set_title_on_pad/index
ep_spellcheck:
ep_spellcheck:
ep_spellcheck/spellcheck
ep_stats:
stats:
ep_stats/index
ep_table_of_contents:
ep_table_of_contents:
ep_table_of_contents/index
ep_webrtc:
ep_webrtc:
eejsBlock_permissionDenied:
ep_readonly_guest:
ep_readonly_guest:
ep_readonly_guest
eejsBlock_scripts:
ep_comments_page:
comments_page:
ep_comments_page/index
ep_embedmedia:
embedmedia:
ep_embedmedia/hooks:eejsBlock_scripts
ep_help_bubbles:
help_bubbles:
ep_help_bubbles/static/js/help_bubbles.js:eejsBlock_scripts
ep_markdown:
markdown:
ep_markdown/index
ep_mathjax:
mathjax:
ep_mathjax/hooks:eejsBlock_scripts
ep_stats:
stats:
ep_stats/index
ep_table_of_contents:
ep_table_of_contents:
ep_table_of_contents/index
ep_timestamp:
ep_timestamp:
ep_timestamp/timestamp
eejsBlock_styles:
ep_aa_file_menu_toolbar:
aa_file_menu_toolbar:
ep_aa_file_menu_toolbar/eejs
ep_comments_page:
comments_page:
ep_comments_page/index
ep_custom_inline_toolbar:
custom_inline_toolbar:
ep_custom_inline_toolbar/index
ep_embedmedia:
embedmedia:
ep_embedmedia/hooks:eejsBlock_styles
ep_help_bubbles:
help_bubbles:
ep_help_bubbles/static/js/help_bubbles.js:eejsBlock_styles
ep_image_upload:
ep_image_upload:
ep_image_upload/index
ep_mathjax:
mathjax:
ep_mathjax/hooks:eejsBlock_styles
ep_stats:
stats:
ep_stats/index
ep_table_of_contents:
ep_table_of_contents:
ep_table_of_contents/index
ep_template_content:
main:
ep_template_content/client
ep_timestamp:
ep_timestamp:
ep_timestamp/timestamp
ep_webrtc:
ep_webrtc:
eejsBlock_userlist:
ep_readonly_guest:
ep_readonly_guest:
ep_readonly_guest
exportEtherpadAdditionalContent:
ep_comments_page:
comments_page:
ep_comments_page/index
exportFileName:
ep_set_title_on_pad:
set_title_on_pad:
ep_set_title_on_pad/index
exportHTMLAdditionalContent:
ep_comments_page:
comments_page:
ep_comments_page/exportHTML
exportHtmlAdditionalTags:
ep_font_family:
main:
ep_font_family/index
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/index
exportHtmlAdditionalTagsWithData:
ep_comments_page:
comments_page:
ep_comments_page/exportHTML
ep_font_color:
main:
ep_font_color/exportHTML
ep_font_size:
main:
ep_font_size/exportHTML
expressCloseServer:
ep_etherpad-lite:
socketio:
ep_etherpad-lite/node/hooks/express/socketio
expressConfigure:
ep_etherpad-lite:
webaccess:
ep_etherpad-lite/node/hooks/express/webaccess
ep_image_upload:
ep_image_upload:
ep_image_upload/index
expressCreateServer:
ep_adminpads2:
ep_adminpads2:
ep_adminpads2
ep_comments_page:
comments_page:
ep_comments_page/index
ep_etherpad-lite:
admin:
ep_etherpad-lite/node/hooks/express/admin
adminplugins:
ep_etherpad-lite/node/hooks/express/adminplugins
adminsettings:
ep_etherpad-lite/node/hooks/express/adminsettings
apicalls:
ep_etherpad-lite/node/hooks/express/apicalls
errorhandling:
ep_etherpad-lite/node/hooks/express/errorhandling
i18n:
ep_etherpad-lite/node/hooks/i18n
importexport:
ep_etherpad-lite/node/hooks/express/importexport
openapi:
ep_etherpad-lite/node/hooks/express/openapi
padurlsanitize:
ep_etherpad-lite/node/hooks/express/padurlsanitize
socketio:
ep_etherpad-lite/node/hooks/express/socketio
specialpages:
ep_etherpad-lite/node/hooks/express/specialpages
static:
ep_etherpad-lite/node/hooks/express/static
tests:
ep_etherpad-lite/node/hooks/express/tests
ep_markdown:
markdown:
ep_markdown/express
ep_padlist2:
ep_padlist2:
ep_padlist2
ep_readonly_guest:
ep_readonly_guest:
ep_readonly_guest
ep_stats:
stats:
ep_stats/express
ep_workspaces:
Workspaces:
ep_workspaces/js/express.js
getLineHTMLForExport:
ep_align:
main:
ep_align/index
ep_comments_page:
comments_page:
ep_comments_page/exportHTML
ep_font_color:
main:
ep_font_color/exportHTML
ep_font_family:
main:
ep_font_family/index
ep_font_size:
main:
ep_font_size/exportHTML
ep_headings2:
main:
ep_headings2/index
ep_image_upload:
ep_image_upload:
ep_image_upload/exportHTML
handleMessage:
ep_define:
ep_define:
ep_define/handleMessage
ep_readonly_guest:
ep_readonly_guest:
ep_readonly_guest
ep_set_title_on_pad:
set_title_on_pad:
ep_set_title_on_pad/handleMessage
ep_webrtc:
ep_webrtc:
handleMessageSecurity:
ep_comments_page:
comments_page:
ep_comments_page/index
import:
ep_markdown:
markdown:
ep_markdown/index
loadSettings:
ep_button_link:
button_link:
ep_custom_inline_toolbar:
custom_inline_toolbar:
ep_custom_inline_toolbar/index
ep_image_upload:
ep_image_upload:
ep_image_upload/settings
ep_readonly_guest:
ep_readonly_guest:
ep_readonly_guest
ep_webrtc:
ep_webrtc:
padCopy:
ep_comments_page:
comments_page:
ep_comments_page/index
padCreate:
ep_adminpads2:
ep_adminpads2:
ep_adminpads2
padInitToolbar:
ep_align:
main:
ep_align/index
ep_code_formatting:
ep_code_formatting:
ep_code_formatting/index
ep_comments_page:
comments_page:
ep_comments_page/index
ep_custom_inline_toolbar:
custom_inline_toolbar:
ep_custom_inline_toolbar/index
ep_font_color:
main:
ep_font_color/index
ep_font_size:
main:
ep_font_size/index
ep_line_spacing:
main:
ep_line_spacing/index
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/index
padRemove:
ep_adminpads2:
ep_adminpads2:
ep_adminpads2
ep_comments_page:
comments_page:
ep_comments_page/index
ep_image_upload:
ep_image_upload:
ep_image_upload/index
preAuthorize:
ep_readonly_guest:
ep_readonly_guest:
ep_readonly_guest
restartServer:
ep_etherpad-lite:
express:
ep_etherpad-lite/node/hooks/express
shutdown:
ep_etherpad-lite:
DB:
ep_etherpad-lite/node/db/DB
express:
ep_etherpad-lite/node/hooks/express
Minify:
ep_etherpad-lite/node/utils/Minify
stats:
ep_etherpad-lite/node/stats
socketio:
ep_adminpads2:
ep_adminpads2:
ep_adminpads2
ep_comments_page:
comments_page:
ep_comments_page/index
ep_etherpad-lite:
adminplugins:
ep_etherpad-lite/node/hooks/express/adminplugins
adminsettings:
ep_etherpad-lite/node/hooks/express/adminsettings
socketio:
ep_etherpad-lite/node/handler/PadMessageHandler
ep_webrtc:
ep_webrtc:
:setSocketIO
ep_workspaces:
Workspaces:
ep_workspaces/js/socketio.js
stylesForExport:
ep_font_color:
main:
ep_font_color/exportHTML
ep_font_size:
main:
ep_font_size/exportHTML
ep_headings2:
main:
ep_headings2/index
ep_image_upload:
ep_image_upload:
ep_image_upload/exportHTML
Client-side hooks
aceAttribClasses:
ep_code_formatting:
ep_code_formatting:
ep_code_formatting/static/js/index
ep_font_family:
main:
ep_font_family/static/js/index
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/static/js/index
aceAttribsToClasses:
ep_align:
main:
ep_align/static/js/index
ep_code_formatting:
ep_code_formatting:
ep_code_formatting/static/js/index
ep_comments_page:
comments_page:
ep_comments_page/static/js/index
ep_embedded_hyperlinks2:
main:
ep_embedded_hyperlinks2/static/js/index
ep_embedmedia:
embedmedia:
ep_embedmedia/static/js/hooks:aceAttribsToClasses
ep_font_color:
main:
ep_font_color/static/js/index
ep_font_family:
main:
ep_font_family/static/js/index
ep_font_size:
main:
ep_font_size/static/js/index
ep_headings2:
main:
ep_headings2/static/js/index
ep_image_upload:
ep_image_upload:
ep_image_upload/static/js/clientHooks
ep_line_spacing:
main:
ep_line_spacing/static/js/index
ep_mathjax:
mathjax:
ep_mathjax/static/js/hooks:aceAttribsToClasses
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/static/js/index
aceCreateDomLine:
ep_code_formatting:
ep_code_formatting:
ep_code_formatting/static/js/index
ep_embedded_hyperlinks2:
main:
ep_embedded_hyperlinks2/static/js/index
ep_embedmedia:
embedmedia:
ep_embedmedia/static/js/hooks:aceCreateDomLine
ep_font_color:
main:
ep_font_color/static/js/index
ep_font_size:
main:
ep_font_size/static/js/index
ep_mathjax:
mathjax:
ep_mathjax/static/js/hooks:aceCreateDomLine
aceDomLineProcessLineAttributes:
ep_align:
main:
ep_align/static/js/index
ep_headings2:
main:
ep_headings2/static/js/index
ep_image_upload:
ep_image_upload:
ep_image_upload/static/js/clientHooks
ep_line_spacing:
main:
ep_line_spacing/static/js/index
aceEditEvent:
ep_align:
main:
ep_align/static/js/index
ep_author_neat2:
ep_author_neat2:
ep_author_neat2/static/js/index
ep_comments_page:
comments_page:
ep_comments_page/static/js/index
ep_font_color:
main:
ep_font_color/static/js/index
ep_font_family:
main:
ep_font_family/static/js/index
ep_headings2:
main:
ep_headings2/static/js/index
ep_stats:
stats:
ep_stats/static/js/stats
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/static/js/index
ep_table_of_contents:
ep_table_of_contents:
ep_table_of_contents/static/js/aceEditEvent:aceEditEvent
aceEditorCSS:
ep_code_formatting:
ep_code_formatting:
ep_code_formatting/static/js/index
ep_comments_page:
comments_page:
ep_comments_page/static/js/index
ep_custom_inline_toolbar:
custom_inline_toolbar:
ep_custom_inline_toolbar/static/js/index
ep_font_color:
main:
ep_font_color/static/js/index
ep_font_family:
main:
ep_font_family/static/js/index
ep_font_size:
main:
ep_font_size/static/js/index
ep_headings2:
main:
ep_headings2/static/js/index
ep_image_upload:
ep_image_upload:
ep_image_upload/static/js/clientHooks
ep_markdown:
markdown:
ep_markdown/static/js/markdown
aceInitialized:
ep_align:
main:
ep_align/static/js/index
ep_button_link:
button_link:
ep_button_link/static/js/main:postAceInit
ep_comments_page:
comments_page:
ep_comments_page/static/js/index
ep_custom_inline_toolbar:
custom_inline_toolbar:
ep_custom_inline_toolbar/static/js/index
ep_embedded_hyperlinks2:
main:
ep_embedded_hyperlinks2/static/js/index
ep_font_color:
main:
ep_font_color/static/js/index
ep_font_size:
main:
ep_font_size/static/js/index
ep_headings2:
main:
ep_headings2/static/js/index
ep_image_upload:
ep_image_upload:
ep_image_upload/static/js/clientHooks
ep_line_spacing:
main:
ep_line_spacing/static/js/index
ep_mathjax:
mathjax:
ep_mathjax/static/js/hooks:aceInitialized
aceInitInnerdocbodyHead:
ep_embedmedia:
embedmedia:
ep_embedmedia/static/js/hooks:aceInitInnerdocbodyHead
ep_mathjax:
mathjax:
ep_mathjax/static/js/hooks:aceInitInnerdocbodyHead
acePostWriteDomLineHTML:
ep_author_neat2:
ep_author_neat2:
ep_author_neat2/static/js/index
aceRegisterBlockElements:
ep_align:
main:
ep_align/static/js/index
ep_font_family:
main:
ep_font_family/static/js/index
ep_headings2:
main:
ep_headings2/static/js/index
ep_image_upload:
ep_image_upload:
ep_image_upload/static/js/clientHooks
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/static/js/index
aceSelectionChanged:
ep_code_formatting:
ep_code_formatting:
ep_code_formatting/static/js/index
ep_custom_inline_toolbar:
custom_inline_toolbar:
ep_custom_inline_toolbar/static/js/index
aceSetAuthorStyle:
ep_author_neat2:
ep_author_neat2:
ep_author_neat2/static/js/index
ccRegisterBlockElements:
ep_image_upload:
ep_image_upload:
ep_image_upload/static/js/contentCollection
chatNewMessage:
ep_desktop_notifications:
ep_desktop_notifications:
ep_desktop_notifications/static/js/desktop_notifications:chatNewMessage
collectContentImage:
ep_image_upload:
ep_image_upload:
ep_image_upload/static/js/contentCollection
collectContentPost:
ep_code_formatting:
ep_code_formatting:
ep_code_formatting/static/js/index
ep_font_family:
main:
ep_font_family/static/js/shared
ep_image_upload:
ep_image_upload:
ep_image_upload/static/js/contentCollection
ep_line_spacing:
main:
ep_line_spacing/static/js/shared
ep_mathjax:
mathjax:
ep_mathjax/static/js/shared
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/static/js/shared
collectContentPre:
ep_align:
main:
ep_align/static/js/shared
ep_code_formatting:
ep_code_formatting:
ep_code_formatting/static/js/index
ep_comments_page:
comments_page:
ep_comments_page/static/js/shared
ep_embedded_hyperlinks2:
main:
ep_embedded_hyperlinks2/static/js/index
ep_font_color:
main:
ep_font_color/static/js/shared
ep_font_family:
main:
ep_font_family/static/js/shared
ep_font_size:
main:
ep_font_size/static/js/shared
ep_headings2:
main:
ep_headings2/static/js/shared
ep_image_upload:
ep_image_upload:
ep_image_upload/static/js/contentCollection
ep_line_spacing:
main:
ep_line_spacing/static/js/shared
ep_mathjax:
mathjax:
ep_mathjax/static/js/shared
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/static/js/shared
handleClientMessage_ACCEPT_COMMIT:
ep_author_follow:
ep_author_follow:
ep_author_follow/static/js/follow:handleClientMessage_ACCEPT_COMMIT
ep_table_of_contents:
ep_table_of_contents:
ep_table_of_contents/static/js/aceEditEvent:aceEditEvent
handleClientMessage_CUSTOM:
ep_define:
ep_define:
ep_define/static/js/index
ep_set_title_on_pad:
set_title_on_pad:
ep_set_title_on_pad/static/js/index
handleClientMessage_NEW_CHANGES:
ep_author_follow:
ep_author_follow:
ep_author_follow/static/js/follow:handleClientMessage_NEW_CHANGES
ep_table_of_contents:
ep_table_of_contents:
ep_table_of_contents/static/js/aceEditEvent:aceEditEvent
handleClientMessage_RTC_MESSAGE:
ep_webrtc:
ep_webrtc:
ep_webrtc/static/js
postAceInit:
ep_aa_file_menu_toolbar:
aa_file_menu_toolbar:
ep_aa_file_menu_toolbar/static/js/index:documentReady
ep_align:
main:
ep_align/static/js/index
ep_announce:
ep_announce:
ep_announce/static/js/announce:announce.postAceInit
ep_author_follow:
ep_author_follow:
ep_author_follow/static/js/follow:postAceInit
ep_author_hover:
ep_author_hover:
ep_author_hover/static/js/index
ep_author_neat2:
ep_author_neat2:
ep_author_neat2/static/js/index
ep_clear_formatting:
clear_formatting:
ep_clear_formatting/static/js/clear_formatting
ep_comments_page:
comments_page:
ep_comments_page/static/js/index
ep_copy_paste_select_all:
copy_paste_select_all:
ep_copy_paste_select_all/static/js/copy_paste_select_all
ep_custom_inline_toolbar:
custom_inline_toolbar:
ep_custom_inline_toolbar/static/js/index
ep_define:
ep_define:
ep_define/static/js/index:postAceInit
ep_desktop_notifications:
ep_desktop_notifications:
ep_desktop_notifications/static/js/desktop_notifications:postAceInit
ep_embedded_hyperlinks2:
main:
ep_embedded_hyperlinks2/static/js/index
ep_font_color:
main:
ep_font_color/static/js/index
ep_font_family:
main:
ep_font_family/static/js/index
ep_font_size:
main:
ep_font_size/static/js/index
ep_headings2:
main:
ep_headings2/static/js/index
ep_line_spacing:
main:
ep_line_spacing/static/js/index
ep_markdown:
markdown:
ep_markdown/static/js/markdown
ep_mathjax:
mathjax:
ep_mathjax/static/js/hooks:postAceInit
ep_set_title_on_pad:
set_title_on_pad:
ep_set_title_on_pad/static/js/index:documentReady
ep_spellcheck:
ep_spellcheck:
ep_spellcheck/static/js/spellcheck:postAceInit
ep_stats:
stats:
ep_stats/static/js/stats
ep_subscript_and_superscript:
main:
ep_subscript_and_superscript/static/js/index
ep_table_of_contents:
ep_table_of_contents:
ep_table_of_contents/static/js/postAceInit:postAceInit
ep_template_content:
main:
ep_template_content/static/js/index
ep_timestamp:
ep_timestamp:
ep_timestamp/static/js/postAceInit:postAceInit
ep_webrtc:
ep_webrtc:
ep_webrtc/static/js
postToolbarInit:
ep_align:
main:
ep_align/static/js/index
ep_code_formatting:
ep_code_formatting:
ep_code_formatting/static/js/index
ep_comments_page:
comments_page:
ep_comments_page/static/js/index
ep_custom_inline_toolbar:
custom_inline_toolbar:
ep_custom_inline_toolbar/static/js/index
ep_font_color:
main:
ep_font_color/static/js/index
ep_font_size:
main:
ep_font_size/static/js/index
ep_image_upload:
ep_image_upload:
ep_image_upload/static/js/toolbar
ep_readonly_guest:
ep_readonly_guest:
ep_readonly_guest/static/js/client
userJoinOrUpdate:
ep_announce:
ep_announce:
ep_announce/static/js/announce:announce.userJoinOrUpdate
ep_webrtc:
ep_webrtc:
ep_webrtc/static/js
userLeave:
ep_announce:
ep_announce:
ep_announce/static/js/announce:announce.userLeave
ep_webrtc:
ep_webrtc:
ep_webrtc/static/js

@JohnMcLear
Copy link
Member

Please provide the commands to replicate.

@lisandi
Copy link
Author

lisandi commented Oct 1, 2021

What commands?

You open up admin/plugin in an empty fresh installed etheropad - we installed ours using git clone
than we opened admin/plugin
and installed one by one all plugins and stopped by those who caused a problem - i.e. because of relative link missing - that is why we wrote som many stuff on github the last days.
and we continued with the next plugin.
To install such a plugin you have to click on "install" of each plugin in the admin/plugin list
then you wait until everything is loaded and then we checked the frontend if it is still working, if yes we made a copy as it was working.
There was no command involved!
When we saw the errors in developer tools we deinstalled and fixed those locally and reinstalled it again for testing. when it worked we made a report on github with the PR.

Only the last plugin - which was ep_imageconvert was crashing the complete installation as it did not even get installed in admin/plugins and hang up there. - we then saw that the code got installed but even after replacing that code we could the site not get working again.

After each install of a plugin, we waited before we installed the next one or deinstalled the one that was giving errors because of the relative path missing. yesterday we realized that the admin/plugin seems to have problems when you click more than one plugins to be installed - But today we actually started with a completely fresh install. The goal was to find those plugins which work together.

We started etherpad with the normal command run.sh and ran the dependency script before we started to install plugins.

We did actually only what also our schools and their staff (students and teachers) would do - click and click!

@JohnMcLear
Copy link
Member

to install plugins you can do

npm install ep_font_size

etc. so go through the process and provide exact commands to replicate the import/export issue :)

We have to be able to replicate step by step and commands allows us to do this.

@JohnMcLear
Copy link
Member

I'm gonna close this as it's likely it's due to plugins and not a core issue.

@lisandi
Copy link
Author

lisandi commented Oct 1, 2021

Closing doesn't solve the problem and looks more like ignoring the fact that things are not working as they should!
We install plugins the way recommended in the manual and that is via the admin plugin. Ao if that isn't working properly it is definitely a core issue as the admin/plugin part is core! In other words, I rather would keep that issue open if you are looking for a solution and don't want to frustrate developers who spend hours and actually days meanwhile looking for tons of bugs which thanks to our contributions and feedbacks which helped the developers to address the problems have been solved. If you want more people HELPING and actively getting involved so please keep those issues OPEN and don't close them down as that is also concerning the all the other closed issues without addressing - actually obviously IGNORING those issues. The interesting part in all of it is actually is that tons of issues now got UNSOLVED closed (Ignored) and even the actual developer has not even responded - or did you develop all those plugins?

It can be that problems are from a plugin but then it is a plugin that got installed orderly via the admin plugin and if that admin plugin is installing plugins without checking that they are even working or existing then it is definitely something that needs to get addressed. NONE of the students or teachers will have even access to the coding part!

You can do also the following and simply taking the list and copy always an "npm install" in front of the plugin name and a of course a

  1. systemctl stop etherpad-lite���
  2. systemctl status etherpad-lite (check to see what is wrong when shutting down - perhaps something is visible here - but actually nothing was visible so far)
  3. Ctrl C
  4. npm i [plugin-name] or npm install [plugin-name]
  5. If necessary do adjustment to settings.php according to the plugin documentation if that exists at all!
  6. run src/bin/installDeps.sh from etherpad-lite directory to install dependencies
  7. systemctl start etherpad-lite�
  8. systemctl enable etherpad-lite
  9. systemctl status etherpad-lite (check to see what is wrong when starting - perhaps something is visible here - but actually nothing was visible so far)
  10. Ctrl C
  11. Check in Frontend
  12. Check in admin plugin
  13. If OK do the same with next plugin -> start again with 1
  14. If not OK uninstall plugin from list via admin/plugin (if possible - with ep_imageconvert it wasn't even possible) do 1,2,3
  15. apply fixes i.e. relative paths, missing css etc.
  16. if plugin did not start remove the plugin folder if it exists in the node_modules folder.
  17. start again with 1 just to make sure that it really stopped.

The point is that this procedure will not be the reality when people are using etherpad. They will do it the recommended way via the admin plugin interface and as long as that clutter of working and non-working and non-relative paths and not existing folders and log files or whats however blocks complete sites and installation it will cause only one thing FRUSTRATION!

To get rid of that frustration factor that admin/plugin repository Issue DOES NOT have to be CLOSED but instead kept open so that as many people as possible can see that problem, test it out on their own installations, give feedback, give ideas on how to solve it, etc. Closing all those issues has exactly the opposite effect - A closed issue can NOT BE FOUND as it won't get listed anymore - so it is nothing else than PUR IGNORANCE which rules here and that is pretty unprofessional when it comes to mobilizing people and getting people actively involved.

We for us will do now one thing, we will simply redirect all those issues to the students and teachers involved and they can then respond themselves in the languages they know i.e. Thai, Burmese, Swahili and then you can figure out their solutions ideas or bugs.

I strongly recommend that you REOPEN all those issues incl the icon stuff and wait for RESULTS instead of closing issues that you don't like to be getting into public! The fact that in the last 3 days a whole lot of issues that have been existing for years even have been fixed shows actually that it is much better to address issues instead of closing and ignoring those Jm2c

Always keep in mind that with a little more HELP from your site - instead of closing threads which is completely demotivating for people who found valid issues (I am only the one posting all those as otherwise you would not understand their language!) and besides that each one of those helping here would need an own GitHub account what they don't have.

Help from your site could be i.e.

  1. How to integrate a Button Menu item to fileadmin menu
  2. How to get rid of those translation errors - the translations are already all done on translation wiki and some additional in the plugins but we also saw that many plugins do not even have a localize folder!!! - Is that needed for each plugin or does all get done at a central place i.e. translation wiki and then either gathered at one place or distributed to each localize folder of the plugins? All such information would be very useful and helpful but can't be found in the translation parts of the wiki and documentation!
  3. What should finally be the standard folder structure - also here many seem to the folder all kinds of other structures. While we try to find more bugs more missing relative links and more missing code actually like 404 or empty directories or site crashing plugins when installing those via admin plugin, we could also simply FIX those folder problems. Usually, in those plugins, not much code is involved and it would be easy to do. But as mentioned that needs definitely OPEN ISSUES and not constantly closed issues that have not even been addressed, discussed, and SOLVED.

Yes, it might sound like a teacher is but sorry that is what I am and I try to help where I can and motivate others to step in if possible but your method of closing issues is completely contraproductive! It will only cost constant time to reopen them when new ideas for a solution come up and then actually waiting if they again get closed as fast as possible by you!

Have anice weekend!
And please overthink you strategy and will of having people to contribute!

@JohnMcLear
Copy link
Member

Please see the community guidelines. We don't want anyone toxic spamming github repo issues. If this behaviour continues I will be required to block you. I will give you a few days to cool down and review/edit your comments.

@webzwo0i
Copy link
Member

webzwo0i commented Oct 1, 2021

@lisandi
Please be polite. In case an issue is closed, don't be offended but think about why it doesn't meet our issue guidelines. You can always join discord (although I'm not very active there lately) or open up a discussion here on Github. Issues are something we work with everyday, so they need to comply to some rules.

Some of the problems you described are very complicated, some have been discussed in the past, some aren't core issues. E.g. if a plugin doesn't correctly export, it's not a core issue. If you have a good idea how we could support admins when they need to decide "Should I install this plugins? What won't work after installing this plugin? What problems with this plugin are currently known?" then don't hesitate. Maybe even a big meta issue like "Better /admin/plugins" etc. is possible, if it's clear which features you want or which problems you'd like to tackle. If you think something is clearly a bug "It's possible to install plugins via /admin/plugins that crash my instance" and people have another opinion (feature not a bug), don't be offended. Maybe there is a solution to the problem that we can work on (like a curated list of plugins, where curated means there are tests, coverage is more than X percent, no core tests fail when the plugin is installed, no other plugins fail when the plugin is installed), but maybe some of the problems won't go away (ie I can write a hostile plugin that fulfills all the above requirements). We won't do a "whitelist", ie review all plugins, but maybe another plugin, "ep_community_reviewed" is possible that collects information and helps admins decide if they should install a plugin.

Also if you think we should add other labels like "in-discussion" or "agreed-on-a-solution" that shouldn't be closed by stale bot etc. that reflect the outcome of a discussion, we can talk about it.

But no matter how good your ideas are, if you aren't polite and nice nobody will consider them. And if you threat someone ("I'll direct all problems to someone else who then will open up thousands of issues in languages you don't understand...") or talk about "pure ignorance" then please use other software.

@lisandi
Copy link
Author

lisandi commented Oct 2, 2021

"Should I install this plugins? What won't work after installing this plugin? What problems with this plugin are currently known?" then don't hesitate.

That I have done already many times but now even get warned to get blocked as an answer.

Maybe even a big meta issue like "Better /admin/plugins" etc. is possible if it's clear which features you want or which problems you'd like to tackle.

This issue got closed too and not solved. Instead of closing make it a feature request - just to give you an idea! Because as a feature request it will still be visible for others, they get motivated to step in there and to contribute, while closing will frustrate them as they see that they as someone who can't not even speak properly English and need the help of i.e. me to write down their ideas in English. Then it is again only a "western" thing. And that should not be the case at all. How can they follow discord when all is in English and not in Thai or their languages? Then here again they would need me as the middle man and doing that via discord would mean to be constantly online and listening - but I have to do also my regular job and have my family and a whole bunch of children who like to see their father and caretaker not only sitting in front of discord.

The main problem is the way the plugin management is done - The way the plugins get allowed to be part of the list inside the admin plugin repository - Simply check out how many "relative path issues" had been addressed in the last days by me (us) and how many actually got followed by a pullrequest done again by us. Check how many times issues came actually up which were caused by that missing (actually wrong) relative path. or lets say two dots in front of that slash.

To solve that issue for the admin/plugin repo it is a simple download of ALL plugins into a directory locally, if they only would also all then get downloaded!!!, and then running a search and replace for those missing 2 dots, when done testing if the relative path messages still appear and if they are gone submitting the pull request. Nothing else we actually did the last days and we did that to solve that issue and the motivation to do so - instead of ignoring it - was that they saw that their contribution gets "honored" by being accepted. We work here not with testing scripts instead we simply do real-world testing. Install try and error often even. Admins who maintain the etherpad will have access to the admin/plugin interface and therefore that must be changed to something which is reliable.

Guidelines and rules are worthless if simple basic rules are not even met - which means that every plugin needs a description of what it is actually doing. And that description has to be available in the npm repository as that is the one the plugin name is linking to. Just as an example the problem yesterday - so you see what actually happened after one day's of work and contribution!!!

We installed via admin/plugin - that is the recommended way to install a plugin and I hope you agree in that - we installed one by one a whole lot of plugins which all worked nicely together - in between we submitted the pull request for issues we fixed - quite a whole lot - most of them has been merged pretty fast which was good as were able to update the plugins which had been merged via the admin/plugin interface - which is also the recommended way to do so - and we continued to install the next plugin. 38 times actually - a whole lot plugins but OK they worked together and also here on github there was a work together which helped the community and us too as the fast acceptance of pull-requests definitely motivated all here to do much more. Internal communication is in very broken English and Thai, sometimes Swahili or Burmese, Some of those I need also a translator but as we have people here you know some of those languages no problem, even they, unfortunately, can't code but they help in translation. With the admins who actually, later on, would maintain all the etherpads in their schools there might be nobody who can translate! But of course, they could try to get an answer like me on Github and report issues, they won't understand all the talking on discord either as English proficiency is pretty low here, especially in rural areas! And the idea is not to integrate those etherpads for international schools with a huge budget but instead using it as a tool for pretty poor schools here and in Africa "Montessori for All" so they can better cope with Pandemic and past pandemic situations. If we take ourselves out of that whole (or get blocked) then they have only one chance to get answers and that is to write themselves - what most probably won't do because some of them had already the experience that they get ignored when not writing in proper English, what they can't.

On the other hand, they saw that their help and contribution get honored by being accepted in the past few days. But having issues that are actually not solved closed is not the right way as it demotivates those who like actually to dig into it. From the motivational point - the one I am having here - it is completely contra-productive.

I have no idea what or who adds labels but it sounds as a good idea.

The same applies to the idea of a community review plugin but when the information collected with it won't be available and visible directly in the admin/plugin list again it would not help much. We already realized that we perhaps should set up a complete separate repository with only those plugins which are working and then link the admin/plugin interface to it, or another idea which came up was to simply rename all those where we contributed or which work or which should get combined and posting those on npm and then get perhaps listed in this plugin list too - but honestly I did not like that idea as it would only clutter that list even more.

Check out how many plugins are in that list - tables = 4 or more - all doing the same - some abandonned, some not working - but which one is working??? - adminpad and adminpad2, headings and headings2 and with some you have pluginname and pluginname2 but actualy pluginname is the one which gets better maintained. All of that is a clear chaos! and makes it real difficult for an admin to find the right one which does not cause a crashing etherpad.

Yesterday we had chosen: ep_imageconvert - it was listed, we checked even the developer and saw that it is probably a good one as we had already many of him installed and they were working. but boom - all was gone. We then tried to find the repo as we wanted to compare if their is a newer version but the link to the repo was 404. That actually then started to check some other plugins whe hadn't installed until now - and we listed those already as some even had not even one line code in their repositories - so why do those still get listed in admin/plugin .

The admin does NOT know that perhaps some code or parts of it or some dependencies or whats however got installed as he can't see what is going on during the installation process in the admin/plugin panel. He only gets presented with the result of an installation process. In the case of ep_imageconvert that was a hanging installation process that did not end. So when something hangs up the admin does a reload - and Boom he was out of service and could not even access the etherpad anymore or the plugin/admin interface - well he had it open in a second window too but as there is no way to delete or cancel an installation process which would help to reverse all steps of the already done installation process, it did not help much.

That was then the case where my help was needed again, but even the restart and manual deinstall did not help much, and as it was simply a way too late already we postponed that stuff till later.

Maybe there is a solution to the problem that we can work on (like a curated list of plugins,)

This is meanwhile the only way we see as a proper solution as the etherpad we need has to be maintainable by ADMINS and not by PROGRAMMERS of SYSADMINS with root access. And those problems with hanging and not working or conflicting plugins have to be avoided!

By the way, thanks for your very very useful contribution in the other thread about the admin interface - Your answer solves a whole lot as we now know where to look at it! And those answers are needed much more to solve the problems etherpad has in usability for admins - and users (the icons issue) which should be a feature request but not closed! as there is a way to make it accessible - we posted it already in the "icon" threads.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants