handlers: {
onLogin: "login",
onLogout: "logout",
- onPostVisibility: "postVisibilityUpdate",
- onClearFeedStatus: "clearFeedStatus"
+ onPostVisibility: "postVisibilityUpdate"
},
components: [
{name: "loggedOutControls", components: [
{tag: null, content: "."}
]},
{classes: "blerg-controls-toolbar", components: [
- {kind: "onyx.Button", content: "Feed Your Vanity", onclick: "chatterClicked"},
+ {name: "mentionButton", kind: "onyx.Button", content: "Feed Your Vanity", onclick: "chatterClicked"},
{name: "feedButton", kind: "onyx.Button", classes: "feed-button", content: "Stalk Your Victims", onclick: "feedClicked"},
{name: "spewButton", kind: "onyx.Button", classes: "spew-button", content: "Spew It!", onclick: "spewToggle"}
]},
]},
{name: "api", kind: "blerg.API",
- onFeedInfo: "gotFeedInfo"}
+ onStatus: "gotStatus"},
+ {kind: "Signals",
+ onClearNotification: "clearNotification"}
],
showRSS: function(url) {
this.$.rssButton.show();
this.$.userlink.setContent('@' + inEvent.username);
this.username = inEvent.username;
- this.updateFeedInfo();
+ this.updateStatus();
this.feedStatusUpdateInterval = setInterval(function() {
- this.updateFeedInfo();
+ this.updateStatus();
}.bind(this), 900000);
},
logout: function(inSender, inEvent) {
this.postShowing = inEvent.showing;
this.$.spewButton.addRemoveClass('active', inEvent.showing);
},
- updateFeedInfo: function() {
- this.$.api.getFeedInfo();
+ updateStatus: function() {
+ this.$.api.getStatus();
},
- gotFeedInfo: function(inSender, inEvent) {
- this.$.feedButton.addRemoveClass('new', inEvent.new > 0);
- if (inEvent.new > 0) {
- this.$.feedButton.setContent('Stalk Your Victims (' + inEvent.new + ')');
- } else {
- this.$.feedButton.setContent('Stalk Your Victims');
+ gotStatus: function(inSender, inEvent) {
+ if ('mentioned' in inEvent) {
+ this.$.mentionButton.addRemoveClass('new', inEvent.mentioned);
+ }
+ if ('feed_new' in inEvent) {
+ this.$.feedButton.addRemoveClass('new', inEvent.feed_new > 0);
+ if (inEvent.feed_new > 0) {
+ this.$.feedButton.setContent('Stalk Your Victims (' + inEvent.feed_new + ')');
+ } else {
+ this.$.feedButton.setContent('Stalk Your Victims');
+ }
}
},
chatterClicked: function() {
window.location.href = '/#/feed';
this.bubble('onNavigate');
},
- clearFeedStatus: function() {
- this.gotFeedInfo(this, {new: 0});
+ clearNotification: function(inSender, inEvent) {
+ if (inEvent.type == 'feed') {
+ this.gotStatus(this, {feed_new: 0});
+ } else if (inEvent.type == 'mentioned') {
+ this.gotStatus(this, {mentioned: false});
+ }
}
});