Mercurial > bugzilla-dashboard
changeset 43:0974c1df3714
moved lots of app ui logic to require('app/ui')
author | Atul Varma <avarma@mozilla.com> |
---|---|
date | Sat, 24 Apr 2010 18:33:45 -0700 |
parents | 0a1c7fec0af2 |
children | d3ed74176b4d |
files | js/main.js js/modules/app.js js/require.js |
diffstat | 3 files changed, 74 insertions(+), 62 deletions(-) [+] |
line wrap: on
line diff
--- a/js/main.js Sat Apr 24 18:07:14 2010 -0700 +++ b/js/main.js Sat Apr 24 18:33:45 2010 -0700 @@ -1,63 +1,5 @@ $(window).ready( function() { - const BASE_TITLE = document.title; - - var require = Require.build(); - - require("app/login").whenChanged( - function changeTitle(user) { - var title = BASE_TITLE; - - if (user.isLoggedIn) - title = user.username + "'s " + BASE_TITLE; - - if (document.title != title) { - document.title = title; - $("#header .title").text(title); - } - }); - - require("app/login").whenChanged( - function changeUI(user) { - if (user.isLoggedIn) { - $(".requires-no-login").hide(); - $(".requires-login").show(); - if (user.isAuthenticated) { - $(".requires-auth-login").show(); - } else { - $(".requires-auth-login").hide(); - } - } else { - $(".requires-no-login").show(); - $(".requires-login").hide(); - $(".requires-auth-login").hide(); - } - }); - - $("#header .menu li").click( - function openDialog(event) { - var dialog = $("#" + this.title); - if (dialog.length == 0) - throw new Error("dialog not found: " + this.title); - dialog.fadeIn(); - }); - - $(".dialog").click( - function dismissDialogOnOutsideClick(event) { - if (event.target == this) - $(this).fadeOut(); - }); - - $("#login form").submit( - function(event) { - event.preventDefault(); - require("app/login").set($("#login .username").val(), - $("#login .password").val()); - $("#login").fadeOut(); - }); - - require("app/login").set($("#login .username").val(), - $("#login .password").val()); - if (!require("app/login").isLoggedIn()) - $("#login").fadeIn(); + var require = Require.build(Require.modules, {jQuery: jQuery}); + require("app/ui").init(document); });
--- a/js/modules/app.js Sat Apr 24 18:07:14 2010 -0700 +++ b/js/modules/app.js Sat Apr 24 18:33:45 2010 -0700 @@ -30,3 +30,72 @@ }); }; }; + +Require.modules["app/ui"] = function(exports, require) { + var $ = require("jQuery"); + + require("app/login").whenChanged( + function changeUI(user) { + if (user.isLoggedIn) { + $(".requires-no-login").hide(); + $(".requires-login").show(); + if (user.isAuthenticated) { + $(".requires-auth-login").show(); + } else { + $(".requires-auth-login").hide(); + } + } else { + $(".requires-no-login").show(); + $(".requires-login").hide(); + $(".requires-auth-login").hide(); + } + }); + + $("#header .menu li").click( + function openDialog(event) { + var dialog = $("#" + this.title); + if (dialog.length == 0) + throw new Error("dialog not found: " + this.title); + dialog.fadeIn(); + }); + + $(".dialog").click( + function dismissDialogOnOutsideClick(event) { + if (event.target == this) + $(this).fadeOut(); + }); + + function setupDocumentTitleChanger(document) { + const BASE_TITLE = document.title; + + require("app/login").whenChanged( + function changeTitle(user) { + var title = BASE_TITLE; + + if (user.isLoggedIn) + title = user.username + "'s " + BASE_TITLE; + + if (document.title != title) { + document.title = title; + $("#header .title").text(title); + } + }); + }; + + exports.init = function init(document) { + setupDocumentTitleChanger(document); + + $("#login form").submit( + function(event) { + event.preventDefault(); + require("app/login").set($("#login .username").val(), + $("#login .password").val()); + $("#login").fadeOut(); + }); + + require("app/login").set($("#login .username").val(), + $("#login .password").val()); + if (!require("app/login").isLoggedIn()) + $("#login").fadeIn(); + }; +};
--- a/js/require.js Sat Apr 24 18:07:14 2010 -0700 +++ b/js/require.js Sat Apr 24 18:33:45 2010 -0700 @@ -1,10 +1,11 @@ var Require = { modules: {}, - build: function build(modules) { + build: function build(modules, moduleExports) { if (!modules) modules = this.modules; - var moduleExports = {}; + if (!moduleExports) + moduleExports = {}; return function require(module) { if (!(module in moduleExports)) {