aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@owncloud.com>2016-04-26 12:47:57 +0200
committerJoas Schilling <coding@schilljs.com>2016-10-05 14:21:25 +0200
commit724cd50e523f10a9b732c72dc77306a75a0c5e0c (patch)
tree6d39e57aa322032146b7a6de25d34b40b0b7fac8
parentfe6c9f7f47681a06409fa2efae2a57044b7fef29 (diff)
downloadnextcloud-server-724cd50e523f10a9b732c72dc77306a75a0c5e0c.tar.gz
nextcloud-server-724cd50e523f10a9b732c72dc77306a75a0c5e0c.zip
Register a ActivityTabView plugin
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
-rw-r--r--apps/comments/appinfo/app.php1
-rw-r--r--apps/comments/js/activitytabviewplugin.js57
2 files changed, 58 insertions, 0 deletions
diff --git a/apps/comments/appinfo/app.php b/apps/comments/appinfo/app.php
index 00085cf9148..df41bdfa32d 100644
--- a/apps/comments/appinfo/app.php
+++ b/apps/comments/appinfo/app.php
@@ -32,6 +32,7 @@ $eventDispatcher->addListener(
\OCP\Util::addScript('comments', 'commentsummarymodel');
\OCP\Util::addScript('comments', 'commentstabview');
\OCP\Util::addScript('comments', 'filesplugin');
+ \OCP\Util::addScript('comments', 'activitytabviewplugin');
\OCP\Util::addStyle('comments', 'comments');
}
);
diff --git a/apps/comments/js/activitytabviewplugin.js b/apps/comments/js/activitytabviewplugin.js
new file mode 100644
index 00000000000..a087bf1279f
--- /dev/null
+++ b/apps/comments/js/activitytabviewplugin.js
@@ -0,0 +1,57 @@
+/*
+ * @author Joas Schilling <nickvergessen@owncloud.com>
+ * Copyright (c) 2016
+ *
+ * This file is licensed under the Affero General Public License version 3
+ * or later.
+ *
+ * See the COPYING-README file.
+ */
+
+(function() {
+ OCA.Comments.ActivityTabViewPlugin = {
+
+ /**
+ * Prepare activity for display
+ *
+ * @param {OCA.Activity.ActivityModel} model for this activity
+ * @param {jQuery} $el jQuery handle for this activity
+ * @param {string} view The view that displayes this activity
+ */
+ prepareModelForDisplay: function (model, $el, view) {
+ if (model.get('app') !== 'comments' || model.get('type') !== 'comments') {
+ return;
+ }
+
+ if (view === 'ActivityTabView') {
+ $el.addClass('comment');
+ if (this._isLong(model.get('message_prepared'))) {
+ $el.addClass('collapsed');
+ var $overlay = $('<div>').addClass('message-overlay');
+ $el.find('.activitymessage').after($overlay);
+ $el.on('click', this._onClickCollapsedComment);
+ }
+ }
+ },
+
+ _onClickCollapsedComment: function(ev) {
+ var $row = $(ev.target);
+ if (!$row.is('.comment')) {
+ $row = $row.closest('.comment');
+ }
+ $row.removeClass('collapsed');
+ },
+
+ /**
+ * Returns whether the given message is long and needs
+ * collapsing
+ */
+ _isLong: function(message) {
+ return message.length > 250 || (message.match(/\n/g) || []).length > 1;
+ }
+ };
+
+
+})();
+
+OC.Plugins.register('OCA.Activity.Plugins', OCA.Comments.ActivityTabViewPlugin);