listKind: "blerg.Record",
handlers: {
onLogin: "getStalkStatus",
- onLogout: "getStalkStatus"
+ onLogout: "getStalkStatus",
+ onReload: "usernameChanged"
},
published: {
username: "",
{name: "stalkLink", kind: "blerg.Link", content: "[stalk]", showing: false, onNavigate: "startStalking"},
{name: "unstalkLink", kind: "blerg.Link", content: "[stop stalking]", showing: false, onNavigate: "stopStalking"},
{name: "rssLink", kind: "blerg.Link", components: [
- {noDom: true, content: "["},
+ {tag: null, content: "["},
{kind: "Image", src: "/images/rss.png", attributes: {width: 16, height: 16}},
- {noDom: true, content: "RSS]"}
+ {tag: null, content: "RSS]"}
]}
]},
{name: "records"},
+ {name: "spinner", kind: "OldSchoolSpinner", showing: false},
+ {name: "emptyAccountMessage", showing: false, content: "Hey, there's nothing here!"},
+ {name: "userNotFoundMessage", classes: "blerg-error", showing: false, content: "User not found"},
{name: "loadMoreButton", kind: "onyx.Button", onclick: "loadMore", content: "Load More"},
{name: "api", kind: "blerg.API",
onItemsLoaded: "itemsLoaded",
+ onUserNotFound: "userNotFound",
+ onAPIError: "apiError",
onSubscriptionStatus: "gotStalkStatus"}
],
statics: {
},
loadItems: function(from, to) {
this.inherited(arguments);
+ this.$.loadMoreButton.hide();
this.$.api.loadUserRecords(this.username, from, to);
},
itemsLoaded: function(inSender, inEvent) {
+ this.$.userNotFoundMessage.hide();
if (this.permalink) {
this.$.loadMoreButton.hide();
} else {
}
this.addItems(inEvent.entries);
- if (this.lastRecord == 0)
+ if (this.lastRecord == 0 || inEvent.entries.length == 0)
this.$.loadMoreButton.hide();
},
+ addItems: function(items) {
+ this.$.emptyAccountMessage.setShowing(items.length == 0);
+ this.inherited(arguments);
+ },
+ userNotFound: function() {
+ this.addItems([]);
+ this.$.emptyAccountMessage.hide();
+ this.$.userNotFoundMessage.show();
+ },
+ apiError: function() {
+ this.addItems([]);
+ alert('Unknown API Error');
+ },
getStalkStatus: function() {
if (!blerg.API.loggedIn) {
this.$.stalkLink.hide();