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

Commit

Permalink
Update group page - language tab to filter project
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Eng committed Jan 10, 2014
1 parent 3b1732f commit bc739fb
Show file tree
Hide file tree
Showing 5 changed files with 286 additions and 169 deletions.
Expand Up @@ -21,16 +21,15 @@
package org.zanata.action;

import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.annotation.Nullable;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

import org.apache.commons.lang.StringUtils;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
Expand All @@ -42,16 +41,21 @@
import org.zanata.model.HAccount;
import org.zanata.model.HLocale;
import org.zanata.model.HPerson;
import org.zanata.model.HProject;
import org.zanata.model.HProjectIteration;
import org.zanata.service.VersionGroupService;
import org.zanata.service.VersionLocaleKey;
import org.zanata.ui.model.statistic.WordStatistic;
import org.zanata.util.StatisticsUtil;
import org.zanata.util.ZanataMessages;

import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;

import lombok.Getter;
import lombok.Setter;

/**
* @author Alex Eng <a href="mailto:aeng@redhat.com">aeng@redhat.com</a>
*/
Expand Down Expand Up @@ -92,6 +96,10 @@ public class VersionGroupHomeAction extends AbstractSortAction implements
@Getter
private WordStatistic overallStatistic;

@Setter
@Getter
private String projectQuery;

private List<HLocale> activeLocales;

private List<HProjectIteration> projectIterations;
Expand Down Expand Up @@ -259,6 +267,15 @@ public boolean isUserProjectMaintainer() {
&& authenticatedAccount.getPerson().isMaintainerOfProjects();
}

public int getFilteredProjectSize() {
if (getSelectedLocale() == null) {
return 0;
} else {
return getFilteredProjectIterations().size();
}

}

/**
* Sort language list based on overall locale statistic for the group
*/
Expand All @@ -277,7 +294,7 @@ public void sortLanguageList(Long versionId) {

/**
* Sort project list based on selected locale - language tab
*
*
* @param localeId
*/
public void sortProjectList(LocaleId localeId) {
Expand Down Expand Up @@ -386,7 +403,7 @@ private Map<LocaleId, List<HProjectIteration>> getMissingLocaleVersionMap() {

/**
* Search for locale that is not activated in given version
*
*
* @param version
*/
public List<LocaleId> getMissingLocale(HProjectIteration version) {
Expand All @@ -411,7 +428,7 @@ public String getMissingLocaleTitle(HProjectIteration version) {

/**
* Search for version that doesn't activate given locale
*
*
* @param localeId
*/
public List<HProjectIteration> getMissingVersion(LocaleId localeId) {
Expand Down Expand Up @@ -469,6 +486,25 @@ public List<HProjectIteration> getProjectIterations() {
return projectIterations;
}

public List<HProjectIteration> getFilteredProjectIterations() {
List<HProjectIteration> list = getProjectIterations();
if (StringUtils.isEmpty(projectQuery)) {
return list;
}

Collection<HProjectIteration> filtered =
Collections2.filter(list, new Predicate<HProjectIteration>() {
@Override
public boolean apply(@Nullable HProjectIteration input) {
HProject project = input.getProject();
return project.getName().toLowerCase()
.contains(projectQuery.toLowerCase());
}
});

return Lists.newArrayList(filtered);
}

@Override
public void resetPageData() {
projectIterations = null;
Expand Down
2 changes: 2 additions & 0 deletions zanata-war/src/main/resources/messages.properties
Expand Up @@ -443,6 +443,8 @@ jsf.ArchiveGroupMessage=This will set the group's status to obsolete and remove
jsf.ActivateGroupMessage=This will set the group's status to active and make it visible in the public groups list.

jsf.Missing=missing
jsf.project.search.placeholder=Search project names
jsf.ClearSearch=Clear search

#------ [home] > Groups > Create New Group ------
#------ [home] > Groups > [group-id] Edit Group ------
Expand Down

0 comments on commit bc739fb

Please sign in to comment.