Author: ronvoe122
Date: 2008-07-02 15:11:02-0700
New Revision: 10596
Modified:
trunk/src/conf/classes/ScarabBundle_de.properties
trunk/src/conf/classes/ScarabBundle_en.properties
trunk/src/java/org/tigris/scarab/feeds/IssueFeed.java
trunk/src/java/org/tigris/scarab/om/Activity.java
trunk/src/java/org/tigris/scarab/om/ActivitySet.java
trunk/src/java/org/tigris/scarab/om/Depend.java
trunk/src/java/org/tigris/scarab/om/DependTypeManager.java
trunk/src/java/org/tigris/scarab/om/Issue.java
trunk/src/java/org/tigris/scarab/tools/ScarabGlobalTool.java
trunk/src/java/org/tigris/scarab/tools/localization/L10NKeySet.java
trunk/src/java/org/tigris/scarab/util/ScarabUtil.java
trunk/src/webapp/WEB-INF/templates/viewIssue/ViewIssueTab3.vm
trunk/src/webapp/WEB-INF/templates/viewIssue/ViewIssueTab5.vm
trunk/src/webapp/style/tigris.css
Log:
SCB1454: second try in revamping the History-tab:
- one section per activitySet
- each sections consists of three parts, aligned vertically
- user and date
- table of changes (if existing)
- reason or comment (if existing)
- the table of changes consists of three columns
- attribute name
- new value
- original value (if existing)
- style is similar to the Attributes- and Comments-tab
Modified: trunk/src/conf/classes/ScarabBundle_de.properties
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/conf/classes/ScarabBundle_de.properties?view=diff&rev=10596&p1=trunk/src/conf/classes/ScarabBundle_de.properties&p2=trunk/src/conf/classes/ScarabBundle_de.properties&r1=10595&r2=10596
==============================================================================
--- trunk/src/conf/classes/ScarabBundle_de.properties (original)
+++ trunk/src/conf/classes/ScarabBundle_de.properties 2008-07-02 15:11:02-0700
@@ -153,7 +153,7 @@
MoveTo=nach
RangeTo=bis
Reason=Ursache
-Comment=Kommentar:
+Comment=Kommentar
Login=Anmelden
AnonymousAccess=Öffentliche Module sind ohne vorherige Anmeldung einsehbar.
PublicModules=Öffentliche Module (Keine Anmeldung erforderlich)
@@ -415,6 +415,7 @@
AttachmentFieldRequired=Anhang-Felder werden nur benötigt, wenn Feld "{0}" gesetzt ist
Other=Andere (Mime-Typ eingeben:
CloseParenth=)
+OtherActivity=Andere
SubmitNewIssue=Neues Ticket anlegen
CommentFieldDesc=Benutzen Sie dieses Feld, um passende Informationen hinzuzufügen. Ihre Kommentare werden in der E-Mail zum neuen Ticket angehängt und können in der Ticket-Ansicht über den Reiter "Kommentare" angezeigt werden.
MissedRequired1=Benötigt
Modified: trunk/src/conf/classes/ScarabBundle_en.properties
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/conf/classes/ScarabBundle_en.properties?view=diff&rev=10596&p1=trunk/src/conf/classes/ScarabBundle_en.properties&p2=trunk/src/conf/classes/ScarabBundle_en.properties&r1=10595&r2=10596
==============================================================================
--- trunk/src/conf/classes/ScarabBundle_en.properties (original)
+++ trunk/src/conf/classes/ScarabBundle_en.properties 2008-07-02 15:11:02-0700
@@ -473,6 +473,7 @@
AttachmentFieldRequired=attachment fields are only required if the {0} is set
Other=Other (enter mime type:
CloseParenth=)
+OtherActivity=Other
SubmitNewIssue=Submit new issue
CommentFieldDesc=Use this field to enter any pertinent information. Your comments will be included in the new issue email and can be viewed on the Comment tab when viewing the issue.
MissedRequired1=Required
Modified: trunk/src/java/org/tigris/scarab/feeds/IssueFeed.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/feeds/IssueFeed.java?view=diff&rev=10596&p1=trunk/src/java/org/tigris/scarab/feeds/IssueFeed.java&p2=trunk/src/java/org/tigris/scarab/feeds/IssueFeed.java&r1=10595&r2=10596
==============================================================================
--- trunk/src/java/org/tigris/scarab/feeds/IssueFeed.java (original)
+++ trunk/src/java/org/tigris/scarab/feeds/IssueFeed.java 2008-07-02 15:11:02-0700
@@ -71,10 +71,12 @@
description = new SyndContentImpl();
description.setType("text/html");
- StringBuffer desc = new StringBuffer();
- String activityDesc=activity.getDescription(this.l10nTool);
- desc.append("<b>Description:</b>" + activityDesc +"<br/>");
- desc.append("<b>Reason:</b>" + activitySet.getActivityReason() +"<br/>");
+ String desc =
+ "<b>Description:</b>" + activity.getDisplayName(this.l10nTool) +"<br/>"
+ + "<b>New:</b>" + activity.getNewValue(this.l10nTool) +"<br/>"
+ + "<b>Old:</b>" + activity.getOldValue(this.l10nTool) +"<br/>"
+ + "<b>Reason:</b>" + activitySet.getCommentForHistory(issue) +"<br/>";
+
entry.setAuthor(activitySet.getCreator().getName());
description.setValue(desc.toString());
@@ -104,12 +106,16 @@
* @return the entry title
*/
private String createEntryTitle(Activity activity) {
- String activityDesc=activity.getDescription(this.l10nTool);
- String entryTitle=null;
- int maxTitleLength=64;
- int activityLength=activityDesc.length();
- entryTitle=activityDesc.substring(0,(activityLength>=maxTitleLength)?maxTitleLength:activityLength);
- return entryTitle;
+ String displayName = null;
+ try
+ {
+ displayName=activity.getDisplayName();
+ }
+ catch( Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ return displayName.substring(0,64);
}
-}
\ No newline at end of file
+}
Modified: trunk/src/java/org/tigris/scarab/om/Activity.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/om/Activity.java?view=diff&rev=10596&p1=trunk/src/java/org/tigris/scarab/om/Activity.java&p2=trunk/src/java/org/tigris/scarab/om/Activity.java&r1=10595&r2=10596
==============================================================================
--- trunk/src/java/org/tigris/scarab/om/Activity.java (original)
+++ trunk/src/java/org/tigris/scarab/om/Activity.java 2008-07-02 15:11:02-0700
@@ -48,20 +48,17 @@
import java.util.List;
-// Turbine classes
import org.apache.torque.TorqueException;
import org.apache.torque.om.Persistent;
import org.apache.torque.util.Criteria;
import java.sql.Connection;
-import org.tigris.scarab.attribute.DateAttribute;
import org.tigris.scarab.notification.ActivityType;
import org.tigris.scarab.om.Attachment;
import org.tigris.scarab.services.cache.ScarabCache;
import org.tigris.scarab.tools.ScarabLocalizationTool;
+import org.tigris.scarab.tools.localization.L10NKey;
import org.tigris.scarab.tools.localization.L10NKeySet;
-import org.tigris.scarab.tools.localization.L10NMessage;
-import org.tigris.scarab.tools.localization.LocalizationKey;
/**
* This class represents Activity records.
@@ -76,8 +73,6 @@
{
private AttributeOption oldAttributeOption;
private AttributeOption newAttributeOption;
- private static final Integer COPIED = new Integer(1);
- private static final Integer MOVED = new Integer(2);
protected static final String GET_ATTACHMENT =
"getAttachment";
@@ -188,365 +183,118 @@
return super.getDescription();
}
- public String getDescription(ScarabLocalizationTool l10nTool)
+ public String getDescription(ScarabLocalizationTool l10n)
+ throws Exception
{
- String desc = null;
- ActivityType type = ActivityType.getActivityType(this.getActivityType());
- if (ActivityType.OTHER.equals(type))
- {
- desc = super.getDescription();
- }
- else if (ActivityType.URL_CHANGED.equals(type))
- {
- desc = this.getUrlChangedDescription(this.getOldValue(), this.getNewValue(), l10nTool);
- }
- else if (ActivityType.URL_ADDED.equals(type))
- {
- desc = this.getUrlAddedDescription(this.getAttachment().getData(), this.getAttachment().getName(), l10nTool);
- }
- else if (ActivityType.URL_DESC_CHANGED.equals(type))
- {
- desc = this.getUrlDescChangedDescription(this.getOldValue(), this.getNewValue(), l10nTool);
- }
- else if (ActivityType.URL_DELETED.equals(type))
- {
- desc = this.getUrlDeletedDescription(this.getAttachment().getData(), this.getAttachment().getName(), l10nTool);
- }
- else if (ActivityType.COMMENT_ADDED.equals(type))
- {
- desc = this.getCommentAddedDescription(this.getAttachment().getData(), l10nTool);
- }
- else if (ActivityType.COMMENT_CHANGED.equals(type))
- {
- desc = this.getCommentChangedDescription(l10nTool);
- }
- else if (ActivityType.ATTACHMENT_CREATED.equals(type))
- {
- desc = this.getFileSavedDescription(this.getAttachment().getFileName(), l10nTool);
- }
- else if (ActivityType.ISSUE_CREATED.equals(type))
- {
- desc = this.getIssueCreatedDescription(l10nTool);
- }
- else if (ActivityType.ISSUE_MOVED.equals(type))
- {
- desc = this.getIssueCopiedOrMovedDescription(COPIED, this.getOldValue(), this.getNewValue(), l10nTool);
- }
- else if (ActivityType.ISSUE_COPIED.equals(type))
- {
- desc = this.getIssueCopiedOrMovedDescription(MOVED, this.getOldValue(), this.getNewValue(), l10nTool);
- }
- else if (ActivityType.ATTACHMENT_REMOVED.equals(type))
- {
- desc = new L10NMessage(L10NKeySet.AttachmentDeletedDesc, this.getAttachment().getFileName()).getMessage(l10nTool);
- }
- else if (ActivityType.DEPENDENCY_CREATED.equals(type))
- {
- desc = getDependencyAddedDescription(l10nTool);
- }
- else if(ActivityType.DEPENDENCY_CHANGED.equals(type))
- {
- desc = getDependencyChangedDescription(l10nTool);
- }
- else if(ActivityType.DEPENDENCY_DELETED.equals(type))
- {
- desc = getDependencyDeletedDescription(l10nTool);
- }
- else if (ActivityType.ATTRIBUTE_CHANGED.equals(type))
- {
- desc = getAttributeChangedDescription(l10nTool);
- }
- else if (ActivityType.USER_ATTRIBUTE_CHANGED.equals(type))
- {
- desc = getUserAttributeChangedDescription(l10nTool);
- }
- else if (ActivityType.ISSUE_DELETED.equals(type))
- {
- desc = getIssueDeletedDescription(l10nTool);
- }
- else
- {
- desc = "----";
- }
- return desc;
+ return getDisplayName(l10n) + ": " + getNewValue(l10n) + " (" + getOldValue(l10n) + ")";
}
- private String getUrlChangedDescription(String oldUrl, String newUrl,
- ScarabLocalizationTool l10nTool)
+ public ActivityType getType()
{
- Object[] args =
- { oldUrl, newUrl };
- L10NMessage msg = new L10NMessage(L10NKeySet.UrlChangedDesc, args);
- return msg.getMessage(l10nTool);
+ return ActivityType.getActivityType(this.getActivityType());
}
-
- private String getUrlAddedDescription(String url, String desc, ScarabLocalizationTool l10nTool)
- {
- if (desc != null && desc.length() > 0)
- url += " (" + desc + ")";
- L10NMessage msg = new L10NMessage(L10NKeySet.UrlAddedDesc, url);
- return msg.getMessage(l10nTool);
- }
-
- private String getUrlDeletedDescription(String url, String desc, ScarabLocalizationTool l10nTool)
+ public String getOldValue(ScarabLocalizationTool l10n)
+ throws Exception
{
- if (desc != null && desc.length() > 0)
- url += " (" + desc + ")";
- L10NMessage msg = new L10NMessage(L10NKeySet.UrlDeletedDesc, url);
- return msg.getMessage(l10nTool);
- }
-
- private String getCommentAddedDescription(String comment, ScarabLocalizationTool l10nTool)
- {
- return L10NKeySet.AddedCommentToIssue.getMessage(l10nTool) + "\n" + comment;
- }
-
- private String getCommentChangedDescription(ScarabLocalizationTool l10nTool)
- {
- // Generate description of modification
- Object[] args = {
- this.getOldValue(),
- this.getNewValue()
- };
- L10NMessage msg = new L10NMessage(L10NKeySet.ChangedComment, args);
- return msg.getMessage(l10nTool);
- }
+ String value = null;
+ if( getType().equals(ActivityType.DEPENDENCY_DELETED)
+ || getType().equals(ActivityType.DEPENDENCY_CHANGED))
+ {
+ value = getDepend().getIssueRelatedByObserverId().getUniqueId()
+ + " " + l10n.get(DependTypeManager.getManager().getL10nKey(getOldValue()))
+ + " " + getDepend().getIssueRelatedByObservedId().getUniqueId();
+ } else if( getType().equals(ActivityType.ATTACHMENT_REMOVED))
+ {
+ value = getAttachment().getFileName();
+ } else if( getType().equals(ActivityType.URL_DELETED))
+ {
+ value = getAttachment().getData();
+ } else if( getType().equals(ActivityType.COMMENT_CHANGED))
+ {
+ value = getOldValue()!=null ? getOldValue().substring(0, 50) + "..." : "";
+ } else {
+ value = getOldValue()!=null ? getOldValue() : "";
+ }
- private String getFileSavedDescription(String name, ScarabLocalizationTool l10nTool)
- {
- L10NMessage msg = new L10NMessage(L10NKeySet.FileAddedDesc, name);
- return msg.getMessage(l10nTool);
+ return value;
}
-
- private String getIssueCreatedDescription(ScarabLocalizationTool l10nTool)
- {
- return l10nTool.get(L10NKeySet.IssueCreated);
- }
-
- private String getIssueDeletedDescription(ScarabLocalizationTool l10nTool)
+ public String getNewValue(ScarabLocalizationTool l10n)
+ throws Exception
{
- String issueId = null;
- try
+ String value = null;
+ if( getType().equals(ActivityType.DEPENDENCY_CREATED)
+ || getType().equals(ActivityType.DEPENDENCY_CHANGED))
{
- issueId = this.getIssue().getUniqueId();
- }
- catch (TorqueException te)
+ value = getDepend().getIssueRelatedByObserverId().getUniqueId()
+ + " " + l10n.get(DependTypeManager.getManager().getL10nKey(getNewValue()))
+ + " " + getDepend().getIssueRelatedByObservedId().getUniqueId();
+ } else if( getType().equals(ActivityType.ATTACHMENT_CREATED))
{
- getLog().error("getIssueDeletedDescription(): " + te);
- }
- L10NMessage msg = new L10NMessage(L10NKeySet.IssueDeleted, issueId);
- return msg.getMessage(l10nTool);
- }
-
- /**
- *
- * @param actionChoice Value of COPIED or MOVED
- * @param oldIssue IssueID (with prefix) of the issue in the old location
- * @param newIssue IssueID (with prefix) of the issue in the new location
- * @param locale Locale to show the description in.
- * @return
- */
- private String getIssueCopiedOrMovedDescription(Integer actionChoice, String oldIssue, String newIssue, ScarabLocalizationTool l10nTool)
- {
- L10NMessage msg = null;
- try
+ value = getAttachment().getFileName();
+ } else if( getType().equals(ActivityType.URL_ADDED)
+ || getType().equals(ActivityType.COMMENT_ADDED))
{
- Issue issue = this.getIssue();
-
- Object[] args =
- { actionChoice, oldIssue,
- issue.getModule().getName(),
- issue.getIssueType().getName() };
- LocalizationKey key = null;
- if (issue.getUniqueId().equals(oldIssue))
- {
- key = L10NKeySet.MovedToIssueDescription;
- }
- else
- {
- key = L10NKeySet.MovedFromIssueDescription;
- }
- msg = new L10NMessage(key, args);
- }
- catch (TorqueException te)
+ value = getAttachment().getData();
+ } else if( getType().equals(ActivityType.COMMENT_CHANGED))
+ {
+ value = getNewValue()!=null ? getNewValue().substring(0, 50) + "...": "";
+ } else if( getType().equals(ActivityType.OTHER))
{
- getLog().error("getIssueCopiedOrMovedDescription(): " + te);
+ value = super.getDescription()!=null ? super.getDescription() : "";
+ } else {
+ value = getNewValue()!=null ? getNewValue() : "";
}
- return msg.getMessage(l10nTool);
+ return value;
}
-
- private String getUrlDescChangedDescription(String oldDescription, String newDescription, ScarabLocalizationTool l10nTool)
- {
- Object[] args =
- { oldDescription, newDescription, };
- L10NMessage msg = new L10NMessage(L10NKeySet.UrlDescChangedDesc, args);
- return msg.getMessage(l10nTool);
- }
-
- private String getDependencyAddedDescription(ScarabLocalizationTool l10nTool)
+
+ public String getDisplayName(ScarabLocalizationTool l10n)
+ throws Exception
{
- String desc = null;
- try
+ String name=null;
+ if(this.getAttribute().getAttributeId().intValue()!=0)
{
- Object[] args =
- {
- this.getDepend().getIssueRelatedByObserverId().getUniqueId(),
- this.getDepend().getAction(l10nTool.getLocale()),
- this.getDepend().getIssueRelatedByObservedId()
- .getUniqueId() };
- L10NMessage msg = new L10NMessage(L10NKeySet.AddDependency, args);
- desc = msg.getMessage(l10nTool);
- }
- catch (TorqueException te)
+ name = getDisplayName();
+ } else if( getType().equals(ActivityType.OTHER))
{
- getLog().error("getDependencyAddedDescription(): " + te);
- }
- return desc;
- }
-
- private String getDependencyChangedDescription(ScarabLocalizationTool l10nTool)
- {
- String oldName = this.getOldValue();
- String newName = this.getNewValue();
-
- String desc = null;
-
- try
+ name = l10n.get(L10NKeySet.OtherActivity);
+ } else if( getType().equals(ActivityType.ATTACHMENT_CREATED)
+ || getType().equals(ActivityType.ATTACHMENT_REMOVED))
{
- Object[] args =
- {
- this.getDepend().getIssueRelatedByObserverId().getUniqueId(),
- this.getDepend().getIssueRelatedByObservedId()
- .getUniqueId(), oldName, newName };
- if (!newName.equals(oldName))
- {
- desc = (new L10NMessage(L10NKeySet.DependencyTypeChangedDesc, args)).getMessage(l10nTool);
- }
- else
- {
- desc = (new L10NMessage(L10NKeySet.DependencyRolesSwitchedDesc, args)).getMessage(l10nTool);
- }
- }
- catch (TorqueException te)
+ name = l10n.get(L10NKeySet.Attachment);
+ } else if( getType().equals(ActivityType.DEPENDENCY_CREATED)
+ || getType().equals(ActivityType.DEPENDENCY_CHANGED)
+ || getType().equals(ActivityType.DEPENDENCY_DELETED))
{
- getLog().error("getDependencyChangedDescription(): " + te);
- }
-
- return desc;
- }
-
- private String getDependencyDeletedDescription(ScarabLocalizationTool l10nTool)
- {
- String desc = null;
- try
+ name = l10n.get(L10NKeySet.Link);
+ } else if( getType().equals(ActivityType.URL_ADDED)
+ || getType().equals(ActivityType.URL_CHANGED)
+ || getType().equals(ActivityType.URL_DESC_CHANGED)
+ || getType().equals(ActivityType.URL_DELETED))
{
- Object[] args =
- {
- this.getDepend().getDependType().getName(),
- this.getIssue().getUniqueId(),
- this.getDepend().getIssueRelatedByObservedId()
- .getUniqueId() };
- desc = (new L10NMessage(L10NKeySet.DependencyDeletedDesc, args)).getMessage(l10nTool);
- }
- catch (TorqueException te)
+ name = l10n.get(L10NKeySet.URL);
+ } else if( getType().equals(ActivityType.COMMENT_ADDED)
+ || getType().equals(ActivityType.COMMENT_CHANGED))
{
- getLog().error("getDependencyDeletedDescription(): " + te);
+ name = l10n.get(L10NKeySet.Comment);
}
- return desc;
+ return name;
}
+
/**
* Gives the name of the attribute in the module,or falls back to the global
* name of the attribute if needed.
* @return
*/
public String getDisplayName()
+ throws Exception
{
- String attrName = null;
- try
- {
- RModuleAttribute attr = this.getIssue().getModule().getRModuleAttribute(this.getAttribute(), this.getIssue().getIssueType());
- if (attr != null)
- attrName = attr.getDisplayValue();
- else
- attrName = this.getAttribute().getName();
- }
- catch (Exception e)
- {
- getLog().error("getDisplayName(): " + e);
- }
- return attrName;
- }
- private String getAttributeChangedDescription(ScarabLocalizationTool l10nTool)
- {
- String desc = null;
- String attrName = this.getDisplayName();
- String newValue = this.getNewValue();
- String oldValue = this.getOldValue();
- try
- {
- if (this.getAttribute().isDateAttribute())
- {
- if (null != newValue)
- newValue = DateAttribute.dateFormat(newValue, L10NKeySet.ShortDatePattern.getMessage(l10nTool));
- if (null != oldValue)
- oldValue = DateAttribute.dateFormat(oldValue, L10NKeySet.ShortDatePattern.getMessage(l10nTool));
- }
- }
- catch (Exception e)
- {
- getLog().error("getAttributeChangedDescription(): " + e);
- }
- if (oldValue == null || oldValue.trim().length() == 0)
- {
- if (newValue != null && newValue.length() > 0)
- {
- Object []args = { attrName, newValue };
- desc = (new L10NMessage(L10NKeySet.AttributeSetToNewValue, args)).getMessage(l10nTool);
- }
- }
+ RModuleAttribute attr = getIssue().getModule().getRModuleAttribute(this.getAttribute(), this.getIssue().getIssueType());
+ if (attr!=null)
+ return attr.getDisplayValue();
else
- {
- if (newValue != null && newValue.length() > 0)
- {
- Object []args = { attrName, oldValue, newValue };
- desc = (new L10NMessage(L10NKeySet.AttributeChangedFromToNewValue, args)).getMessage(l10nTool);
- }
- else
- {
- Object []args = { attrName };
- desc = (new L10NMessage(L10NKeySet.AttributeHasBeenUndefined, args)).getMessage(l10nTool);
- }
- }
- return desc;
+ return getAttribute().getName();
}
-
- private String getUserAttributeChangedDescription(ScarabLocalizationTool l10nTool)
- {
- String desc = null;
- try
- {
- LocalizationKey key = L10NKeySet.UserAttributeSetToNewValue;
- String value = this.getNewValue();
- if (value == null)
- {
- value = this.getOldValue();
- key = L10NKeySet.UserAttributeRemovedFrom;
- }
- String attrName = this.getIssue().getModule().getRModuleAttribute(
- this.getAttribute(),
- this.getIssue().getIssueType()).getDisplayValue();
- Object[] args =
- { attrName, value };
- desc = (new L10NMessage(key, args)).getMessage(l10nTool);
- return desc;
- }
- catch (Exception e)
- {
- getLog().error("getUserAttributeChangedDescription(): " + e);
- }
- return desc;
- }
-
+
public Activity copy(Issue issue, ActivitySet activitySet)
throws TorqueException
{
Modified: trunk/src/java/org/tigris/scarab/om/ActivitySet.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/om/ActivitySet.java?view=diff&rev=10596&p1=trunk/src/java/org/tigris/scarab/om/ActivitySet.java&p2=trunk/src/java/org/tigris/scarab/om/ActivitySet.java&r1=10595&r2=10596
==============================================================================
--- trunk/src/java/org/tigris/scarab/om/ActivitySet.java (original)
+++ trunk/src/java/org/tigris/scarab/om/ActivitySet.java 2008-07-02 15:11:02-0700
@@ -46,6 +46,7 @@
* individuals on behalf of Collab.Net.
*/
+import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
@@ -57,9 +58,9 @@
import org.apache.torque.om.Persistent;
+import org.tigris.scarab.notification.ActivityType;
import org.tigris.scarab.om.ScarabUser;
import org.tigris.scarab.om.ScarabUserManager;
-import org.tigris.scarab.tools.ScarabLocalizationTool;
import org.tigris.scarab.tools.localization.L10NKeySet;
import org.tigris.scarab.util.ScarabException;
import org.tigris.scarab.services.cache.ScarabCache;
@@ -117,7 +118,7 @@
{
throw new ScarabException(L10NKeySet.ExceptionTorqueGeneric,e);
}
- ScarabCache.put(result, this, GET_ACTIVITY_LIST);
+// ScarabCache.put(result, this, GET_ACTIVITY_LIST);
/*
}
else
@@ -128,39 +129,24 @@
return result;
}
- public List getActivitiesExceptActivitySetDescription(Issue issue)
- throws TorqueException
- {
- List activities = new ArrayList();
- for(Iterator i = getActivityListForIssue(issue).iterator();i.hasNext();)
- {
- Activity activity = (Activity)i.next();
- if(getAttachmentId()==null || !getAttachmentId().equals(activity.getAttachmentId()))
- {
- activities.add(activity);
- }
- }
- return activities;
- }
-
/**
* Returns a list of Activity objects associated with this ActivitySet
* And this issue.
*/
- public List getActivityListForIssue(Issue issue) throws TorqueException
+ public List getActivityList(Issue issue) throws TorqueException
{
List activityList = (List)ActivitySetManager.getMethodResult()
- .get(this, "getActivityListForIssue", issue );
+ .get(this, GET_ACTIVITY_LIST, issue );
if(activityList==null)
{
Criteria crit = new Criteria()
- .add(ActivityPeer.TRANSACTION_ID, getActivitySetId());
- crit.add(ActivityPeer.ISSUE_ID, issue.getIssueId());
+ .add(ActivityPeer.TRANSACTION_ID, getActivitySetId())
+ .add(ActivityPeer.ISSUE_ID, issue.getIssueId());
activityList = ActivityPeer.doSelect(crit);
ActivitySetManager.getMethodResult()
- .put(activityList, this, "getActivityListForIssue", issue );
+ .put(activityList, this, GET_ACTIVITY_LIST, issue );
}
return activityList;
}
@@ -184,7 +170,7 @@
public Set getRemovedUsers(Issue changedIssue) throws TorqueException
{
Set removedUsers = new HashSet();
- for (Iterator it = getActivityListForIssue(changedIssue).iterator(); it.hasNext(); )
+ for (Iterator it = getActivityList(changedIssue).iterator(); it.hasNext(); )
{
Activity act = (Activity)it.next();
if(act.getOldUserId() != null && act.getNewUserId() == null)
@@ -195,4 +181,63 @@
}
return removedUsers;
}
+
+ private List getActivityList(Issue issue, List activityTypes)
+ throws Exception
+ {
+ List filteredActivities = new ArrayList();
+ for(Iterator activities = getActivityList( issue ).iterator(); activities.hasNext();)
+ {
+ Activity activity = (Activity)activities.next();
+ if(activityTypes.contains(ActivityType.getActivityType(activity.getActivityType())))
+ filteredActivities.add(activity);
+ }
+ return filteredActivities;
+ }
+
+ private List getActivityList(Issue issue, ActivityType activityType)
+ throws Exception
+ {
+ ActivityType[] types = {activityType};
+ return getActivityList(issue, Arrays.asList(types));
+ }
+
+ public String getCommentForHistory(Issue issue)
+ throws Exception
+ {
+ String comment = null;
+ List comments = getActivityList(issue, ActivityType.COMMENT_ADDED);
+ if(comments.size()==1)
+ comment=((Activity)comments.get(0)).getAttachment().getData();
+ else
+ comment=getActivityReason();
+
+ return comment;
+ }
+
+ private static final ActivityType[] historyTypes = new ActivityType[] {
+ ActivityType.ISSUE_MOVED,
+ ActivityType.ISSUE_COPIED,
+ ActivityType.USER_ATTRIBUTE_CHANGED,
+ ActivityType.COMMENT_CHANGED,
+ ActivityType.URL_ADDED,
+ ActivityType.URL_CHANGED,
+ ActivityType.URL_DESC_CHANGED,
+ ActivityType.URL_DELETED,
+ ActivityType.ATTACHMENT_CREATED,
+ ActivityType.ATTACHMENT_REMOVED,
+ ActivityType.DEPENDENCY_CREATED,
+ ActivityType.DEPENDENCY_CHANGED,
+ ActivityType.DEPENDENCY_DELETED,
+ ActivityType.ATTRIBUTE_CHANGED,
+ ActivityType.OTHER
+ };
+ private static final List historyTypeList = Arrays.asList(historyTypes);
+
+ public List getActivityListForHistory(Issue issue)
+ throws Exception
+ {
+ return getActivityList(issue, historyTypeList);
+ }
+
}
Modified: trunk/src/java/org/tigris/scarab/om/Depend.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/om/Depend.java?view=diff&rev=10596&p1=trunk/src/java/org/tigris/scarab/om/Depend.java&p2=trunk/src/java/org/tigris/scarab/om/Depend.java&r1=10595&r2=10596
==============================================================================
--- trunk/src/java/org/tigris/scarab/om/Depend.java (original)
+++ trunk/src/java/org/tigris/scarab/om/Depend.java 2008-07-02 15:11:02-0700
@@ -47,11 +47,9 @@
*/
// Turbine classes
-import java.util.Locale;
import org.apache.torque.om.Persistent;
import org.apache.torque.TorqueException;
-import org.apache.fulcrum.localization.Localization;
// Scarab classes
import org.tigris.scarab.om.Module;
@@ -183,7 +181,6 @@
* Getter method to get observerId as a String
*/
public String getObserverUniqueId()
- throws TorqueException
{
return observerUniqueId;
}
@@ -229,28 +226,6 @@
}
/**
- * Returns phrase describing this dependency's type.
- */
- public String getAction(Locale locale)
- {
- Integer typeId = getTypeId();
- String action = null;
- if (typeId.equals(DependTypePeer.BLOCKING__PK))
- {
- action = Localization.getString(locale, "depend_blocking");
- }
- else if (typeId.equals(DependTypePeer.DUPLICATE__PK))
- {
- action = Localization.getString(locale, "depend_duplicate");
- }
- else
- {
- action = Localization.getString(locale, "depend_nonblocking");
- }
- return action;
- }
-
- /**
* Exchange Observer and Observed roles...
* @throws TorqueException
*/
Modified: trunk/src/java/org/tigris/scarab/om/DependTypeManager.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/om/DependTypeManager.java?view=diff&rev=10596&p1=trunk/src/java/org/tigris/scarab/om/DependTypeManager.java&p2=trunk/src/java/org/tigris/scarab/om/DependTypeManager.java&r1=10595&r2=10596
==============================================================================
--- trunk/src/java/org/tigris/scarab/om/DependTypeManager.java (original)
+++ trunk/src/java/org/tigris/scarab/om/DependTypeManager.java 2008-07-02 15:11:02-0700
@@ -46,13 +46,16 @@
* individuals on behalf of Collab.Net.
*/
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.torque.TorqueException;
import org.apache.torque.om.Persistent;
import org.apache.torque.util.Criteria;
import org.tigris.scarab.services.cache.ScarabCache;
+import org.tigris.scarab.tools.localization.L10NKey;
/**
* This class manages DependType objects.
@@ -65,6 +68,10 @@
public class DependTypeManager
extends BaseDependTypeManager
{
+ public static final Integer BLOCKING__PK = new Integer(1);
+ public static final Integer DUPLICATE__PK = new Integer(2);
+ public static final Integer NON_BLOCKING__PK = new Integer(3);
+
// the following Strings are method names that are used in caching results
private static final String GET_ALL =
"getAll";
@@ -73,6 +80,7 @@
"DependType";
private static final String FIND_DEPENDTYPE_BY_NAME =
"findDependTypeByName";
+ private static Map l10nKeys = new HashMap();
/**
* Creates a new <code>DependTypeManager</code> instance.
@@ -170,4 +178,16 @@
getMethodResult().remove(this, GET_ALL);
return oldOm;
}
+
+ static {
+ l10nKeys.put( DependTypePeer.BLOCKING__PK, new L10NKey("depend_blocking"));
+ l10nKeys.put( DependTypePeer.DUPLICATE__PK, new L10NKey("depend_duplicate"));
+ l10nKeys.put( DependTypePeer.NON_BLOCKING__PK, new L10NKey("depend_nonblocking"));
+ }
+
+ public L10NKey getL10nKey( String dependTypeName )
+ throws TorqueException
+ {
+ return (L10NKey)l10nKeys.get( getInstance(dependTypeName).getDependTypeId());
+ }
}
Modified: trunk/src/java/org/tigris/scarab/om/Issue.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/om/Issue.java?view=diff&rev=10596&p1=trunk/src/java/org/tigris/scarab/om/Issue.java&p2=trunk/src/java/org/tigris/scarab/om/Issue.java&r1=10595&r2=10596
==============================================================================
--- trunk/src/java/org/tigris/scarab/om/Issue.java (original)
+++ trunk/src/java/org/tigris/scarab/om/Issue.java 2008-07-02 15:11:02-0700
@@ -2482,7 +2482,7 @@
newAtt.save();
}
// Copy over activities with sets
- final List activities = as.getActivityListForIssue(this);
+ final List activities = as.getActivityList(this);
for (Iterator j = activities.iterator(); j.hasNext();)
{
final Activity a = (Activity)j.next();
Modified: trunk/src/java/org/tigris/scarab/tools/ScarabGlobalTool.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/tools/ScarabGlobalTool.java?view=diff&rev=10596&p1=trunk/src/java/org/tigris/scarab/tools/ScarabGlobalTool.java&p2=trunk/src/java/org/tigris/scarab/tools/ScarabGlobalTool.java&r1=10595&r2=10596
==============================================================================
--- trunk/src/java/org/tigris/scarab/tools/ScarabGlobalTool.java (original)
+++ trunk/src/java/org/tigris/scarab/tools/ScarabGlobalTool.java 2008-07-02 15:11:02-0700
@@ -102,11 +102,6 @@
import org.apache.turbine.Turbine;
-import org.tigris.scarab.om.Attribute;
-
-import java.util.Arrays;
-import java.util.Iterator;
-
/**
* This scope is an object that is made available as a global
* object within the system.
@@ -131,8 +126,6 @@
"s%\\b(?:[hH][tT]{2}[pP][sS]{0,1}|[fF][tT][pP]):[^ \\t\\n<>\"]+[\\w/]*%<a href=\"$0\">$0</a>%g";
private static final String REGEX_MAILTO =
"s%\\b(?:([mM][aA][iI][lL][tT][oO])):([^ \\t\\n<>\"]+[\\w/])*%<a href=\"$0\">$2</a>%g";
- private static final String REGEX_NEWLINETOBR =
- "s%\\n%<br />%g";
private static Perl5Util perlUtil = new Perl5Util();
@@ -690,40 +683,28 @@
* @param link
* @param currentModule The active module.
* @return A SkipFiltering object which contains the generated HTML.
+ * @throws Exception
*/
public SkipFiltering textToHTML(String text,
ScarabLink link,
- Module currentModule)
+ Module currentModule) throws Exception
{
- try
+ String renderEngine = currentModule.getCommentRenderingEngine();
+ String txt;
+ if(renderEngine.equals("radeox"))
{
-
- String renderEngine = currentModule.getCommentRenderingEngine();
- String txt;
- if(renderEngine.equals("radeox"))
- {
- txt = engine.render(text, context);
- }
- else if(renderEngine.equals("html"))
- {
- txt = perlUtil.substitute(REGEX_URL,
- perlUtil.substitute(REGEX_MAILTO,
- perlUtil.substitute(REGEX_NEWLINETOBR,
- ReferenceInsertionFilter.filter(text))));
- }
- else // if(renderEngine.equals("plaintext"))
- {
- txt = perlUtil.substitute(REGEX_URL,
- perlUtil.substitute(REGEX_MAILTO,
- ReferenceInsertionFilter.filter(text)));
- }
-
- return new SimpleSkipFiltering(ScarabUtil.linkifyText(txt, link, currentModule));
+ txt = engine.render(text, context);
}
- catch (Exception e)
+ else
{
- return new SimpleSkipFiltering(text);
+ txt = "<pre>" +
+ perlUtil.substitute(REGEX_URL,
+ perlUtil.substitute(REGEX_MAILTO,
+ ReferenceInsertionFilter.filter(text)))
+ + "</pre>";
}
+
+ return new SimpleSkipFiltering(ScarabUtil.linkifyText(txt, link, currentModule));
}
/**
Modified: trunk/src/java/org/tigris/scarab/tools/localization/L10NKeySet.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/tools/localization/L10NKeySet.java?view=diff&rev=10596&p1=trunk/src/java/org/tigris/scarab/tools/localization/L10NKeySet.java&p2=trunk/src/java/org/tigris/scarab/tools/localization/L10NKeySet.java&r1=10595&r2=10596
==============================================================================
--- trunk/src/java/org/tigris/scarab/tools/localization/L10NKeySet.java (original)
+++ trunk/src/java/org/tigris/scarab/tools/localization/L10NKeySet.java 2008-07-02 15:11:02-0700
@@ -474,5 +474,10 @@
public static final LocalizationKey ModifiedBy = new L10NKey("ModifiedBy");
public static final LocalizationKey ModifiedDate = new L10NKey("ModifiedDate");
public static final LocalizationKey Module = new L10NKey("Module");
+ public static final LocalizationKey OtherActivity = new L10NKey("OtherActivity");
+ public static final LocalizationKey Attachment = new L10NKey("Attachment");
+ public static final LocalizationKey Link = new L10NKey("Link");
+ public static final LocalizationKey URL = new L10NKey("URL");
+ public static final LocalizationKey Comment = new L10NKey("Comment");
}
Modified: trunk/src/java/org/tigris/scarab/util/ScarabUtil.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/ScarabUtil.java?view=diff&rev=10596&p1=trunk/src/java/org/tigris/scarab/util/ScarabUtil.java&p2=trunk/src/java/org/tigris/scarab/util/ScarabUtil.java&r1=10595&r2=10596
==============================================================================
--- trunk/src/java/org/tigris/scarab/util/ScarabUtil.java (original)
+++ trunk/src/java/org/tigris/scarab/util/ScarabUtil.java 2008-07-02 15:11:02-0700
@@ -104,28 +104,12 @@
/**
* It uses the IssueIdParser to convert all issue id's into links.
- * The output is enclosed into a <,pre>...<,/pre> bracket pair so that
- * simple markup (line breaks, white spaces) is preserved.
*/
public static String linkifyText(String input, ScarabLink link, Module module)
throws Exception
{
StringBuffer sb = new StringBuffer(input.length() * 2);
-
- // THIS STUFF REALLY BELONGS IN ScarabGlobalTool.textToHtml
- // ALSO REMOVED BECAUSE OF RADEOX
- // first get rid of any HTML crap
- String output = input;//ReferenceInsertionFilter.filter(input);
- //output = perlUtil.substitute(REGEX_NEWLINETOBR,output);
- //output = perlUtil.substitute(REGEX_MAILTO,output);
- //output = perlUtil.substitute(REGEX_URL,output);
-
- List result = IssueIdParser.tokenizeText(module, output);
- String engine = module.getCommentRenderingEngine();
- if(engine.equals("plaintext"))
- {
- sb.append("<pre>");
- }
+ List result = IssueIdParser.tokenizeText(module, input);
for (Iterator itr = result.iterator(); itr.hasNext();)
{
Object tmp = itr.next();
@@ -146,10 +130,6 @@
sb.append(bar);
}
}
- if(engine.equals("plaintext"))
- {
- sb.append("</pre>");
- }
return sb.toString();
}
Modified: trunk/src/webapp/WEB-INF/templates/viewIssue/ViewIssueTab3.vm
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/webapp/WEB-INF/templates/viewIssue/ViewIssueTab3.vm?view=diff&rev=10596&p1=trunk/src/webapp/WEB-INF/templates/viewIssue/ViewIssueTab3.vm&p2=trunk/src/webapp/WEB-INF/templates/viewIssue/ViewIssueTab3.vm&r1=10595&r2=10596
==============================================================================
--- trunk/src/webapp/WEB-INF/templates/viewIssue/ViewIssueTab3.vm (original)
+++ trunk/src/webapp/WEB-INF/templates/viewIssue/ViewIssueTab3.vm 2008-07-02 15:11:02-0700
@@ -43,9 +43,9 @@
#foreach ($comment in $comments)
#set ($commentUser = $scarabR.getUser($comment.CreatedBy))
- <div class="historyEntryHeader">
+ <h4>
#userTimeStamp( $commentUser $comment.CreatedDate)
- </div>
+ </h4>
#if ($isEditComments)
#textAreaLarge( "edit_comment_$comment.AttachmentId" $comment.Data)
#else
Modified: trunk/src/webapp/WEB-INF/templates/viewIssue/ViewIssueTab5.vm
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/webapp/WEB-INF/templates/viewIssue/ViewIssueTab5.vm?view=diff&rev=10596&p1=trunk/src/webapp/WEB-INF/templates/viewIssue/ViewIssueTab5.vm&p2=trunk/src/webapp/WEB-INF/templates/viewIssue/ViewIssueTab5.vm&r1=10595&r2=10596
==============================================================================
--- trunk/src/webapp/WEB-INF/templates/viewIssue/ViewIssueTab5.vm (original)
+++ trunk/src/webapp/WEB-INF/templates/viewIssue/ViewIssueTab5.vm 2008-07-02 15:11:02-0700
@@ -8,19 +8,35 @@
<div id="history">
#foreach ($activitySet in $allActivitySets)
- #set ($activities = $activitySet.getActivitiesExceptActivitySetDescription($currentIssue))
- #if (!$activities.isEmpty())
- <div class="historyEntryHeader">
- #set ($user = $scarabR.getUser($activitySet.CreatedBy))
- #userTimeStamp( $user $activitySet.CreatedDate)
- </div>
- #foreach ($act in $activities)
- #set($desc = $act.getDescription($l10n))
- $!scarabG.textToHTML($desc, $link, $scarabR.CurrentModule)
- #end
- #set ($reason = $activitySet.getActivityReason())
- $!scarabG.textToHTML($reason, $link, $scarabR.CurrentModule)
+ <h4>
+ #set ($user = $scarabR.getUser($activitySet.CreatedBy))
+ #userTimeStamp( $user $activitySet.CreatedDate)
+ </h4>
+ #set ($activities = $activitySet.getActivityListForHistory($currentIssue))
+ <div class="axial">
+ <table width="100%">
+ #foreach ($act in $activities)
+ #set ($newValue = $act.getNewValue($l10n))
+ #set ($oldValue = $act.getOldValue($l10n))
+ <tr>
+ <th width="14%">$act.getDisplayName($l10n)</th>
+ #if( $oldValue.length()>0 )
+ <td width="43%">$!scarabG.textToHTML($newValue, $link, $scarabR.CurrentModule)</td>
+ <td width="43%">$!scarabG.textToHTML($oldValue, $link, $scarabR.CurrentModule)</td>
+ #else
+ <td colspan="2" width="86%">$!scarabG.textToHTML($newValue, $link, $scarabR.CurrentModule)</td>
+ #end
+ </tr>
#end
+
+ #set ($reason = $activitySet.getCommentForHistory($currentIssue))
+ #if($reason.length()>0)
+ <tr>
+ <td colspan="3" width="100%">$!scarabG.textToHTML($reason, $link, $scarabR.CurrentModule)</td>
+ </tr>
+ #end
+ </table>
+ </div>
#end
#if ($currentIssue.isHistoryLong())
Modified: trunk/src/webapp/style/tigris.css
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/webapp/style/tigris.css?view=diff&rev=10596&p1=trunk/src/webapp/style/tigris.css&p2=trunk/src/webapp/style/tigris.css&r1=10595&r2=10596
==============================================================================
--- trunk/src/webapp/style/tigris.css (original)
+++ trunk/src/webapp/style/tigris.css 2008-07-02 15:11:02-0700
@@ -17,6 +17,9 @@
background-color: #aaa;
}
+pre {
+ display: inline;
+}
.functnbar2, .functnbar3 {
background-color: #aaa;
background-image: url(../images/sw_maj_rond.gif);
@@ -122,13 +125,6 @@
background-color: #ccc;
}
-.historyEntryHeader {
- padding: 4px;
- margin-right: 2px;
- margin-left: 2px;
- background-color: #ddd;
-}
-
#main {
border-top: 1px solid #999;
}
@@ -433,11 +429,11 @@
}
/* font and text properties, exclusive of link indication, alignment, text-indent */
-body, th, td, input, select {
+body, th, td, input, select, textarea, pre {
font-family: Verdana, Helvetica, Arial, sans-serif;
}
-code, pre {
+code {
font-family: 'Andale Mono', Courier, monospace;
}
@@ -520,7 +516,7 @@
}
.app h3, .app h4 {
- padding: 5px;
+ padding: 3px;
margin-right: 2px;
margin-left: 2px;
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.