diff --git a/lib/app/index.js b/lib/app/index.js index 94ac81ee17..8df89226d4 100644 --- a/lib/app/index.js +++ b/lib/app/index.js @@ -1,5 +1,5 @@ // Generated by CoffeeScript 1.3.3 -var content, derby, get, getRoom, ready, view, _ref; +var Guid, content, derby, get, getRoom, ready, view, _ref; derby = require('derby'); @@ -11,6 +11,8 @@ derby.use(require('../../ui')); content = require('./content'); +Guid = require('guid'); + view.fn('taskClasses', function(type, completed, value, hideCompleted) { var classes; classes = type; @@ -74,18 +76,20 @@ view.fn("silver", function(num) { } }); -get('/', function(page, model) { +get('/:userId?', function(page, model, _arg) { var userId; + userId = _arg.userId; + if (userId != null) { + model.set('_session.userId', userId); + return getRoom(page, model, userId); + } if (userId = model.get('_session.userId')) { return getRoom(page, model, userId); } - return model.async.incr('configs.1.nextUserId', function(err, userId) { - model.set('_session.userId', userId); - model.set("users." + userId, { - name: 'User ' + userId - }); - return getRoom(page, model, userId); - }); + userId = Guid.raw(); + model.set('_session.userId', userId); + model.set("users." + userId, {}); + return getRoom(page, model, userId); }); getRoom = function(page, model, userId) { @@ -147,6 +151,7 @@ getRoom = function(page, model, userId) { ready(function(model) { var endOfDayTally, expModifier, hpModifier, poormanscron, setupSortable, step, tour, type, updateStats, _i, _j, _len, _len1, _ref1, _ref2; + model.set('_purl', window.location.href + model.get('_user.id')); $('[rel=popover]').popover(); model.on('set', '*', function() { return $('[rel=popover]').popover(); diff --git a/package.json b/package.json index f8ef716517..ce80e4c004 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "gzippo": ">=0.1.4", "racer-db-mongo": "*", "connect-mongo": ">=0.1.9", - "derby-ui-boot": "*" + "derby-ui-boot": "*", + "guid": "*" }, "private": true, "devDependencies": { diff --git a/src/app/index.coffee b/src/app/index.coffee index 9c40959bfe..fdad080cc6 100644 --- a/src/app/index.coffee +++ b/src/app/index.coffee @@ -3,6 +3,7 @@ derby = require('derby') derby.use require('derby-ui-boot') derby.use(require('../../ui')) content = require('./content') +Guid = require('guid') ## VIEW HELPERS ## view.fn 'taskClasses', (type, completed, value, hideCompleted) -> @@ -43,21 +44,25 @@ view.fn "silver", (num) -> ## ROUTES ## -get '/', (page, model) -> + +get '/:userId?', (page, model, {userId}) -> + # Saved session + if userId?# and model.get(userId)? + model.set '_session.userId', userId + return getRoom page, model, userId + # Render page if a userId is already stored in session data if userId = model.get '_session.userId' return getRoom page, model, userId # Otherwise, select a new userId and initialize user - model.async.incr 'configs.1.nextUserId', (err, userId) -> - model.set '_session.userId', userId - model.set "users.#{userId}", - name: 'User ' + userId - getRoom page, model, userId + userId = Guid.raw() + model.set '_session.userId', userId + model.set "users.#{userId}", {} + getRoom page, model, userId getRoom = (page, model, userId) -> - - model.subscribe "users.#{userId}", (err, user) -> + model.subscribe "users.#{userId}", (err, user) -> model.ref '_user', user ### Set User Defaults ### @@ -91,6 +96,8 @@ getRoom = (page, model, userId) -> ready (model) -> + model.set '_purl', window.location.href + model.get('_user.id') + $('[rel=popover]').popover() #TODO: this isn't very efficient, do model.on set for specific attrs for popover model.on 'set', '*', -> diff --git a/views/app/index.html b/views/app/index.html index 69c6da5487..352c0514f6 100644 --- a/views/app/index.html +++ b/views/app/index.html @@ -7,6 +7,16 @@