Commit 501934a0 by Tuomas Riihimäki

Select language buttons.

1 parent f6ded87e
......@@ -118,7 +118,7 @@
<h:inputText rendered="#{eventPropertyView.property.key.text or eventPropertyView.property.key.data}" id="textval" value="#{eventPropertyView.property.textvalue}" />
<h:message rendered="#{eventPropertyView.property.key.text or eventPropertyView.property.key.data}" for="textval" />
<h:outputLabel rendered="#{eventPropertyView.property.key.data}" for="dataval" value="#{i18n['lanEventProperty.textValue']}" />
<h:outputLabel rendered="#{eventPropertyView.property.key.data}" for="dataval" value="#{i18n['lanEventProperty.datavalue']}" />
<p:fileUpload rendered="#{ eventPropertyView.property.key.data}" mode="simple" value="#{eventPropertyView.file}" id="dataval" />
<h:message rendered="#{eventPropertyView.property.key.data}" for="dataval" />
......
......@@ -34,6 +34,14 @@
<h:body>
<script type="text/javascript">
$( document ).ready(function() {
<ui:repeat value="#{localeSelectorView.availableLocales}" var="loc" varStatus="idx">
$(".languageSelector .ui-button:eq(#{idx.index})").css("background", "url('#{request.contextPath}/resources/icons/flags/#{loc.locale.language}.png') no-repeat").css("width", "16px").css("height", "11px").css("padding", "0").css("margin-right", "5px").css("border-radius", "0")
</ui:repeat>
$(".languageSelector .ui-button-text").text("");
});
</script>
<!--[if lt IE 7]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
......@@ -46,8 +54,8 @@
<img src="#{request.contextPath}/resources/templates/insomnia2/img/devel_logo.png" />
</c:when>
<c:otherwise>
<p:graphicImage rendered="#{layoutView.isHeaderImage}" value="#{layoutView.headerimage}" />
<ui:fragment rendered="#{!layoutView.isHeaderImage}">
<p:graphicImage rendered="#{layoutView.headerIsImage}" value="#{layoutView.headerimage}" />
<ui:fragment rendered="#{!layoutView.headerIsImage}">
<h1>
<h:outputText value="#{layoutView.headertext}" />
</h1>
......@@ -56,9 +64,15 @@
</c:choose>
</h:link>
</div>
<div id="header_center" class="flex1"></div>
<div id="header_right">
<div id="header_center" class="flex1">
<h:form id="selectLanguage">
<p:selectOneButton id="langselect" styleClass="languageSelector" value="#{sessionStore.locale}" onchange="this.form.submit()" converter="#{localeConverter}">
<f:selectItems value="#{localeSelectorView.availableLocales}" var="loc" itemValue="#{loc.locale}" itemLabel="#{loc.locale.displayName}" />
</p:selectOneButton>
</h:form>
</div>
<div id="header_right">
<a href="http://www.codecrew.fi"><img src="#{request.contextPath}/resources/templates/template1/img/moya_logo.png" /> </a>
</div>
</header>
......@@ -72,7 +86,7 @@
<nav>
<div id="menu">
<p:panelMenu model="#{primeMenuView.menuModel}" />
<h:link style="font-size: 10px;" rendered="#{readerView.shopToOthers}" outcome="/shop/showReaderEvents" value="Readers"/>
<h:link style="font-size: 10px;" rendered="#{readerView.shopToOthers}" outcome="/shop/showReaderEvents" value="Readers" />
<!-- <ui:fragment rendered="#{menuView.getMenu(2).size() > 1}">
<div id="right">
<ul>
......@@ -95,19 +109,19 @@
<ui:insert name="title" />
<p:menubar rendered="#{primeMenuView.hasSecondaryMenu}" model="#{primeMenuView.secondaryMenuModel}" />
<p:messages severity="info" />
<ui:insert name="edittab" />
<!-- <h:messages /> -->
<ui:repeat var="cont1" value="#{menuView.getPagecontent('top')}">
<h:outputText value="#{cont1.content}" escape="false" />
</ui:repeat>
<ui:insert name="content" />
<ui:repeat var="cont1" value="#{menuView.getPagecontent('bottom')}">
<h:outputText value="#{cont1.content}" escape="false" />
</ui:repeat>
<h:link rendered="#{layoutView.manageContent}" styleClass="editorlink" value="#{i18n['layout.editBottom']}" outcome="/pages/manage">
<f:param name="pagename" value="#{layoutView.pagepath}:bottom" />
</h:link>
<p:messages severity="info" />
<ui:insert name="edittab" />
<!-- <h:messages /> -->
<ui:repeat var="cont1" value="#{menuView.getPagecontent('top')}">
<h:outputText value="#{cont1.content}" escape="false" />
</ui:repeat>
<ui:insert name="content" />
<ui:repeat var="cont1" value="#{menuView.getPagecontent('bottom')}">
<h:outputText value="#{cont1.content}" escape="false" />
</ui:repeat>
<h:link rendered="#{layoutView.manageContent}" styleClass="editorlink" value="#{i18n['layout.editBottom']}" outcome="/pages/manage">
<f:param name="pagename" value="#{layoutView.pagepath}:bottom" />
</h:link>
</section>
<aside class="flex1">
......@@ -130,8 +144,8 @@
<div class="ui-widget-header">Select Mode</div>
<div class="ui-widget-content" style="text-align: center">
<h:form>
<p:selectOneMenu value="#{menuView.menuChange}" valueChangeListener="#{menuView.menuChangeEvent}" onchange="this.form.submit()">
<!-- <p:ajax listener="#{menuView.menuChangeEvent}" /> -->
<p:selectOneMenu value="#{menuView.menuChange}" valueChangeListener="#{menuView.menuChangeEvent}" onchange="this.form.submit()">
<!-- <p:ajax listener="#{menuView.menuChangeEvent}" /> -->
<f:selectItems var="menuitem" value="#{menuView.viewChangeTopmenu}" itemLabel="#{i18n[menuitem.navigation.key]}" itemValue="#{menuitem.outcome}" />
</p:selectOneMenu>
</h:form>
......
......@@ -6,11 +6,13 @@
package fi.codecrew.moya.handler;
import java.util.EnumMap;
import java.util.Locale;
import java.util.TimeZone;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.http.HttpServletRequest;
......@@ -46,6 +48,9 @@ public class SessionHandler {
@EJB
private PermissionBeanLocal permbean;
@Inject
private SessionStore sessionStore;
private String template;
public TimeZone getTimezone() {
......@@ -54,14 +59,14 @@ public class SessionHandler {
}
public String getLocale() {
// TODO: Locale selection code missing
// return "en_ST_v7";
String ret = eventbean.getCurrentEvent().getOrganiser().getBundleCountry();
if (ret == null || ret.isEmpty())
{
ret = "fi_FI";
Locale ret = sessionStore.getLocale();
String retStr = "fi_FI";
if (ret != null) {
retStr = ret.toLanguageTag();
logger.info("Got langtag {}", retStr);
}
return ret;
return retStr;
}
public String getFullscreen() {
......@@ -228,4 +233,12 @@ public class SessionHandler {
return BortalLocalContextHolder.isInDevelopmentMode();
}
public SessionStore getSessionStore() {
return sessionStore;
}
public void setSessionStore(SessionStore sessionStore) {
this.sessionStore = sessionStore;
}
}
package fi.codecrew.moya.handler;
import java.io.Serializable;
import java.util.Locale;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.EventBeanLocal;
@Named
@SessionScoped
public class SessionStore implements Serializable {
private static final long serialVersionUID = 594517648650107916L;
private static final Locale DEFAULT_LOCALE = Locale.forLanguageTag("fi_FI");
@EJB
private EventBeanLocal eventbean;
private Locale locale;
private static final Logger logger = LoggerFactory.getLogger(SessionStore.class);
public Locale getLocale() {
Locale ret = locale;
if (ret == null)
{
String retStr = eventbean.getCurrentEvent().getOrganiser().getBundleCountry();
if (retStr != null && !retStr.isEmpty()) {
try {
ret = Locale.forLanguageTag(retStr);
} catch (Throwable t) {
logger.warn("Error setting locale from current event for {}", retStr);
ret = null;
}
if (ret == null) {
ret = DEFAULT_LOCALE;
}
}
locale = ret;
}
return ret;
}
public void setLocale(Locale locale)
{
this.locale = locale;
}
}
package fi.codecrew.moya.web;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.handler.SessionStore;
@Named
@RequestScoped
public class LocaleSelectorView {
private static final Logger logger = LoggerFactory.getLogger(LocaleSelectorView.class);
@Inject
private SessionStore sessionStore;
public ValidLocale[] getAvailableLocales()
{
return ValidLocale.values();
}
public SessionStore getSessionStore() {
return sessionStore;
}
public void setSessionStore(SessionStore sessionStore) {
this.sessionStore = sessionStore;
}
}
package fi.codecrew.moya.web;
import java.util.Locale;
public enum ValidLocale {
FINNISH(new Locale("fi", "FI")),
ENGLISH(new Locale("en", "US"));
private final Locale locale;
ValidLocale(Locale l)
{
this.locale = l;
}
public Locale getLocale() {
return locale;
}
}
\ No newline at end of file
package fi.codecrew.moya.web.converter;
import java.util.Locale;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.inject.Named;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Named
public class LocaleConverter implements Converter {
private static final Logger logger = LoggerFactory.getLogger(LocaleConverter.class);
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
Locale ret = null;
if (value != null) {
try {
ret = Locale.forLanguageTag(value);
} catch (Throwable t) {
logger.warn("Error parsing locale: '{}'", value);
}
}
return ret;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
String ret = null;
if (value != null && value instanceof Locale) {
Locale loc = (Locale) value;
ret = loc.toLanguageTag();
}
return ret;
}
public static void main(String[] ad)
{
Locale loc = new Locale("fi", "FI");
System.out.println(loc.toLanguageTag());
System.out.println(loc.toString());
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!