Author: mflorea
Date: 2008-02-14 14:59:48 +0100 (Thu, 14 Feb 2008)
New Revision: 7728
Modified:
xwiki-products/curriki/trunk/plugins/currikiactivitystream/src/main/java/org/curriki/plugin/activitystream/impl/CurrikiActivityStream.java
xwiki-products/curriki/trunk/plugins/currikiactivitystream/src/main/java/org/curriki/plugin/activitystream/plugin/DocumentationActivityEvent.java
Log:
CURRIKI-1654, CURRIKI-1656
Modified:
xwiki-products/curriki/trunk/plugins/currikiactivitystream/src/main/java/org/curriki/plugin/activitystream/impl/CurrikiActivityStream.java
===================================================================
---
xwiki-products/curriki/trunk/plugins/currikiactivitystream/src/main/java/org/curriki/plugin/activitystream/impl/CurrikiActivityStream.java
2008-02-14 13:33:35 UTC (rev 7727)
+++
xwiki-products/curriki/trunk/plugins/currikiactivitystream/src/main/java/org/curriki/plugin/activitystream/impl/CurrikiActivityStream.java
2008-02-14 13:59:48 UTC (rev 7728)
@@ -22,6 +22,10 @@
private static final String SPACE_CLASS_NAME = "XWiki.SpaceClass";
+ public static final String DOCUMENTATION_FILE = "documentation-file";
+
+ public static final String DOCUMENTATION_WIKI = "documentation-wiki";
+
public CurrikiActivityStream()
{
super();
@@ -105,34 +109,43 @@
protected void handleDocumentationEvent(XWikiDocument newdoc,
XWikiDocument olddoc,
int event, XWikiContext context)
{
- if (newdoc.getFullName().endsWith(".WebPreferences")) {
- return;
- }
-
String streamName = getStreamName(newdoc.getSpace(), context);
if (streamName == null) {
return;
}
String docTitle = newdoc.getTitle();
- String docType = "wikipage";
- if (newdoc.getObject("XWiki.TagClass") != null) {
- docType =
- newdoc.getTags(context).contains("documentation-file") ?
"file" : "wikipage";
- }
-
- // update event parameter (workaround)
- if (newdoc.isNew()) {
+ BaseObject tag = newdoc.getObject("XWiki.TagClass");
+ if (tag == null) {
+ if (olddoc == null) {
+ return;
+ }
+ tag = olddoc.getObject("XWiki.TagClass");
+ if (tag == null) {
+ return;
+ }
docTitle = olddoc.getTitle();
- if (olddoc.getObject("XWiki.TagClass") != null) {
- docType =
- olddoc.getTags(context).contains("documentation-file") ?
"file" : "wikipage";
+ event = XWikiDocChangeNotificationInterface.EVENT_DELETE;
+ } else {
+ String initialVersion = "1.3";
+ if (tag.getStringValue("tags").contains(DOCUMENTATION_FILE)) {
+ initialVersion = "1.4";
}
- event = XWikiDocChangeNotificationInterface.EVENT_DELETE;
- } else if (olddoc == null && "1.2".equals(newdoc.getVersion())) {
- event = XWikiDocChangeNotificationInterface.EVENT_NEW;
+ if ((olddoc != null && olddoc.getObject("XWiki.TagClass") == null)
+ || (olddoc == null &&
initialVersion.equals(newdoc.getVersion()))) {
+ event = XWikiDocChangeNotificationInterface.EVENT_NEW;
+ }
}
+ String docType = tag.getStringValue("tags");
+ if (docType.contains(DOCUMENTATION_FILE)) {
+ docType = DOCUMENTATION_FILE;
+ } else if (docType.contains(DOCUMENTATION_WIKI)) {
+ docType = DOCUMENTATION_WIKI;
+ } else {
+ return;
+ }
+
List params = new ArrayList();
params.add(docTitle);
params.add(getUserName(context.getUser(), context));
@@ -177,9 +190,13 @@
return;
}
event = XWikiDocChangeNotificationInterface.EVENT_DELETE;
- } else if ((olddoc != null && olddoc.getObject("XWiki.AssetClass") ==
null)
- || (olddoc == null && "1.2".equals(newdoc.getVersion()))) {
- event = XWikiDocChangeNotificationInterface.EVENT_NEW;
+ } else {
+ double version = Double.parseDouble(newdoc.getVersion());
+ if (version < 1.6) {
+ return;
+ } else if (version == 1.6) {
+ event = XWikiDocChangeNotificationInterface.EVENT_NEW;
+ }
}
List params = new ArrayList();
Modified:
xwiki-products/curriki/trunk/plugins/currikiactivitystream/src/main/java/org/curriki/plugin/activitystream/plugin/DocumentationActivityEvent.java
===================================================================
---
xwiki-products/curriki/trunk/plugins/currikiactivitystream/src/main/java/org/curriki/plugin/activitystream/plugin/DocumentationActivityEvent.java
2008-02-14 13:33:35 UTC (rev 7727)
+++
xwiki-products/curriki/trunk/plugins/currikiactivitystream/src/main/java/org/curriki/plugin/activitystream/plugin/DocumentationActivityEvent.java
2008-02-14 13:59:48 UTC (rev 7728)
@@ -22,12 +22,14 @@
import java.util.ArrayList;
import java.util.List;
+import org.curriki.plugin.activitystream.impl.CurrikiActivityStream;
import org.xwiki.plugin.activitystream.api.ActivityEventType;
import org.xwiki.plugin.activitystream.plugin.ActivityEvent;
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.XWikiException;
import com.xpn.xwiki.doc.XWikiDocument;
+import com.xpn.xwiki.objects.BaseObject;
public class DocumentationActivityEvent extends ActivityEvent
{
@@ -41,13 +43,16 @@
super(event, context);
String docTitle = event.getParam1();
- boolean isFile = "file".equals(event.getParam3());
+ String docType = event.getParam3();
String docLink = docTitle;
XWikiDocument doc;
+ BaseObject tag;
try {
doc = context.getWiki().getDocument(event.getPage(), context);
- if (!doc.isNew()) {
+ tag = doc.getObject("XWiki.TagClass");
+ if (tag != null) {
docTitle = doc.getTitle();
+ docType = tag.getStringValue("tags");
docLink = "[" + docTitle + ">" + doc.getExternalURL("view",
context) + "]";
}
} catch (XWikiException e) {
@@ -68,7 +73,7 @@
}
String eventTitle = "";
- if (isFile) {
+ if (docType.contains(CurrikiActivityStream.DOCUMENTATION_FILE)) {
if (ActivityEventType.UPDATE.equals(event.getType())) {
eventTitle = "groups_home_activity_doc_upd";
} else if (ActivityEventType.CREATE.equals(event.getType())) {
@@ -76,7 +81,7 @@
} else if (ActivityEventType.DELETE.equals(event.getType())) {
eventTitle = "groups_home_activity_doc_del";
}
- } else {
+ } else if (docType.contains(CurrikiActivityStream.DOCUMENTATION_WIKI))
{
if (ActivityEventType.UPDATE.equals(event.getType())) {
eventTitle = "groups_home_activity_doc_wiki_upd";
} else if (ActivityEventType.CREATE.equals(event.getType())) {
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications