source: Dev/branches/Cartis/Tiles preview/js/nav.js @ 283

Last change on this file since 283 was 283, checked in by tjcschipper, 13 years ago

Cartis Mockup werkt!

W
I
N
N
I
N
G

File size: 4.8 KB
Line 
1$(function() {
2    // Debugger error workaround
3    jQuery.extend({
4        getScript: function(url, callback) {
5            var d = $.Deferred();
6            if (callback)
7                d.done(callback);
8            var head = document.getElementsByTagName("head")[0];
9            var script = document.createElement("script");
10            script.src = url;
11
12            // Handle Script loading
13            {
14                var done = false;
15
16                // Attach handlers for all browsers
17                script.onload = script.onreadystatechange = function(){
18                    if ( !done && (!this.readyState ||
19                        this.readyState == "loaded" || this.readyState == "complete") ) {
20                        done = true;
21                        d.resolve();
22
23                        // Handle memory leak in IE
24                        script.onload = script.onreadystatechange = null;
25                    }
26                };
27            }
28
29            head.appendChild(script);
30
31            // We handle everything using the script element injection
32            return d;
33        }
34    });
35       
36       
37       
38       
39       
40       
41       
42       
43       
44       
45       
46       
47       
48       
49       
50    mockup = {
51        api: {
52            clickTile: function(thisElement, url) {
53                // clear frame
54                $(".basePanel").children().remove();
55                mockup.api.loadPage(url);
56           
57            },
58            loadPage: function(name, conf) {
59               
60                if (conf) {
61                    if (!confirm("Are you sure you want to go back? You will lose your selected data.")) {
62                        return;
63                    }
64                }
65               
66                $(".basePanel").children().remove();
67               
68                $.get("pages/"+name+".html", function(responseText, textStatus, XMLHttpRequest) {
69                    $(".basePanel").append(responseText);
70                    $.getScript("pages/"+name+".js", function(responseText, textStatus, XMLHttpRequest){
71                       
72                    })
73                });
74                mockup.api.breadcrumbs.navTo(name);
75            },
76            breadcrumbs: new (function() {
77                var _crumbs = ["Home"];
78                var _element = document.getElementById('breadcrumbs');
79                this.init = function() {
80                    updateDiv();
81                }
82               
83                this.navTo = function(name) {
84                    // Check of 'name' al in crumbs staat.
85                    // Als wel: navBack, delete alle crumbs na 'name', update div.
86                    // Als niet: addCrumb, voeg 'name' toe aan crumbs en update de div.
87                    var index = _crumbs.indexOf(name);
88                    if (index != -1) {
89                        navBack(name, index);
90                    }
91                    else {
92                        addCrumb(name);
93                    }
94                }
95               
96                var addCrumb = function(name) {
97                    _crumbs.push(name);
98                    updateDiv();
99                }
100               
101                var navBack = function(name, index) {
102                    var i = index;
103                    _crumbs = _crumbs.slice(0, i+1);
104                    updateDiv();
105                }
106               
107                var updateDiv = function() {
108                    //format first
109                    _element.innerHTML = null || "";
110                    for (var n=0; n < _crumbs.length; n++) {
111                        var _link;
112                        if (_crumbs[n] == "Home") {
113                            link = document.createTextNode("Home");
114                            _element.appendChild(link);
115                           
116                           
117                        }
118                        else{
119                            link = document.createElement('a');
120                            link.innerHTML = _crumbs[n];
121                            link.setAttribute("onclick", "mockup.api.loadPage('"+_crumbs[n]+"', true);");
122                            link.setAttribute("href","#");
123                            _element.appendChild(link);
124                           
125                        }
126                       
127                        if (n != _crumbs.length-1) {
128                            _element.innerHTML += " > ";
129                        }
130                        else {
131                            link.className = "selected";
132                        }
133                       
134                    }
135                }
136            })(),
137            graphs: {
138                previewGraph: null,
139                dashboard: [],
140                graphObjects: []
141            }
142       
143        }
144   
145   
146    }
147});
Note: See TracBrowser for help on using the repository browser.