diff --git a/client/assets/css/style.css b/client/assets/css/style.css
index 55c728228..1c6d82d36 100644
--- a/client/assets/css/style.css
+++ b/client/assets/css/style.css
@@ -270,7 +270,7 @@ html, body { height:100%; }
*/
#kiwi .server_select { position:relative; width:320px; margin:0 auto; overflow:hidden; }
#kiwi .server_select.initial { margin-top: 3em; }
-#kiwi .server_select .more { display: none; }
+#kiwi .server_select .more, .advanced { display: none; }
#kiwi .server_select button { }
#kiwi .server_select input { }
#kiwi .server_select label { }
@@ -283,6 +283,7 @@ html, body { height:100%; }
#kiwi .server_select .basic tr.key { display:none; }
#kiwi .server_select.single_server .basic { border:none; }
#kiwi .server_select .status { }
+#kiwi .server_select .show_advanced { font-size: 0.8em; }
/* Channel key icon */
#kiwi .server_select .basic tr.channel td { position: relative; }
diff --git a/client/src/app.js b/client/src/app.js
index 63b5df375..416c44a9d 100644
--- a/client/src/app.js
+++ b/client/src/app.js
@@ -287,7 +287,9 @@ _kiwi.global = {
port: 6667,
ssl: false,
channel: '',
- channel_key: ''
+ channel_key: '',
+ username: '',
+ realname: ''
};
var uricheck;
@@ -314,6 +316,12 @@ _kiwi.global = {
if (_kiwi.app.server_settings.client.channel_key)
defaults.channel_key = _kiwi.app.server_settings.client.channel_key;
+
+ if (_kiwi.app.server_settings.client.username)
+ defaults.username = _kiwi.app.server_settings.client.username;
+
+ if (_kiwi.app.server_settings.client.realname)
+ defaults.realname = _kiwi.app.server_settings.client.realname;
}
diff --git a/client/src/index.html.tmpl b/client/src/index.html.tmpl
index b32ce5221..0fdff08ee 100644
--- a/client/src/index.html.tmpl
+++ b/client/src/index.html.tmpl
@@ -225,6 +225,24 @@
+
+
+ <%= advanced %>
+
+
diff --git a/client/src/models/gateway.js b/client/src/models/gateway.js
index c479aaf09..8fbcba4fd 100644
--- a/client/src/models/gateway.js
+++ b/client/src/models/gateway.js
@@ -145,7 +145,9 @@ _kiwi.model.Gateway = Backbone.Model.extend({
address: connection_info.host,
port: connection_info.port,
ssl: connection_info.ssl,
- password: connection_info.password
+ password: connection_info.password,
+ realname: connection_info.realname,
+ username: connection_info.username
};
connection = new _kiwi.model.Network(inf);
_kiwi.app.connections.add(connection);
@@ -171,7 +173,9 @@ _kiwi.model.Gateway = Backbone.Model.extend({
hostname: connection_info.host,
port: connection_info.port,
ssl: connection_info.ssl,
- password: connection_info.password
+ password: connection_info.password,
+ realname: connection_info.realname,
+ username: connection_info.username
};
connection_info.options = connection_info.options || {};
diff --git a/client/src/models/newconnection.js b/client/src/models/newconnection.js
index 6df5b97bf..618b41eb2 100644
--- a/client/src/models/newconnection.js
+++ b/client/src/models/newconnection.js
@@ -26,7 +26,9 @@ _kiwi.model.NewConnection = Backbone.Collection.extend({
port: new_connection_event.port,
ssl: new_connection_event.ssl,
password: new_connection_event.password,
- options: new_connection_event.options
+ options: new_connection_event.options,
+ realname: new_connection_event.realname,
+ username: new_connection_event.username
}, function(err, network) {
that.onNewNetwork(err, network);
});
diff --git a/client/src/translations/en-gb.po b/client/src/translations/en-gb.po
index ece1c7d32..23d4839d1 100755
--- a/client/src/translations/en-gb.po
+++ b/client/src/translations/en-gb.po
@@ -376,6 +376,18 @@ msgstr "Port"
msgid "client_views_serverselect_poweredby"
msgstr "Powered by Kiwi IRC"
+#:
+msgid "client_views_serverselect_username"
+msgstr "Username"
+
+#:
+msgid "client_views_serverselect_realname"
+msgstr "Realname"
+
+#:
+msgid "client_views_serverselect_advanced"
+msgstr "Advanced"
+
#:
msgid "client_views_serverselect_nickname_error_empty"
msgstr "Select a nickname first!"
diff --git a/client/src/translations/es-419.po b/client/src/translations/es-419.po
index a0af384c4..5d48d1e59 100644
--- a/client/src/translations/es-419.po
+++ b/client/src/translations/es-419.po
@@ -372,6 +372,18 @@ msgstr "Puerto"
msgid "client_views_serverselect_poweredby"
msgstr "Respaldado por KiwiIRC"
+#:
+msgid "client_views_serverselect_username"
+msgstr "Nombre usaurio"
+
+#:
+msgid "client_views_serverselect_realname"
+msgstr "Nombre real"
+
+#:
+msgid "client_views_serverselect_advanced"
+msgstr "Avanzado"
+
#:
msgid "client_views_serverselect_nickname_error_empty"
msgstr "¡Debes seleccionar un nick!"
diff --git a/client/src/translations/es.po b/client/src/translations/es.po
index d09f8825f..1f5f76d55 100644
--- a/client/src/translations/es.po
+++ b/client/src/translations/es.po
@@ -372,6 +372,18 @@ msgstr "Puerto"
msgid "client_views_serverselect_poweredby"
msgstr "Potenciado por Kiwi IRC"
+#:
+msgid "client_views_serverselect_username"
+msgstr "Nombre usaurio"
+
+#:
+msgid "client_views_serverselect_realname"
+msgstr "Nombre real"
+
+#:
+msgid "client_views_serverselect_advanced"
+msgstr "Avanzado"
+
#:
msgid "client_views_serverselect_nickname_error_empty"
msgstr "¡Selecciona un sobrenombre primero!"
diff --git a/client/src/views/serverselect.js b/client/src/views/serverselect.js
index dce9ddd86..7708ee3c5 100644
--- a/client/src/views/serverselect.js
+++ b/client/src/views/serverselect.js
@@ -2,6 +2,7 @@ _kiwi.view.ServerSelect = Backbone.View.extend({
events: {
'submit form': 'submitForm',
'click .show_more': 'showMore',
+ 'click .show_advanced': 'showAdvanced',
'change .have_pass input': 'showPass',
'change .have_key input': 'showKey',
'click .fa-key': 'channelKeyIconClick',
@@ -23,7 +24,10 @@ _kiwi.view.ServerSelect = Backbone.View.extend({
server_network: _kiwi.global.i18n.translate('client_views_serverselect_server_and_network').fetch(),
server: _kiwi.global.i18n.translate('client_views_serverselect_server').fetch(),
port: _kiwi.global.i18n.translate('client_views_serverselect_port').fetch(),
- powered_by: _kiwi.global.i18n.translate('client_views_serverselect_poweredby').fetch()
+ powered_by: _kiwi.global.i18n.translate('client_views_serverselect_poweredby').fetch(),
+ advanced: _kiwi.global.i18n.translate('client_views_serverselect_advanced').fetch(),
+ username: _kiwi.global.i18n.translate('client_views_serverselect_username').fetch(),
+ realname: _kiwi.global.i18n.translate('client_views_serverselect_realname').fetch()
};
this.$el = $(_.template($('#tmpl_server_select').html().trim(), text));
@@ -32,6 +36,7 @@ _kiwi.view.ServerSelect = Backbone.View.extend({
if (_kiwi.app.server_settings && _kiwi.app.server_settings.connection) {
if (!_kiwi.app.server_settings.connection.allow_change) {
this.$el.find('.show_more').remove();
+ this.$el.find('.show_advanced').remove();
this.$el.addClass('single_server');
}
}
@@ -40,6 +45,7 @@ _kiwi.view.ServerSelect = Backbone.View.extend({
this.state = 'all';
this.more_shown = false;
+ this.advanced_shown = false;
this.model.bind('new_network', this.newNetwork, this);
@@ -87,6 +93,8 @@ _kiwi.view.ServerSelect = Backbone.View.extend({
port: $('input.port', this.$el).val(),
ssl: $('input.ssl', this.$el).prop('checked'),
password: $('input.password', this.$el).val(),
+ realname: $('input.realname', this.$el).val(),
+ username: $('input.username', this.$el).val(),
channel: $('input.channel', this.$el).val(),
channel_key: $('input.channel_key', this.$el).val(),
options: this.server_options
@@ -140,9 +148,28 @@ _kiwi.view.ServerSelect = Backbone.View.extend({
}
},
- populateFields: function (defaults) {
- var nick, server, port, channel, channel_key, ssl, password;
+ showAdvanced: function (event) {
+ if (!this.advanced_shown) {
+ $('.advanced', this.$el).slideDown('fast');
+ $('.show_advanced', this.$el)
+ .children('.fa-caret-down')
+ .removeClass('fa-caret-down')
+ .addClass('fa-caret-up');
+ $('input.ident', this.$el).select();
+ this.advanced_shown = true;
+ } else {
+ $('.advanced', this.$el).slideUp('fast');
+ $('.show_advanced', this.$el)
+ .children('.fa-caret-up')
+ .removeClass('fa-caret-up')
+ .addClass('fa-caret-down');
+ $('input.nick', this.$el).select();
+ this.advanced_shown = false;
+ }
+ },
+ populateFields: function (defaults) {
+ var nick, server, port, channel, channel_key, ssl, password, username, realname;
defaults = defaults || {};
nick = defaults.nick || '';
@@ -152,9 +179,13 @@ _kiwi.view.ServerSelect = Backbone.View.extend({
password = defaults.password || '';
channel = defaults.channel || '';
channel_key = defaults.channel_key || '';
+ username = defaults.username || '';
+ realname = defaults.realname || '';
$('input.nick', this.$el).val(nick);
$('input.server', this.$el).val(server);
+ $('input.username', this.$el).val(username);
+ $('input.realname', this.$el).val(realname);
$('input.port', this.$el).val(port);
$('input.ssl', this.$el).prop('checked', ssl);
$('input#server_select_show_pass', this.$el).prop('checked', !(!password));
diff --git a/config.example.js b/config.example.js
index 8f0d3afc1..f3317bff5 100644
--- a/config.example.js
+++ b/config.example.js
@@ -203,7 +203,9 @@ conf.client = {
count_all_activity: false,
locale: null // null = use the browser locale settings
},
- window_title: 'Kiwi IRC'
+ window_title: 'Kiwi IRC',
+ username: 'kiwiirc', //this value dont work if ip_as_username is defined
+ realname: '[[ kiwiirc.com ]]'
};
// List of themes available for the user to choose from
@@ -220,6 +222,8 @@ conf.client_themes = [
//conf.restrict_server_port = 6667;
//conf.restrict_server_ssl = false;
//conf.restrict_server_password = "";
+//conf.restrict_server_realname = "[[ kiwiirc.com ]]";
+//conf.restrict_server_username = "kiwiirc";
diff --git a/server/client.js b/server/client.js
index 2cc41c765..c55d80aac 100755
--- a/server/client.js
+++ b/server/client.js
@@ -139,6 +139,8 @@ Client.prototype.attachKiwiCommands = function() {
options.encoding = command.encoding;
options.password = global.config.restrict_server_password || command.password;
+ options.realname = global.config.restrict_server_realname || command.realname;
+ options.username = global.config.restrict_server_username || command.username;
that.state.connect(
(global.config.restrict_server || command.hostname),
diff --git a/server/irc/connection.js b/server/irc/connection.js
index bfcb39a2a..af8f20738 100644
--- a/server/irc/connection.js
+++ b/server/irc/connection.js
@@ -64,8 +64,8 @@ var IrcConnection = function (hostname, port, ssl, nick, user, options, state, c
// User information
this.nick = nick;
this.user = user; // Contains users real hostname and address
- this.username = this.nick.replace(/[^0-9a-zA-Z\-_.\/]/, '');
- this.gecos = ''; // Users real-name. Uses default from config if empty
+ this.username = options.username || this.nick.replace(/[^0-9a-zA-Z\-_.\/]/, '');
+ this.gecos = options.realname || ''; // Users real-name. Uses default from config if empty
this.password = options.password || '';
this.quit_message = ''; // Uses default from config if empty
diff --git a/server/settingsgenerator.js b/server/settingsgenerator.js
index 243d41b91..589cb53fe 100644
--- a/server/settingsgenerator.js
+++ b/server/settingsgenerator.js
@@ -70,6 +70,10 @@ function generateSettings(debug) {
server: config.get().restrict_server,
port: config.get().restrict_server_port || 6667,
ssl: config.get().restrict_server_ssl,
+ channel: config.get().restrict_server_channel,
+ nick: config.get().restrict_server_nick,
+ username: config.get().restrict_server_username,
+ realname: config.get().restrict_server_realname,
allow_change: false
}
};