Skip to content

Commit

Permalink
Default servers/channels for client on startup #152
Browse files Browse the repository at this point in the history
  • Loading branch information
thedjpetersen committed Aug 30, 2014
1 parent 795aacb commit 28d0d83
Show file tree
Hide file tree
Showing 7 changed files with 46 additions and 20 deletions.
26 changes: 20 additions & 6 deletions lib/connection.js
Original file line number Diff line number Diff line change
Expand Up @@ -135,14 +135,14 @@ var connection = function(io, app) {
} else {
output_settings = client_settings;
}
res.render("index.ejs", {user: user, settings: JSON.stringify(output_settings)});
res.render("index.ejs", {user: user, default_servers: _.has(server_settings, "default_servers"), settings: JSON.stringify(output_settings)});
})
} else {
res.render("index.ejs", {user: false, settings: JSON.stringify(client_settings)});
res.render("index.ejs", {user: false, default_servers: _.has(server_settings, "default_servers"), settings: JSON.stringify(client_settings)});
}
});
} else {
res.render("index.ejs", {user: false, settings: JSON.stringify(client_settings)});
res.render("index.ejs", {user: false, default_servers: _.has(server_settings, "default_servers"), settings: JSON.stringify(client_settings)});
}
});

Expand Down Expand Up @@ -212,16 +212,16 @@ var connection = function(io, app) {
io.sockets.on("connection", function (socket) {
socket.clients = {};

socket.on("connectirc", function(data) {
var add_client = function(data) {
var backbone_models = require("../src/js/models/models");

var connect_data = _.extend({}, data, {
var connect_data = _.extend({}, {
userName: "subway",
channels: [],
debug: true,
retryCount: 1,
autoRejoin: false
});
}, data);

data = _.pick(data, 'nick', 'server')

Expand All @@ -241,6 +241,20 @@ var connection = function(io, app) {
}

attach_listener(client, socket, backbone_models);
}

//handle case for default servers
if (server_settings.default_servers) {
// iterate over each of our default servers
// connecting to them
_.each(server_settings.default_servers, function(server_data) {
add_client(server_data);
})
}


socket.on("connectirc", function(data) {
add_client(data);
});

socket.on("remove_connection", function(data) {
Expand Down
15 changes: 14 additions & 1 deletion settings/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,20 @@ settings = {
use_polling: process.env.USE_POLLING || false, // Use polling if websockets aren't supported

// limit each user's connection log to this amount of messages (***not implemented yet***)
max_log_size: 4096
max_log_size: 4096,

// Default servers
// list default servers which you want the users
// to connect to on startup
/*
default_servers: [
{
server: 'localhost',
nick: 'guest',
channels: ['#test_metro']
}
]
*/
};


Expand Down
13 changes: 0 additions & 13 deletions src/components/app/messages.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -163,19 +163,6 @@ app.components.messages = function() {
return;
}

/*
* loading message this should go in
* the private message before it is
* to scrolled
if (false) {
return (
<div className="message loading">
<img src="img/bubbles.svg" />
</div>
);
}
*/

switch (message.get("type")) {
case "PRIVMSG":
return <Message model={message} />
Expand Down
1 change: 1 addition & 0 deletions src/jade/index.jade
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,5 @@ html
| app.user = new app.models.SubwayUser({username: "<%= user.username %>" });
| <% } %>
| app.settings = _.extend(app.settings, <%- settings %>);
| app.default_servers = <%- default_servers %>;
| </script>
7 changes: 7 additions & 0 deletions src/js/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@ app.io.on("connect", function() {
$.post('restore_connection/', {socketid: app.io.io.engine.id});
}

// If we have default servers we want to hide the menu
// and show the loading servers message
if(app.default_servers && _.isUndefined(app.user)) {
$(".mainMenu").toggleClass("hide");
$("main").html(app.loading_template);
}

util.loadPlugins(app.settings.plugins);
util.highlightCss();
});
Expand Down
2 changes: 2 additions & 0 deletions src/js/boilerplate.js
Original file line number Diff line number Diff line change
Expand Up @@ -283,4 +283,6 @@ if(isChromium !== null && vendorName === "Google Inc." && Notification.permissio
}, 5000);
}

app.loading_template = _.template("<div class=\"loading_default\"><strong>Loading default channels...</strong><br/><img src=\"/img/bubbles.svg\"/></div>")();

app.io = io(null, {port: document.location.port});
2 changes: 2 additions & 0 deletions src/styl/base.styl
Original file line number Diff line number Diff line change
Expand Up @@ -96,3 +96,5 @@ input[disabled]
background: #94AC82
cursor: pointer

.loading_default
padding: 20px

0 comments on commit 28d0d83

Please sign in to comment.