Skip to content
Snippets Groups Projects
Commit a1cd92b3 authored by aboeckle's avatar aboeckle
Browse files

OO-4603 Changed language chain

parent 6ab74007
No related branches found
No related tags found
No related merge requests found
Showing with 149 additions and 74 deletions
......@@ -27,10 +27,10 @@ import org.apache.commons.io.FileUtils;
import org.olat.core.extensions.ExtensionElement;
import org.olat.core.extensions.action.GenericActionExtension;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.velocity.VelocityContainer;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.util.filter.FilterFactory;
import org.olat.core.util.i18n.I18nModule;
import org.olat.core.util.vfs.LocalFileImpl;
import org.olat.core.util.vfs.LocalFolderImpl;
import org.olat.core.util.vfs.VFSContainer;
......@@ -44,11 +44,11 @@ import org.olat.core.util.vfs.VFSLeaf;
public class EmptyImpressumExtension extends GenericActionExtension {
private final ImpressumModule impressumModule;
private final I18nModule i18nModule;
private VelocityContainer vc;
public EmptyImpressumExtension(ImpressumModule impressumModule) {
public EmptyImpressumExtension(ImpressumModule impressumModule, I18nModule i18nModule) {
this.impressumModule = impressumModule;
this.i18nModule = i18nModule;
}
......@@ -59,38 +59,33 @@ public class EmptyImpressumExtension extends GenericActionExtension {
@Override
public ExtensionElement getExtensionFor(String extensionPoint, UserRequest ureq) {
boolean enabled = false;
// Something is enabled (imprint, terms of use, privacy policy or contact)
// First check: Contact module
boolean enabled = impressumModule.isContactEnabled();
if (impressumModule.isEnabled() && !impressumModule.isContactEnabled()) {
// Second check: Impressum module
if (impressumModule.isEnabled()) {
VFSContainer impressumDir = new LocalFolderImpl(impressumModule.getImpressumDirectory());
VFSContainer termsOfUseDir = new LocalFolderImpl(impressumModule.getTermsOfUseDirectory());
VFSContainer privacyPoliciyDir = new LocalFolderImpl(impressumModule.getPrivacyPolicyDirectory());
if (checkContent(impressumDir.resolve("index_" + ureq.getLocale().getLanguage() + ".html"))) {
// Nothing to do here
} else if (checkContent(impressumDir.resolve("index_en.html"))) {
// Nothing to do here
} else if (checkContent(impressumDir.resolve("index_de.html"))) {
// Nothing to do here
} else if (checkContent(termsOfUseDir.resolve("index_" + ureq.getLocale().getLanguage() + ".html"))) {
// Nothing to do here
} else if (checkContent(termsOfUseDir.resolve("index_en.html"))) {
// Nothing to do here
} else if (checkContent(termsOfUseDir.resolve("index_de.html"))) {
// Nothing to do here
} else if (checkContent(privacyPoliciyDir.resolve("index_" + ureq.getLocale().getLanguage() + ".html"))) {
// Nothing to do here
} else if (checkContent(privacyPoliciyDir.resolve("index_en.html"))) {
// Nothing to do here
} else if (checkContent(privacyPoliciyDir.resolve("index_de.html"))) {
// Nothing to do here
} else {
// Nothing found
enabled |= true;
// First check the imprint
enabled |= checkModule(impressumDir, ureq);
// Go on if enabled is false
// and check the terms of use
if (!enabled) {
enabled |= checkModule(termsOfUseDir, ureq);
}
// Go on if enabled is still false
// and check the privacy policy
if (!enabled) {
enabled |= checkModule(privacyPoliciyDir, ureq);
}
}
return enabled ? super.getExtensionFor(extensionPoint, ureq) : null;
return enabled ? null : super.getExtensionFor(extensionPoint, ureq);
}
private boolean checkContent(VFSItem file) {
......@@ -116,4 +111,24 @@ public class EmptyImpressumExtension extends GenericActionExtension {
}
return check;
}
private boolean checkModule(VFSContainer baseFolder, UserRequest ureq) {
boolean enabled = true;
if (checkContent(baseFolder.resolve("index_" + ureq.getLocale().getLanguage() + ".html"))) {
// Nothing to do here
} else if (checkContent(baseFolder.resolve("index_" + I18nModule.getDefaultLocale().getLanguage() + ".html"))) {
// Nothing to do here
} else {
for (String locale : i18nModule.getEnabledLanguageKeys()) {
if (checkContent(baseFolder.resolve("index_" + locale + ".html"))) {
return enabled;
}
}
enabled &= false;
}
return enabled;
}
}
......@@ -27,6 +27,7 @@ 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.gui.control.generic.iframe.IFrameDisplayController;
import org.olat.core.util.i18n.I18nModule;
import org.springframework.beans.factory.annotation.Autowired;
/**
......@@ -42,6 +43,8 @@ public class ImpressumController extends BasicController {
@Autowired
private ImpressumModule impressumModule;
@Autowired
private I18nModule i18nModule;
/**
* @param ureq
......@@ -49,20 +52,30 @@ public class ImpressumController extends BasicController {
*/
public ImpressumController(UserRequest ureq, WindowControl control) {
super(ureq, control);
File baseFolder = impressumModule.getImpressumDirectory();
IFrameDisplayController iframe = new IFrameDisplayController(ureq, getWindowControl(), baseFolder);
listenTo(iframe);
String langCode = ureq.getLocale().getLanguage();
String fileName = "index_" + langCode + ".html";
if (new File(baseFolder, fileName).exists()) {
if (new File (baseFolder, fileName).exists()){
iframe.setCurrentURI(fileName);
} else if(new File (baseFolder, "index_de.html").exists()) {
iframe.setCurrentURI("index_de.html");
} else if(new File (baseFolder, "index_en.html").exists()) {
iframe.setCurrentURI("index_en.html");
} else {
langCode = I18nModule.getDefaultLocale().getLanguage();
fileName = "index_" + langCode + ".html";
if (new File(baseFolder, fileName).exists()) {
iframe.setCurrentURI(fileName);
} else {
for (String lang : i18nModule.getEnabledLanguageKeys()) {
fileName = "index_" + lang + ".html";
if (new File(baseFolder, fileName).exists()) {
iframe.setCurrentURI(fileName);
break;
}
}
}
}
putInitialPanel(iframe.getInitialComponent());
}
......
......@@ -30,6 +30,7 @@ import org.olat.core.gui.UserRequest;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.util.filter.FilterFactory;
import org.olat.core.util.i18n.I18nModule;
import org.olat.core.util.vfs.LocalFileImpl;
import org.olat.core.util.vfs.LocalFolderImpl;
import org.olat.core.util.vfs.VFSContainer;
......@@ -43,9 +44,11 @@ import org.olat.core.util.vfs.VFSLeaf;
public class ImpressumExtension extends GenericActionExtension {
private final ImpressumModule impressumModule;
private final I18nModule i18nModule;
public ImpressumExtension(ImpressumModule impressumModule) {
public ImpressumExtension(ImpressumModule impressumModule, I18nModule i18nModule) {
this.impressumModule = impressumModule;
this.i18nModule = i18nModule;
}
......@@ -56,22 +59,25 @@ public class ImpressumExtension extends GenericActionExtension {
@Override
public ExtensionElement getExtensionFor(String extensionPoint, UserRequest ureq) {
boolean enabled = false;
boolean enabled = false;
if (impressumModule.isEnabled()) {
VFSContainer impressumDir = new LocalFolderImpl(impressumModule.getImpressumDirectory());
enabled = true;
if (checkContent(impressumDir.resolve("index_" + ureq.getLocale().getLanguage() + ".html"))) {
// Nothing to do here
} else if (checkContent(impressumDir.resolve("index_en.html"))) {
// Nothing to do here
} else if (checkContent(impressumDir.resolve("index_de.html"))) {
// Nothing to do here
enabled |= true;
} else if (checkContent(impressumDir.resolve("index_" + I18nModule.getDefaultLocale().getLanguage() + ".html"))) {
enabled |= true;
} else {
// Nothing found
enabled &= false;
}
for (String locale : i18nModule.getEnabledLanguageKeys()) {
if (checkContent(impressumDir.resolve("index_" + locale + ".html"))) {
enabled |= true;
break;
}
}
}
}
return enabled ? super.getExtensionFor(extensionPoint, ureq) : null;
......
......@@ -27,6 +27,7 @@ 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.gui.control.generic.iframe.IFrameDisplayController;
import org.olat.core.util.i18n.I18nModule;
import org.springframework.beans.factory.annotation.Autowired;
/*
......@@ -37,6 +38,8 @@ public class PrivacyPolicyController extends BasicController {
@Autowired
private ImpressumModule impressumModule;
@Autowired
private I18nModule i18nModule;
public PrivacyPolicyController(UserRequest ureq, WindowControl control) {
super(ureq, control);
......@@ -48,10 +51,20 @@ public class PrivacyPolicyController extends BasicController {
String fileName = "index_" + langCode + ".html";
if (new File (baseFolder, fileName).exists()){
iframe.setCurrentURI(fileName);
} else if(new File (baseFolder, "index_de.html").exists()) {
iframe.setCurrentURI("index_de.html");
} else if(new File (baseFolder, "index_en.html").exists()) {
iframe.setCurrentURI("index_en.html");
} else {
langCode = I18nModule.getDefaultLocale().getLanguage();
fileName = "index_" + langCode + ".html";
if (new File(baseFolder, fileName).exists()) {
iframe.setCurrentURI(fileName);
} else {
for (String lang : i18nModule.getEnabledLanguageKeys()) {
fileName = "index_" + lang + ".html";
if (new File(baseFolder, fileName).exists()) {
iframe.setCurrentURI(fileName);
break;
}
}
}
}
putInitialPanel(iframe.getInitialComponent());
......
......@@ -30,6 +30,7 @@ import org.olat.core.gui.UserRequest;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.util.filter.FilterFactory;
import org.olat.core.util.i18n.I18nModule;
import org.olat.core.util.vfs.LocalFileImpl;
import org.olat.core.util.vfs.LocalFolderImpl;
import org.olat.core.util.vfs.VFSContainer;
......@@ -44,9 +45,11 @@ public class PrivacyPolicyExtension extends GenericActionExtension {
private final ImpressumModule impressumModule;
private final I18nModule i18nModule;
public PrivacyPolicyExtension(ImpressumModule impressumModule) {
public PrivacyPolicyExtension(ImpressumModule impressumModule, I18nModule i18nModule) {
this.impressumModule = impressumModule;
this.i18nModule = i18nModule;
}
......@@ -61,18 +64,21 @@ public class PrivacyPolicyExtension extends GenericActionExtension {
if (impressumModule.isEnabled()) {
VFSContainer impressumDir = new LocalFolderImpl(impressumModule.getPrivacyPolicyDirectory());
enabled = true;
if (checkContent(impressumDir.resolve("index_" + ureq.getLocale().getLanguage() + ".html"))) {
// Nothing to do here
} else if (checkContent(impressumDir.resolve("index_en.html"))) {
// Nothing to do here
} else if (checkContent(impressumDir.resolve("index_de.html"))) {
// Nothing to do here
enabled |= true;
} else if (checkContent(impressumDir.resolve("index_" + I18nModule.getDefaultLocale().getLanguage() + ".html"))) {
enabled |= true;
} else {
// Nothing found
enabled &= false;
}
for (String locale : i18nModule.getEnabledLanguageKeys()) {
if (checkContent(impressumDir.resolve("index_" + locale + ".html"))) {
enabled |= true;
break;
}
}
}
}
return enabled ? super.getExtensionFor(extensionPoint, ureq) : null;
......
......@@ -27,6 +27,7 @@ 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.gui.control.generic.iframe.IFrameDisplayController;
import org.olat.core.util.i18n.I18nModule;
import org.springframework.beans.factory.annotation.Autowired;
/**
......@@ -42,6 +43,8 @@ public class TermsOfUseController extends BasicController {
@Autowired
private ImpressumModule impressumModule;
@Autowired
private I18nModule i18nModule;
/**
* @param ureq
......@@ -57,10 +60,20 @@ public class TermsOfUseController extends BasicController {
String fileName = "index_" + langCode + ".html";
if (new File (baseFolder, fileName).exists()){
iframe.setCurrentURI(fileName);
} else if(new File (baseFolder, "index_de.html").exists()) {
iframe.setCurrentURI("index_de.html");
} else if(new File (baseFolder, "index_en.html").exists()) {
iframe.setCurrentURI("index_en.html");
} else {
langCode = I18nModule.getDefaultLocale().getLanguage();
fileName = "index_" + langCode + ".html";
if (new File(baseFolder, fileName).exists()) {
iframe.setCurrentURI(fileName);
} else {
for (String lang : i18nModule.getEnabledLanguageKeys()) {
fileName = "index_" + lang + ".html";
if (new File(baseFolder, fileName).exists()) {
iframe.setCurrentURI(fileName);
break;
}
}
}
}
putInitialPanel(iframe.getInitialComponent());
......
......@@ -30,6 +30,7 @@ import org.olat.core.gui.UserRequest;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.util.filter.FilterFactory;
import org.olat.core.util.i18n.I18nModule;
import org.olat.core.util.vfs.LocalFileImpl;
import org.olat.core.util.vfs.LocalFolderImpl;
import org.olat.core.util.vfs.VFSContainer;
......@@ -44,9 +45,11 @@ public class TermsOfUseExtension extends GenericActionExtension {
private final ImpressumModule impressumModule;
private final I18nModule i18nModule;
public TermsOfUseExtension(ImpressumModule impressumModule) {
public TermsOfUseExtension(ImpressumModule impressumModule, I18nModule i18nModule) {
this.impressumModule = impressumModule;
this.i18nModule = i18nModule;
}
......@@ -61,18 +64,20 @@ public class TermsOfUseExtension extends GenericActionExtension {
if (impressumModule.isEnabled()) {
VFSContainer impressumDir = new LocalFolderImpl(impressumModule.getTermsOfUseDirectory());
enabled = true;
if (checkContent(impressumDir.resolve("index_" + ureq.getLocale().getLanguage() + ".html"))) {
// Nothing to do here
} else if (checkContent(impressumDir.resolve("index_en.html"))) {
// Nothing to do here
} else if (checkContent(impressumDir.resolve("index_de.html"))) {
// Nothing to do here
enabled |= true;
} else if (checkContent(impressumDir.resolve("index_" + I18nModule.getDefaultLocale().getLanguage() + ".html"))) {
enabled |= true;
} else {
// Nothing found
enabled &= false;
}
for (String locale : i18nModule.getEnabledLanguageKeys()) {
if (checkContent(impressumDir.resolve("index_" + locale + ".html"))) {
enabled |= true;
break;
}
}
}
}
return enabled ? super.getExtensionFor(extensionPoint, ureq) : null;
......
......@@ -6,6 +6,7 @@
<bean class="org.olat.core.commons.controllers.impressum.ImpressumExtension" init-method="initExtensionPoints">
<constructor-arg index="0" ref="impressumModule" />
<constructor-arg index="1" ref="i18nModule" />
<property name="actionController">
<bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype">
<property name="className" value="org.olat.core.commons.controllers.impressum.ImpressumController"/>
......@@ -22,6 +23,7 @@
<bean class="org.olat.core.commons.controllers.impressum.TermsOfUseExtension" init-method="initExtensionPoints">
<constructor-arg index="0" ref="impressumModule" />
<constructor-arg index="1" ref="i18nModule" />
<property name="actionController">
<bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype">
<property name="className" value="org.olat.core.commons.controllers.impressum.TermsOfUseController"/>
......@@ -38,6 +40,7 @@
<bean class="org.olat.core.commons.controllers.impressum.PrivacyPolicyExtension" init-method="initExtensionPoints">
<constructor-arg index="0" ref="impressumModule" />
<constructor-arg index="1" ref="i18nModule" />
<property name="actionController">
<bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype">
<property name="className" value="org.olat.core.commons.controllers.impressum.PrivacyPolicyController"/>
......@@ -54,6 +57,7 @@
<bean class="org.olat.core.commons.controllers.impressum.EmptyImpressumExtension" init-method="initExtensionPoints">
<constructor-arg index="0" ref="impressumModule" />
<constructor-arg index="1" ref="i18nModule" />
<property name="actionController">
<bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype">
<property name="className" value="org.olat.core.commons.controllers.impressum.EmptyImpressumController"/>
......
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