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

Commit

Permalink
Implement fix for activity log: https://bugzilla.redhat.com/show_bug.…
Browse files Browse the repository at this point in the history
…cgi?id=996377

- Update activity target when update entry
- Dashboard page requires login from user
- Fix up translation document upload activity string - incorrect "Finishing on..." was displayed
  • Loading branch information
Alex Eng committed Aug 14, 2013
1 parent 7a4dcf9 commit aac6aa6
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 29 deletions.
4 changes: 3 additions & 1 deletion zanata-model/src/main/java/org/zanata/model/Activity.java
Expand Up @@ -115,11 +115,13 @@ private void onPrePersist()
endOffsetMillis = startOffsetMillis;
}

public void updateActivity(Date currentTime, int wordCount)
public void updateActivity(Date currentTime, IsEntityWithType target, int wordCount)
{
this.endOffsetMillis = currentTime.getTime() - approxTime.getTime();
this.wordCount += wordCount;
this.eventCount++;
this.lastTargetType = target.getEntityType();
this.lastTargetId = target.getId();
}

@Transient
Expand Down
14 changes: 0 additions & 14 deletions zanata-war/src/main/java/org/zanata/action/ActivityAction.java
Expand Up @@ -129,20 +129,6 @@ public String getLastTextFlowContent(Activity activity)
HTextFlowTarget tft = (HTextFlowTarget) lastTarget;
content = tft.getTextFlow().getContents().get(0);
}
else if (activity.getActivityType() == ActivityType.UPLOAD_SOURCE_DOCUMENT)
{
//not supported for upload source action
}
else if (activity.getActivityType() == ActivityType.UPLOAD_TRANSLATION_DOCUMENT)
{
HDocument document = (HDocument) lastTarget;
HTextFlowTarget tft = documentDAO.getLastTranslatedTargetOrNull(document.getId());

if (tft != null)
{
content = tft.getTextFlow().getContents().get(0);
}
}

return ShortString.shorten(content);
}
Expand Down
Expand Up @@ -62,7 +62,7 @@ public class ActivityServiceImpl implements ActivityService
{
@Logger
private Log log;

@In
private ActivityDAO activityDAO;

Expand All @@ -74,14 +74,16 @@ public class ActivityServiceImpl implements ActivityService

@In
private ProjectIterationDAO projectIterationDAO;

@In
private EntityManager entityManager;

@Override
public Activity findActivity(long actorId, EntityType contextType, long contextId, ActivityType activityType, Date actionTime)
public Activity findActivity(long actorId, EntityType contextType, long contextId, ActivityType activityType,
Date actionTime)
{
return activityDAO.findActivity(actorId, contextType, contextId, activityType, DateUtils.truncate(actionTime, Calendar.HOUR));
return activityDAO.findActivity(actorId, contextType, contextId, activityType,
DateUtils.truncate(actionTime, Calendar.HOUR));
}

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

@Override
public void logActivity(HPerson actor, IsEntityWithType context, IsEntityWithType target, ActivityType activityType, int wordCount)
public void logActivity(HPerson actor, IsEntityWithType context, IsEntityWithType target, ActivityType activityType,
int wordCount)
{
if (actor != null && context != null && activityType != null)
{
Date currentActionTime = new Date();
Activity activity = findActivity(actor.getId(), context.getEntityType(), context.getId(), activityType, currentActionTime);
Activity activity = findActivity(actor.getId(), context.getEntityType(), context.getId(), activityType,
currentActionTime);

if (activity != null)
{
activity.updateActivity(currentActionTime, wordCount);
activity.updateActivity(currentActionTime, target, wordCount);
}
else
{
Expand All @@ -132,9 +136,11 @@ public void logTextFlowStateUpdate(TextFlowTargetStateEvent event)
{
HTextFlowTarget target = textFlowTargetDAO.findById(event.getTextFlowTargetId(), false);
HDocument document = documentDAO.getById(event.getDocumentId());
ActivityType activityType = event.getNewState().isReviewed() ? ActivityType.REVIEWED_TRANSLATION : ActivityType.UPDATE_TRANSLATION;
ActivityType activityType = event.getNewState().isReviewed() ? ActivityType.REVIEWED_TRANSLATION
: ActivityType.UPDATE_TRANSLATION;

logActivity(target.getLastModifiedBy(), document.getProjectIteration(), target, activityType, target.getTextFlow().getWordCount().intValue());
logActivity(target.getLastModifiedBy(), document.getProjectIteration(), target, activityType, target
.getTextFlow().getWordCount().intValue());
}

/**
Expand All @@ -145,9 +151,11 @@ public void logTextFlowStateUpdate(TextFlowTargetStateEvent event)
public void onDocumentUploaded(DocumentUploadedEvent event)
{
HDocument document = documentDAO.getById(event.getDocumentId());
ActivityType activityType = event.isSourceDocument() ? ActivityType.UPLOAD_SOURCE_DOCUMENT : ActivityType.UPLOAD_TRANSLATION_DOCUMENT;

logActivity(document.getLastModifiedBy(), document.getProjectIteration(), document, activityType, getDocumentWordCount(document));
ActivityType activityType = event.isSourceDocument() ? ActivityType.UPLOAD_SOURCE_DOCUMENT
: ActivityType.UPLOAD_TRANSLATION_DOCUMENT;

logActivity(document.getLastModifiedBy(), document.getProjectIteration(), document, activityType,
getDocumentWordCount(document));
}

private int getDocumentWordCount(HDocument document)
Expand Down
4 changes: 4 additions & 0 deletions zanata-war/src/main/webapp/WEB-INF/pages.xml
Expand Up @@ -12,6 +12,10 @@
</navigation>
</page>

<page view-id="/dashboard/*" login-required="true">
<restrict>#{identity.loggedIn}</restrict>
</page>

<page view-id="/edit_home_content.xhtml">
<action execute="#{breadcrumbs.clear}"/>
<action execute="#{breadcrumbs.addLocation('', messages['jsf.server.EditHomePage.label'])}"/>
Expand Down
3 changes: 1 addition & 2 deletions zanata-war/src/main/webapp/dashboard/activity.xhtml
Expand Up @@ -56,8 +56,7 @@

<s:fragment rendered="#{activity.activityType == 'UPLOAD_TRANSLATION_DOCUMENT'}">
You uploaded translations 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>"
<a href="#{activityAction.getProjectUrl(activity)}">#{activityAction.getProjectName(activity)}</a>
</s:fragment>
</p>
<ul class="list--horizontal txt--meta">
Expand Down

0 comments on commit aac6aa6

Please sign in to comment.