Skip to content

Commit

Permalink
Adding support to pagination in chat
Browse files Browse the repository at this point in the history
  • Loading branch information
llvieira committed Nov 3, 2017
1 parent eade1dc commit 0b0ffb4
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
18 changes: 18 additions & 0 deletions src/listener/base-listener.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,24 @@ class Listener {
}
}

pagination(msg, response, text) {
if (text) {
this.transform.text(msg, text);
}

var start = 0;
var end = 10;
var members = response.members;

while (end < members.length + 10) {
response.members = members.slice(start, end);
start += 10;
end += 10;

this.transform.send(msg, response);
}
}

respond(rgx, options, cb) {
if (!cb) {
cb = options;
Expand Down
10 changes: 6 additions & 4 deletions src/listener/server-hardware.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ THE SOFTWARE.
const Listener = require('./base-listener');
const buildD3Chart = require('../charting/chart');
const Conversation = require('hubot-conversation');

const rtrim = /\/statistics\/d\d*/i;

class ServerHardwareListener extends Listener {
Expand Down Expand Up @@ -133,7 +134,7 @@ class ServerHardwareListener extends Listener {

ListServerHardware(msg) {
this.client.ServerHardware.getAllServerHardware().then((res) => {
return this.transform.send(msg, res);
this.pagination(msg, res);
}).catch((err) => {
return this.transform.error(msg, err);
});
Expand All @@ -157,9 +158,10 @@ class ServerHardwareListener extends Listener {
}
else {
if (status.toLowerCase() === "ok") {
return this.transform.send(msg, res, "Okay " + msg.message.user.name + ", the following blades have an " + status.toUpperCase() + " status.");
this.pagination(msg, res, "Okay " + msg.message.user.name + ", the following blades have an " + status.toUpperCase() + " status.");
return;
} else {
return this.transform.send(msg, res, "Okay " + msg.message.user.name + ", the following blades have a " + status.toUpperCase() + " status.");
this.pagination(msg, res, "Okay " + msg.message.user.name + ", the following blades have an " + status.toUpperCase() + " status.");
}
}
}).catch((err) => {
Expand All @@ -174,7 +176,7 @@ class ServerHardwareListener extends Listener {
if (res.members.length === 0) {
return this.transform.text(msg, msg.message.user.name + ", I didn't find any blades that are powered " + status.toLowerCase() + ".");
} else {
return this.transform.send(msg, res, "Okay, " + msg.message.user.name + ", the following blades are powered " + status.toLowerCase() + ".");
this.pagination(msg, res, "Okay, " + msg.message.user.name + ", the following blades are powered " + status.toLowerCase() + ".");
}
}).catch((err) => {
return this.transform.error(msg, err);
Expand Down

0 comments on commit 0b0ffb4

Please sign in to comment.