Collude - un éditeur de texte collaboratif pour Discourse

Cool, it seems to be working alright on that instance with a cursory test; yes I’ve pushed the changes to the plugin repo. :slight_smile:

If you encounter an issue with the text disappearing again, would you mind PMing me the output of the following command in the rails console?

Topic.find(<topic_id>).posts.first.collusions
1 « J'aime »

I rebuilt the container and now all instances in the Multisite setup have a working Collude!
Kudos @gdpelican.

2 « J'aime »

Somehow something is wrong. I started to edit, then another person came to see the topic, and the machine load started to run through the roof: all editing was lost. I cannot debug now, probably better next month as I’m rushing towards a hard deadline, but I’d appreciate other reports (of success or failure) with this plugin since I really like the principle. Otherwise I will have to consider running an external CodiMD instance which is also great.

1 « J'aime »

I get the below errors when using collude:

Recent
Message

Uncaught TypeError: Cannot read property 'get' of undefined
Url: http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df13c9.js
Line: 11
Column: 24050
Window Location: http://mercury/t/integralas-a-masterre-rfc/149/6

Backtrace

TypeError: Cannot read property 'get' of undefined
    at i.disabledFor (http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df13c9.js:11:24050)
    at http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df13c9.js:11:24958
    at http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:1148
    at Array.map (<anonymous>)
    at c (http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:1125)
    at t.html (http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:72:14939)
    at t.m [as draw] (http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:2198)
    at t.value (http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:5263)
    at i (http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:16906)
    at r (http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:16819)

Env
hostname	mercury-discourse
process_id	9576
application_version	6fec4982d903cbb088f95b5dcae7b67f52a90e99
HTTP_HOST	mercury
REQUEST_URI	/logs/report_js_error
REQUEST_METHOD	POST
HTTP_USER_AGENT	Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
HTTP_ACCEPT	*/*
HTTP_REFERER	http://mercury/t/integralas-a-masterre-rfc/149/6
HTTP_X_FORWARDED_FOR	192.168.2.234
HTTP_X_REAL_IP	192.168.2.234
	
params	
message	Uncaught TypeError: Cannot read property 'get' of undefined Url: http://mercury/assets/plugin-third-p
url	http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df
line	11
column	24050
window_location	http://mercury/t/integralas-a-masterre-rfc/149/6
stacktrace	TypeError: Cannot read property 'get' of undefined at i.disabledFor (http://mercury/assets/plugin

and


Recent
Message

TypeError: t is undefined
Url: http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df13c9.js
Line: 11
Column: 24021
Window Location: http://mercury/t/egyseges-lehetoleg-cegesen-egyseges-gitlab-workflow/177

Backtrace

disabledFor@http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df13c9.js:11:24021
s/<@http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df13c9.js:11:24958
c/<@http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:1148
c@http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:1125
html@http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:72:14939
m@http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:2198
value@http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:74:5263
i@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:16906
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:16836
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:10297
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:10595
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:10595
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:10595
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:10595
o@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:11969
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:11637
o@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:13452
i@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:13316
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:11837
o@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:13452
i@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:13316
r@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:5:13139
rerenderWidget@http://mercury/assets/application-854cd242b33a3d81896cdc71e1e8b74d7af66cb0eb20c47894a900f5854ad957.js:33:8368
g</t.invoke@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:16:6927
g</t.flush@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:16:5930
y</t.flush@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:16:7980
z</r._end@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:16:12654
z</r.end@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:16:9317
z</r._run@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:16:13143
z</r.run@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:16:9925
l@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:12:447
bootbox</c.dialog/<@http://mercury/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js:2:515
dispatch@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:2:19650
add/v.handle@http://mercury/assets/ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:2:17641

Env
hostname	mercury-discourse
process_id	9547
application_version	6fec4982d903cbb088f95b5dcae7b67f52a90e99
HTTP_HOST	mercury
REQUEST_URI	/logs/report_js_error
REQUEST_METHOD	POST
HTTP_USER_AGENT	Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0
HTTP_ACCEPT	*/*
HTTP_REFERER	http://mercury/t/egyseges-lehetoleg-cegesen-egyseges-gitlab-workflow/177
HTTP_X_FORWARDED_FOR	192.168.2.206
HTTP_X_REAL_IP	192.168.2.206
	
params	
message	TypeError: t is undefined Url: http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b9
url	http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977a712385207df
line	11
column	24021
window_location	http://mercury/t/egyseges-lehetoleg-cegesen-egyseges-gitlab-workflow/177
stacktrace	disabledFor@http://mercury/assets/plugin-third-party-5d2db6ac05f499c3b3bf48f1732b98542795b2cfffccd977

Any advice?

Thanks

Same issue, I think:

Details

Uncaught (in promise) TypeError: _.contains is not a function
at t.menuItems (_collude-8cf680b8d5b8b353d07c7a93fc15aa0adf31757fcafde3c597cc540ffb076eb2.js:87)
at t.n. [as menuItems] (_application-f091afbd42ff5aa3c8221ab59e2618145b4275299b034c729a5f616d84fb4852.js:75808)
at t.html (_application-f091afbd42ff5aa3c8221ab59e2618145b4275299b034c729a5f616d84fb4852.js:71464)
at t.value (_application-f091afbd42ff5aa3c8221ab59e2618145b4275299b034c729a5f616d84fb4852.js:76137)
at t.value (_application-f091afbd42ff5aa3c8221ab59e2618145b4275299b034c729a5f616d84fb4852.js:75910)
at i (_vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:18308)
at r (_vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:18291)
at u (_vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:18695)
at i (_vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:18563)
at o (_vendor-fae393575cd14697b31e9fdbeb8c016d165a8a3af765ec8ca719a454585aedf4.js:18639)

