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

Commit

Permalink
refactor code based on review comments
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Eng committed Jul 30, 2013
1 parent 7a4a4d1 commit 3d9b0f6
Show file tree
Hide file tree
Showing 14 changed files with 110 additions and 77 deletions.
26 changes: 15 additions & 11 deletions zanata-model/src/main/java/org/zanata/model/HDocument.java
Expand Up @@ -71,6 +71,7 @@
import org.zanata.rest.dto.resource.TranslationsResource;

import com.google.common.collect.ImmutableList;

/**
* @see AbstractResourceMeta
* @see Resource
Expand All @@ -83,8 +84,9 @@
@TypeDef(name = "contentType", typeClass = ContentTypeType.class)
@Setter
@NoArgsConstructor
@ToString(of = {"name", "path", "docId", "locale", "revision"})
public class HDocument extends ModelEntityBase implements DocumentWithId, IDocumentHistory, Serializable, Iterable<SourceContents>, HasEntityType
@ToString(of = { "name", "path", "docId", "locale", "revision" })
public class HDocument extends ModelEntityBase implements DocumentWithId, IDocumentHistory, Serializable,
Iterable<SourceContents>, IsEntityWithType
{
private static final long serialVersionUID = 5129552589912687504L;
private String docId;
Expand Down Expand Up @@ -167,7 +169,7 @@ public String getQualifiedDocId()
{
HProjectIteration iter = getProjectIteration();
HProject proj = iter.getProject();
return proj.getSlug()+":"+iter.getSlug()+":"+getDocId();
return proj.getSlug() + ":" + iter.getSlug() + ":" + getDocId();
}

@NotNull
Expand All @@ -180,14 +182,16 @@ public String getPath()
@ManyToOne
@JoinColumn(name = "locale", nullable = false)
@Override
public @Nonnull HLocale getLocale()
public @Nonnull
HLocale getLocale()
{
return this.locale;
}

@Transient
@Override
public @Nonnull LocaleId getSourceLocaleId()
public @Nonnull
LocaleId getSourceLocaleId()
{
return locale.getLocaleId();
}
Expand Down Expand Up @@ -281,7 +285,7 @@ public List<HTextFlow> getTextFlows()
@Override
public Iterator<SourceContents> iterator()
{
return ImmutableList.<SourceContents>copyOf(getTextFlows()).iterator();
return ImmutableList.<SourceContents> copyOf(getTextFlows()).iterator();
}

public boolean isObsolete()
Expand Down Expand Up @@ -317,10 +321,10 @@ public Map<HLocale, HPoTargetHeader> getPoTargetHeaders()

@OneToOne(fetch = FetchType.LAZY, optional = true)
@JoinTable(name = "HDocument_RawDocument",
joinColumns = @JoinColumn(name="documentId"),
inverseJoinColumns = @JoinColumn(name="rawDocumentId")
)
public HRawDocument getRawDocument()
joinColumns = @JoinColumn(name = "documentId"),
inverseJoinColumns = @JoinColumn(name = "rawDocumentId")
)
public HRawDocument getRawDocument()
{
return rawDocument;
}
Expand All @@ -332,7 +336,7 @@ public void onUpdate()
{
HAccount account = (HAccount) Component.getInstance(JpaIdentityStore.AUTHENTICATED_USER, ScopeType.SESSION);
// TODO In some cases there is no session ( such as when pushing async )
if( account != null )
if (account != null)
{
setLastModifiedBy(account.getPerson());
}
Expand Down
Expand Up @@ -46,6 +46,7 @@
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;

import lombok.NoArgsConstructor;
import lombok.Setter;
Expand All @@ -60,9 +61,6 @@
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.FieldBridge;
import org.hibernate.search.annotations.Indexed;

import javax.validation.constraints.NotNull;

import org.jboss.seam.annotations.security.Restrict;
import org.zanata.annotation.EntityRestrict;
import org.zanata.common.ProjectType;
Expand All @@ -87,7 +85,7 @@
@Setter
@NoArgsConstructor
@ToString(callSuper = true, of = {"project"})
public class HProjectIteration extends SlugEntityBase implements Iterable<DocumentWithId>, HasEntityType
public class HProjectIteration extends SlugEntityBase implements Iterable<DocumentWithId>, IsEntityWithType
{

private static final long serialVersionUID = 182037127575991478L;
Expand Down
Expand Up @@ -86,7 +86,7 @@
@Indexed
@Setter
@NoArgsConstructor
public class HTextFlowTarget extends ModelEntityBase implements HasContents, HasSimpleComment, ITextFlowTargetHistory, Serializable, TargetContents, HasEntityType
public class HTextFlowTarget extends ModelEntityBase implements HasContents, HasSimpleComment, ITextFlowTargetHistory, Serializable, TargetContents, IsEntityWithType
{

private static final long serialVersionUID = 302308010797605435L;
Expand Down
Expand Up @@ -25,7 +25,7 @@
/**
* @author Alex Eng <a href="mailto:aeng@redhat.com">aeng@redhat.com</a>
*/
public interface HasEntityType
public interface IsEntityWithType
{
Long getId();

Expand Down
Expand Up @@ -20,6 +20,8 @@
*/
package org.zanata;

import static org.apache.commons.lang.StringUtils.isEmpty;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
Expand All @@ -31,7 +33,6 @@

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.jboss.seam.Component;
Expand Down Expand Up @@ -65,6 +66,8 @@ public class ApplicationConfiguration implements Serializable

private static final String EMAIL_APPENDER_NAME = "zanata.log.appender.email";
public static final String EVENT_CONFIGURATION_CHANGED = "zanata.configuration.changed";

private static final String STYLESHEET_LOCAL_PATH = "/assets/css/style.css";

private DatabaseBackedConfig databaseBackedConfig;
private JndiBackedConfig jndiBackedConfig;
Expand Down Expand Up @@ -395,16 +398,16 @@ public boolean useEmailServerSsl()

public String getWebAssetsStyleUrl()
{
if (StringUtils.isEmpty(webAssetsStyleUrl))
if (isEmpty(webAssetsStyleUrl))
{
webAssetsStyleUrl = String.format("%s/%s/assets/css/style.css", getBaseWebAssetsUrl(), webAssetsVersion);
webAssetsStyleUrl = getWebAssetsUrl() + STYLESHEET_LOCAL_PATH;
}
return webAssetsStyleUrl;
}

public String getWebAssetsUrl()
{
if (StringUtils.isEmpty(webAssetsUrl))
if (isEmpty(webAssetsUrl))
{
webAssetsUrl = String.format("%s/%s", getBaseWebAssetsUrl(), webAssetsVersion);
}
Expand Down
15 changes: 11 additions & 4 deletions zanata-war/src/main/java/org/zanata/action/ActivityAction.java
Expand Up @@ -21,6 +21,7 @@
package org.zanata.action;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

Expand Down Expand Up @@ -77,9 +78,15 @@ public class ActivityAction implements Serializable

public List<Activity> getActivities()
{
int count = (activityPageIndex + 1) * ACTIVITY_COUNT_PER_LOAD;
return activityServiceImpl.findLatestActivities(authenticatedAccount.getPerson().getId(), 0,
List<Activity> activities = new ArrayList<Activity>();

if(authenticatedAccount != null)
{
int count = (activityPageIndex + 1) * ACTIVITY_COUNT_PER_LOAD;
activities = activityServiceImpl.findLatestActivities(authenticatedAccount.getPerson().getId(), 0,
count);
}
return activities;
}

public String getDurationTime(Activity activity)
Expand Down Expand Up @@ -304,12 +311,12 @@ else if (activity.getActionType() == ActivityType.UPLOAD_TRANSLATION_DOCUMENT)
return name;
}

public void loadMoreActivity()
public void loadNextActivity()
{
activityPageIndex++;
}

public String getWordsCount(int wordCount)
public String getWordsCountMessage(int wordCount)
{
if (wordCount == 1)
{
Expand Down
23 changes: 17 additions & 6 deletions zanata-war/src/main/java/org/zanata/action/DashboardAction.java
Expand Up @@ -44,6 +44,9 @@
import org.zanata.security.ZanataIdentity;
import org.zanata.service.GravatarService;
import org.zanata.util.DateUtil;
import org.zanata.util.UrlUtil;

import com.ctc.wstx.util.URLUtil;

@Name("dashboardAction")
@Scope(ScopeType.PAGE)
Expand All @@ -63,11 +66,14 @@ public class DashboardAction implements Serializable
@In
private ProjectDAO projectDAO;

@In(required = false, value = JpaIdentityStore.AUTHENTICATED_USER)
private HAccount authenticatedAccount;

@In
private ZanataIdentity identity;

@In
private UrlUtil urlUtil;

@In(required = false, value = JpaIdentityStore.AUTHENTICATED_USER)
private HAccount authenticatedAccount;

private final int USER_IMAGE_SIZE = 115;

Expand Down Expand Up @@ -106,7 +112,7 @@ public List<HProject> getUserMaintainedProjects()
{
List<HProject> sortedList = new ArrayList<HProject>();

if (checkViewObsolete())
if (canViewObsolete())
{
sortedList.addAll(authenticatedAccount.getPerson().getMaintainerProjects());
}
Expand All @@ -126,7 +132,7 @@ public List<HProject> getUserMaintainedProjects()
}

@CachedMethodResult
public boolean checkViewObsolete()
public boolean canViewObsolete()
{
return identity != null && identity.hasPermission("HProject", "view-obsolete");
}
Expand All @@ -135,7 +141,7 @@ public boolean checkViewObsolete()
public List<HProjectIteration> getProjectVersions(Long projectId)
{
List<HProjectIteration> result = new ArrayList<HProjectIteration>();
if (checkViewObsolete())
if (canViewObsolete())
{
result.addAll(projectIterationDAO.searchByProjectId(projectId));
}
Expand Down Expand Up @@ -176,4 +182,9 @@ private HProject getProject(Long projectId)
{
return projectDAO.findById(projectId, false);
}

public String getCreateVersionUrl(String projectSlug)
{
return urlUtil.createVersionUrl(projectSlug);
}
}
2 changes: 1 addition & 1 deletion zanata-war/src/main/java/org/zanata/dao/ActivityDAO.java
Expand Up @@ -72,7 +72,7 @@ public Activity findActivity(long personId, EntityType contextType, long context
}

@SuppressWarnings("unchecked")
public List<Activity> findActivities(long personId, long contextId, int offset, int maxResults)
public List<Activity> findLatestActivitiesForContext(long personId, long contextId, int offset, int maxResults)
{
Query query = getSession().createQuery("FROM Activity a WHERE a.actor.id = :personId "
+ "AND a.contextId = :contextId "
Expand Down
Expand Up @@ -27,7 +27,7 @@
import org.zanata.exception.ZanataServiceException;
import org.zanata.model.Activity;
import org.zanata.model.HPerson;
import org.zanata.model.HasEntityType;
import org.zanata.model.IsEntityWithType;
import org.zanata.model.type.EntityType;

/**
Expand Down Expand Up @@ -76,7 +76,7 @@ public interface ActivityService
* @param actionType
* @param wordCount
*/
void logActivity(HPerson actor, HasEntityType context, HasEntityType target, ActivityType actionType, int wordCount);
void logActivity(HPerson actor, IsEntityWithType context, IsEntityWithType target, ActivityType actionType, int wordCount);

/**
* Get target or lastTarget entity in activity
Expand Down
Expand Up @@ -48,7 +48,7 @@
import org.zanata.model.HPerson;
import org.zanata.model.HTextFlow;
import org.zanata.model.HTextFlowTarget;
import org.zanata.model.HasEntityType;
import org.zanata.model.IsEntityWithType;
import org.zanata.model.type.EntityType;
import org.zanata.service.ActivityService;

Expand Down Expand Up @@ -87,7 +87,7 @@ public Activity findActivity(long actorId, EntityType contextType, long contextI
@Override
public List<Activity> findActivities(long personId, long contextId, int offset, int maxResults)
{
return activityDAO.findActivities(personId, contextId, offset, maxResults);
return activityDAO.findLatestActivitiesForContext(personId, contextId, offset, maxResults);
}

@Override
Expand All @@ -97,7 +97,7 @@ public List<Activity> findLatestActivities(long personId, int offset, int maxRes
}

@Override
public void logActivity(HPerson actor, HasEntityType context, HasEntityType target, ActivityType actionType, int wordCount)
public void logActivity(HPerson actor, IsEntityWithType context, IsEntityWithType target, ActivityType actionType, int wordCount)
{
if (actor != null && context != null && actionType != null)
{
Expand Down
5 changes: 5 additions & 0 deletions zanata-war/src/main/java/org/zanata/util/UrlUtil.java
Expand Up @@ -107,6 +107,11 @@ public String projectUrl(String projectSlug)
{
return contextPath + "/project/view/" + projectSlug;
}

public String createVersionUrl(String projectSlug)
{
return contextPath + "/project/add_iteration.seam?projectSlug=" + projectSlug;
}

public String versionUrl(String projectSlug, String versionSlug)
{
Expand Down
2 changes: 2 additions & 0 deletions zanata-war/src/main/resources/messages.properties
Expand Up @@ -120,6 +120,8 @@ jsf.YouHaveNoMaintainedProjects=You currently have no maintained projects.
jsf.moreActivity=more activity
jsf.word=word
jsf.words=words
jsf.noVersions=No versions
jsf.createAVersion=create a version

#------ [home] > Edit Page Content ------
jsf.EditHomePage=Edit Home Page
Expand Down
10 changes: 5 additions & 5 deletions zanata-war/src/main/webapp/dashboard/activity.xhtml
Expand Up @@ -36,24 +36,24 @@
</p>
<p class="l--push-all-0">
<s:fragment rendered="#{activity.actionType == 'UPDATE_TRANSLATION'}">
You translated <strong>#{activityAction.getWordsCount(activity.wordCount)}</strong> in
You translated <strong>#{activityAction.getWordsCountMessage(activity.wordCount)}</strong> in
<a href="#{activityAction.getProjectUrl(activity)}">#{activityAction.getProjectName(activity)}</a>,
finishing on "<a href="#{activityAction.getEditorUrl(activity)}">#{activityAction.getLastTextFlowContent(activity)}</a>"
</s:fragment>

<s:fragment rendered="#{activity.actionType == 'REVIEWED_TRANSLATION'}">
You reviewed <strong>#{activityAction.getWordsCount(activity.wordCount)}</strong> in
You reviewed <strong>#{activityAction.getWordsCountMessage(activity.wordCount)}</strong> in
<a href="#{activityAction.getProjectUrl(activity)}">#{activityAction.getProjectName(activity)}</a>,
finishing on "<a href="#{activityAction.getEditorUrl(activity)}">#{activityAction.getLastTextFlowContent(activity)}</a>"
</s:fragment>

<s:fragment rendered="#{activity.actionType == 'UPLOAD_SOURCE_DOCUMENT'}">
You uploaded a document of <strong>#{activityAction.getWordsCount(activity.wordCount)}</strong> to
You uploaded a document of <strong>#{activityAction.getWordsCountMessage(activity.wordCount)}</strong> to
<a href="#{activityAction.getProjectUrl(activity)}">#{activityAction.getProjectName(activity)}</a>
</s:fragment>

<s:fragment rendered="#{activity.actionType == 'UPLOAD_TRANSLATION_DOCUMENT'}">
You uploaded a translation of <strong>#{activityAction.getWordsCount(activity.wordCount)}</strong> to
You uploaded a translation of <strong>#{activityAction.getWordsCountMessage(activity.wordCount)}</strong> to
<a href="#{activityAction.getProjectUrl(activity)}">#{activityAction.getProjectName(activity)}</a>,
finishing on "<a href="#{activityAction.getEditorUrl(activity)}">#{activityAction.getLastTextFlowContent(activity)}</a>"
</s:fragment>
Expand Down Expand Up @@ -83,7 +83,7 @@
</li>
</ui:repeat>
<s:fragment rendered="#{activityAction.hasMoreActivities()}">
<a4j:commandLink styleClass="d--top loader" action="#{activityAction.loadMoreActivity()}" render="activityList">
<a4j:commandLink styleClass="d--top loader" action="#{activityAction.loadNextActivity()}" render="activityList">
<span class="loader__label">#{messages['jsf.moreActivity']}</span>
</a4j:commandLink>
</s:fragment>
Expand Down

0 comments on commit 3d9b0f6

Please sign in to comment.