~openteachermaintainers/openteacher/3.x

« back to all changes in this revision

Viewing changes to node_modules/ot-web/src/main.js

  • Committer: Marten de Vries
  • Date: 2017-06-28 18:05:48 UTC
  • Revision ID: git-v1:b4c406307aa345c58b9904b76580f15c5bff2a4e
Move JS into npm modules

Show diffs side-by-side

added added

removed removed

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