From 4a9e1288b175d6ccdf963f437166c11210ff8c2f Mon Sep 17 00:00:00 2001 From: AlexKvazos Date: Wed, 29 Apr 2015 22:21:20 -0500 Subject: [PATCH] My Servers Feature Store your favorite servers to easily select them when connecting --- app/client/controllers/connectController.js | 9 +++- app/client/controllers/index.js | 1 + app/client/controllers/serversController.js | 21 +++++++++ app/client/services/buffer.js | 1 - app/client/services/index.js | 9 ++-- app/client/services/servers.js | 41 ++++++++++++++++ public/templates/index.html | 2 +- public/templates/modals/connect.html | 52 +++++++++++++++------ public/templates/modals/servers.html | 49 +++++++++++++++++++ public/templates/windows/nav.html | 4 +- 10 files changed, 169 insertions(+), 20 deletions(-) create mode 100644 app/client/controllers/serversController.js create mode 100644 app/client/services/servers.js create mode 100644 public/templates/modals/servers.html diff --git a/app/client/controllers/connectController.js b/app/client/controllers/connectController.js index ca78e02..f3f245b 100644 --- a/app/client/controllers/connectController.js +++ b/app/client/controllers/connectController.js @@ -2,7 +2,14 @@ * Connect Controller */ -module.exports = function($scope, socket) { +module.exports = function($scope, socket, servers) { + + $scope.servers = servers.get(); + + $scope.select = function(id) { + $scope.ip = servers.select(id).ip; + $scope.port = servers.select(id).port; + }; // connect handler $scope.connect = function() { diff --git a/app/client/controllers/index.js b/app/client/controllers/index.js index 3047321..8407506 100644 --- a/app/client/controllers/index.js +++ b/app/client/controllers/index.js @@ -8,5 +8,6 @@ exports.register = function(app) { app.controller('bufferController', require('./bufferController')); app.controller('chatController', require('./chatController')); app.controller('navController', require('./navController')); + app.controller('serversController', require('./serversController')); }; diff --git a/app/client/controllers/serversController.js b/app/client/controllers/serversController.js new file mode 100644 index 0000000..11d3424 --- /dev/null +++ b/app/client/controllers/serversController.js @@ -0,0 +1,21 @@ +module.exports = function($scope, servers) { + + $scope.servers = servers.get(); + + $scope.add = function() { + var server = { + name: $scope.name, + ip: $scope.ip, + port: $scope.port || 25565 + }; + servers.add(server); + $scope.servers = servers.get(); + }; + + + $scope.delete = function(index) { + servers.delete(index); + $scope.servers = servers.get(); + }; + +}; diff --git a/app/client/services/buffer.js b/app/client/services/buffer.js index 2076fe2..3e21e45 100644 --- a/app/client/services/buffer.js +++ b/app/client/services/buffer.js @@ -46,7 +46,6 @@ module.exports = function(socket, sound) { socket.on('disconnect', function() { $('#buffer').append('> Connection to chat server has been lost. Reconnecting...
'); $('#buffer').scrollTop($('#buffer').prop('scrollHeight')); - sound.error(); }); socket.on('bot:disconnect', function() { diff --git a/app/client/services/index.js b/app/client/services/index.js index 157d96d..0c3fa12 100644 --- a/app/client/services/index.js +++ b/app/client/services/index.js @@ -5,12 +5,15 @@ exports.register = function(app) { // socket factory - app.factory('socket', require('./socket')); + app.factory('socket', require('./socket')); // buffer factory - app.factory('buffer', require('./buffer')); + app.factory('buffer', require('./buffer')); // sound factory - app.factory('sound', require('./sound')); + app.factory('sound', require('./sound')); + + // servers factory + app.factory('servers', require('./servers')); }; diff --git a/app/client/services/servers.js b/app/client/services/servers.js new file mode 100644 index 0000000..07e009b --- /dev/null +++ b/app/client/services/servers.js @@ -0,0 +1,41 @@ +module.exports = function() { + + // function to save servers into localStorage + function save() { + localStorage.servers = JSON.stringify(servers); + } + + + // default servers + var defaultServers = [ + {name: 'LattyCraft', ip: 'us.latty.info', port: 25565} + ]; + + + // load servers from localstorage + var servers = JSON.parse(localStorage.servers); + + if (!servers || servers.length === 0) { + servers = defaultServers; + save(); + } + + + return { + get: function() { + return servers; + }, + select: function(id) { + return servers[id]; + }, + add: function(server) { + servers.push(server); + save(); + }, + delete: function(index) { + servers.splice(index, 1); + save(); + } + }; + +}; \ No newline at end of file diff --git a/public/templates/index.html b/public/templates/index.html index c1b24e1..6212951 100755 --- a/public/templates/index.html +++ b/public/templates/index.html @@ -5,7 +5,7 @@ Minecraft Chat | AlexKvazos - + diff --git a/public/templates/modals/connect.html b/public/templates/modals/connect.html index cd3dbae..5236df2 100644 --- a/public/templates/modals/connect.html +++ b/public/templates/modals/connect.html @@ -8,21 +8,47 @@