File manager - Edit - /home/jardides/www/Cloud/apps/activity/js/activitytabview.js
Back
/* * Copyright (c) 2015 * * This file is licensed under the Affero General Public License version 3 * or later. * * See the COPYING-README file. * */ (function() { var TEMPLATE = '<div class="activity-section">' + '<div class="loading hidden" style="height: 50px"></div>' + '<div class="emptycontent">' + ' <div class="icon-activity"></div>' + ' <p>{{emptyMessage}}</p>' + '</div>' + '<ul class="activities hidden">' + '</ul>' + '<input type="button" class="showMore" value="{{moreLabel}}"' + '</div>'; var ACTIVITY_TEMPLATE = ' <li class="activity box">' + ' <div class="activity-icon">' + ' {{#if icon}}' + ' <img src="{{icon}}">' + ' {{/if}}' + ' </div>' + ' <div class="activitysubject">{{{subject}}}</div>' + ' <span class="activitytime has-tooltip live-relative-timestamp" data-timestamp="{{timestamp}}" title="{{formattedDateTooltip}}">{{formattedDate}}</span>' + ' <div class="activitymessage">{{{message}}}</div>' + ' </li>'; /** * @class OCA.Activity.ActivityTabView * @classdesc * * Displays activity information for a given file * */ var ActivityTabView = OCA.Files.DetailTabView.extend(/** @lends OCA.Activity.ActivityTabView.prototype */ { id: 'activityTabView', className: 'activityTabView tab', events: { 'click .showMore': '_onClickShowMore' }, _loading: false, _plugins: [], initialize: function() { this.collection = new OCA.Activity.ActivityCollection(); this.collection.setObjectType('files'); this.collection.on('request', this._onRequest, this); this.collection.on('sync', this._onEndRequest, this); this.collection.on('error', this._onError, this); this.collection.on('add', this._onAddModel, this); this._plugins = OC.Plugins.getPlugins('OCA.Activity.RenderingPlugins'); _.each(this._plugins, function(plugin) { if (_.isFunction(plugin.initialize)) { plugin.initialize(); } }); }, template: function(data) { if (!this._template) { this._template = Handlebars.compile(TEMPLATE); } return this._template(data); }, get$: function() { return this.$el; }, getLabel: function() { return t('activity', 'Activities'); }, setFileInfo: function(fileInfo) { this._fileInfo = fileInfo; if (this._fileInfo) { this.collection.setObjectId(this._fileInfo.get('id')); this.collection.reset(); this.collection.fetch(); _.each(this._plugins, function(plugin) { if (_.isFunction(plugin.setFileInfo)) { plugin.setFileInfo('files', fileInfo.get('id')); } }); } else { this.collection.reset(); _.each(this._plugins, function(plugin) { if (_.isFunction(plugin.resetFileInfo)) { plugin.resetFileInfo(); } }); } }, _onError: function() { var $emptyContent = this.$el.find('.emptycontent'); $emptyContent.removeClass('hidden'); $emptyContent.find('p').text(t('activity', 'An error occurred while loading activities')); }, _onRequest: function() { if (this.collection.lastGivenId === 0) { this.render(); } this.$el.find('.showMore').addClass('hidden'); }, _onEndRequest: function() { this.$container.removeClass('hidden'); this.$el.find('.loading').addClass('hidden'); if (this.collection.length) { this.$el.find('.emptycontent').addClass('hidden'); } if (this.collection.hasMore) { this.$el.find('.showMore').removeClass('hidden'); } }, _onClickShowMore: function() { this.collection.fetch({ reset: false }); }, /** * Format an activity model for display * * @param {OCA.Activity.ActivityModel} activity * @return {Object} */ _formatItem: function(activity) { var subject = activity.get('subject'), subject_rich = activity.get('subject_rich'); if (subject_rich[0].length > 1) { subject = OCA.Activity.RichObjectStringParser.parseMessage(subject_rich[0], subject_rich[1]); } var message = activity.get('message'), message_rich = activity.get('message_rich'); if (message_rich[0].length > 1) { message = OCA.Activity.RichObjectStringParser.parseMessage(message_rich[0], message_rich[1]); } var output = { subject: subject, formattedDate: activity.getRelativeDate(), formattedDateTooltip: activity.getFullDate(), timestamp: moment(activity.get('datetime')).valueOf(), message: message, icon: activity.get('icon') }; /** * Disable previews in the rightside bar, * it's always the same image anyway. if (activity.has('previews')) { output.previews = _.map(activity.get('previews'), function(data) { return { previewClass: data.isMimeTypeIcon ? 'preview-mimetype-icon': '', source: data.source }; }); } */ return output; }, activityTemplate: function(params) { if (!this._activityTemplate) { this._activityTemplate = Handlebars.compile(ACTIVITY_TEMPLATE); } return this._activityTemplate(params); }, _onAddModel: function(model, collection, options) { var $el = $(this.activityTemplate(this._formatItem(model))); _.each(this._plugins, function(plugin) { if (_.isFunction(plugin.prepareModelForDisplay)) { plugin.prepareModelForDisplay(model, $el, 'ActivityTabView'); } }); if (!_.isUndefined(options.at) && collection.length > 1) { this.$container.find('li').eq(options.at).before($el); } else { this.$container.append($el); } this._postRenderItem($el); }, _postRenderItem: function($el) { $el.find('.avatar').each(function() { var element = $(this); if (element.data('user-display-name')) { element.avatar(element.data('user'), 21, undefined, false, undefined, element.data('user-display-name')); } else { element.avatar(element.data('user'), 21); } }); $el.find('.avatar-name-wrapper').each(function() { var element = $(this); var avatar = element.find('.avatar'); var label = element.find('strong'); $.merge(avatar, label).contactsMenu(element.data('user'), 0, element); }); $el.find('.has-tooltip').tooltip({ placement: 'bottom' }); }, /** * Renders this details view */ render: function() { if (this._fileInfo) { this.$el.html(this.template({ emptyMessage: t('activity', 'No activity yet'), moreLabel: t('activity', 'Load more activities') })); this.$container = this.$el.find('ul.activities'); } } }); OCA.Activity = OCA.Activity || {}; OCA.Activity.ActivityTabView = ActivityTabView; })();
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.06 |
proxy
|
phpinfo
|
Settings