Bughunt
This commit is contained in:
parent
65d8a1c122
commit
276220eaf4
|
@ -16,15 +16,12 @@
|
||||||
mediator.emit('audio:play',...);
|
mediator.emit('audio:play',...);
|
||||||
ToDo
|
ToDo
|
||||||
*/
|
*/
|
||||||
define(
|
define({
|
||||||
{
|
compiles: ['$'],
|
||||||
compiles: ['$'],
|
requires: ['castrato', 'fandango', 'settings', 'templates', 'sounds', 'room', 'notifications', 'audio']
|
||||||
requires: ['castrato','fandango','settings','templates','sounds','room','notifications','audio']
|
}, function ($, requires, data) {
|
||||||
}, function ($, requires, data) {
|
|
||||||
|
|
||||||
var
|
var // Require shortcuts
|
||||||
|
|
||||||
// Require shortcuts
|
|
||||||
fandango = requires.fandango,
|
fandango = requires.fandango,
|
||||||
mediator = requires.castrato,
|
mediator = requires.castrato,
|
||||||
settings = requires.settings,
|
settings = requires.settings,
|
||||||
|
@ -42,89 +39,102 @@ define(
|
||||||
parameters = {},
|
parameters = {},
|
||||||
|
|
||||||
// Adds a new message to the DOM
|
// Adds a new message to the DOM
|
||||||
post = function (type, text, nick) {
|
commands = {
|
||||||
|
post: function (type, text, nick) {
|
||||||
|
var tpl = templates.post[type],
|
||||||
|
post,
|
||||||
|
data = fandango.merge({}, settings, {
|
||||||
|
nick: nick,
|
||||||
|
timestamp: new Date().toLocaleTimeString()
|
||||||
|
});
|
||||||
|
|
||||||
var tpl = templates.post[type],
|
data.text = $.template(text, data);
|
||||||
post,
|
post = $.template(tpl, data);
|
||||||
data = fandango.merge({}, settings, {
|
|
||||||
nick: nick,
|
|
||||||
timestamp: new Date().toLocaleTimeString()
|
|
||||||
});
|
|
||||||
|
|
||||||
data.text = $.template(text, data);
|
// Request a notification
|
||||||
post = $.template(tpl, data);
|
commands.showNotification(type, nick, text);
|
||||||
|
|
||||||
// Request a notification
|
// Append the post to the chat DOM element
|
||||||
showNotification(type, nick, text);
|
components.chat.append(post);
|
||||||
|
},
|
||||||
|
|
||||||
// Append the post to the chat DOM element
|
param: function (p) {
|
||||||
components.chat.append(post);
|
parameters = fandango.merge({}, parameters, p);
|
||||||
|
},
|
||||||
|
|
||||||
},
|
showNotification: function (type, nick, text) {
|
||||||
|
var title = type !== 'message' ? 'Cryptalk' : nick,
|
||||||
|
icon = type === 'message'? 'gfx/icon_128x128.png' : (type == 'error' ? 'gfx/icon_128x128_error.png' : 'gfx/icon_128x128_info.png');
|
||||||
|
|
||||||
param = function (p) {
|
// Emit notification
|
||||||
parameters = fandango.merge({}, parameters, p );
|
mediator.emit('notification:send', {
|
||||||
},
|
|
||||||
|
|
||||||
showNotification = function (type, nick, text) {
|
|
||||||
|
|
||||||
var title = (type!='message') ? 'Cryptalk' : nick,
|
|
||||||
icon = (type == 'message') ? 'gfx/icon_128x128.png' : (type == 'error') ? 'gfx/icon_128x128_error.png' : 'gfx/icon_128x128_info.png';
|
|
||||||
|
|
||||||
// Emit notification
|
|
||||||
mediator.emit('notification:send',
|
|
||||||
{
|
|
||||||
title: title.substring(0, 20),
|
title: title.substring(0, 20),
|
||||||
body: text.substring(0, 80),
|
body: text.substring(0, 80),
|
||||||
icon: icon
|
icon: icon
|
||||||
});
|
});
|
||||||
|
|
||||||
// Emit sound
|
// Emit sound
|
||||||
if ( type == 'message' ) mediator.emit('audio:play', sounds.message);
|
if (type === 'message') {
|
||||||
|
mediator.emit('audio:play', sounds.message);
|
||||||
},
|
}
|
||||||
|
},
|
||||||
|
|
||||||
motd = function (payload) { post('motd', settings.motd); },
|
motd: function () {
|
||||||
info = function (payload, done) { post('info', payload); },
|
commands.post('motd', settings.motd);
|
||||||
error = function (payload, done) { post('error', payload); },
|
},
|
||||||
message = function (payload, done) { post('message', payload.message , payload.nick ); },
|
|
||||||
server = function (payload, done) { post('server', payload); },
|
|
||||||
|
|
||||||
clearInput = function () {
|
info: function (message) {
|
||||||
fandango.subordinate(function () {
|
commands.post('info', message);
|
||||||
components.input[0].value = '';
|
},
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
clear = function () {
|
error: function (message) {
|
||||||
fandango.subordinate(function () {
|
commands.post('error', message);
|
||||||
components.chat[0].innerHTML = '';
|
},
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
lockInput = function () {
|
server: function (message) {
|
||||||
components.input[0].setAttribute('disabled', 'disabled');
|
commands.post('server', message);
|
||||||
components.inputWrapper[0].className = 'loading';
|
},
|
||||||
},
|
|
||||||
|
|
||||||
unlockInput = function () {
|
message: function (data) {
|
||||||
components.input[0].removeAttribute('disabled');
|
commands.post('message', data.message, data.nick);
|
||||||
components.inputWrapper[0].className = '';
|
},
|
||||||
components.input.focus();
|
|
||||||
},
|
|
||||||
|
|
||||||
_require = function (filepath, done) {
|
clearInput: function () {
|
||||||
lockInput();
|
fandango.subordinate(function () {
|
||||||
post('info', 'Requiring ' + filepath + '...');
|
components.input[0].value = '';
|
||||||
require([filepath], function () {
|
});
|
||||||
post('info', 'Successfully required ' + filepath + '.');
|
},
|
||||||
unlockInput();
|
|
||||||
done();
|
clear: function () {
|
||||||
}, function (e) {
|
fandango.subordinate(function () {
|
||||||
post('error', 'An error occurred while trying to load "' + filepath + '":\n' + e);
|
components.chat[0].innerHTML = '';
|
||||||
unlockInput();
|
});
|
||||||
done();
|
},
|
||||||
});
|
|
||||||
|
lockInput: function () {
|
||||||
|
components.input[0].setAttribute('disabled', 'disabled');
|
||||||
|
components.inputWrapper[0].className = 'loading';
|
||||||
|
},
|
||||||
|
|
||||||
|
unlockInput: function () {
|
||||||
|
components.input[0].removeAttribute('disabled');
|
||||||
|
components.inputWrapper[0].className = '';
|
||||||
|
components.input.focus();
|
||||||
|
},
|
||||||
|
|
||||||
|
_require: function (filepath, done) {
|
||||||
|
commands.lockInput();
|
||||||
|
commands.post('info', 'Requiring ' + filepath + '...');
|
||||||
|
require([filepath], function () {
|
||||||
|
commands.post('info', 'Successfully required ' + filepath + '.');
|
||||||
|
commands.unlockInput();
|
||||||
|
done();
|
||||||
|
}, function (e) {
|
||||||
|
commands.post('error', 'An error occurred while trying to load "' + filepath + '":\n' + e);
|
||||||
|
commands.unlockInput();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// Handler for the document`s keyDown-event.
|
// Handler for the document`s keyDown-event.
|
||||||
|
@ -159,9 +169,9 @@ define(
|
||||||
payload,
|
payload,
|
||||||
function(retvals, recipients) {
|
function(retvals, recipients) {
|
||||||
if(!recipients) {
|
if(!recipients) {
|
||||||
return post('error', $.template(templates.messages.unrecognized_command, { commandName: command }));
|
return commands.post('error', $.template(templates.messages.unrecognized_command, { commandName: command }));
|
||||||
} else {
|
} else {
|
||||||
clearInput();
|
commands.clearInput();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -170,7 +180,7 @@ define(
|
||||||
|
|
||||||
if(!parameters.room || !parameters.key ) {
|
if(!parameters.room || !parameters.key ) {
|
||||||
// Make sure that the user has joined a room and the key is set
|
// Make sure that the user has joined a room and the key is set
|
||||||
return (!parameters.room) ? post('error', templates.messages.msg_no_room) : post('error', templates.messages.msg_no_key);
|
return (!parameters.room) ? commands.post('error', templates.messages.msg_no_room) : commands.post('error', templates.messages.msg_no_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Before sending the message.
|
// Before sending the message.
|
||||||
|
@ -188,8 +198,7 @@ define(
|
||||||
);
|
);
|
||||||
|
|
||||||
// And clear the the buffer
|
// And clear the the buffer
|
||||||
clearInput();
|
commands.clearInput();
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -200,17 +209,15 @@ define(
|
||||||
components.input.focus();
|
components.input.focus();
|
||||||
|
|
||||||
// Connect events
|
// Connect events
|
||||||
mediator.on('console:clear', clear);
|
for (var commandName in commands) {
|
||||||
mediator.on('console:motd', motd);
|
if (commandName === '_require' && commandName !== 'post') {
|
||||||
mediator.on('console:info', info);
|
mediator.on('console:' + commandName, commands[commandName]);
|
||||||
mediator.on('console:error', error);
|
}
|
||||||
mediator.on('console:server', server);
|
}
|
||||||
mediator.on('console:message', message);
|
|
||||||
mediator.on('console:lockinput', lockInput);
|
mediator.on('console:require', commands._require);
|
||||||
mediator.on('console:unlockinput', unlockInput);
|
|
||||||
mediator.on('console:param', param);
|
|
||||||
mediator.on('console:require', _require);
|
|
||||||
mediator.on('console:post', function (data) {
|
mediator.on('console:post', function (data) {
|
||||||
post(data.type, data.data, data.nick);
|
commands.post(data.type, data.data, data.nick);
|
||||||
});
|
});
|
||||||
});
|
});
|
Loading…
Reference in New Issue