diff --git a/zanata-war/src/main/java/org/zanata/action/VersionGroupHome.java b/zanata-war/src/main/java/org/zanata/action/VersionGroupHome.java index d1dc4546ec..92e18faa91 100644 --- a/zanata-war/src/main/java/org/zanata/action/VersionGroupHome.java +++ b/zanata-war/src/main/java/org/zanata/action/VersionGroupHome.java @@ -167,7 +167,8 @@ public void setStatus(char initial) { public List suggestLocales(final String query) { if (supportedLocales == null) { - supportedLocales = localeServiceImpl.getSupportedLocales(); + supportedLocales = + localeServiceImpl.getSupportedLocales(); } Collection filtered = diff --git a/zanata-war/src/main/java/org/zanata/service/impl/VersionGroupServiceImpl.java b/zanata-war/src/main/java/org/zanata/service/impl/VersionGroupServiceImpl.java index bdff3b8ddd..45e35607cb 100644 --- a/zanata-war/src/main/java/org/zanata/service/impl/VersionGroupServiceImpl.java +++ b/zanata-war/src/main/java/org/zanata/service/impl/VersionGroupServiceImpl.java @@ -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; @@ -61,6 +62,9 @@ public class VersionGroupServiceImpl implements VersionGroupService { @In private VersionStateCache versionStateCacheImpl; + @In + private LocaleService localeServiceImpl; + @Override public Map getLocaleStatistic( String groupSlug, LocaleId localeId) { @@ -181,8 +185,8 @@ public Map> 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 @@ -192,18 +196,10 @@ public Map> getMissingLocaleVersionMap( */ private boolean isLocaleActivatedInVersion(HProjectIteration version, HLocale locale) { - Set customisedLocales = Sets.newHashSet(); + List 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 } } diff --git a/zanata-war/src/main/webapp/WEB-INF/layout/version-group/languages-tab.xhtml b/zanata-war/src/main/webapp/WEB-INF/layout/version-group/languages-tab.xhtml index 5f2c2893cd..4c5d0d14ba 100644 --- a/zanata-war/src/main/webapp/WEB-INF/layout/version-group/languages-tab.xhtml +++ b/zanata-war/src/main/webapp/WEB-INF/layout/version-group/languages-tab.xhtml @@ -8,57 +8,57 @@
-
-
-
-
-
-

- - #{messages['jsf.Languages']} -

-
-
- -
+
+
+
+
+
+

+ + #{messages['jsf.Languages']} +

+
+
+
- - -
-

#{messages['jsf.NoActiveLanguages']}

- -

- - #{messages['jsf.AddLanguages']} - -

-
-
-
+
+ + +
+

#{messages['jsf.NoActiveLanguages']}

+ +

+ + #{messages['jsf.AddLanguages']} + +

+
+
+
- -
    - -
  • - -
    -
    + +
      + +
    • + +
      +
      ${hLocale.retrieveDisplayName()} -
      - +
      + ${versionGroupHomeAction.getStatisticFigureForLocale(versionGroupHomeAction.languageSortingList.selectedSortOption, hLocale.localeId)} @@ -79,30 +79,30 @@ ${versionGroupHomeAction.getStatisticUnit(versionGroupHomeAction.languageSortingList.selectedSortOption)} - -
    + +
    - + - -
    -
  • -
    -
-
-
-
+ + + + + + +
+
-
- -
- - - -
-

- #{messages['jsf.SelectALanguageFromList']} -

-
-
- -
-

#{messages['jsf.NoProjectsInGroup']}

+
+ + +
+

+ #{messages['jsf.SelectALanguageFromList']} +

+
+
+ +
- - -
    - -
  • -
    - + + +
      + +
    • +
      +
      + value="#{request.contextPath}/webtrans/Application.seam" + rendered="#{versionGroupHomeAction.isLocaleActivatedInVersion(version, versionGroupHomeAction.selectedLocale.localeId)}"> #{version.slug} + + #{version.project.name} #{version.slug} + + #{messages['jsf.Missing']} -
      -
      +
      +
      ${versionGroupHomeAction.getStatisticFigureForProjectWithLocale(versionGroupHomeAction.projectSortingList.selectedSortOption, versionGroupHomeAction.selectedLocale.localeId, version.id)} @@ -197,17 +204,17 @@ ${versionGroupHomeAction.getStatisticUnit(versionGroupHomeAction.projectSortingList.selectedSortOption)} -
      - -
    • -
      -
    -
    - - -
    +
+ + + + + + +
+
diff --git a/zanata-war/src/main/webapp/WEB-INF/layout/version-group/projects-tab.xhtml b/zanata-war/src/main/webapp/WEB-INF/layout/version-group/projects-tab.xhtml index 8fc41dc566..2855a4afc9 100644 --- a/zanata-war/src/main/webapp/WEB-INF/layout/version-group/projects-tab.xhtml +++ b/zanata-war/src/main/webapp/WEB-INF/layout/version-group/projects-tab.xhtml @@ -8,57 +8,57 @@
-
-
-
-
-
-

- - #{messages['jsf.Projects']} -

-
-
- -
+
+
+
+
+
+

+ + #{messages['jsf.Projects']} +

+
+
+
- - -
-

#{messages['jsf.NoProjectsInGroup']}

+
+ + +
+

#{messages['jsf.NoProjectsInGroup']}

- -

- - #{messages['jsf.AddProjectVersions']} - -

-
-
-
- -
    - -
  • - -
    - + + +
      + +
    • + +
      +
      #{version.project.slug} #{version.slug} @@ -70,9 +70,9 @@ #{versionGroupHomeAction.getMissingLocale(version).size()} -
      - +
      + ${versionGroupHomeAction.getStatisticFigureForProject(versionGroupHomeAction.projectSortingList.selectedSortOption, version.id)} @@ -81,29 +81,29 @@ ${versionGroupHomeAction.getStatisticUnit(versionGroupHomeAction.projectSortingList.selectedSortOption)} - -
    - + +
+ - - - - - - - -
+ + + + + + +
+
-
- -
- - - -
-

- #{messages['jsf.SelectAProjectFromList']} +

+ + +
+

+ #{messages['jsf.SelectAProjectFromList']} +

+
+
+ +
- - -
-

#{messages['jsf.NoActiveLanguages']}

- -

- - #{messages['jsf.AddLanguages']} - -

-
-
-
- -
    - -
  • -
    -
    + +
    + + +
      + +
    • +
      +
      + value="#{request.contextPath}/webtrans/Application.seam" + rendered="#{versionGroupHomeAction.isLocaleActivatedInVersion(versionGroupHomeAction.selectedVersion, hLocale.localeId)}"> + + ${hLocale.retrieveDisplayName()} + + -
      -
      +
      +
      ${versionGroupHomeAction.getStatisticFigureForProjectWithLocale(versionGroupHomeAction.languageSortingList.selectedSortOption, hLocale.localeId, versionGroupHomeAction.selectedVersion.id)} @@ -197,17 +203,17 @@ ${versionGroupHomeAction.getStatisticUnit(versionGroupHomeAction.languageSortingList.selectedSortOption)} -
      - -
    • -
      -
    -
    - - -
    +
+ + + + + + +
+
diff --git a/zanata-war/src/test/java/org/zanata/service/impl/VersionGroupServiceImplTest.java b/zanata-war/src/test/java/org/zanata/service/impl/VersionGroupServiceImplTest.java index be32a7b0fd..86d7fe21ae 100644 --- a/zanata-war/src/test/java/org/zanata/service/impl/VersionGroupServiceImplTest.java +++ b/zanata-war/src/test/java/org/zanata/service/impl/VersionGroupServiceImplTest.java @@ -86,7 +86,7 @@ public void initializeSeam() { .use("projectIterationDAO", new ProjectIterationDAO(getSession())) .use("session", getSession()) - .useImpl(VersionStateCacheImpl.class).ignoreNonResolvable(); + .useImpl(VersionStateCacheImpl.class).useImpl(LocaleServiceImpl.class).ignoreNonResolvable(); versionGroupServiceImpl = seam.autowire(VersionGroupServiceImpl.class); }