@(event: models.Event)(implicit user: Option[models.User] = None)
@import services.AppConfiguration
@import play.api.i18n.Messages
@import play.Logger
@linkForObject(obj_type: String, obj_id: Option[UUID], obj_name: Option[String]) = {
@obj_id match {
case Some(id) => {
@obj_type match {
case "file" => {
file: @obj_name.get
}
case "dataset" => {
@Messages("dataset.title").toLowerCase : @obj_name.get
}
case "collection" => {
@Messages("collection.title").toLowerCase : @obj_name.get
}
case "user" => {
user: @obj_name.get
}
case "space" => {
@Messages("space.title"): @obj_name.get
}
case "curation" => {
curation object: @obj_name.get
}
case "subcollection" => {
@Messages("collection.title").toLowerCase : @obj_name.get from collection:
@event.source_name.get
}
case _ => {
@obj_name match {
case None => {
@obj_type
}
case Some(name) => {
@obj_type: @name
}
}
}
}
}
case None => {
@obj_name match {
case None => {
@obj_type
}
case Some(name) => {
@obj_type: @name
}
}
}
}
}
@actionTextForEvent(event_type_prefix: String) = @{
event_type_prefix match {
case "follow" => "is now following "
case "unfollow" => "stopped following "
case "upload" => "uploaded "
case "create" => "created "
case "delete" => "deleted "
case "edit" => "edited their comment to "
case "download" => "downloaded "
case "postrequest" => "requested access to"
case _ => {
Logger.warn("unknown event type prefix in actionTextForEvent: "+event_type_prefix)
event_type_prefix
}
}
}
@actionTextsForEvent(event_type_prefix: String) = @{
event_type_prefix match {
case "add" => List("added ", " to ")
case "attach" => List("attached ", " to ")
case "remove" => List("removed ", " from ")
case "detach" => List("detached ", " from ")
case _ => {
Logger.warn("unknown event type prefix in actionTextsForEvent: "+event_type_prefix)
List(event_type_prefix+" ", " ")
}
}
}
@event.event_type match {
case "move_dataset_trash" => {
moved to trash @linkForObject("dataset", event.object_id, event.object_name)
}
case "move_collection_trash" => {
moved to trash @linkForObject("collection", event.object_id, event.object_name)
}
case "restore_dataset_trash" => {
restored from trash @linkForObject("dataset", event.object_id, event.object_name)
}
case "restore_collection_trash" => {
retored from trash @linkForObject("collection", event.object_id, event.object_name)
}
case "edit_profile" => {
edited their profile
}
case "update_dataset_information" => {
updated information for @linkForObject("dataset", event.object_id, event.object_name)
}
case "update_space_information" => {
updated information for @linkForObject("space", event.object_id, event.object_name)
}
case "update_file_information" => {
updated information for @linkForObject("file", event.object_id, event.object_name)
}
case "update_collection_information" => {
updated information for @linkForObject("collection", event.object_id, event.object_name)
}
case "update_curation_information" => {
updated information for @linkForObject("curation", event.object_id, event.object_name)
}
case "set_note_file" => {
set note for @linkForObject("file", event.object_id, event.object_name)
}
case "add_user_to_space" => {
added @linkForObject("user", event.targetuser.map(_.id), event.targetuser.map(_.fullName)) as a user to @linkForObject("space", event.object_id, event.object_name)
}
case "remove_user_from_space" => {
removed @linkForObject("user", event.targetuser.map(_.id), event.targetuser.map(_.fullName)) as a user from @linkForObject("space", event.object_id, event.object_name)
}
case "added_folder" => {
created a folder in @linkForObject("dataset", event.object_id, event.object_name)
}
case "deleted_folder" => {
deleted a folder from @linkForObject("dataset", event.object_id, event.object_name)
}
case "updated_folder" => {
updated a folder in @linkForObject("dataset", event.object_id, event.object_name)
}
case "add_file" | "add_file_1" | "add_file_2" | "add_file_3" => {
added a file to @linkForObject("dataset", event.object_id, event.object_name)
}
case "add_file_folder" | "add_file_folder_1" | "add_file_folder_2" | "add_file_folder_3" => {
added a file to a folder within @linkForObject("dataset", event.object_id, event.object_name)
}
case "add_sub_collection" => {
added @linkForObject("collection", event.object_id, event.object_name) to
@linkForObject("collection", event.source_id, event.source_name)
}
case "addMetadata_file" | "addMetadata_dataset" => {
added metadata to @linkForObject(
event.event_type.substring(event.event_type.indexOf('_')+1),
event.object_id,
event.object_name
)
}
case "acceptrequest_space" => {
accepted @linkForObject("user", event.targetuser.map(_.id), event.targetuser.map(_.fullName))'s request to
@linkForObject("space", event.object_id, event.object_name)
}
case "rejectrequest_space" => {
rejected @linkForObject("user", event.targetuser.map(_.id), event.targetuser.map(_.fullName))'s request to
@linkForObject("space", event.object_id, event.object_name)
}
case "tos_update" => {
updated the Terms of Service
}
case "added_metadata_space" => {
added a new metadata definition to @linkForObject("space", event.object_id, event.object_name)
}
case "added_metadata_instance" => {
added a new metadata definition to @(AppConfiguration.getDisplayName)
}
case "edit_metadata_space" => {
edited a metadata definition for @linkForObject("space", event.object_id, event.object_name)
}
case "edit_metadata_instance" => {
edited a metadata definition for @(AppConfiguration.getDisplayName)
}
case "delete_metadata_space" => {
delete a metadata definition from @linkForObject("space", event.object_id, event.object_name)
}
case "delete_metadata_instance" => {
deleted a metadata definition from @(AppConfiguration.getDisplayName)
}
case "mention_file_comment" => {
@event.targetuser match {
case Some(u) => {
was mentioned by @linkForObject("user", Some(u.id), Some(u.fullName)) in a comment on @linkForObject("file", event.object_id, event.object_name)
}
case None => {
was mentioned in a comment on @linkForObject("file", event.object_id, event.object_name)
}
}
}
case "mention_dataset_comment" => {
@event.targetuser match {
case Some(u) => {
was mentioned by @linkForObject("user", Some(u.id), Some(u.fullName)) in a comment on @linkForObject("dataset", event.object_id, event.object_name)
}
case None => {
was mentioned in a comment on @linkForObject("dataset", event.object_id, event.object_name)
}
}
}
case _ => {
@defining(event.event_type.split("_")) { event_type_split =>
@event_type_split.length match {
case 2 => {
@if(event_type_split(0) == "comment"){
commented @event.object_name on @linkForObject("file", event.source_id, event.source_name)
}else{
@actionTextForEvent(event_type_split(0)) @linkForObject(event_type_split(1), event.object_id, event.object_name)
}
}
case 3 => {
@defining(actionTextsForEvent(event_type_split(0))) { texts =>
@if(event.event_type.indexOf("tag")>=0){
@texts(0) @linkForObject(event_type_split(1), None, None) @texts(1) @linkForObject(event_type_split(2), event.object_id, event.object_name)
} else {
@*parse add multiple files events*@
@if(event.event_type.indexOf("file")>=0 && event.event_type.indexOf("dataset") < 0 && event.event_type.indexOf("folder") < 0) {
added @event_type_split(2) files to @linkForObject("dataset", event.object_id, event.object_name)
} else {
@texts(0) @linkForObject(event_type_split(1), event.object_id, event.object_name) @texts(1) @linkForObject(event_type_split(2), event.source_id, event.source_name)
}
}
}
}
case 4 =>{
@*parse add multiple files in a folder events*@
@if(event.event_type.indexOf("file")>=0 && event.event_type.indexOf("dataset") < 0) {
added @event_type_split(3) files to a folder within @linkForObject("dataset", event.object_id, event.object_name)
} else {
@event_type_split(0) @linkForObject(event_type_split(1), event.object_id, event.object_name) @event_type_split(1) @linkForObject(event_type_split(2), event.source_id, event.source_name)
}
}
case _ => {
@Logger.warn("unknown event type encountered: "+event.event_type)
@event.event_type
}
}
}
}
}