@gdpelican this is broken at the moment, is it a plugin you are interested in supporting long term or are you looking to hand it over?

Also noticed there is no license file, is this intended to be MIT?

8 « J'aime »

Ce plugin d’édition collaborative a l’air vraiment génial. Il s’intégrerait parfaitement à l’instance Discourse que j’utilise.

Des nouvelles à ce sujet ? Quelqu’un a-t-il l’intention de travailler dessus pour le rendre à nouveau fonctionnel ?

Merci.

4 « J'aime »

@sam voici la licence MIT du projet Github for Collude plugin. Merci pour le partage @fabien. Cela ressemble à un plugin très utile ! Combiné avec Babble Chat - #334 by jrgong, il semble que cela puisse reproduire entièrement l’expérience d’Etherpad au sein de Discourse en fonction des niveaux de confiance. Très cool.

2 « J'aime »

J’aurais adoré essayer, mais je suppose que comme il est marqué « broken-plugin », il n’y a aucun intérêt à essayer pour le moment… :frowning:

Y a-t-il des nouvelles concernant le problème avec ce plugin ? Il semble qu’il ne soit pas encore prêt pour la production, mais il serait utile de comprendre son statut actuel.

L’année dernière, il y avait une certaine instabilité dans les modifications, ce qui signifiait qu’un éditeur pouvait perdre les modifications des autres éditeurs, et personne n’était disponible pour déboguer le problème. Depuis, l’API des plugins Discourse a évolué, et le plugin a été abandonné. Peut-être que @gdpelican a plus d’informations et peut-être l’envie de reprendre cette excellente idée. Avoir un pad intégré en temps réel, de type wiki et multi-éditeurs, serait toujours formidable.

Voir ici :

8 mars 2020 :

9 mars 2020 :

3 « J'aime »

Ce serait certainement excellent pour nos forums médicaux, où nous devons élaborer conjointement des directives nationales et autres — or Google Docs est bloqué par de nombreuses organisations de santé, ce qui nous empêche de l’utiliser.

Ce serait formidable d’avoir cela en place et bien intégré dès le début de la folie de la COVID-19 ; cela constituerait un véritable atout.

3 « J'aime »

Nous avons un fork sur lequel @tshenry a effectué des tests et que @mbcahyono a développé.

Nous sommes très proches de le faire devenir le nouveau collude et de le rendre éventuellement officiellement pris en charge sur notre offre entreprise. C’est un problème assez complexe qui nécessite de nombreux tests pour être confiant quant à ce plugin.

10 « J'aime »

Une autre option que vous pouvez utiliser pour vous dépanner et que j’utilise personnellement est https://hackmd.io - elle génère même du Markdown à la fin, vous pouvez donc le copier directement dans Discourse :grin:

2 « J'aime »

Cela a l’air vraiment cool – merci. C’est un peu trop axé sur la technique pour mon équipe, moins familière avec l’informatique, je pense ; je vais certainement attendre avec impatience ce plugin. Ce serait tout simplement génial de pouvoir le faire nativement dans Discourse.

3 « J'aime »

En fait, Librehosters a repris le projet GitHub - fuerst/embed-etherpad-lite: Embed Etherpad Lite pads into Discourse posts using Onebox. · GitHub pour prendre en charge CodiMD (la « communauté fork » de HackMD), qui est en cours de renommage à nouveau…

C’est très simple à utiliser et vous pouvez reprendre le projet https://lab.libreho.st/librehosters/embed-codimd pour votre propre configuration. Il serait utile d’avoir un paramètre pour l’hôte du pad, mais cela demande plus de travail. Librehosters utilise SAML SSO entre CodiMD et Discourse, de sorte que seuls les membres peuvent modifier les pads.

4 « J'aime »

En lisant le plugin.rb, cela semble extrêmement simple - n’aurais-tu pas pu réaliser cela avec une entrée dans allowed iframes + un générateur quelque part ou des balises oEmbed ?

3 « J'aime »

Honnêtement, je ne sais pas et je n’ai pas essayé. Si vous trouvez un moyen d’éviter d’utiliser un plugin pour cela, n’hésitez pas à le partager ! :slight_smile:

1 « J'aime »

Cela dit, @riking, tu m’as fait réfléchir. Comment procéderiez-vous pour créer « un générateur quelque part » ?

Je pense qu’il est excessif de réinstaller un plugin onebox spécifique pour ce site. Il devrait plutôt être possible d’utiliser des composants de thème qui ne nécessitent pas de reconstruire le conteneur. Quelqu’un a-t-il déjà travaillé sur un composant de thème onebox (générique) ?

La meilleure option serait bien sûr que les mainteneurs en amont corrigent leurs balises oEmbed d’une manière compatible, afin que nous puissions simplement coller le lien.

1 « J'aime »