Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
Setting tab in group home
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Eng committed Nov 7, 2013
1 parent 8a0c0ec commit b6c7dda
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 47 deletions.
39 changes: 17 additions & 22 deletions zanata-war/src/main/java/org/zanata/action/VersionGroupHome.java
Expand Up @@ -34,6 +34,7 @@
import lombok.Getter;
import lombok.Setter;

import org.apache.commons.lang.StringUtils;
import org.hibernate.Session;
import org.hibernate.criterion.NaturalIdentifier;
import org.hibernate.criterion.Restrictions;
Expand All @@ -43,12 +44,10 @@
import org.jboss.seam.security.management.JpaIdentityStore;
import org.zanata.common.EntityStatus;
import org.zanata.common.LocaleId;
import org.zanata.dao.LocaleDAO;
import org.zanata.model.HAccount;
import org.zanata.model.HIterationGroup;
import org.zanata.model.HLocale;
import org.zanata.model.HProjectIteration;
import org.zanata.rest.service.ResourceUtils;
import org.zanata.service.LocaleService;
import org.zanata.service.SlugEntityService;
import org.zanata.util.ZanataMessages;
Expand Down Expand Up @@ -83,12 +82,6 @@ public class VersionGroupHome extends SlugHome<HIterationGroup> {
@In
private ZanataMessages zanataMessages;

@In
private ResourceUtils resourceUtils;

@In
private LocaleDAO localeDAO;

private List<HLocale> supportedLocales;

private List<SelectItem> statusList;
Expand Down Expand Up @@ -134,10 +127,6 @@ public String update() {
return super.update();
}

public String cancel() {
return "cancel";
}

@Override
public List<SelectItem> getStatusList() {
return getAvailableStatus();
Expand All @@ -160,7 +149,7 @@ public boolean apply(@Nullable HLocale input) {
}

public void addLanguage() {
if (!isLanguageNameValid()) {
if (!validateLanguageName("newLanguage")) {
return; // not success
}
HLocale locale =
Expand Down Expand Up @@ -248,24 +237,29 @@ public void validateSuppliedId() {
// start
}

public boolean isLanguageNameValid() {
public boolean validateLanguageName(String componentId) {
// Check that locale Id is syntactically valid
LocaleId localeId;
if (StringUtils.isEmpty(newLanguage)) {
return false;
}

try {
localeId = new LocaleId(newLanguage);
} catch (IllegalArgumentException iaex) {
FacesMessages.instance().add(
FacesMessages.instance().addToControl(
componentId,
zanataMessages
.getMessage("jsf.language.validation.Invalid"));
return false;
}

if (!localeServiceImpl.localeSupported(localeId)) {
FacesMessages
.instance()
.add(zanataMessages
FacesMessages.instance().addToControl(
componentId,
zanataMessages
.getMessage("jsf.language.validation.NotSupport"),
localeId);
localeId);
return false;
}

Expand All @@ -274,10 +268,11 @@ public boolean isLanguageNameValid() {
if (locale.getLocaleId().equals(localeId)) {
FacesMessages
.instance()
.add(zanataMessages
.getMessage("jsf.LanguageAlreadyInGroup"),
.addToControl(
componentId,
zanataMessages
.getMessage("jsf.LanguageAlreadyInGroup"),
localeId);

return false;
}
}
Expand Down
Expand Up @@ -2,7 +2,8 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
xmlns:rich="http://richfaces.org/rich"
xmlns:s="http://jboss.org/schema/seam/taglib">
<h1>#{messages['Settings']}</h1>

<div class="tabs--vertical js-tabs">
Expand All @@ -11,7 +12,8 @@
<a href="#settings-general">
<i class="i i--settings"></i>
<span class="is-hidden--m-down">#{messages['jsf.General']}</span>
</a></li>
</a>
</li>
<li class="">
<a href="#settings-languages">
<i class="i i--language"></i>
Expand All @@ -36,17 +38,17 @@
<h2 class="l--push-all-0 gamma d--bottom">
#{messages['jsf.General']}
</h2>
<h:form id="group-general-settings-form">
<h:form id="general-settings-form">
<div class="l--constrain-medium">
<ui:include src="edit_form.xhtml"/>

<div class="l--push-top-1">
<h:commandButton id="save"
value="#{messages['jsf.UpdateGeneralSettings']}"
<h:commandButton value="#{messages['jsf.UpdateGeneralSettings']}"
action="#{versionGroupHome.update}"
rendered="#{versionGroupHome.managed}"
styleClass="l--push-right-half button--primary"/>
<a4j:commandButton render="group-general-settings-form"
<s:button styleClass="button"
view="/version-group/version_group.xhtml"
value="#{messages['Cancel']}"/>
</div>
</div>
Expand Down Expand Up @@ -74,19 +76,24 @@
<li>
<div class="g--tight">
<div class="g__item w--7-10">
<rich:autocomplete mode="client" var="result" styleClass="text-input"
autocompleteMethod="#{versionGroupHome.suggestLocales}"
fetchValue="#{result.localeId}" layout="table"
value="#{versionGroupHome.newLanguage}">
<a4j:ajax event="change"
listener="#{versionGroupHome.isLanguageNameValid()}"/>
<h:column>
<h:outputText value="#{result.localeId}"/>
</h:column>
<h:column>
<h:outputText value="#{result.retrieveDisplayName()}"/>
</h:column>
</rich:autocomplete>
<s:decorate template="../field.xhtml" enclose="true"
id="newLanguageField">
<rich:autocomplete mode="client" var="result"
styleClass="auto-complete" id="newLanguage"
autocompleteMethod="#{versionGroupHome.suggestLocales}"
fetchValue="#{result.localeId}" layout="table"
value="#{versionGroupHome.newLanguage}">
<a4j:ajax event="change"
listener="#{versionGroupHome.validateLanguageName(component.id)}"
execute="@this" render="newLanguageField"/>
<h:column>
<h:outputText value="#{result.localeId}"/>
</h:column>
<h:column>
<h:outputText value="#{result.retrieveDisplayName()}"/>
</h:column>
</rich:autocomplete>
</s:decorate>
</div>
<div class="g__item w--3-10">
<a4j:commandButton styleClass="button--full"
Expand Down
9 changes: 8 additions & 1 deletion zanata-war/src/main/webapp/WEB-INF/pages.xml
Expand Up @@ -409,11 +409,18 @@
<param name="versionGroupSlug" value="#{versionGroupHome.slug}" />

<action execute="#{versionGroupHome.validateSuppliedId}" />

<navigation from-action="#{versionGroupHome.update}">
<redirect view-id="/version-group/version_group.xhtml">
<param name="versionGroupSlug" value="#{versionGroupHome.slug}" />
</redirect>
</navigation>
</page>

<page view-id="/version-group/settings.xhtml" login-required="true">
<param name="versionGroupSlug" value="#{versionGroupHome.slug}" />
<param name="versionGroupSlug" value="#{versionGroupMaintainerAction.slug}" />
<param name="versionGroupSlug"
value="#{versionGroupMaintainerAction.slug}" />
<param name="versionGroupSlug" value="#{versionGroupJoinAction.slug}" />
<action
execute="#{identity.checkPermission(versionGroupHome.instance, 'update')}" />
Expand Down
10 changes: 5 additions & 5 deletions zanata-war/src/main/webapp/version-group/version_group.xhtml
Expand Up @@ -105,7 +105,7 @@
<ul>
<li>
<a4j:commandLink
onclick="updateView(this.id);setActiveTab(this.id)"
onclick="window.location.hash='languages';updateView(this.id);setActiveTab(this.id)"
id="languages_tab"
styleClass="#{versionGroupHomeAction.view eq component.id ? 'is-active' : ''}">
<i class="i i--language"></i>
Expand All @@ -119,9 +119,9 @@
</li>
<li>
<a4j:commandLink
onclick="updateView(this.id);setActiveTab(this.id)"
onclick="window.location.hash='projects';updateView(this.id);setActiveTab(this.id)"
id="projects_tab"
styleClass="#{versionGroupHomeAction.view eq component.id ? 'is-active' : ''}">
class="#{versionGroupHomeAction.view eq component.id ? 'is-active' : ''}">
<i class="i i--project"></i>
<span class="is-hidden--m-down">
#{messages['jsf.Projects']}
Expand All @@ -133,7 +133,7 @@
</li>
<li>
<a4j:commandLink
onclick="updateView(this.id);setActiveTab(this.id)"
onclick="window.location.hash='maintainers';updateView(this.id);setActiveTab(this.id)"
id="maintainers_tab"
styleClass="#{versionGroupHomeAction.view eq component.id ? 'is-active' : ''}">
<i class="i i--users"></i>
Expand All @@ -149,7 +149,7 @@
rendered="#{s:hasPermission(versionGroupHome.instance, 'update')}">
<li>
<a4j:commandLink
onclick="updateView(this.id);setActiveTab(this.id)"
onclick="window.location.hash='settings';updateView(this.id);setActiveTab(this.id)"
id="settings_tab"
styleClass="#{versionGroupHomeAction.view eq component.id ? 'is-active' : ''}">
<i class="i i--settings"></i>
Expand Down

0 comments on commit b6c7dda

Please sign in to comment.