// Best guess at where the kiwi server is if not already specified\r
this.kiwi_server = options.kiwi_server || this.detectKiwiServer();\r
\r
+ // The applet to initially load\r
+ this.startup_applet_name = options.startup || 'kiwi_startup';\r
+\r
// Set any default settings before anything else is applied\r
if (this.server_settings && this.server_settings.client && this.server_settings.client.settings) {\r
this.applyDefaultClientSettings(this.server_settings.client.settings);\r
},\r
\r
\r
- start: function () {\r
+ initializeInterfaces: function () {\r
// Set the gateway up\r
_kiwi.gateway = new _kiwi.model.Gateway();\r
this.bindGatewayCommands(_kiwi.gateway);\r
this.initializeGlobals();\r
\r
this.view.barsHide(true);\r
-\r
- this.showIntialConenctionDialog();\r
},\r
\r
\r
},\r
\r
\r
- showIntialConenctionDialog: function() {\r
- var connection_dialog = new _kiwi.model.NewConnection();\r
- this.populateDefaultServerSettings(connection_dialog);\r
-\r
- connection_dialog.view.$el.addClass('initial');\r
- this.view.$el.find('.panel_container:first').append(connection_dialog.view.$el);\r
-\r
- var $info = $($('#tmpl_new_connection_info').html().trim());\r
-\r
- if ($info.html()) {\r
- connection_dialog.view.infoBoxSet($info);\r
- connection_dialog.view.infoBoxShow();\r
- }\r
-\r
- // TODO: Shouldn't really be here but it's not working in the view.. :/\r
- // Hack for firefox browers: Focus is not given on this event loop iteration\r
- setTimeout(function(){\r
- connection_dialog.view.$el.find('.nick').select();\r
- }, 0);\r
-\r
- // Once connected, close this dialog and remove its own event\r
- var fn = function() {\r
- connection_dialog.view.$el.slideUp(function() {\r
- connection_dialog.view.dispose();\r
- connection_dialog = null;\r
-\r
- _kiwi.gateway.off('onconnect', fn);\r
- });\r
-\r
- };\r
- _kiwi.gateway.on('onconnect', fn);\r
+ showStartup: function() {\r
+ this.startup_applet = _kiwi.model.Applet.load(this.startup_applet_name, {no_tab: true});\r
+ this.startup_applet.tab = this.view.$('.console');\r
+ this.startup_applet.view.show();\r
},\r
\r
\r
},\r
\r
\r
- populateDefaultServerSettings: function (new_connection_dialog) {\r
+ panels: (function() {\r
+ var active_panel;\r
+\r
+ var fn = function(panel_type) {\r
+ var panels;\r
+\r
+ // Default panel type\r
+ panel_type = panel_type || 'connections';\r
+\r
+ switch (panel_type) {\r
+ case 'connections':\r
+ panels = this.connections.panels();\r
+ break;\r
+ case 'applets':\r
+ panels = this.applet_panels.models;\r
+ break;\r
+ }\r
+\r
+ // Active panels / server\r
+ panels.active = active_panel;\r
+ panels.server = this.connections.active_connection ?\r
+ this.connections.active_connection.panels.server :\r
+ null;\r
+\r
+ return panels;\r
+ };\r
+\r
+ _.extend(fn, Backbone.Events);\r
+\r
+ // Keep track of the active panel. Channel/query/server or applet\r
+ fn.bind('active', function (new_active_panel) {\r
+ active_panel = new_active_panel;\r
+ });\r
+\r
+ return fn;\r
+ })(),\r
+\r
+\r
+ defaultServerSettings: function () {\r
var parts;\r
var defaults = {\r
nick: '',\r
server: '',\r
port: 6667,\r
ssl: false,\r
- channel: '#chat',\r
+ channel: '',\r
channel_key: ''\r
};\r
var uricheck;\r
if (getQueryVariable('encoding'))\r
defaults.encoding = getQueryVariable('encoding');\r
\r
- // Populate the server select box with defaults\r
- new_connection_dialog.view.populateFields(defaults);\r
+ return defaults;\r
},\r
\r
\r
- panels: (function() {\r
- var fn = function(panel_type) {\r
- var panels;\r
-\r
- // Default panel type\r
- panel_type = panel_type || 'connections';\r
-\r
- switch (panel_type) {\r
- case 'connections':\r
- panels = this.connections.panels();\r
- break;\r
- case 'applets':\r
- panels = this.applet_panels.models;\r
- break;\r
- }\r
-\r
- // Active panels / server\r
- panels.active = this.connections.active_panel;\r
- panels.server = this.connections.active_connection ?\r
- this.connections.active_connection.panels.server :\r
- null;\r
-\r
- return panels;\r
- };\r
-\r
- _.extend(fn, Backbone.Events);\r
-\r
- return fn;\r
- })(),\r
-\r
-\r
bindGatewayCommands: function (gw) {\r
var that = this;\r
\r
\r
\r
fn_to_bind['command:ignore'] = function (ev) {\r
- var list = _kiwi.gateway.get('ignore_list');\r
+ var list = this.connections.active_connection.get('ignore_list');\r
\r
// No parameters passed so list them\r
if (!ev.params[0]) {\r
\r
// We have a parameter, so add it\r
list.push(ev.params[0]);\r
- _kiwi.gateway.set('ignore_list', list);\r
+ this.connections.active_connection.set('ignore_list', list);\r
_kiwi.app.panels().active.addMsg(' ', _kiwi.global.i18n.translate('client_models_application_ignore_nick').fetch(ev.params[0]));\r
};\r
\r
\r
fn_to_bind['command:unignore'] = function (ev) {\r
- var list = _kiwi.gateway.get('ignore_list');\r
+ var list = this.connections.active_connection.get('ignore_list');\r
\r
if (!ev.params[0]) {\r
_kiwi.app.panels().active.addMsg(' ', _kiwi.global.i18n.translate('client_models_application_ignore_stop_notice').fetch());\r
return pattern === ev.params[0];\r
});\r
\r
- _kiwi.gateway.set('ignore_list', list);\r
+ this.connections.active_connection.set('ignore_list', list);\r
\r
_kiwi.app.panels().active.addMsg(' ', _kiwi.global.i18n.translate('client_models_application_ignore_stopped').fetch(ev.params[0]));\r
};\r
function unknownCommand (ev) {\r
var raw_cmd = ev.command + ' ' + ev.params.join(' ');\r
console.log('RAW: ' + raw_cmd);\r
- _kiwi.gateway.raw(null, raw_cmd);\r
+ this.connections.active_connection.gateway.raw(raw_cmd);\r
}\r
\r
function allCommands (ev) {}\r
message = formatToIrcMsg(ev.params.join(' '));\r
\r
panel.addMsg(_kiwi.app.connections.active_connection.get('nick'), message);\r
- _kiwi.gateway.privmsg(null, destination, message);\r
+ this.connections.active_connection.gateway.msg(destination, message);\r
}\r
\r
function actionCommand (ev) {\r
\r
var panel = _kiwi.app.panels().active;\r
panel.addMsg('', '* ' + _kiwi.app.connections.active_connection.get('nick') + ' ' + ev.params.join(' '), 'action');\r
- _kiwi.gateway.action(null, panel.get('name'), ev.params.join(' '));\r
+ this.connections.active_connection.gateway.action(panel.get('name'), ev.params.join(' '));\r
}\r
\r
function partCommand (ev) {\r
+ var that = this;\r
+\r
if (ev.params.length === 0) {\r
- _kiwi.gateway.part(null, _kiwi.app.panels().active.get('name'));\r
+ this.connections.active_connection.gateway.part(_kiwi.app.panels().active.get('name'));\r
} else {\r
_.each(ev.params, function (channel) {\r
- _kiwi.gateway.part(null, channel);\r
+ that.connections.active_connection.gateway.part(channel);\r
});\r
}\r
}\r
\r
function nickCommand (ev) {\r
- _kiwi.gateway.changeNick(null, ev.params[0]);\r
+ this.connections.active_connection.gateway.changeNick(ev.params[0]);\r
}\r
\r
function topicCommand (ev) {\r
channel_name = _kiwi.app.panels().active.get('name');\r
}\r
\r
- _kiwi.gateway.topic(null, channel_name, ev.params.join(' '));\r
+ this.connections.active_connection.gateway.topic(channel_name, ev.params.join(' '));\r
}\r
\r
function noticeCommand (ev) {\r
destination = ev.params[0];\r
ev.params.shift();\r
\r
- _kiwi.gateway.notice(null, destination, ev.params.join(' '));\r
+ this.connections.active_connection.gateway.notice(destination, ev.params.join(' '));\r
}\r
\r
function quoteCommand (ev) {\r
var raw = ev.params.join(' ');\r
- _kiwi.gateway.raw(null, raw);\r
+ this.connections.active_connection.gateway.raw(raw);\r
}\r
\r
function kickCommand (ev) {\r
nick = ev.params[0];\r
ev.params.shift();\r
\r
- _kiwi.gateway.kick(null, panel.get('name'), nick, ev.params.join(' '));\r
+ this.connections.active_connection.gateway.kick(panel.get('name'), nick, ev.params.join(' '));\r
}\r
\r
function clearCommand (ev) {\r
type = ev.params[0];\r
ev.params.shift();\r
\r
- _kiwi.gateway.ctcp(null, true, type, target, ev.params.join(' '));\r
+ this.connections.active_connection.gateway.ctcp(true, type, target, ev.params.join(' '));\r
}\r
\r
function settingsCommand (ev) {\r