define([ 'jquery', 'underscore', 'backbone', 'common', 'moment', 'app/views/widgets/hl-item-view' ], function($, _, Backbone, Common, Moment, HLItemView) { 'use strict'; var AdminLogView = HLItemView.extend({ tagName: 'tr', template: _.template($('#admin-log-item-tmpl').html()), events: { }, initialize: function() { HLItemView.prototype.initialize.call(this); }, render: function() { var data = {'email': this.model.get('email')}, created_at = Moment(this.model.get('datetime')); data['time'] = created_at.format('LLLL'); data['time_from_now'] = Common.getRelativeTimeStr(created_at); var detail = this.model.get('detail'); var user_url = function(user_id) { return app.config.siteRoot + 'useradmin/info/' + encodeURIComponent(user_id) + '/'; }; data.admin_user_url = user_url(data.email); switch(this.model.get('operation')) { case 'repo_create': data.op_title = gettext("Create Library"); data.op_details = gettext("Created library {name} with {owner} as its owner") .replace('{name}', '' + Common.HTMLescape(detail.name) + '') .replace('{owner}', '' + Common.HTMLescape(detail.owner) + ''); break; case 'repo_delete': data.op_title = gettext("Delete Library"); data.op_details = gettext("Deleted library {library_name}") .replace('{library_name}', '' + Common.HTMLescape(detail.name) + ''); break; case 'repo_transfer': data.op_title = gettext("Transfer Library"); data.op_details = gettext("Transferred library {library_name} from {user_from} to {user_to}") .replace('{user_from}', '' + Common.HTMLescape(detail.from) + '') .replace('{user_to}', '' + Common.HTMLescape(detail.to) + ''); if (app.pageOptions.is_pro && app.pageOptions.enable_sys_admin_view_repo) { data.op_details = data.op_details.replace('{library_name}', '' + Common.HTMLescape(detail.name) + ''); } else { data.op_details = data.op_details.replace('{library_name}', '' + Common.HTMLescape(detail.name) + ''); } break; case 'group_create': data.op_title = gettext("Create Group"); data.op_details = gettext("Created group {group_name}").replace('{group_name}', '' + Common.HTMLescape(detail.name) + ''); break; case 'group_transfer': data.op_title = gettext("Transfer Group"); data.op_details = gettext("Transferred group {group_name} from {user_from} to {user_to}") .replace('{group_name}', '' + Common.HTMLescape(detail.name) + '') .replace('{user_from}', '' + Common.HTMLescape(detail.from) + '') .replace('{user_to}', '' + Common.HTMLescape(detail.to) + ''); break; case 'group_delete': data.op_title = gettext("Delete Group"); data.op_details = gettext("Deleted group {group_name}") .replace('{group_name}', '' + Common.HTMLescape(detail.name) + ''); break; case 'user_add': data.op_title = gettext("Add User"); data.op_details = gettext("Added user {user}") .replace('{user}', '' + Common.HTMLescape(detail.email) + ''); break; case 'user_delete': data.op_title = gettext("Delete User"); data.op_details = gettext("Deleted user {user}") .replace('{user}', '' + Common.HTMLescape(detail.email) + ''); break; } this.$el.html(this.template(data)); return this; } }); return AdminLogView; });