postal.js/example/node/client/js/infrastructure/app.js
2012-04-23 01:15:34 -04:00

55 lines
No EOL
1.9 KiB
JavaScript

define( [
'jquery',
'backbone',
'bus',
'infrastructure/router',
'infrastructure/view-manager',
'views/container',
'views/menu',
'views/tweet-count',
'views/mention-count',
'views/mentioner-count',
'views/hash-tag-count',
'views/profanity-percentage',
'views/search-requests',
'views/wiretap',
], function ( $, Backbone, bus, Router, ViewManager, ContainerView, MenuView, TweetCountView,
MentionCountView, MentionerCountView, HashTagCountView, ProfanityPercentage,
SearchRequestView, WiretapView ) {
var app = {
bus : bus,
router : new Router()
};
// Set up UI concerns
app.viewManager = new ViewManager();
app.bus.viewManager.subscribe( "ui.show", function ( data, env ) {
app.viewManager.UI[ data.name ].activate( data.context );
} );
app.viewManager.registerViews( [
{ name : "container", ctor : ContainerView },
{ name : "menu", ctor : MenuView },
{ name : "tweetCount", ctor : TweetCountView },
{ name : "mentionCount", ctor : MentionCountView },
{ name : "mentionerCount", ctor : MentionerCountView },
{ name : "hashTagCount", ctor : HashTagCountView },
{ name : "profanityPercentage", ctor : ProfanityPercentage },
{ name : "searchRequests", ctor : SearchRequestView },
{ name : "wiretap", ctor : WiretapView }
] );
app.viewManager.defineUIs( [
{ name : "homeUI", dependencies : [ "container", "menu", "tweetCount", "mentionCount", "mentionerCount", "hashTagCount", "profanityPercentage" ] },
{ name : "searchRequestUI", dependencies : [ "container", "menu", "searchRequests" ] },
{ name : "wireTapLogUI", dependencies : [ "container", "menu", "wiretap" ] }
] );
$( function () {
Backbone.history.start( {
pushState : true,
root : $( "base" ).attr( "href" )
} );
} );
return app;
} );