diff options
author | Joas Schilling <nickvergessen@owncloud.com> | 2016-04-26 12:47:57 +0200 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2016-10-05 14:21:25 +0200 |
commit | 724cd50e523f10a9b732c72dc77306a75a0c5e0c (patch) | |
tree | 6d39e57aa322032146b7a6de25d34b40b0b7fac8 | |
parent | fe6c9f7f47681a06409fa2efae2a57044b7fef29 (diff) | |
download | nextcloud-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.php | 1 | ||||
-rw-r--r-- | apps/comments/js/activitytabviewplugin.js | 57 |
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); |