discourse/app/assets/javascripts/discourse/models/notification.js

46 lines
1.1 KiB
JavaScript

/**
A data model representing a notification a user receives
@class Notification
@extends Discourse.Model
@namespace Discourse
@module Discourse
**/
Discourse.Notification = Discourse.Model.extend({
readClass: (function() {
if (this.read) return 'read';
return '';
}).property('read'),
url: (function() {
var slug;
if (this.blank('data.topic_title')) return "";
slug = this.get('slug');
return Discourse.getURL("/t/") + slug + "/" + (this.get('topic_id')) + "/" + (this.get('post_number'));
}).property(),
rendered: (function() {
var notificationName;
notificationName = Discourse.get('site.notificationLookup')[this.notification_type];
return Em.String.i18n("notifications." + notificationName, {
username: this.data.display_username,
link: "<a href='" + (this.get('url')) + "'>" + this.data.topic_title + "</a>"
});
}).property()
});
Discourse.Notification.reopenClass({
create: function(obj) {
var result;
result = this._super(obj);
if (obj.data) {
result.set('data', Em.Object.create(obj.data));
}
return result;
}
});