updated app

This commit is contained in:
2012-05-30 23:00:06 -04:00
parent 6a753904b7
commit da6ad88d48
5545 changed files with 1101709 additions and 60 deletions

99
node_modules/derby-examples/chat/lib/chat/index.js generated vendored Normal file
View File

@@ -0,0 +1,99 @@
// Generated by CoffeeScript 1.3.1
var NUM_USER_IMAGES, get, getRoom, ready, view, _ref;
_ref = require('derby').createApp(module), get = _ref.get, view = _ref.view, ready = _ref.ready;
NUM_USER_IMAGES = 10;
get('/:room?', function(page, model, _arg) {
var room, userId, _room;
room = _arg.room;
if (!(room && /^[-\w ]+$/.test(room))) {
return page.redirect('/lobby');
}
_room = room.toLowerCase().replace(/[_ ]/g, '-');
if (_room !== room) {
return page.redirect("/" + _room);
}
if (userId = model.get('_session.userId')) {
return getRoom(page, model, room, userId);
}
return model.async.incr('configs.1.nextUserId', function(err, userId) {
model.set('_session.userId', userId);
model.set("users." + userId, {
name: 'User ' + userId,
picClass: 'pic' + (userId % NUM_USER_IMAGES)
});
return getRoom(page, model, room, userId);
});
});
getRoom = function(page, model, roomName, userId) {
return model.subscribe("rooms." + roomName, 'users', function(err, room, users) {
model.ref('_room', room);
model.setNull('_room.messages', []);
model.set('_newComment', '');
model.ref('_user', "users." + userId);
model.fn('_numMessages', '_room.messages', function(messages) {
return messages.length;
});
return page.render();
});
};
ready(function(model) {
var atBottom, displayTime, i, message, messageList, messages, months, _i, _len, _ref1;
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
displayTime = function(time) {
var hours, minutes, period;
time = new Date(time);
hours = time.getHours();
period = hours < 12 ? ' am, ' : ' pm, ';
hours = (hours % 12) || 12;
minutes = time.getMinutes();
if (minutes < 10) {
minutes = '0' + minutes;
}
return hours + ':' + minutes + period + months[time.getMonth()] + ' ' + time.getDate() + ', ' + time.getFullYear();
};
_ref1 = model.get('_room.messages');
for (i = _i = 0, _len = _ref1.length; _i < _len; i = ++_i) {
message = _ref1[i];
model.set("_room.messages." + i + "._displayTime", displayTime(message.time));
}
model.set('_showReconnect', true);
exports.connect = function() {
model.set('_showReconnect', false);
setTimeout((function() {
return model.set('_showReconnect', true);
}), 1000);
return model.socket.socket.connect();
};
exports.reload = function() {
return window.location.reload();
};
messages = document.getElementById('messages');
messageList = document.getElementById('messageList');
atBottom = true;
model.on('pre:push', '_room.messages', function() {
var bottom, containerHeight, scrollBottom;
bottom = messageList.offsetHeight;
containerHeight = messages.offsetHeight;
scrollBottom = messages.scrollTop + containerHeight;
return atBottom = bottom < containerHeight || scrollBottom === bottom;
});
model.on('push', '_room.messages', function(message, len, isLocal) {
if (isLocal || atBottom) {
messages.scrollTop = messageList.offsetHeight;
}
return model.set("_room.messages." + (len - 1) + "._displayTime", displayTime(message.time));
});
return exports.postMessage = function() {
model.push('_room.messages', {
userId: model.get('_session.userId'),
comment: model.get('_newComment'),
time: +(new Date)
});
return model.set('_newComment', '');
};
});

16
node_modules/derby-examples/chat/lib/chat/inline.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
// Generated by CoffeeScript 1.3.1
var commentInput, messageList, messages;
messages = document.getElementById('messages');
messageList = document.getElementById('messageList');
commentInput = document.getElementById('commentInput');
(window.onresize = function() {
return messages.scrollTop = messageList.offsetHeight;
})();
if (!('autofocus' in commentInput)) {
commentInput.focus();
}

52
node_modules/derby-examples/chat/lib/server/index.js generated vendored Normal file
View File

@@ -0,0 +1,52 @@
// Generated by CoffeeScript 1.3.1
var MongoStore, ONE_YEAR, chat, derby, express, expressApp, gzippo, http, path, publicPath, root, server, serverError;
http = require('http');
path = require('path');
express = require('express');
gzippo = require('gzippo');
MongoStore = require('connect-mongo')(express);
derby = require('derby');
chat = require('../chat');
serverError = require('./serverError');
ONE_YEAR = 1000 * 60 * 60 * 24 * 365;
root = path.dirname(path.dirname(__dirname));
publicPath = path.join(root, 'public');
(expressApp = express()).use(express.favicon()).use(gzippo.staticGzip(publicPath, {
maxAge: ONE_YEAR
})).use(express.compress()).use(express.cookieParser('secret_sauce')).use(express.session({
cookie: {
maxAge: ONE_YEAR
},
store: new MongoStore({
db: 'derby-chat',
collection: 'express-sessions'
})
})).use(chat.session()).use(chat.router()).use(expressApp.router).use(serverError(root));
module.exports = server = http.createServer(expressApp);
expressApp.all('*', function(req) {
throw "404: " + req.url;
});
derby.use(require('racer-db-mongo'));
chat.createStore({
listen: server,
db: {
type: 'Mongo',
uri: 'mongodb://localhost/derby-chat'
}
});

View File

@@ -0,0 +1,27 @@
// Generated by CoffeeScript 1.3.1
var derby, isProduction;
derby = require('derby');
isProduction = derby.util.isProduction;
module.exports = function(root) {
var staticPages;
staticPages = derby.createStatic(root);
return function(err, req, res, next) {
var message, status;
if (err == null) {
return next();
}
console.log(err.stack ? err.stack : err);
message = err.message || err.toString();
status = parseInt(message);
if (status === 404) {
return staticPages.render('404', res, {
url: req.url
}, 404);
} else {
return res.send((400 <= status && status < 600) ? status : 500);
}
};
};