2017-03-09 09:42:59 +00:00
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 ( ) {
2017-03-14 07:45:32 +00:00
var data = { 'email' : this . model . get ( 'email' ) } ,
created _at = Moment ( this . model . get ( 'datetime' ) ) ;
2017-03-09 09:42:59 +00:00
data [ 'time' ] = created _at . format ( 'LLLL' ) ;
data [ 'time_from_now' ] = Common . getRelativeTimeStr ( created _at ) ;
2017-03-14 07:45:32 +00:00
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_delete' :
data . op _title = gettext ( "Delete Library" ) ;
data . op _details = gettext ( "Deleted library {library_name}" )
. replace ( '{library_name}' , '<span class="bold" title="' + detail . id + '">' + Common . HTMLescape ( detail . name ) + '</span>' ) ;
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}' , '<a href="' + user _url ( detail . from ) + '">' + Common . HTMLescape ( detail . from ) + '</a>' )
. replace ( '{user_to}' , '<a href="' + user _url ( detail . to ) + '">' + Common . HTMLescape ( detail . to ) + '</a>' ) ;
if ( app . pageOptions . is _pro && app . pageOptions . enable _sys _admin _view _repo ) {
data . op _details = data . op _details . replace ( '{library_name}' , '<a href="#libs/' + encodeURIComponent ( detail . id ) + '/">' + Common . HTMLescape ( detail . name ) + '</a>' ) ;
} else {
data . op _details = data . op _details . replace ( '{library_name}' , '<span class="bold" title="' + detail . id + '">' + Common . HTMLescape ( detail . name ) + '</span>' ) ;
}
break ;
case 'group_create' :
data . op _title = gettext ( "Create Group" ) ;
data . op _details = gettext ( "Created group {group_name}" ) . replace ( '{group_name}' , '<a href="#groups/' + encodeURIComponent ( detail . id ) + '/">' + Common . HTMLescape ( detail . name ) + '</a>' ) ;
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}' , '<a href="#groups/' + encodeURIComponent ( detail . id ) + '/">' + Common . HTMLescape ( detail . name ) + '</a>' )
. replace ( '{user_from}' , '<a href="' + user _url ( detail . from ) + '">' + Common . HTMLescape ( detail . from ) + '</a>' )
. replace ( '{user_to}' , '<a href="' + user _url ( detail . to ) + '">' + Common . HTMLescape ( detail . to ) + '</a>' ) ;
break ;
case 'group_delete' :
data . op _title = gettext ( "Delete Group" ) ;
data . op _details = gettext ( "Deleted group {group_name}" )
. replace ( '{group_name}' , '<span class="bold" title="' + detail . id + '">' + Common . HTMLescape ( detail . name ) + '</span>' ) ;
break ;
case 'user_add' :
data . op _title = gettext ( "Add User" ) ;
data . op _details = gettext ( "Added user {user}" )
. replace ( '{user}' , '<a href="' + user _url ( detail . email ) + '">' + Common . HTMLescape ( detail . email ) + '</a>' ) ;
break ;
case 'user_delete' :
data . op _title = gettext ( "Delete User" ) ;
data . op _details = gettext ( "Deleted user {user}" )
. replace ( '{user}' , '<span class="bold">' + Common . HTMLescape ( detail . email ) + '</span>' ) ;
break ;
}
2017-03-09 09:42:59 +00:00
this . $el . html ( this . template ( data ) ) ;
return this ;
}
} ) ;
return AdminLogView ;
} ) ;