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 notifications@xwiki.org http://lists.xwiki.org/mailman/listinfo/notifications