annotate js/modules/app.js @ 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 7a1162b1b7e7
children 0b71df72ebe1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
41
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
1 Require.modules["app/login"] = function(exports) {
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
2 var callbacks = [];
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
3 var username;
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
4 var password;
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
5
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
6 exports.whenChanged = function whenChanged(cb) {
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
7 callbacks.push(cb);
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
8 };
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
9
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
10 exports.isLoggedIn = function isLoggedIn() {
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
11 return (username != "");
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
12 };
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
13
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
14 exports.set = function set(newUsername, newPassword) {
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
15 if (newUsername == username && newPassword == password)
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
16 return;
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
17
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
18 username = newUsername;
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
19 password = newPassword;
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
20
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
21 var isLoggedIn = (username != "");
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
22 var isAuthenticated = (username != "" && password != "");
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
23
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
24 callbacks.forEach(
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
25 function(cb) {
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
26 cb({username: username,
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
27 password: password,
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
28 isLoggedIn: isLoggedIn,
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
29 isAuthenticated: isAuthenticated});
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
30 });
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
31 };
7a1162b1b7e7 Added app module
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
32 };
43
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
33
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
34 Require.modules["app/ui"] = function(exports, require) {
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
35 var $ = require("jQuery");
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
36
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
37 require("app/login").whenChanged(
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
38 function changeUI(user) {
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
39 if (user.isLoggedIn) {
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
40 $(".requires-no-login").hide();
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
41 $(".requires-login").show();
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
42 if (user.isAuthenticated) {
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
43 $(".requires-auth-login").show();
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
44 } else {
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
45 $(".requires-auth-login").hide();
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
46 }
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
47 } else {
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
48 $(".requires-no-login").show();
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
49 $(".requires-login").hide();
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
50 $(".requires-auth-login").hide();
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
51 }
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
52 });
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
53
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
54 $("#header .menu li").click(
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
55 function openDialog(event) {
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
56 var dialog = $("#" + this.title);
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
57 if (dialog.length == 0)
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
58 throw new Error("dialog not found: " + this.title);
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
59 dialog.fadeIn();
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
60 });
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
61
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
62 $(".dialog").click(
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
63 function dismissDialogOnOutsideClick(event) {
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
64 if (event.target == this)
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
65 $(this).fadeOut();
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
66 });
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
67
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
68 function setupDocumentTitleChanger(document) {
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
69 const BASE_TITLE = document.title;
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
70
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
71 require("app/login").whenChanged(
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
72 function changeTitle(user) {
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
73 var title = BASE_TITLE;
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
74
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
75 if (user.isLoggedIn)
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
76 title = user.username + "'s " + BASE_TITLE;
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
77
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
78 if (document.title != title) {
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
79 document.title = title;
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
80 $("#header .title").text(title);
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
81 }
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
82 });
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
83 };
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
84
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
85 exports.init = function init(document) {
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
86 setupDocumentTitleChanger(document);
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
87
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
88 $("#login form").submit(
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
89 function(event) {
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
90 event.preventDefault();
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
91 require("app/login").set($("#login .username").val(),
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
92 $("#login .password").val());
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
93 $("#login").fadeOut();
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
94 });
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
95
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
96 require("app/login").set($("#login .username").val(),
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
97 $("#login .password").val());
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
98 if (!require("app/login").isLoggedIn())
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
99 $("#login").fadeIn();
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
100 };
0974c1df3714 moved lots of app ui logic to require('app/ui')
Atul Varma <avarma@mozilla.com>
parents: 41
diff changeset
101 };