99 lines
3.5 KiB
Plaintext
99 lines
3.5 KiB
Plaintext
# Cohabitation de Collabora Online et OnlyOffice sur Nextcloud
|
|
|
|
* 2020-10-20 11:58:23
|
|
* Développement, Divers
|
|
|
|
```html
|
|
<p>J'utilise énormément mon instance Nextcloud et dans certaines situations, j'ai besoin
|
|
d'éditer soit des fichiers Open Document Format (format natif de LibreOffice)
|
|
ou soit des fichiers Open XML (format natif de la suite office de Microsoft).</p>
|
|
```
|
|
|
|
```html
|
|
<p>L'an passé, j'utilisais exclusivement <a href="https://www.onlyoffice.com/fr/">OnlyOffice</a> via
|
|
son <a href="https://apps.nextcloud.com/apps/onlyoffice">connecteur Nextcloud</a> et une instance
|
|
installée sur un serveur dédié. Puis, lors d'<a href="https://github.com/ONLYOFFICE/DocumentServer/issues/805">un déboire au sujet de l'édition
|
|
depuis un terminal mobile</a>, j'ai décidé
|
|
de migrer vers <a href="https://www.collaboraoffice.com/fr/code/">Collabora Online</a> via
|
|
son <a href="https://apps.nextcloud.com/apps/richdocuments">connecteur Nextcloud</a> et une instance
|
|
installée sur un serveur (presque) dédié.</p>
|
|
```
|
|
|
|
```html
|
|
<p>Le problème est que si Collabora Online sait très bien traiter les fichiers ODF,
|
|
il galère un peu plus avec les fichiers Open XML. Aussi, force est de constater que
|
|
OnlyOffice reste très performant pour jouer avec Open XML. J'ai donc
|
|
décidé de les installer ensemble. Collabora Online est donc l'éditeur ouvert pour
|
|
les documents ODF tandis que OnlyOffice le sera pour les fichiers Open XML.</p>
|
|
```
|
|
|
|
```html
|
|
<p><img src="https://upload.deblan.org/u/2020-10/5f8eb3c9.png" alt="Collabora Online et OnlyOffice" /></p>
|
|
```
|
|
|
|
```html
|
|
<p>Afin de les discerner dans le menu pour créer un nouveau document, j'ai développé
|
|
un bout de javascript que vous pouvez injecter via <a href="https://apps.nextcloud.com/apps/jsloader">JSLoader</a>.
|
|
Je pense d'ailleurs que cela sera une bonne idée de forker cette application
|
|
afin d'en reprendre la maintenance.</p>
|
|
```
|
|
|
|
```html
|
|
<p><img src="https://upload.deblan.org/u/2020-10/5f8eb3b3.png" alt="Cohabitation de Collabora Online et OnlyOffice sur Nextcloud" /></p>
|
|
```
|
|
|
|
```html
|
|
<p>Alors ce n'est sans doute pas le code le plus élégant mais il fonctionne bien.</p>
|
|
```
|
|
|
|
```html
|
|
<pre><code class="language-js" data-title="Code à insérer dans JS Loader">try {
|
|
setInterval(function() {
|
|
var elements = {
|
|
'docx': 'onlyofficeDocx',
|
|
'xlsx': 'onlyofficeXlsx',
|
|
'pptx': 'onlyofficePpts',
|
|
};
|
|
|
|
for (var i in elements) {
|
|
var selector = 'a.menuitem[data-action="' + elements[i] + '"] .displayname';
|
|
var span = document.querySelector(selector);
|
|
|
|
if (!span) {
|
|
return;
|
|
}
|
|
|
|
if (span.innerHTML.indexOf(i) !== -1) {
|
|
continue;
|
|
}
|
|
|
|
span.innerHTML = (i !== 'docx' ? 'Nouvelle ' : 'Nouveau ') + span.innerHTML.toLowerCase() + ' (' + i + ')';
|
|
}
|
|
|
|
elements = {
|
|
'odt': 'add-odt',
|
|
'ods': 'add-ods',
|
|
'odp': 'add-odp',
|
|
};
|
|
|
|
for (var i in elements) {
|
|
var selector = 'a.menuitem[data-action="' + elements[i] + '"] .displayname';
|
|
var span = document.querySelector(selector);
|
|
|
|
if (!span) {
|
|
return;
|
|
}
|
|
|
|
if (span.innerHTML.indexOf(i) !== -1) {
|
|
continue;
|
|
}
|
|
|
|
span.innerHTML = span.innerHTML + ' (' + i + ')';
|
|
}
|
|
}, 100);
|
|
} catch (e) {
|
|
|
|
}
|
|
</code></pre>
|
|
```
|