Skip to content
Snippets Groups Projects
Commit 7f934d58 authored by uhensler's avatar uhensler
Browse files

OO-3933: Option to confirm the data transfer to the external editor

parent 836baafb
No related branches found
No related tags found
No related merge requests found
Showing
with 275 additions and 14 deletions
......@@ -69,6 +69,11 @@ public class FileEditor implements DocEditor {
return translator.translate("editor.display.name");
}
@Override
public boolean isDataTransferConfirmationEnabled() {
return false;
}
@Override
public boolean isSupportingFormat(String suffix, Mode mode, boolean hasMeta) {
// Both the HTML editor and the text editor supports view and edit
......
......@@ -42,6 +42,8 @@ public interface DocEditor {
String getType();
String getDisplayName(Locale locale);
boolean isDataTransferConfirmationEnabled();
/**
* Indicates whether the editor supports the format with that suffix in the appropriate mode.
......
......@@ -65,6 +65,11 @@ public class CollaboraEditor implements DocEditor {
return translator.translate("editor.display.name");
}
@Override
public boolean isDataTransferConfirmationEnabled() {
return collaboraModule.isDataTransferConfirmationEnabled();
}
@Override
public boolean isSupportingFormat(String suffix, Mode mode, boolean hasMeta) {
return hasMeta && collaboraService.accepts(suffix, mode);
......
......@@ -38,11 +38,14 @@ public class CollaboraModule extends AbstractSpringModule implements ConfigOnOff
private static final String COLLABORA_ENABLED = "collabora.enabled";
private static final String COLLABORA_BASE_URL = "collabora.baseUrl";
private static final String COLLABORA_DATA_TRANSER_CONFIRMATION_ENABLED = "collabora.data.transfer.confirmation.enabled";
@Value("${collabora.enabled:false}")
private boolean enabled;
@Value("${collabora.baseUrl}")
private String baseUrl;
@Value("${collabora.data.transfer.confirmation.enabled:false}")
private boolean dataTransferConfirmationEnabled;
@Autowired
private CollaboraModule(CoordinatorManager coordinateManager) {
......@@ -69,6 +72,11 @@ public class CollaboraModule extends AbstractSpringModule implements ConfigOnOff
if(StringHelper.containsNonWhitespace(baseUrlObj)) {
baseUrl = baseUrlObj;
}
String dataTransferConfirmationEnabledObj = getStringPropertyValue(COLLABORA_DATA_TRANSER_CONFIRMATION_ENABLED, true);
if(StringHelper.containsNonWhitespace(dataTransferConfirmationEnabledObj)) {
dataTransferConfirmationEnabled = "true".equals(dataTransferConfirmationEnabledObj);
}
}
@Override
......@@ -89,4 +97,13 @@ public class CollaboraModule extends AbstractSpringModule implements ConfigOnOff
this.baseUrl = baseUrl;
setStringProperty(COLLABORA_BASE_URL, baseUrl, true);
}
public boolean isDataTransferConfirmationEnabled() {
return dataTransferConfirmationEnabled;
}
public void setDataTransferConfirmationEnabled(boolean dataTransferConfirmationEnabled) {
this.dataTransferConfirmationEnabled = dataTransferConfirmationEnabled;
setStringProperty(COLLABORA_DATA_TRANSER_CONFIRMATION_ENABLED, Boolean.toString(dataTransferConfirmationEnabled), true);
}
}
......@@ -26,6 +26,7 @@ import static org.olat.core.gui.translator.TranslatorHelper.translateAll;
import org.olat.core.commons.services.doceditor.collabora.CollaboraModule;
import org.olat.core.commons.services.doceditor.collabora.CollaboraRefreshDiscoveryEvent;
import org.olat.core.commons.services.doceditor.collabora.CollaboraService;
import org.olat.core.commons.services.doceditor.ui.DocEditorController;
import org.olat.core.commons.services.doceditor.wopi.Discovery;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.form.flexible.FormItem;
......@@ -42,6 +43,7 @@ import org.olat.core.gui.control.WindowControl;
import org.olat.core.helpers.Settings;
import org.olat.core.logging.OLog;
import org.olat.core.logging.Tracing;
import org.olat.core.util.Util;
import org.olat.core.util.coordinate.CoordinatorManager;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -61,6 +63,7 @@ public class CollaboraAdminController extends FormBasicController {
private TextElement baseUrlEl;
private FormLink refreshDiscoveryLink;
private FormLink testLink;
private MultipleSelectionElement dataTransferConfirmationEnabledEl;
@Autowired
private CollaboraModule collaboraModule;
......@@ -69,6 +72,7 @@ public class CollaboraAdminController extends FormBasicController {
public CollaboraAdminController(UserRequest ureq, WindowControl wControl) {
super(ureq, wControl);
setTranslator(Util.createPackageTranslator(DocEditorController.class, getLocale(), getTranslator()));
initForm(ureq);
}
......@@ -87,6 +91,11 @@ public class CollaboraAdminController extends FormBasicController {
refreshDiscoveryLink = uifactory.addFormLink("admin.refresh.discovery", "admin.refresh.discovery", "admin.refresh.discovery.label", formLayout, Link.BUTTON);
refreshDiscoveryLink.setHelpTextKey("admin.refresh.discovery.help", null);
dataTransferConfirmationEnabledEl = uifactory.addCheckboxesHorizontal(
"admin.data.transfer.confirmation.enabled", formLayout, ENABLED_KEYS,
translateAll(getTranslator(), ENABLED_KEYS));
dataTransferConfirmationEnabledEl.select(ENABLED_KEYS[0], collaboraModule.isDataTransferConfirmationEnabled());
if (Settings.isDebuging()) {
testLink = uifactory.addFormLink("admin.test", formLayout, Link.BUTTON);
}
......@@ -129,6 +138,9 @@ public class CollaboraAdminController extends FormBasicController {
if (urlChanged) {
doRefreshDiscovery();
}
boolean dataTransferConfirmationEnabled = dataTransferConfirmationEnabledEl.isAtLeastSelected(1);
collaboraModule.setDataTransferConfirmationEnabled(dataTransferConfirmationEnabled);
}
@Override
......
......@@ -65,6 +65,11 @@ public class Office365Editor implements DocEditor {
return translator.translate("editor.display.name");
}
@Override
public boolean isDataTransferConfirmationEnabled() {
return office365Module.isDataTransferConfirmationEnabled();
}
@Override
public boolean isSupportingFormat(String suffix, Mode mode, boolean hasMeta) {
return hasMeta && office365Service.isSupportingFormat(suffix, mode);
......
/**
* <a href="http://www.openolat.org">
* <a href="http://www.openolat.org">
* OpenOLAT - Online Learning and Training</a><br>
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); <br>
......@@ -38,11 +38,14 @@ public class Office365Module extends AbstractSpringModule implements ConfigOnOff
private static final String OFFICE365_ENABLED = "office365.enabled";
private static final String OFFICE365_BASE_URL = "office365.baseUrl";
private static final String OFFICE365_DATA_TRANSER_CONFIRMATION_ENABLED = "office365.data.transfer.confirmation.enabled";
@Value("${office365.enabled:false}")
private boolean enabled;
@Value("${office365.baseUrl}")
private String baseUrl;
@Value("${office365.data.transfer.confirmation.enabled:false}")
private boolean dataTransferConfirmationEnabled;
@Autowired
private Office365Module(CoordinatorManager coordinateManager) {
......@@ -69,6 +72,11 @@ public class Office365Module extends AbstractSpringModule implements ConfigOnOff
if(StringHelper.containsNonWhitespace(baseUrlObj)) {
baseUrl = baseUrlObj;
}
String dataTransferConfirmationEnabledObj = getStringPropertyValue(OFFICE365_DATA_TRANSER_CONFIRMATION_ENABLED, true);
if(StringHelper.containsNonWhitespace(dataTransferConfirmationEnabledObj)) {
dataTransferConfirmationEnabled = "true".equals(dataTransferConfirmationEnabledObj);
}
}
@Override
......@@ -89,4 +97,13 @@ public class Office365Module extends AbstractSpringModule implements ConfigOnOff
this.baseUrl = baseUrl;
setStringProperty(OFFICE365_BASE_URL, baseUrl, true);
}
public boolean isDataTransferConfirmationEnabled() {
return dataTransferConfirmationEnabled;
}
public void setDataTransferConfirmationEnabled(boolean dataTransferConfirmationEnabled) {
this.dataTransferConfirmationEnabled = dataTransferConfirmationEnabled;
setStringProperty(OFFICE365_DATA_TRANSER_CONFIRMATION_ENABLED, Boolean.toString(dataTransferConfirmationEnabled), true);
}
}
......@@ -25,6 +25,7 @@ import static org.olat.core.gui.translator.TranslatorHelper.translateAll;
import org.olat.core.commons.services.doceditor.office365.Office365Module;
import org.olat.core.commons.services.doceditor.office365.Office365RefreshDiscoveryEvent;
import org.olat.core.commons.services.doceditor.ui.DocEditorController;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.form.flexible.FormItem;
import org.olat.core.gui.components.form.flexible.FormItemContainer;
......@@ -37,6 +38,7 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
import org.olat.core.gui.components.link.Link;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.util.Util;
import org.olat.core.util.coordinate.CoordinatorManager;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -53,12 +55,14 @@ public class Office365AdminController extends FormBasicController {
private MultipleSelectionElement enabledEl;
private TextElement baseUrlEl;
private FormLink refreshDiscoveryLink;
private MultipleSelectionElement dataTransferConfirmationEnabledEl;
@Autowired
private Office365Module office365Module;
public Office365AdminController(UserRequest ureq, WindowControl wControl) {
super(ureq, wControl);
setTranslator(Util.createPackageTranslator(DocEditorController.class, getLocale(), getTranslator()));
initForm(ureq);
}
......@@ -77,6 +81,11 @@ public class Office365AdminController extends FormBasicController {
refreshDiscoveryLink = uifactory.addFormLink("admin.refresh.discovery", "admin.refresh.discovery", "admin.refresh.discovery.label", formLayout, Link.BUTTON);
refreshDiscoveryLink.setHelpTextKey("admin.refresh.discovery.help", null);
dataTransferConfirmationEnabledEl = uifactory.addCheckboxesHorizontal(
"admin.data.transfer.confirmation.enabled", formLayout, ENABLED_KEYS,
translateAll(getTranslator(), ENABLED_KEYS));
dataTransferConfirmationEnabledEl.select(ENABLED_KEYS[0], office365Module.isDataTransferConfirmationEnabled());
FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
formLayout.add("buttons", buttonLayout);
uifactory.addFormSubmitButton("save", buttonLayout);
......@@ -113,6 +122,9 @@ public class Office365AdminController extends FormBasicController {
if (urlChanged) {
doRefreshDiscovery();
}
boolean dataTransferConfirmationEnabled = dataTransferConfirmationEnabledEl.isAtLeastSelected(1);
office365Module.setDataTransferConfirmationEnabled(dataTransferConfirmationEnabled);
}
@Override
......
......@@ -65,6 +65,11 @@ public class OnlyOfficeEditor implements DocEditor {
return translator.translate("editor.display.name");
}
@Override
public boolean isDataTransferConfirmationEnabled() {
return onlyOfficeModule.isDataTransferConfirmationEnabled();
}
@Override
public boolean isSupportingFormat(String suffix, Mode mode, boolean hasMeta) {
return hasMeta && onlyOfficeService.isSupportedFormat(suffix, mode);
......
......@@ -47,6 +47,7 @@ public class OnlyOfficeModule extends AbstractSpringModule implements ConfigOnOf
private static final String ONLYOFFICE_ENABLED = "onlyoffice.enabled";
private static final String ONLYOFFICE_BASE_URL = "onlyoffice.baseUrl";
private static final String ONLYOFFICE_JWT_SECRET = "onlyoffice.jwt.secret";
private static final String ONLYOFFICE_DATA_TRANSER_CONFIRMATION_ENABLED = "onlyoffice.data.transfer.confirmation.enabled";
@Value("${onlyoffice.enabled:false}")
private boolean enabled;
......@@ -57,6 +58,8 @@ public class OnlyOfficeModule extends AbstractSpringModule implements ConfigOnOf
private String apiUrl;
private String jwtSecret;
private Key jwtSignKey;
@Value("${onlyoffice.data.transfer.confirmation.enabled:false}")
private boolean dataTransferConfirmationEnabled;
@Autowired
private OnlyOfficeModule(CoordinatorManager coordinateManager) {
......@@ -89,6 +92,11 @@ public class OnlyOfficeModule extends AbstractSpringModule implements ConfigOnOf
if(StringHelper.containsNonWhitespace(jwtSecretObj)) {
jwtSecret = jwtSecretObj;
}
String dataTransferConfirmationEnabledObj = getStringPropertyValue(ONLYOFFICE_DATA_TRANSER_CONFIRMATION_ENABLED, true);
if(StringHelper.containsNonWhitespace(dataTransferConfirmationEnabledObj)) {
dataTransferConfirmationEnabled = "true".equals(dataTransferConfirmationEnabledObj);
}
}
@Override
......@@ -140,4 +148,13 @@ public class OnlyOfficeModule extends AbstractSpringModule implements ConfigOnOf
return jwtSignKey;
}
public boolean isDataTransferConfirmationEnabled() {
return dataTransferConfirmationEnabled;
}
public void setDataTransferConfirmationEnabled(boolean dataTransferConfirmationEnabled) {
this.dataTransferConfirmationEnabled = dataTransferConfirmationEnabled;
setStringProperty(ONLYOFFICE_DATA_TRANSER_CONFIRMATION_ENABLED, Boolean.toString(dataTransferConfirmationEnabled), true);
}
}
......@@ -24,6 +24,7 @@ import static org.olat.core.gui.translator.TranslatorHelper.translateAll;
import org.olat.core.commons.services.doceditor.onlyoffice.OnlyOfficeModule;
import org.olat.core.commons.services.doceditor.onlyoffice.OnlyOfficeSecurityService;
import org.olat.core.commons.services.doceditor.ui.DocEditorController;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.form.flexible.FormItemContainer;
import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
......@@ -32,6 +33,7 @@ import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.util.Util;
import org.springframework.beans.factory.annotation.Autowired;
/**
......@@ -47,6 +49,7 @@ public class OnlyOfficeAdminController extends FormBasicController {
private MultipleSelectionElement enabledEl;
private TextElement baseUrlEl;
private TextElement jwtSecretEl;
private MultipleSelectionElement dataTransferConfirmationEnabledEl;
@Autowired
private OnlyOfficeModule onlyOfficeModule;
......@@ -55,6 +58,7 @@ public class OnlyOfficeAdminController extends FormBasicController {
public OnlyOfficeAdminController(UserRequest ureq, WindowControl wControl) {
super(ureq, wControl);
setTranslator(Util.createPackageTranslator(DocEditorController.class, getLocale(), getTranslator()));
initForm(ureq);
}
......@@ -74,6 +78,11 @@ public class OnlyOfficeAdminController extends FormBasicController {
jwtSecretEl = uifactory.addTextElement("admin.jwt.secret", 128, secret, formLayout);
jwtSecretEl.setMandatory(true);
dataTransferConfirmationEnabledEl = uifactory.addCheckboxesHorizontal(
"admin.data.transfer.confirmation.enabled", formLayout, ENABLED_KEYS,
translateAll(getTranslator(), ENABLED_KEYS));
dataTransferConfirmationEnabledEl.select(ENABLED_KEYS[0], onlyOfficeModule.isDataTransferConfirmationEnabled());
FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
formLayout.add("buttons", buttonLayout);
uifactory.addFormSubmitButton("save", buttonLayout);
......@@ -108,6 +117,9 @@ public class OnlyOfficeAdminController extends FormBasicController {
String jwtSecret = jwtSecretEl.getValue();
onlyOfficeModule.setJwtSecret(jwtSecret);
boolean dataTransferConfirmationEnabled = dataTransferConfirmationEnabledEl.isAtLeastSelected(1);
onlyOfficeModule.setDataTransferConfirmationEnabled(dataTransferConfirmationEnabled);
}
@Override
......
/**
* <a href="http://www.openolat.org">
* OpenOLAT - Online Learning and Training</a><br>
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); <br>
* you may not use this file except in compliance with the License.<br>
* You may obtain a copy of the License at the
* <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
* <p>
* Unless required by applicable law or agreed to in writing,<br>
* software distributed under the License is distributed on an "AS IS" BASIS, <br>
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
* See the License for the specific language governing permissions and <br>
* limitations under the License.
* <p>
* Initial code contributed and copyrighted by<br>
* frentix GmbH, http://www.frentix.com
* <p>
*/
package org.olat.core.commons.services.doceditor.ui;
import org.olat.core.commons.services.doceditor.DocEditor;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.Component;
import org.olat.core.gui.components.link.Link;
import org.olat.core.gui.components.link.LinkFactory;
import org.olat.core.gui.components.velocity.VelocityContainer;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.controller.BasicController;
import org.olat.user.UserManager;
import org.springframework.beans.factory.annotation.Autowired;
/**
*
* Initial date: 6 May 2019<br>
* @author uhensler, urs.hensler@frentix.com, http://www.frentix.com
*
*/
public class DataTransferConfirmationController extends BasicController {
private Link acceptLink;
private final DocEditor editor;
@Autowired
private UserManager userManager;
public DataTransferConfirmationController(UserRequest ureq, WindowControl wControl, DocEditor editor) {
super(ureq, wControl);
this.editor = editor;
VelocityContainer mainVC = createVelocityContainer("data_transfer_confirmation");
String[] args = new String[] {
editor.getDisplayName(getLocale()),
userManager.getUserDisplayName(getIdentity())
};
String intro = translate("data.transfer.intro", args);
mainVC.contextPut("dataTransferIntro", intro);
acceptLink = LinkFactory.createButton("data.transfer.accept", mainVC, this);
acceptLink.setPrimary(true);
putInitialPanel(mainVC);
}
public DocEditor getEditor() {
return editor;
}
@Override
protected void event(UserRequest ureq, Component source, Event event) {
if (source == acceptLink) {
fireEvent(ureq, Event.DONE_EVENT);
}
}
@Override
protected void doDispose() {
}
}
......@@ -30,15 +30,21 @@ import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.controller.BasicController;
import org.olat.core.util.vfs.VFSLeaf;
import org.olat.properties.Property;
import org.olat.properties.PropertyManager;
import org.springframework.beans.factory.annotation.Autowired;
/**
*
* Initial date: 26 Mar 2019<br>
*
* @author uhensler, urs.hensler@frentix.com, http://www.frentix.com
*
*/
public class DocEditorController extends BasicController {
private static final String PROPERTY_CATEGOTY = "doc.editor";
private VelocityContainer mainVC;
private DocEditorConfigController configCtrl;
private Controller editorCtrl;
......@@ -46,27 +52,31 @@ public class DocEditorController extends BasicController {
private final VFSLeaf vfsLeaf;
private final DocEditorSecurityCallback secCallback;
private final DocEditorConfigs configs;
@Autowired
private PropertyManager propertyManager;
private DataTransferConfirmationController dataTransferConfirmationCtrl;
public DocEditorController(UserRequest ureq, WindowControl wControl, VFSLeaf vfsLeaf,
DocEditorSecurityCallback secCallback, DocEditorConfigs configs) {
this(ureq, wControl, vfsLeaf, secCallback, configs, null);
}
public DocEditorController(UserRequest ureq, WindowControl wControl, VFSLeaf vfsLeaf,
DocEditorSecurityCallback secCallback, DocEditorConfigs configs, String cssClass) {
super(ureq, wControl);
this.vfsLeaf = vfsLeaf;
this.secCallback = secCallback;
this.configs = configs;
mainVC = createVelocityContainer("editor_main");
mainVC.contextPut("cssClass", cssClass);
configCtrl = new DocEditorConfigController(ureq, wControl, vfsLeaf, secCallback);
listenTo(configCtrl);
mainVC.put("config", configCtrl.getInitialComponent());
configCtrl.activate(ureq, null, null);
putInitialPanel(mainVC);
}
......@@ -86,17 +96,56 @@ public class DocEditorController extends BasicController {
}
} else if (source == editorCtrl) {
fireEvent(ureq, event);
} else if (source == dataTransferConfirmationCtrl && Event.DONE_EVENT.equals(event)) {
DocEditor editor = dataTransferConfirmationCtrl.getEditor();
doDataTransferConfirmed(editor);
doOpenEditor(ureq, editor);
}
super.event(ureq, source, event);
}
private void doOpenEditor(UserRequest ureq, DocEditor editor) {
removeAsListenerAndDispose(dataTransferConfirmationCtrl);
removeAsListenerAndDispose(editorCtrl);
if (editorCtrl != null) mainVC.remove("editor");
editorCtrl = editor.getRunController(ureq, getWindowControl(), getIdentity(), vfsLeaf, secCallback, configs);
listenTo(editorCtrl);
mainVC.put("editor", editorCtrl.getInitialComponent());
if (editorCtrl != null || dataTransferConfirmationCtrl != null) {
mainVC.remove("editor");
}
if (isDataTransferConfirmed(editor)) {
editorCtrl = editor.getRunController(ureq, getWindowControl(), getIdentity(), vfsLeaf, secCallback,
configs);
listenTo(editorCtrl);
mainVC.put("editor", editorCtrl.getInitialComponent());
} else {
dataTransferConfirmationCtrl = new DataTransferConfirmationController(ureq, getWindowControl(), editor);
listenTo(dataTransferConfirmationCtrl);
mainVC.put("editor", dataTransferConfirmationCtrl.getInitialComponent());
}
}
private boolean isDataTransferConfirmed(DocEditor editor) {
if (editor.isDataTransferConfirmationEnabled()) {
Property property = propertyManager.findUserProperty(getIdentity(), PROPERTY_CATEGOTY,
getDataTransferPropertyName(editor));
if (property == null || isNotConfirmedYet(property)) {
return false;
}
}
return true;
}
private boolean isNotConfirmedYet(Property property) {
return !Boolean.valueOf(property.getStringValue());
}
private void doDataTransferConfirmed(DocEditor editor) {
Property property = propertyManager.createUserPropertyInstance(getIdentity(), PROPERTY_CATEGOTY,
getDataTransferPropertyName(editor), null, null, Boolean.TRUE.toString(), null);
propertyManager.saveProperty(property);
}
private String getDataTransferPropertyName(DocEditor editor) {
return editor.getType() + ".data.transfer.accepted";
}
@Override
......
<div class="o_warning o_doceditor_data_transfer">
<h4>$r.translate("data.transfer.title")</h4>
<p>$dataTransferIntro</p>
<div class="o_button_group">
$r.render("data.transfer.accept")
</div>
</div>
\ No newline at end of file
admin.collabora=$org.olat.core.commons.services.doceditor.collabora.ui\:editor.display.name
admin.data.transfer.confirmation.enabled=Best\u00E4tigung Datentransfer
admin.menu.title.alt=Dokumenteneditoren
admin.menu.title=Dokumenteneditoren
admin.office365=$org.olat.core.commons.services.doceditor.office365.ui\:editor.display.name
......@@ -8,6 +9,9 @@ create.doc.button=Dokument erstellen
create.doc.name.notvalid=$org.olat.core.commons.modules.bc\:cfile.name.notvalid
create.doc.name=Dateiname
create.doc.type=Dateityp
data.transfer.accept=Ich stimme der Daten\u00FCbertragung zu
data.transfer.intro=Beim \u00D6ffnen des Dokumentes in "{0}" wird das Dokument tempor\u00E4r auf einem externen Server gespeichert. Zudem wird Ihr Name ({1}) zur Darstellung im Editor \u00FCbergeben. Bitte best\u00E4tigen Sie diese Daten\u00FCbertragung.
data.transfer.title=Zustimmung Daten\u00FCbertragung
doc.type.css=Cascading Style Sheet
doc.type.docx=Word
doc.type.html=HTML-Dokument
......
admin.collabora=$org.olat.core.commons.services.doceditor.collabora.ui\:editor.display.name
admin.data.transfer.confirmation.enabled=Confirmation of data transfer
admin.menu.title.alt=Document editors
admin.menu.title=Document editors
admin.office365=$org.olat.core.commons.services.doceditor.office365.ui\:editor.display.name
......@@ -8,6 +9,9 @@ create.doc.button=Create document
create.doc.name.notvalid=$org.olat.core.commons.modules.bc\:cfile.name.notvalid
create.doc.name=File name
create.doc.type=Type
data.transfer.accept=I accept the data transfer
data.transfer.intro=When opening the document in "{0}", the document is temporarily saved on an external server. In addition, your name ({1}) is passed for display in the editor. Please confirm this data transfer.
data.transfer.title=Confirmation of data transfer
doc.type.css=Cascading Style Sheet
doc.type.docx=Word
doc.type.html=HTML Document
......
......@@ -1475,6 +1475,7 @@ edusharing.auth.affiliation.name=${instance.id}
########################################
collabora.enabled=false
collabora.baseUrl=https://collabora.example.org/
collabora.data.transfer.confirmation.enabled=false
########################################
......@@ -1483,6 +1484,7 @@ collabora.baseUrl=https://collabora.example.org/
onlyoffice.enabled=false
onlyoffice.baseUrl=https://onlyoffice.example.org/
onlyoffice.api.path=web-apps/apps/api/documents/api.js
onlyoffice.data.transfer.confirmation.enabled=false
########################################
......@@ -1490,6 +1492,7 @@ onlyoffice.api.path=web-apps/apps/api/documents/api.js
########################################
office365.enabled=false
office365.baseUrl=https://office365.example.org/
office365.data.transfer.confirmation.enabled=false
########################################
......
......@@ -89,6 +89,11 @@ body.o_doceditor_body {
}
}
}
.o_doceditor_data_transfer {
margin-right: 15px;
margin-left: 15px;
}
}
.o_web_content {
......
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment