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

Commit

Permalink
Merge pull request #285 from zanata/FixSuggestEnabledByDefaultLocale
Browse files Browse the repository at this point in the history
Fix suggest enabled by default locale
  • Loading branch information
Patrick Huang committed Nov 22, 2013
2 parents e2370e7 + d598a04 commit 8c32e22
Show file tree
Hide file tree
Showing 5 changed files with 289 additions and 279 deletions.
Expand Up @@ -167,7 +167,8 @@ public void setStatus(char initial) {

public List<HLocale> suggestLocales(final String query) {
if (supportedLocales == null) {
supportedLocales = localeServiceImpl.getSupportedLocales();
supportedLocales =
localeServiceImpl.getSupportedLocales();
}

Collection<HLocale> filtered =
Expand Down
Expand Up @@ -35,6 +35,7 @@
import org.zanata.model.HLocale;
import org.zanata.model.HPerson;
import org.zanata.model.HProjectIteration;
import org.zanata.service.LocaleService;
import org.zanata.service.VersionGroupService;
import org.zanata.service.VersionLocaleKey;
import org.zanata.service.VersionStateCache;
Expand All @@ -61,6 +62,9 @@ public class VersionGroupServiceImpl implements VersionGroupService {
@In
private VersionStateCache versionStateCacheImpl;

@In
private LocaleService localeServiceImpl;

@Override
public Map<VersionLocaleKey, WordStatistic> getLocaleStatistic(
String groupSlug, LocaleId localeId) {
Expand Down Expand Up @@ -181,8 +185,8 @@ public Map<LocaleId, List<HProjectIteration>> getMissingLocaleVersionMap(
}

/**
* Return if the locale is activate in the version. Return true if version
* and project doesn't overrides locale.
* Return if the locale enabled by default in server and is activate in the
* version. Return true if version and project doesn't overrides locale.
*
* Fallback to project customised locale if version doesn't overrides
* locales
Expand All @@ -192,18 +196,10 @@ public Map<LocaleId, List<HProjectIteration>> getMissingLocaleVersionMap(
*/
private boolean isLocaleActivatedInVersion(HProjectIteration version,
HLocale locale) {
Set<HLocale> customisedLocales = Sets.newHashSet();
List<HLocale> versionLocales =
localeServiceImpl.getSupportedLangugeByProjectIteration(
version.getProject().getSlug(), version.getSlug());
return versionLocales.contains(locale);

if (version.isOverrideLocales()) {
customisedLocales = version.getCustomizedLocales();
} else if (version.getProject().isOverrideLocales()) {
customisedLocales = version.getProject().getCustomizedLocales();
}

if (version.isOverrideLocales()
|| version.getProject().isOverrideLocales()) {
return customisedLocales.contains(locale);
}
return true; // no overrides of locales from version or it's project
}
}
Expand Up @@ -8,57 +8,57 @@

<div class="panels--2">
<div class="g--collapsed">
<div class="g__item w--1-2 w--1-2-s panels__panel">
<div class="bg--pop-high">
<div class="panels__panel__header">
<div class="g--tight">
<div class="g__item w--1-2 w--1-2-s">
<h2 class="heading--secondary epsilon">
<i class="i i--language"></i>
#{messages['jsf.Languages']}
</h2>
</div>
<div
class="g__item w--1-2 w--1-2-s txt--align-right txt--s-align-right">
<zanata:sortlist id="languages-language_sorting"
sortAction="#{versionGroupHomeAction.sortLanguageList()}"
render="languages-language_form"
sortingList="#{versionGroupHomeAction.languageSortingList}"/>
</div>
<div class="g__item w--1-2 w--1-2-s panels__panel">
<div class="bg--pop-high">
<div class="panels__panel__header">
<div class="g--tight">
<div class="g__item w--1-2 w--1-2-s">
<h2 class="heading--secondary epsilon">
<i class="i i--language"></i>
#{messages['jsf.Languages']}
</h2>
</div>
<div
class="g__item w--1-2 w--1-2-s txt--align-right txt--s-align-right">
<zanata:sortlist id="languages-language_sorting"
sortAction="#{versionGroupHomeAction.sortLanguageList()}"
render="languages-language_form"
sortingList="#{versionGroupHomeAction.languageSortingList}"/>
</div>
</div>
<h:form id="languages-language_form" styleClass="l--push-bottom-0">
<s:fragment
rendered="#{versionGroupHomeAction.getActiveLocales().isEmpty()}">
<div class="l--pad-all-half">
<p class="txt--meta">#{messages['jsf.NoActiveLanguages']}</p>
<s:fragment
rendered="#{s:hasPermission(versionGroupHome.instance, 'update')}">
<p>
<a href="#settings-languages" class="button--primary"
onclick="updateHashAndGotoUrl(this)">
#{messages['jsf.AddLanguages']}
</a>
</p>
</s:fragment>
</div>
</s:fragment>
</div>
<h:form id="languages-language_form" styleClass="l--push-bottom-0">
<s:fragment
rendered="#{versionGroupHomeAction.getActiveLocales().isEmpty()}">
<div class="l--pad-all-half">
<p class="txt--meta">#{messages['jsf.NoActiveLanguages']}</p>
<s:fragment
rendered="#{s:hasPermission(versionGroupHome.instance, 'update')}">
<p>
<a href="#settings-languages" class="button--primary"
onclick="updateHashAndGotoUrl(this)">
#{messages['jsf.AddLanguages']}
</a>
</p>
</s:fragment>
</div>
</s:fragment>

<s:fragment
rendered="#{!versionGroupHomeAction.getActiveLocales().isEmpty()}">
<ul class="list--stats" id="languages-language_list">
<ui:repeat
value="#{versionGroupHomeAction.getActiveLocales()}"
var="hLocale">
<li
class="progress-bar__expander panels__panel__item bg--highest--hover">
<a4j:commandLink
action="#{versionGroupHomeAction.setSelectedLocale(hLocale)}"
render="languages-project_list, localeLabel"
onclick="updateActiveRow(this), toggleColumn();return"
styleClass="bx--block">
<div class="list__item">
<div class="list__item__info">
<s:fragment
rendered="#{!versionGroupHomeAction.getActiveLocales().isEmpty()}">
<ul class="list--stats" id="languages-language_list">
<ui:repeat
value="#{versionGroupHomeAction.getActiveLocales()}"
var="hLocale">
<li
class="progress-bar__expander panels__panel__item bg--highest--hover">
<a4j:commandLink
action="#{versionGroupHomeAction.setSelectedLocale(hLocale)}"
render="languages-project_list, localeLabel"
onclick="updateActiveRow(this), toggleColumn();return"
styleClass="bx--block">
<div class="list__item">
<div class="list__item__info">
<span class="list__title">
${hLocale.retrieveDisplayName()}
<a4j:outputPanel
Expand All @@ -68,9 +68,9 @@
#{versionGroupHomeAction.getMissingVersion(hLocale.localeId).size()}
</a4j:outputPanel>
</span>
</div>
<s:div styleClass="list__item__stats"
rendered="#{versionGroupHomeAction.pageRendered}">
</div>
<s:div styleClass="list__item__stats"
rendered="#{versionGroupHomeAction.pageRendered}">
<span class="stats--small txt--state-neutral">
<span class="stats__figure">
${versionGroupHomeAction.getStatisticFigureForLocale(versionGroupHomeAction.languageSortingList.selectedSortOption, hLocale.localeId)}
Expand All @@ -79,30 +79,30 @@
${versionGroupHomeAction.getStatisticUnit(versionGroupHomeAction.languageSortingList.selectedSortOption)}
</span>
</span>
</s:div>
</div>
</s:div>
</div>

<zanata:statistic
value="${versionGroupHomeAction.getStatisticsForLocale(hLocale.localeId)}"
rendered="#{versionGroupHomeAction.pageRendered}"/>
<zanata:statistic
value="${versionGroupHomeAction.getStatisticsForLocale(hLocale.localeId)}"
rendered="#{versionGroupHomeAction.pageRendered}"/>

<zanata:loader type="large"
rendered="#{!versionGroupHomeAction.pageRendered}"/>
</a4j:commandLink>
</li>
</ui:repeat>
</ul>
</s:fragment>
</h:form>
</div>
<zanata:loader type="large"
rendered="#{!versionGroupHomeAction.pageRendered}"/>
</a4j:commandLink>
</li>
</ui:repeat>
</ul>
</s:fragment>
</h:form>
</div>
</div>

<div class="g__item w--1-2 w--1-2-s panels__panel">
<s:div styleClass="bg--pop-higher">
<div class="panels__panel__header">
<div class="g--tight">
<div class="g__item w--1-2 w--1-2-s">
<h2 class="heading--secondary epsilon">
<div class="g__item w--1-2 w--1-2-s panels__panel">
<s:div styleClass="bg--pop-higher">
<div class="panels__panel__header">
<div class="g--tight">
<div class="g__item w--1-2 w--1-2-s">
<h2 class="heading--secondary epsilon">
<span class="is-hidden--l-up">
<a href="#"
onclick="removeActiveRows('languages-language_list');toggleColumn()"
Expand All @@ -111,60 +111,61 @@
</a>
<i class="i i--arrow-right"></i>
</span>
<i class="i i--project"></i>
<a4j:outputPanel id="localeLabel">
#{versionGroupHomeAction.selectedLocale.retrieveDisplayName()}
</a4j:outputPanel>
#{messages['Projects']}
</h2>
</div>
<div
class="g__item w--1-2 w--1-2-s txt--align-right txt--s-align-right">
<zanata:sortlist id="languages-project_sorting"
sortAction="#{versionGroupHomeAction.sortProjectList()}"
render="languages-project_list"
sortingList="#{versionGroupHomeAction.projectSortingList}"/>
</div>
<i class="i i--project"></i>
<a4j:outputPanel id="localeLabel">
#{versionGroupHomeAction.selectedLocale.retrieveDisplayName()}
</a4j:outputPanel>
#{messages['Projects']}
</h2>
</div>
<div
class="g__item w--1-2 w--1-2-s txt--align-right txt--s-align-right">
<zanata:sortlist id="languages-project_sorting"
sortAction="#{versionGroupHomeAction.sortProjectList()}"
render="languages-project_list"
sortingList="#{versionGroupHomeAction.projectSortingList}"/>
</div>
</div>
<h:form id="languages-project_list" styleClass="l--push-bottom-0">
<s:fragment
rendered="#{versionGroupHomeAction.selectedLocale == null}">
<div class="l--pad-all-half">
<p class="txt--meta">
#{messages['jsf.SelectALanguageFromList']}
</p>
</div>
</s:fragment>
<s:fragment
rendered="#{versionGroupHomeAction.selectedLocale != null and versionGroupHomeAction.getProjectIterations().isEmpty()}">
<div class="l--pad-all-half">
<p class="txt--meta">#{messages['jsf.NoProjectsInGroup']}</p>
</div>
<h:form id="languages-project_list" styleClass="l--push-bottom-0">
<s:fragment
rendered="#{versionGroupHomeAction.selectedLocale == null}">
<div class="l--pad-all-half">
<p class="txt--meta">
#{messages['jsf.SelectALanguageFromList']}
</p>
</div>
</s:fragment>
<s:fragment
rendered="#{versionGroupHomeAction.selectedLocale != null and versionGroupHomeAction.getProjectIterations().isEmpty()}">
<div class="l--pad-all-half">
<p class="txt--meta">#{messages['jsf.NoProjectsInGroup']}</p>

<s:fragment
rendered="#{s:hasPermission(versionGroupHome.instance, 'update')}">
<p>
<a href="#settings-projects" class="button--primary"
onclick="updateHashAndGotoUrl(this)">
#{messages['jsf.AddProjectVersions']}
</a>
</p>
</s:fragment>
</div>
</s:fragment>
<s:fragment
rendered="#{versionGroupHomeAction.selectedLocale != null and !versionGroupHomeAction.getProjectIterations().isEmpty()}">
<ul class="list--stats">
<ui:repeat
value="#{versionGroupHomeAction.getProjectIterations()}"
var="version">
<li
class="progress-bar__expander panels__panel__item bg--highest--hover">
<div class="list__item">
<div class="list__item__info">
<s:fragment
rendered="#{s:hasPermission(versionGroupHome.instance, 'update')}">
<p>
<a href="#settings-projects" class="button--primary"
onclick="updateHashAndGotoUrl(this)">
#{messages['jsf.AddProjectVersions']}
</a>
</p>
</s:fragment>
</div>
</s:fragment>
<s:fragment
rendered="#{versionGroupHomeAction.selectedLocale != null and !versionGroupHomeAction.getProjectIterations().isEmpty()}">
<ul class="list--stats">
<ui:repeat
value="#{versionGroupHomeAction.getProjectIterations()}"
var="version">
<li
class="progress-bar__expander panels__panel__item bg--highest--hover">
<div class="list__item">
<div class="list__item__info">
<span class="list__title">
<h:outputLink
value="#{request.contextPath}/webtrans/Application.seam">
value="#{request.contextPath}/webtrans/Application.seam"
rendered="#{versionGroupHomeAction.isLocaleActivatedInVersion(version, versionGroupHomeAction.selectedLocale.localeId)}">
<f:param name="project"
value="#{version.project.slug}"/>
<f:param name="iteration"
Expand All @@ -177,6 +178,12 @@
class="i i--version"></i> #{version.slug}
</h:outputLink>

<s:fragment
rendered="#{!versionGroupHomeAction.isLocaleActivatedInVersion(version, versionGroupHomeAction.selectedLocale.localeId)}">
#{version.project.name} <i
class="i i--version"></i> #{version.slug}
</s:fragment>

<s:link view="/iteration/view.xhtml"
rendered="#{!versionGroupHomeAction.isLocaleActivatedInVersion(version, versionGroupHomeAction.selectedLocale.localeId)}">
<f:param name="projectSlug"
Expand All @@ -187,8 +194,8 @@
class="badge--danger">#{messages['jsf.Missing']}</span>
</s:link>
</span>
</div>
<div class="list__item__stats">
</div>
<div class="list__item__stats">
<span class="stats--small">
<span class="stats__figure">
${versionGroupHomeAction.getStatisticFigureForProjectWithLocale(versionGroupHomeAction.projectSortingList.selectedSortOption, versionGroupHomeAction.selectedLocale.localeId, version.id)}
Expand All @@ -197,17 +204,17 @@
${versionGroupHomeAction.getStatisticUnit(versionGroupHomeAction.projectSortingList.selectedSortOption)}
</span>
</span>
</div>
</div>
<zanata:statistic
value="${versionGroupHomeAction.getSelectedLocaleStatistic(version.id)}"/>
</li>
</ui:repeat>
</ul>
</s:fragment>
</h:form>
</s:div>
</div>
</div>
<zanata:statistic
value="${versionGroupHomeAction.getSelectedLocaleStatistic(version.id)}"/>
</li>
</ui:repeat>
</ul>
</s:fragment>
</h:form>
</s:div>
</div>
</div>
</div>
</ui:composition>

0 comments on commit 8c32e22

Please sign in to comment.