1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
var crossroads = require('crossroads');
var hasher = require('hasher');
var translator = require('ot-translator');
var Event = require('ot-event');
//fixme
var PouchDB = require('pouchdb-browser');
$(["test", "test2", "anonymous"]).each(function (i, username) {
new PouchDB("private_" + username).destroy();
new PouchDB("shared_lists_" + username).destroy();
});
exports.session = {
//other properties set when logged in are:
//- username = "...";
//- password = "...";
//- userDbs = {
// private: new PouchDB('...'),
// shared_lists: new PouchDB('...'),
// }
// - onUserDbChanges = {
// private: function (callback) {...; return function cancel() {...};},
// shared_lists: function (callback) {...; return function cancel() {...};},
// }
//
//when redirecting to the login page, you can set:
//- next (with a url as accepted by hasher.setHash)
languageChanged: new Event(),
languageChangeDone: new Event(),
loggedIn: false
};
$(function () {
//translation
exports.session.languageChanged.handle(function () {
var otWeb = _("OpenTeacher Web");
document.title = otWeb;
$("#header-title").text(otWeb);
$("#license-and-source-link").text(_("License information and source code"));
});
function translate() {
//browserLanguage for IE
lang = navigator.language || navigator.browserLanguage;
translator(translationIndex, lang, function (tr) {
// nicer than exporting and using 'main._' everywhere
global._ = tr;
exports.session.languageChanged.send();
exports.session.languageChangeDone.send();
});
}
translate();
exports.session.languageChangeDone.handle(function () {
//routing
crossroads.ignoreState = true;
function parseHash(newHash, oldHash) {
crossroads.parse(newHash);
}
hasher.initialized.add(parseHash);
hasher.changed.add(parseHash);
//start listening
if (!location.hash) {
//when there's no hash path to specify otherwise, go to the
//login page.
hasher.replaceHash("login");
}
hasher.init();
});
});
|