Commit 3e5d02436a8d8eb1c0a46a9235b8bcd91c5c31ad
1 parent
b55cc09c
Exists in
master
and in
10 other branches
adding requirejs to application
Showing
5 changed files
with
689 additions
and
633 deletions
Show diff stats
index.html
@@ -47,17 +47,6 @@ | @@ -47,17 +47,6 @@ | ||
47 | return url; | 47 | return url; |
48 | } | 48 | } |
49 | 49 | ||
50 | - function loadJavaScriptSync(file_path){ | ||
51 | - var head = document.getElementsByTagName('head')[0]; | ||
52 | - var script_element = document.createElement('script'); | ||
53 | - script_element.type = 'text/javascript'; | ||
54 | - var req = new XMLHttpRequest(); | ||
55 | - req.open('GET', file_path, false); // 'false': synchronous. | ||
56 | - req.send(null); | ||
57 | - script_element.text = req.responseText; | ||
58 | - head.appendChild(script_element); | ||
59 | - } | ||
60 | - | ||
61 | function loadJavaScriptAsync(file_path){ | 50 | function loadJavaScriptAsync(file_path){ |
62 | var head = document.getElementsByTagName('head')[0]; | 51 | var head = document.getElementsByTagName('head')[0]; |
63 | var script_element = document.createElement('script'); | 52 | var script_element = document.createElement('script'); |
@@ -66,30 +55,10 @@ | @@ -66,30 +55,10 @@ | ||
66 | head.appendChild(script_element); | 55 | head.appendChild(script_element); |
67 | } | 56 | } |
68 | 57 | ||
69 | - function loadJSFiles(){ | ||
70 | - var js_files = [ | ||
71 | - 'js/jquery-2.1.3.min.js', | ||
72 | - 'js/jquery-ui-1.11.4.custom/jquery-ui.min.js', | ||
73 | - 'js/jquery.cookie.js', | ||
74 | - 'js/handlebars-v3.0.1.js', | ||
75 | - 'js/handlebars-helpers.js', | ||
76 | - 'js/jquery.dotdotdot.min.js', | ||
77 | - 'js/jquery.maxlength.min.js', | ||
78 | - 'js/layout.js', | ||
79 | - 'js/main.js' | ||
80 | - ]; | ||
81 | - | ||
82 | - var file_path = ''; | ||
83 | - for(i = 0; i < js_files.length; i++){ | ||
84 | - file_path = makeJSURL(js_files[i]); | ||
85 | - if(file_path.match('layout.js') || file_path.match('main.js')){ | ||
86 | - loadJavaScriptAsync(file_path); | ||
87 | - }else{ | ||
88 | - loadJavaScriptSync(file_path); | ||
89 | - } | ||
90 | - } | 58 | + function loadRequireJS(){ |
59 | + loadJavaScriptAsync(makeJSURL('js/require.js')); | ||
91 | } | 60 | } |
92 | - | 61 | + loadRequireJS(); |
93 | loadCSSFiles(); | 62 | loadCSSFiles(); |
94 | </script> | 63 | </script> |
95 | 64 | ||
@@ -332,8 +301,50 @@ | @@ -332,8 +301,50 @@ | ||
332 | </form> | 301 | </form> |
333 | </script> | 302 | </script> |
334 | 303 | ||
335 | - <script type="text/javascript"> | ||
336 | - loadJSFiles(); | 304 | + <script type='text/javascript'> |
305 | + var base = window.location.href; | ||
306 | + var host = window.location.host; | ||
307 | + var regex = new RegExp(".*" + host + '/', "g"); | ||
308 | + if(host){ | ||
309 | + base = base.replace(regex,''); | ||
310 | + }else{ | ||
311 | + base = base.replace('index.html',''); | ||
312 | + } | ||
313 | + | ||
314 | + require.config({ | ||
315 | + baseUrl: ( base + '/js/'), | ||
316 | + paths: { | ||
317 | + jquery: 'jquery-2.1.3.min', | ||
318 | + jquery_ui: 'jquery-ui-1.11.4.custom/jquery-ui.min', | ||
319 | + jquery_cookie: 'jquery.cookie', | ||
320 | + handlebars: 'handlebars-v3.0.1', | ||
321 | + handlebars_helpers: 'handlebars-helpers', | ||
322 | + dotdotdot: 'jquery.dotdotdot.min', | ||
323 | + jquery_maxlength: 'jquery.maxlength.min', | ||
324 | + layout: 'layout', | ||
325 | + main: 'main' | ||
326 | + }, | ||
327 | + shim: { | ||
328 | + 'jquery_ui': { | ||
329 | + deps: ['jquery'] | ||
330 | + }, | ||
331 | + 'dotdotdot': { | ||
332 | + deps: ['jquery'] | ||
333 | + }, | ||
334 | + 'layout': { | ||
335 | + deps: ['jquery'] | ||
336 | + }, | ||
337 | + 'jquery_maxlength': { | ||
338 | + deps: ['jquery'] | ||
339 | + }, | ||
340 | + 'handlebars_helpers':{ | ||
341 | + deps: ['handlebars'] | ||
342 | + } | ||
343 | + } | ||
344 | + }); | ||
345 | + | ||
346 | + requirejs(['jquery', 'jquery_ui', 'jquery_cookie', 'handlebars', 'handlebars_helpers']); | ||
347 | + requirejs(['dotdotdot', 'jquery_maxlength', 'layout', 'main']); | ||
337 | </script> | 348 | </script> |
338 | 349 | ||
339 | </body> | 350 | </body> |
js/handlebars-helpers.js
1 | -Handlebars.registerHelper('link', function(text, url) { | ||
2 | - text = Handlebars.Utils.escapeExpression(text); | ||
3 | - url = Handlebars.Utils.escapeExpression(url); | 1 | +define(['handlebars'], function(Handlebars){ |
4 | 2 | ||
5 | - // Exemplo: <a href="#/programas/{{id}}" class="proposal-link" data-target="">{{name}}</a> | ||
6 | - var result = '<a href="#/programas/' + url + '" data-target="proposal-item-' + url + '" class="proposal-link">' + text + '</a>'; | ||
7 | - | ||
8 | - return new Handlebars.SafeString(result); | ||
9 | -}); | ||
10 | - | ||
11 | -Handlebars.registerHelper('list_proposal', function(proposals, options) { | ||
12 | - | ||
13 | - var ret = ""; | ||
14 | - for(var i=0, j=proposals.length; i<j; i++) { | ||
15 | - var proposal = proposals[i]; | ||
16 | - | ||
17 | - element = '<li class="proposal-item">' + | ||
18 | - '<a href="#/programas/'+proposal.id+'" data-target="proposal-item-'+proposal.id+'" class="proposal-link">' + | ||
19 | - '<div class="item">' + | ||
20 | - '' + proposal.title; | ||
21 | - category = "<ul class='category'>"; | ||
22 | - | ||
23 | - | ||
24 | - for(var x=0, y=proposal.categories.length; x<y; x++) { | ||
25 | - if((options.hash['category'] != null) && (options.hash['category'] != proposal.categories[x].slug)){ | ||
26 | - element = ''; | 3 | + Handlebars.registerHelper('link', function(text, url) { |
4 | + text = Handlebars.Utils.escapeExpression(text); | ||
5 | + url = Handlebars.Utils.escapeExpression(url); | ||
6 | + | ||
7 | + // Exemplo: <a href="#/programas/{{id}}" class="proposal-link" data-target="">{{name}}</a> | ||
8 | + var result = '<a href="#/programas/' + url + '" data-target="proposal-item-' + url + '" class="proposal-link">' + text + '</a>'; | ||
9 | + | ||
10 | + return new Handlebars.SafeString(result); | ||
11 | + }); | ||
12 | + | ||
13 | + Handlebars.registerHelper('list_proposal', function(proposals, options) { | ||
14 | + | ||
15 | + var ret = ""; | ||
16 | + for(var i=0, j=proposals.length; i<j; i++) { | ||
17 | + var proposal = proposals[i]; | ||
18 | + | ||
19 | + element = '<li class="proposal-item">' + | ||
20 | + '<a href="#/programas/'+proposal.id+'" data-target="proposal-item-'+proposal.id+'" class="proposal-link">' + | ||
21 | + '<div class="item">' + | ||
22 | + '' + proposal.title; | ||
23 | + category = "<ul class='category'>"; | ||
24 | + | ||
25 | + | ||
26 | + for(var x=0, y=proposal.categories.length; x<y; x++) { | ||
27 | + if((options.hash['category'] != null) && (options.hash['category'] != proposal.categories[x].slug)){ | ||
28 | + element = ''; | ||
29 | + continue; | ||
30 | + } | ||
31 | + category = category + '<li class="category-'+proposal.categories[x].slug+'">' + proposal.categories[x].name + '</li>'; | ||
32 | + } | ||
33 | + if(element == ''){ | ||
27 | continue; | 34 | continue; |
28 | - } | ||
29 | - category = category + '<li class="category-'+proposal.categories[x].slug+'">' + proposal.categories[x].name + '</li>'; | 35 | + } |
36 | + category = category + '</ul>'; | ||
37 | + // element = element + options.fn(proposal); | ||
38 | + element = element + (proposal.abstract ? proposal.abstract : ''); | ||
39 | + | ||
40 | + element = element + category; | ||
41 | + ret = ret + element + '</div></a></li>'; | ||
30 | } | 42 | } |
31 | - if(element == ''){ | ||
32 | - continue; | 43 | + return ret; |
44 | + }); | ||
45 | + | ||
46 | + Handlebars.registerHelper('proposal_detail', function(proposals, options) { | ||
47 | + var ret = ""; | ||
48 | + for(var i=0, j=proposals.length; i<j; i++) { | ||
49 | + ret = ret + "<div class='proposal-detail hide' id='proposal-item-" + proposals[i].id + "'>"; | ||
50 | + ret = ret + "<div class='title'>" + proposals[i].title + "</div>"; | ||
51 | + ret = ret + "<span>" + proposals[i].body + "</span>"; | ||
52 | + ret = ret + '</div>'; | ||
33 | } | 53 | } |
34 | - category = category + '</ul>'; | ||
35 | - // element = element + options.fn(proposal); | ||
36 | - element = element + (proposal.abstract ? proposal.abstract : ''); | ||
37 | - | ||
38 | - element = element + category; | ||
39 | - ret = ret + element + '</div></a></li>'; | ||
40 | - } | ||
41 | - return ret; | ||
42 | -}); | ||
43 | - | ||
44 | -Handlebars.registerHelper('proposal_detail', function(proposals, options) { | ||
45 | - var ret = ""; | ||
46 | - for(var i=0, j=proposals.length; i<j; i++) { | ||
47 | - ret = ret + "<div class='proposal-detail hide' id='proposal-item-" + proposals[i].id + "'>"; | ||
48 | - ret = ret + "<div class='title'>" + proposals[i].title + "</div>"; | ||
49 | - ret = ret + "<span>" + proposals[i].body + "</span>"; | ||
50 | - ret = ret + '</div>'; | ||
51 | - } | ||
52 | - return ret; | ||
53 | -}); | ||
54 | - | ||
55 | -Handlebars.registerHelper('replace', function(string, to_replace, replacement) { | ||
56 | - return (string || '').replace(new RegExp(to_replace, 'g'), replacement); | ||
57 | -}); | ||
58 | - | ||
59 | -Handlebars.registerHelper('score', function(article) { | ||
60 | - return article.votes_for - article.votes_against; | ||
61 | -}); | ||
62 | - | ||
63 | -Handlebars.registerHelper('select_proposal', function(proposals, category_slug, selected_id) { | ||
64 | - var ret = '<label for="proposal-selection" class="sr-only">Selecione o programa</label>' | ||
65 | - ret = ret + '<select id="proposal-selection" name="proposal-selection" title="Selecione o programa" class="proposal-selection">'; | ||
66 | - | ||
67 | - for(var i=0; i<proposals.length; i++) { | ||
68 | - if(!proposal_has_category(proposals[i], category_slug)) continue; | ||
69 | - var selected = proposals[i].id===selected_id ? "selected" : ""; | ||
70 | - ret += '<option value="'+proposals[i].id+'" '+selected+'>'+proposals[i].title+'</option>'; | 54 | + return ret; |
55 | + }); | ||
56 | + | ||
57 | + Handlebars.registerHelper('replace', function(string, to_replace, replacement) { | ||
58 | + return (string || '').replace(new RegExp(to_replace, 'g'), replacement); | ||
59 | + }); | ||
60 | + | ||
61 | + Handlebars.registerHelper('score', function(article) { | ||
62 | + return article.votes_for - article.votes_against; | ||
63 | + }); | ||
64 | + | ||
65 | + Handlebars.registerHelper('select_proposal', function(proposals, category_slug, selected_id) { | ||
66 | + var ret = '<label for="proposal-selection" class="sr-only">Selecione o programa</label>' | ||
67 | + ret = ret + '<select id="proposal-selection" name="proposal-selection" title="Selecione o programa" class="proposal-selection">'; | ||
68 | + | ||
69 | + for(var i=0; i<proposals.length; i++) { | ||
70 | + if(!proposal_has_category(proposals[i], category_slug)) continue; | ||
71 | + var selected = proposals[i].id===selected_id ? "selected" : ""; | ||
72 | + ret += '<option value="'+proposals[i].id+'" '+selected+'>'+proposals[i].title+'</option>'; | ||
73 | + } | ||
74 | + ret += '</select>'; | ||
75 | + return ret; | ||
76 | + }); | ||
77 | + | ||
78 | + Handlebars.registerHelper('trimString', function(passedString, endstring) { | ||
79 | + var theString = passedString.substring(0, endstring); | ||
80 | + return new Handlebars.SafeString(theString) | ||
81 | + }); | ||
82 | + | ||
83 | + function proposal_has_category(proposal, category_slug) { | ||
84 | + for(var i=0; i<proposal.categories.length; i++) { | ||
85 | + if(proposal.categories[i].slug == category_slug) | ||
86 | + return true; | ||
87 | + } | ||
88 | + return false; | ||
71 | } | 89 | } |
72 | - ret += '</select>'; | ||
73 | - return ret; | ||
74 | -}); | ||
75 | 90 | ||
76 | -Handlebars.registerHelper('trimString', function(passedString, endstring) { | ||
77 | - var theString = passedString.substring(0, endstring); | ||
78 | - return new Handlebars.SafeString(theString) | ||
79 | }); | 91 | }); |
80 | - | ||
81 | -function proposal_has_category(proposal, category_slug) { | ||
82 | - for(var i=0; i<proposal.categories.length; i++) { | ||
83 | - if(proposal.categories[i].slug == category_slug) | ||
84 | - return true; | ||
85 | - } | ||
86 | - return false; | ||
87 | -} |
js/main.js
1 | -/* global Handlebars, $ */ | ||
2 | -// The template code | ||
3 | -var templateSource = document.getElementById('proposal-template').innerHTML; | 1 | +define(['handlebars'], function(Handlebars){ |
4 | 2 | ||
5 | -// compile the template | ||
6 | -var template = Handlebars.compile(templateSource); | ||
7 | -var supportProposalTemplate = Handlebars.compile(document.getElementById('support-proposal-template').innerHTML); | ||
8 | -var loginTemplate = Handlebars.compile(document.getElementById('login').innerHTML); | ||
9 | -var resultsTemplate = Handlebars.compile(document.getElementById('results').innerHTML); | ||
10 | - | ||
11 | -// The div/container that we are going to display the results in | ||
12 | -var resultsPlaceholder = document.getElementById('proposal-result'); | ||
13 | - | ||
14 | -var logged_in = false; | ||
15 | - | ||
16 | -var loginButton; | ||
17 | - | ||
18 | -var participa = true; | ||
19 | -if(participa){ | ||
20 | - var host = 'http://www.participa.br'; | ||
21 | - var private_token = '375bee7e17d0021af7160ce664874618'; //participa | ||
22 | - var proposal_discussion = '92856'; //participa | ||
23 | -}else{ | ||
24 | - var host = 'http://noosfero.com:3000'; | ||
25 | - //var private_token = 'bd8996155f5ea4354e42fee50b4b6891'; //casa | ||
26 | - var private_token = '04c9b36cf0afba52915fe86f182e741c'; //local serpro | ||
27 | - var proposal_discussion = '632'; //local serpro | ||
28 | - //var proposal_discussion = '401'; //casa | ||
29 | -} | ||
30 | - | ||
31 | -// Load data from localhost when it is dev env. | ||
32 | -var isLocalhost = (window.location.hostname === 'localhost' || window.location.hostname === '0.0.0.0'); | ||
33 | -if( isLocalhost ){ | ||
34 | - var noosferoAPI = '/data.json'; | ||
35 | -} else { | 3 | + /* global Handlebars, $ */ |
4 | + // The template code | ||
5 | + var templateSource = document.getElementById('proposal-template').innerHTML; | ||
6 | + | ||
7 | + // compile the template | ||
8 | + var template = Handlebars.compile(templateSource); | ||
9 | + var supportProposalTemplate = Handlebars.compile(document.getElementById('support-proposal-template').innerHTML); | ||
10 | + var loginTemplate = Handlebars.compile(document.getElementById('login').innerHTML); | ||
11 | + var resultsTemplate = Handlebars.compile(document.getElementById('results').innerHTML); | ||
12 | + | ||
13 | + // The div/container that we are going to display the results in | ||
14 | + var resultsPlaceholder = document.getElementById('proposal-result'); | ||
15 | + | ||
16 | + var logged_in = false; | ||
17 | + | ||
18 | + var loginButton; | ||
19 | + | ||
20 | + var participa = true; | ||
21 | + if(participa){ | ||
22 | + var host = 'http://www.participa.br'; | ||
23 | + var private_token = '375bee7e17d0021af7160ce664874618'; //participa | ||
24 | + var proposal_discussion = '92856'; //participa | ||
25 | + }else{ | ||
26 | + var host = 'http://noosfero.com:3000'; | ||
27 | + //var private_token = 'bd8996155f5ea4354e42fee50b4b6891'; //casa | ||
28 | + var private_token = '04c9b36cf0afba52915fe86f182e741c'; //local serpro | ||
29 | + var proposal_discussion = '632'; //local serpro | ||
30 | + //var proposal_discussion = '401'; //casa | ||
31 | + } | ||
32 | + | ||
33 | + // Load data from localhost when it is dev env. | ||
36 | var noosferoAPI = host + '/api/v1/articles/' + proposal_discussion + '?private_token=' + private_token + '&fields=id,children,categories,abstract,body,title,image,url'; | 34 | var noosferoAPI = host + '/api/v1/articles/' + proposal_discussion + '?private_token=' + private_token + '&fields=id,children,categories,abstract,body,title,image,url'; |
37 | -} | ||
38 | - | ||
39 | -$.getJSON(noosferoAPI) | ||
40 | - .done(function( data ) { | ||
41 | - data.host = host; | ||
42 | - data.private_token = private_token; | ||
43 | - resultsPlaceholder.innerHTML = template(data); | ||
44 | - $('.login-container').html(loginTemplate()); | ||
45 | - $('.countdown').maxlength({text: '%left caracteres restantes'}); | ||
46 | - | ||
47 | - navigateTo(window.location.hash); | ||
48 | - | ||
49 | - //Actions for links | ||
50 | - $( '#nav-proposal-categories a' ).on('click touchstart', function(e){ | ||
51 | - e.preventDefault(); | ||
52 | - | ||
53 | - var $link = $(this); | ||
54 | - | ||
55 | - // Update URL and Navigate | ||
56 | - updateHash($link.attr('href')); | ||
57 | - }); | ||
58 | - | ||
59 | - $( '#nav-proposal-group a' ).on('click touchstart', function(e){ | ||
60 | - e.preventDefault(); | ||
61 | - | ||
62 | - var $link = $(this); | ||
63 | - | ||
64 | - // Update URL and Navigate | ||
65 | - updateHash($link.attr('href')); | ||
66 | - }); | ||
67 | - | ||
68 | - $( '.proposal-item a' ).on('click touchstart', function(e){ | ||
69 | - e.preventDefault(); | ||
70 | - | ||
71 | - var $link = $(this); | ||
72 | - | ||
73 | - // Update URL and Navigate | ||
74 | - updateHash($link.attr('href')); | ||
75 | - }); | ||
76 | - | ||
77 | - $( '.proposal-category a' ).on('click touchstart', function(e){ | ||
78 | - e.preventDefault(); | ||
79 | - | ||
80 | - var $link = $(this); | ||
81 | - | ||
82 | - // Update URL and Navigate | ||
83 | - updateHash($link.attr('href')); | ||
84 | - }); | ||
85 | - | ||
86 | - $( '.proposal-category .go-back' ).on('click touchstart', function(e){ | ||
87 | - e.preventDefault(); | ||
88 | - | ||
89 | - var oldHash = window.location.hash; | ||
90 | - var regexSubpages = /sobre-o-programa$/; | ||
91 | - var isSubpage = regexSubpages.exec(oldHash) !== null; | ||
92 | - var newHash = '#/temas'; // default page | ||
93 | - | ||
94 | - if(isSubpage){ | ||
95 | - // return to proposal page | ||
96 | - newHash = oldHash.split('/sobre-o-programa')[0]; | ||
97 | - } | ||
98 | - | ||
99 | - // Update URL and Navigate | ||
100 | - updateHash(newHash); | ||
101 | - }); | ||
102 | - | ||
103 | - $( '.send-button a' ).on('click touchstart', function(e){ | ||
104 | - e.preventDefault(); | ||
105 | - | ||
106 | - //display form to send proposal (or login form for non-logged users) | ||
107 | - var $this = $(this); | ||
108 | - loginButton = $this.parents('.send-button'); | ||
109 | - loginButton.hide(); | ||
110 | - $this.parents('.success-proposal-sent').hide(); | ||
111 | - loginCallback(logged_in); | ||
112 | - }); | ||
113 | - | ||
114 | - $( '#display-contrast' ).on('click touchstart', function(e){ | ||
115 | - e.preventDefault(); | ||
116 | - $('#proposal-result').toggleClass('contrast'); | ||
117 | - }); | ||
118 | - | ||
119 | - $( '.show_body a' ).on('click touchstart', function(e){ | ||
120 | - e.preventDefault(); | ||
121 | - | ||
122 | - var $link = $(this); | ||
123 | - | ||
124 | - // Update URL and Navigate | ||
125 | - updateHash($link.attr('href')); | ||
126 | - }); | ||
127 | - | ||
128 | - $( '.go-to-proposal-button a' ).on('click touchstart', function(e){ | ||
129 | - e.preventDefault(); | ||
130 | - | ||
131 | - var $link = $(this); | ||
132 | - | ||
133 | - // Update URL and Navigate | ||
134 | - updateHash($link.attr('href')); | ||
135 | - }); | ||
136 | - | ||
137 | - $( '.proposal-selection' ).change(function(e){ | ||
138 | - e.preventDefault(); | ||
139 | - | ||
140 | - display_proposal('proposal-item-' + this.value); | ||
141 | - }); | ||
142 | - | ||
143 | - var availableTags = [ ]; | ||
144 | - $('#proposal-group li a').each(function(){ | ||
145 | - availableTags.push({ label: $(this).text(), value: $(this).attr('href')}); | 35 | + |
36 | + $.getJSON(noosferoAPI) | ||
37 | + .done(function( data ) { | ||
38 | + data.host = host; | ||
39 | + data.private_token = private_token; | ||
40 | + resultsPlaceholder.innerHTML = template(data); | ||
41 | + $('.login-container').html(loginTemplate()); | ||
42 | + $('.countdown').maxlength({text: '%left caracteres restantes'}); | ||
43 | + | ||
44 | + navigateTo(window.location.hash); | ||
45 | + | ||
46 | + //Actions for links | ||
47 | + $( '#nav-proposal-categories a' ).on('click touchstart', function(e){ | ||
48 | + e.preventDefault(); | ||
49 | + | ||
50 | + var $link = $(this); | ||
51 | + | ||
52 | + // Update URL and Navigate | ||
53 | + updateHash($link.attr('href')); | ||
54 | + }); | ||
55 | + | ||
56 | + $( '#nav-proposal-group a' ).on('click touchstart', function(e){ | ||
57 | + e.preventDefault(); | ||
58 | + | ||
59 | + var $link = $(this); | ||
60 | + | ||
61 | + // Update URL and Navigate | ||
62 | + updateHash($link.attr('href')); | ||
63 | + }); | ||
64 | + | ||
65 | + $( '.proposal-item a' ).on('click touchstart', function(e){ | ||
66 | + e.preventDefault(); | ||
67 | + | ||
68 | + var $link = $(this); | ||
69 | + | ||
70 | + // Update URL and Navigate | ||
71 | + updateHash($link.attr('href')); | ||
72 | + }); | ||
73 | + | ||
74 | + $( '.proposal-category a' ).on('click touchstart', function(e){ | ||
75 | + e.preventDefault(); | ||
76 | + | ||
77 | + var $link = $(this); | ||
78 | + | ||
79 | + // Update URL and Navigate | ||
80 | + updateHash($link.attr('href')); | ||
81 | + }); | ||
82 | + | ||
83 | + $( '.proposal-category .go-back' ).on('click touchstart', function(e){ | ||
84 | + e.preventDefault(); | ||
85 | + | ||
86 | + var oldHash = window.location.hash; | ||
87 | + var regexSubpages = /sobre-o-programa$/; | ||
88 | + var isSubpage = regexSubpages.exec(oldHash) !== null; | ||
89 | + var newHash = '#/temas'; // default page | ||
90 | + | ||
91 | + if(isSubpage){ | ||
92 | + // return to proposal page | ||
93 | + newHash = oldHash.split('/sobre-o-programa')[0]; | ||
94 | + } | ||
95 | + | ||
96 | + // Update URL and Navigate | ||
97 | + updateHash(newHash); | ||
98 | + }); | ||
99 | + | ||
100 | + $( '.send-button a' ).on('click touchstart', function(e){ | ||
101 | + e.preventDefault(); | ||
102 | + | ||
103 | + //display form to send proposal (or login form for non-logged users) | ||
104 | + var $this = $(this); | ||
105 | + loginButton = $this.parents('.send-button'); | ||
106 | + loginButton.hide(); | ||
107 | + $this.parents('.success-proposal-sent').hide(); | ||
108 | + loginCallback(logged_in); | ||
109 | + }); | ||
110 | + | ||
111 | + $( '#display-contrast' ).on('click touchstart', function(e){ | ||
112 | + e.preventDefault(); | ||
113 | + $('#proposal-result').toggleClass('contrast'); | ||
114 | + }); | ||
115 | + | ||
116 | + $( '.show_body a' ).on('click touchstart', function(e){ | ||
117 | + e.preventDefault(); | ||
118 | + | ||
119 | + var $link = $(this); | ||
120 | + | ||
121 | + // Update URL and Navigate | ||
122 | + updateHash($link.attr('href')); | ||
123 | + }); | ||
124 | + | ||
125 | + $( '.go-to-proposal-button a' ).on('click touchstart', function(e){ | ||
126 | + e.preventDefault(); | ||
127 | + | ||
128 | + var $link = $(this); | ||
129 | + | ||
130 | + // Update URL and Navigate | ||
131 | + updateHash($link.attr('href')); | ||
132 | + }); | ||
133 | + | ||
134 | + $( '.proposal-selection' ).change(function(e){ | ||
135 | + e.preventDefault(); | ||
136 | + | ||
137 | + display_proposal('proposal-item-' + this.value); | ||
138 | + }); | ||
139 | + | ||
140 | + var availableTags = [ ]; | ||
141 | + $('#proposal-group li a').each(function(){ | ||
142 | + availableTags.push({ label: $(this).text(), value: $(this).attr('href')}); | ||
143 | + }); | ||
144 | + | ||
145 | + $( '#search-input' ).autocomplete({ | ||
146 | + source: availableTags, | ||
147 | + minLength: 3, | ||
148 | + select: function( event, ui ) { | ||
149 | + updateHash(ui.item.value); | ||
150 | + return false; | ||
151 | + }, | ||
152 | + appendTo: '#search-input-container', | ||
153 | + messages: { | ||
154 | + noResults: '', | ||
155 | + results: function() {} | ||
156 | + } | ||
157 | + }); | ||
158 | + | ||
159 | + | ||
160 | + $('.save-article-form').submit(function (e) { | ||
161 | + e.preventDefault(); | ||
162 | + var proposal_id = this.id.split('-').pop(); | ||
163 | + var form = this; | ||
164 | + var $form = $(this); | ||
165 | + var message = $(form).find('.message'); | ||
166 | + message.hide(); | ||
167 | + message.text(''); | ||
168 | + $.ajax({ | ||
169 | + type: 'post', | ||
170 | + url: host + '/api/v1/articles/' + proposal_id + '/children', | ||
171 | + data: $('#'+this.id).serialize() + '&private_token=' + private_token + '&fields=id&article[name]=article_' + guid() | ||
172 | + }) | ||
173 | + .done(function( /*data*/ ) { | ||
174 | + form.reset(); | ||
175 | + $form.hide(); | ||
176 | + $form.siblings('.success-sent').show(); | ||
177 | + }) | ||
178 | + .fail(function( jqxhr, textStatus, error ) { | ||
179 | + var err = textStatus + ', ' + error; | ||
180 | + console.log( 'Request Failed: ' + err ); | ||
181 | + message.show(); | ||
182 | + message.text('Não foi possível enviar.'); | ||
183 | + }); | ||
184 | + }); | ||
185 | + | ||
186 | + }) | ||
187 | + .fail(function( jqxhr, textStatus, error ) { | ||
188 | + var err = textStatus + ', ' + error; | ||
189 | + console.log( 'Request Failed: ' + err ); | ||
146 | }); | 190 | }); |
147 | - | ||
148 | - $( '#search-input' ).autocomplete({ | ||
149 | - source: availableTags, | ||
150 | - minLength: 3, | ||
151 | - select: function( event, ui ) { | ||
152 | - updateHash(ui.item.value); | ||
153 | - return false; | ||
154 | - }, | ||
155 | - appendTo: '#search-input-container', | ||
156 | - messages: { | ||
157 | - noResults: '', | ||
158 | - results: function() {} | 191 | + |
192 | + function loadRandomProposal(topic_id, private_token) { | ||
193 | + var $noProposals = $('.no-proposals'); | ||
194 | + var $loading = $('.loading'); | ||
195 | + var $randomProposal = $('.random-proposal'); | ||
196 | + var $body = $(document.body); | ||
197 | + | ||
198 | + // reset view | ||
199 | + $noProposals.hide(); | ||
200 | + $loading.show(); | ||
201 | + $randomProposal.html(''); | ||
202 | + | ||
203 | + var url = host + '/api/v1/articles/' + topic_id + '/children' + '?private_token=' + private_token + '&limit=1&order=random()&_='+new Date().getTime()+'&fields=id,name,abstract,created_by&content_type=ProposalsDiscussionPlugin::Proposal'; | ||
204 | + $.getJSON(url).done(function( data ) { | ||
205 | + $loading.hide(); | ||
206 | + | ||
207 | + if(data.articles.length === 0) { | ||
208 | + $noProposals.show(); | ||
209 | + return; | ||
159 | } | 210 | } |
211 | + | ||
212 | + var article = data.articles[0]; | ||
213 | + $randomProposal.html(supportProposalTemplate(article)); | ||
214 | + $body.off('click', '.vote-actions .skip'); | ||
215 | + $body.on('click', '.vote-actions .skip', function(e) { | ||
216 | + loadRandomProposal(topic_id, private_token); | ||
217 | + e.preventDefault(); | ||
218 | + }); | ||
219 | + $body.off('click', '.vote-actions .like'); | ||
220 | + $body.on('click', '.vote-actions .like', function(e) { | ||
221 | + $.ajax({ | ||
222 | + type: 'post', | ||
223 | + url: host + '/api/v1/articles/' + article.id + '/vote', | ||
224 | + data: { | ||
225 | + value: $(this).data('vote-value'), | ||
226 | + private_token: private_token | ||
227 | + } | ||
228 | + }).done(function( /*data*/ ) { | ||
229 | + loadRandomProposal(topic_id, private_token); | ||
230 | + }); | ||
231 | + e.preventDefault(); | ||
232 | + }); | ||
233 | + | ||
234 | + $body.off('click', '.vote-result'); | ||
235 | + $body.on('click', '.vote-result', function(e) { | ||
236 | + | ||
237 | + var $this = $(this); | ||
238 | + var $proposalDetail = $this.parents('.proposal-detail'); | ||
239 | + var $resultsContainer = $proposalDetail.find('.results-container'); | ||
240 | + | ||
241 | + // $resultsContainer.toggle(); | ||
242 | + // $resultsContainer.toggleClass('hide'); | ||
243 | + | ||
244 | + if($resultsContainer.css('display') === 'none') { | ||
245 | + | ||
246 | + $resultsContainer.find('.loading').show(); | ||
247 | + $resultsContainer.find('.results-content').hide(); | ||
248 | + | ||
249 | + var url = host + '/api/v1/articles/' + topic_id + '/children' + '?private_token=' + private_token + '&limit=10&order=votes_score&fields=id,name,abstract,votes_for,votes_against&content_type=ProposalsDiscussionPlugin::Proposal'; | ||
250 | + $.getJSON(url).done(function( data ) { | ||
251 | + | ||
252 | + $resultsContainer.html(resultsTemplate(data)); | ||
253 | + $resultsContainer.find('.loading').hide(); | ||
254 | + $resultsContainer.find('.results-content').show(); | ||
255 | + $resultsContainer.show(); | ||
256 | + | ||
257 | + // scroll to the end | ||
258 | + $('html, body').animate({ | ||
259 | + scrollTop: $(document).height() | ||
260 | + }, 'fast'); | ||
261 | + }); | ||
262 | + $('.experience-proposal-container').hide(); | ||
263 | + $('.talk-proposal-container').hide(); | ||
264 | + } else { | ||
265 | + $('.experience-proposal-container').show(); | ||
266 | + $('.talk-proposal-container').show(); | ||
267 | + $resultsContainer.hide(); | ||
268 | + } | ||
269 | + | ||
270 | + e.preventDefault(); | ||
271 | + }); | ||
160 | }); | 272 | }); |
161 | - | ||
162 | - | ||
163 | - $('.save-article-form').submit(function (e) { | ||
164 | - e.preventDefault(); | ||
165 | - var proposal_id = this.id.split('-').pop(); | ||
166 | - var form = this; | ||
167 | - var $form = $(this); | ||
168 | - var message = $(form).find('.message'); | 273 | + } |
274 | + | ||
275 | + $(document).ready(function($) { | ||
276 | + if($.cookie('_dialoga_session')) { | ||
277 | + var url = host + '/api/v1/users/me?private_token=' + $.cookie('_dialoga_session'); | ||
278 | + $.getJSON(url).done(function( /*data*/ ) { | ||
279 | + logged_in = true; | ||
280 | + private_token = $.cookie('_dialoga_session'); | ||
281 | + }); | ||
282 | + } | ||
283 | + | ||
284 | + $(document).on('click', '.login-action', function(e) { | ||
285 | + var message = $('.login .message'); | ||
169 | message.hide(); | 286 | message.hide(); |
170 | message.text(''); | 287 | message.text(''); |
171 | $.ajax({ | 288 | $.ajax({ |
172 | type: 'post', | 289 | type: 'post', |
173 | - url: host + '/api/v1/articles/' + proposal_id + '/children', | ||
174 | - data: $('#'+this.id).serialize() + '&private_token=' + private_token + '&fields=id&article[name]=article_' + guid() | ||
175 | - }) | ||
176 | - .done(function( /*data*/ ) { | ||
177 | - form.reset(); | ||
178 | - $form.hide(); | ||
179 | - $form.siblings('.success-sent').show(); | ||
180 | - }) | ||
181 | - .fail(function( jqxhr, textStatus, error ) { | ||
182 | - var err = textStatus + ', ' + error; | ||
183 | - console.log( 'Request Failed: ' + err ); | ||
184 | - message.show(); | ||
185 | - message.text('Não foi possível enviar.'); | ||
186 | - }); | ||
187 | - }); | ||
188 | - | ||
189 | - }) | ||
190 | - .fail(function( jqxhr, textStatus, error ) { | ||
191 | - var err = textStatus + ', ' + error; | ||
192 | - console.log( 'Request Failed: ' + err ); | ||
193 | - }); | ||
194 | - | ||
195 | -function loadRandomProposal(topic_id, private_token) { | ||
196 | - var $noProposals = $('.no-proposals'); | ||
197 | - var $loading = $('.loading'); | ||
198 | - var $randomProposal = $('.random-proposal'); | ||
199 | - var $body = $(document.body); | ||
200 | - | ||
201 | - // reset view | ||
202 | - $noProposals.hide(); | ||
203 | - $loading.show(); | ||
204 | - $randomProposal.html(''); | ||
205 | - | ||
206 | - var url = host + '/api/v1/articles/' + topic_id + '/children' + '?private_token=' + private_token + '&limit=1&order=random()&_='+new Date().getTime()+'&fields=id,name,abstract,created_by&content_type=ProposalsDiscussionPlugin::Proposal'; | ||
207 | - $.getJSON(url).done(function( data ) { | ||
208 | - $loading.hide(); | ||
209 | - | ||
210 | - if(data.articles.length === 0) { | ||
211 | - $noProposals.show(); | ||
212 | - return; | ||
213 | - } | ||
214 | - | ||
215 | - var article = data.articles[0]; | ||
216 | - $randomProposal.html(supportProposalTemplate(article)); | ||
217 | - $body.off('click', '.vote-actions .skip'); | ||
218 | - $body.on('click', '.vote-actions .skip', function(e) { | ||
219 | - loadRandomProposal(topic_id, private_token); | ||
220 | - e.preventDefault(); | ||
221 | - }); | ||
222 | - $body.off('click', '.vote-actions .like'); | ||
223 | - $body.on('click', '.vote-actions .like', function(e) { | ||
224 | - $.ajax({ | ||
225 | - type: 'post', | ||
226 | - url: host + '/api/v1/articles/' + article.id + '/vote', | ||
227 | - data: { | ||
228 | - value: $(this).data('vote-value'), | ||
229 | - private_token: private_token | 290 | + url: host + '/api/v1/login', |
291 | + data: $(this).parents('.login').serialize(), | ||
292 | + xhrFields: { | ||
293 | + //withCredentials: true | ||
230 | } | 294 | } |
231 | - }).done(function( /*data*/ ) { | ||
232 | - loadRandomProposal(topic_id, private_token); | 295 | + }).done(function(data) { |
296 | + loginCallback(true, data.private_token); | ||
297 | + }).fail(function( /*data*/ ) { | ||
298 | + message.show(); | ||
299 | + message.text('Não foi possível logar'); | ||
233 | }); | 300 | }); |
234 | e.preventDefault(); | 301 | e.preventDefault(); |
235 | }); | 302 | }); |
236 | - | ||
237 | - $body.off('click', '.vote-result'); | ||
238 | - $body.on('click', '.vote-result', function(e) { | ||
239 | - | ||
240 | - var $this = $(this); | ||
241 | - var $proposalDetail = $this.parents('.proposal-detail'); | ||
242 | - var $resultsContainer = $proposalDetail.find('.results-container'); | ||
243 | - | ||
244 | - // $resultsContainer.toggle(); | ||
245 | - // $resultsContainer.toggleClass('hide'); | ||
246 | - | ||
247 | - if($resultsContainer.css('display') === 'none') { | ||
248 | - | ||
249 | - $resultsContainer.find('.loading').show(); | ||
250 | - $resultsContainer.find('.results-content').hide(); | ||
251 | - | ||
252 | - var url = host + '/api/v1/articles/' + topic_id + '/children' + '?private_token=' + private_token + '&limit=10&order=votes_score&fields=id,name,abstract,votes_for,votes_against&content_type=ProposalsDiscussionPlugin::Proposal'; | ||
253 | - $.getJSON(url).done(function( data ) { | ||
254 | - | ||
255 | - $resultsContainer.html(resultsTemplate(data)); | ||
256 | - $resultsContainer.find('.loading').hide(); | ||
257 | - $resultsContainer.find('.results-content').show(); | ||
258 | - $resultsContainer.show(); | ||
259 | - | ||
260 | - // scroll to the end | ||
261 | - $('html, body').animate({ | ||
262 | - scrollTop: $(document).height() | ||
263 | - }, 'fast'); | ||
264 | - }); | ||
265 | - $('.experience-proposal-container').hide(); | ||
266 | - $('.talk-proposal-container').hide(); | ||
267 | - } else { | ||
268 | - $('.experience-proposal-container').show(); | ||
269 | - $('.talk-proposal-container').show(); | ||
270 | - $resultsContainer.hide(); | ||
271 | - } | ||
272 | - | ||
273 | - e.preventDefault(); | ||
274 | - }); | ||
275 | }); | 303 | }); |
276 | -} | ||
277 | - | ||
278 | -$(document).ready(function($) { | ||
279 | - if($.cookie('_dialoga_session')) { | ||
280 | - var url = host + '/api/v1/users/me?private_token=' + $.cookie('_dialoga_session'); | ||
281 | - $.getJSON(url).done(function( /*data*/ ) { | ||
282 | - logged_in = true; | ||
283 | - private_token = $.cookie('_dialoga_session'); | ||
284 | - }); | ||
285 | - } | ||
286 | - | ||
287 | - $(document).on('click', '.login-action', function(e) { | ||
288 | - var message = $('.login .message'); | ||
289 | - message.hide(); | ||
290 | - message.text(''); | ||
291 | - $.ajax({ | ||
292 | - type: 'post', | ||
293 | - url: host + '/api/v1/login', | ||
294 | - data: $(this).parents('.login').serialize(), | ||
295 | - xhrFields: { | ||
296 | - //withCredentials: true | 304 | + |
305 | + function loginCallback(loggedIn, token) { | ||
306 | + logged_in = loggedIn; | ||
307 | + $('.login .message').text(''); | ||
308 | + | ||
309 | + if(logged_in) { | ||
310 | + if(token){ | ||
311 | + private_token = token; | ||
297 | } | 312 | } |
298 | - }).done(function(data) { | ||
299 | - loginCallback(true, data.private_token); | ||
300 | - }).fail(function( /*data*/ ) { | ||
301 | - message.show(); | ||
302 | - message.text('Não foi possível logar'); | ||
303 | - }); | ||
304 | - e.preventDefault(); | ||
305 | - }); | ||
306 | -}); | ||
307 | - | ||
308 | -function loginCallback(loggedIn, token) { | ||
309 | - logged_in = loggedIn; | ||
310 | - $('.login .message').text(''); | ||
311 | - | ||
312 | - if(logged_in) { | ||
313 | - if(token){ | ||
314 | - private_token = token; | 313 | + loginButton.siblings('.save-article-form').show(); |
314 | + loginButton.siblings('.save-article-form .message').show(); | ||
315 | + loginButton.siblings('.login-container').hide(); | ||
316 | + $.cookie('_dialoga_session', private_token); | ||
317 | + } else { | ||
318 | + loginButton.siblings('.save-article-form').hide(); | ||
319 | + loginButton.siblings('.login-container').show(); | ||
315 | } | 320 | } |
316 | - loginButton.siblings('.save-article-form').show(); | ||
317 | - loginButton.siblings('.save-article-form .message').show(); | ||
318 | - loginButton.siblings('.login-container').hide(); | ||
319 | - $.cookie('_dialoga_session', private_token); | ||
320 | - } else { | ||
321 | - loginButton.siblings('.save-article-form').hide(); | ||
322 | - loginButton.siblings('.login-container').show(); | ||
323 | } | 321 | } |
324 | -} | ||
325 | - | ||
326 | -// function oauthPluginHandleLoginResult(loggedIn, token) { | ||
327 | -// loginCallback(loggedIn, token); | ||
328 | -// } | ||
329 | - | ||
330 | -function guid() { | ||
331 | - function s4() { | ||
332 | - return Math.floor((1 + Math.random()) * 0x10000) | ||
333 | - .toString(16) | ||
334 | - .substring(1); | 322 | + |
323 | + // function oauthPluginHandleLoginResult(loggedIn, token) { | ||
324 | + // loginCallback(loggedIn, token); | ||
325 | + // } | ||
326 | + | ||
327 | + function guid() { | ||
328 | + function s4() { | ||
329 | + return Math.floor((1 + Math.random()) * 0x10000) | ||
330 | + .toString(16) | ||
331 | + .substring(1); | ||
332 | + } | ||
333 | + return s4() + s4() + '-' + s4() + '-' + s4() + '-' + | ||
334 | + s4() + '-' + s4() + s4() + s4(); | ||
335 | } | 335 | } |
336 | - return s4() + s4() + '-' + s4() + '-' + s4() + '-' + | ||
337 | - s4() + '-' + s4() + s4() + s4(); | ||
338 | -} | ||
339 | - | ||
340 | -function display_category_tab(){ | ||
341 | - $('#proposal-group').hide(); | ||
342 | - $('#proposal-categories').show(); | ||
343 | - $('#nav-proposal-categories a').addClass('active'); | ||
344 | - $('#nav-proposal-group a').removeClass('active'); | ||
345 | - $('.proposal-category-items').hide(); | ||
346 | - $('.proposal-category .arrow-box').hide(); | ||
347 | - $('.proposal-detail').hide(); | ||
348 | - | ||
349 | - $('#content').show(); | ||
350 | - $('nav').show(); | ||
351 | -} | ||
352 | - | ||
353 | -function display_proposals_tab(){ | ||
354 | - $('#proposal-categories').hide(); | ||
355 | - $('#proposal-group').show(); | ||
356 | - $('#nav-proposal-group a').addClass('active'); | ||
357 | - $('#nav-proposal-categories a').removeClass('active'); | ||
358 | - $('.proposal-item p').dotdotdot(); | ||
359 | - | ||
360 | - $('#content').show(); | ||
361 | - $('nav').show(); | ||
362 | -} | ||
363 | - | ||
364 | -function display_proposal(proposal_id){ | ||
365 | - $('#proposal-categories').hide(); | ||
366 | - $('#proposal-group').hide(); | ||
367 | - $('nav').hide(); | ||
368 | - $('#content').hide(); | ||
369 | - $('.make-proposal-form').hide(); | ||
370 | - $('.login-container').hide(); | ||
371 | - $('.proposal-detail').hide(); | ||
372 | - | ||
373 | - $('.proposal-detail-base').hide(); | ||
374 | - $('#' + proposal_id).show(); | ||
375 | - $('.proposal-header').show(); | ||
376 | - $('.make-proposal-container').show(); | ||
377 | - $('.support-proposal-container').show(); | ||
378 | - $('.results-container').hide(); | ||
379 | - $('.results-container .loading').hide(); | ||
380 | - $('.results-container .results-content').hide(); | ||
381 | - $('.experience-proposal-container').show(); | ||
382 | - $('.talk-proposal-container').show(); | ||
383 | - | ||
384 | - var topic_id = proposal_id.split('-').pop(); | ||
385 | - loadRandomProposal(topic_id, private_token); | ||
386 | -} | ||
387 | - | ||
388 | -function display_proposal_detail(){ | ||
389 | - $('#proposal-categories').hide(); | ||
390 | - $('#proposal-group').hide(); | ||
391 | - $('nav').hide(); | ||
392 | - $('#content').hide(); | ||
393 | - $('.make-proposal-form').hide(); | ||
394 | - $('.proposal-header').hide(); | ||
395 | - $('.make-proposal-container').hide(); | ||
396 | - $('.support-proposal-container').hide(); | ||
397 | - $('.results-container').hide(); | ||
398 | - $('.experience-proposal-container').hide(); | ||
399 | - $('.talk-proposal-container').hide(); | ||
400 | - | ||
401 | - $('.body').show(); | ||
402 | -} | ||
403 | - | ||
404 | -function display_proposal_by_category(item){ | ||
405 | - var $item = $('#' + item); | ||
406 | 336 | ||
407 | - if($item.hasClass('proposal-category-items')){ | ||
408 | - //Display Topics or Discussion by category | ||
409 | - $('nav').show(); | ||
410 | - $('#content').show(); | 337 | + function display_category_tab(){ |
338 | + $('#proposal-group').hide(); | ||
411 | $('#proposal-categories').show(); | 339 | $('#proposal-categories').show(); |
412 | $('#nav-proposal-categories a').addClass('active'); | 340 | $('#nav-proposal-categories a').addClass('active'); |
413 | $('#nav-proposal-group a').removeClass('active'); | 341 | $('#nav-proposal-group a').removeClass('active'); |
414 | $('.proposal-category-items').hide(); | 342 | $('.proposal-category-items').hide(); |
343 | + $('.proposal-category .arrow-box').hide(); | ||
415 | $('.proposal-detail').hide(); | 344 | $('.proposal-detail').hide(); |
416 | - $item.toggle( 'blind', 1000 ); | 345 | + |
346 | + $('#content').show(); | ||
347 | + $('nav').show(); | ||
348 | + } | ||
349 | + | ||
350 | + function display_proposals_tab(){ | ||
351 | + $('#proposal-categories').hide(); | ||
352 | + $('#proposal-group').show(); | ||
353 | + $('#nav-proposal-group a').addClass('active'); | ||
354 | + $('#nav-proposal-categories a').removeClass('active'); | ||
417 | $('.proposal-item p').dotdotdot(); | 355 | $('.proposal-item p').dotdotdot(); |
418 | - $('.proposal-category .arrow-box').hide(); | ||
419 | - var categorySlug = $item.data('category'); | ||
420 | - $('#proposal-category-' + categorySlug).find('.arrow-box').show(); | 356 | + |
357 | + $('#content').show(); | ||
358 | + $('nav').show(); | ||
421 | } | 359 | } |
422 | -} | ||
423 | - | ||
424 | -var BARRA_ADDED = false; | ||
425 | -function addBarraDoGoverno(){ | ||
426 | - console.log('add barra'); | ||
427 | 360 | ||
428 | - if( BARRA_ADDED ) { return; } | ||
429 | - | ||
430 | - var HTML_BODY_PREPEND = '' + | ||
431 | - '<div id="barra-brasil" style="background:#7F7F7F; height: 20px; padding:0 0 0 10px;display:block;"> ' + | ||
432 | - '<ul id="menu-barra-temp" style="list-style:none;">' + | ||
433 | - '<li style="display:inline; float:left;padding-right:10px; margin-right:10px; border-right:1px solid #EDEDED"><a href="http://brasil.gov.br" style="font-family:sans,sans-serif; text-decoration:none; color:white;">Portal do Governo Brasileiro</a></li> ' + | ||
434 | - '<li><a style="font-family:sans,sans-serif; text-decoration:none; color:white;" href="http://epwg.governoeletronico.gov.br/barra/atualize.html">Atualize sua Barra de Governo</a></li>' + | ||
435 | - '</ul>' + | ||
436 | - '</div>'; | ||
437 | - | ||
438 | - var HTML_BODY_APPEND = ''+ | ||
439 | - '<div id="footer-brasil"></div>' + | ||
440 | - '<script defer="defer" src="//barra.brasil.gov.br/barra.js" type="text/javascript"></script>'; | ||
441 | - | ||
442 | - var STYLE_TEMA_AZUL = '' + | ||
443 | - '<style>'+ | ||
444 | - '#footer-brasil {'+ | ||
445 | - 'background: none repeat scroll 0% 0% #0042b1;'+ | ||
446 | - 'padding: 1em 0px;'+ | ||
447 | - 'max-width: 100%;'+ | ||
448 | - 'margin-top: 40px;'+ | ||
449 | - '}'+ | ||
450 | - '#barra-brasil ul {'+ | ||
451 | - 'width: auto;'+ | ||
452 | - '}'+ | ||
453 | - '<style>'; | ||
454 | - | ||
455 | - var $body = $(document.body); | ||
456 | - $body.prepend(HTML_BODY_PREPEND); | ||
457 | - $body.append(HTML_BODY_APPEND); | ||
458 | - $body.append(STYLE_TEMA_AZUL); | ||
459 | - | ||
460 | - BARRA_ADDED = true; | ||
461 | -} | ||
462 | - | ||
463 | -function updateHash(hash){ | ||
464 | - var id = hash.replace(/^.*#/, ''); | ||
465 | - var elem = document.getElementById(id); | ||
466 | - | ||
467 | - // preserve the query param | ||
468 | - // if (HIDE_BARRA_DO_GOVERNO && (hash.indexOf('?barra=false') === -1)){ | ||
469 | - // hash += '?barra=false'; | ||
470 | - // } | ||
471 | - | ||
472 | - if ( !elem ) { | ||
473 | - window.location.hash = hash; | ||
474 | - return; | 361 | + function display_proposal(proposal_id){ |
362 | + $('#proposal-categories').hide(); | ||
363 | + $('#proposal-group').hide(); | ||
364 | + $('nav').hide(); | ||
365 | + $('#content').hide(); | ||
366 | + $('.make-proposal-form').hide(); | ||
367 | + $('.login-container').hide(); | ||
368 | + $('.proposal-detail').hide(); | ||
369 | + | ||
370 | + $('.proposal-detail-base').hide(); | ||
371 | + $('#' + proposal_id).show(); | ||
372 | + $('.proposal-header').show(); | ||
373 | + $('.make-proposal-container').show(); | ||
374 | + $('.support-proposal-container').show(); | ||
375 | + $('.results-container').hide(); | ||
376 | + $('.results-container .loading').hide(); | ||
377 | + $('.results-container .results-content').hide(); | ||
378 | + $('.experience-proposal-container').show(); | ||
379 | + $('.talk-proposal-container').show(); | ||
380 | + | ||
381 | + var topic_id = proposal_id.split('-').pop(); | ||
382 | + loadRandomProposal(topic_id, private_token); | ||
475 | } | 383 | } |
476 | - | ||
477 | - elem.id = id+'-tmp'; | ||
478 | - window.location.hash = hash; | ||
479 | - elem.id = id; | ||
480 | -} | ||
481 | - | ||
482 | -function locationHashChanged(){ | ||
483 | - var hash = window.location.hash; | ||
484 | - navigateTo(hash); | ||
485 | -} | ||
486 | - | ||
487 | -var HIDE_BARRA_DO_GOVERNO = false; | ||
488 | -function navigateTo(hash){ | ||
489 | - var regexProposals = /#\/programas/; | ||
490 | - var regexCategory = /#\/temas/; | ||
491 | - var regexHideBarra = /barra=false$/; | ||
492 | - | ||
493 | - if( !(regexHideBarra.exec(hash) !== null) && !HIDE_BARRA_DO_GOVERNO ){ | ||
494 | - addBarraDoGoverno(); | ||
495 | - }else{ | ||
496 | - HIDE_BARRA_DO_GOVERNO = true; | 384 | + |
385 | + function display_proposal_detail(){ | ||
386 | + $('#proposal-categories').hide(); | ||
387 | + $('#proposal-group').hide(); | ||
388 | + $('nav').hide(); | ||
389 | + $('#content').hide(); | ||
390 | + $('.make-proposal-form').hide(); | ||
391 | + $('.proposal-header').hide(); | ||
392 | + $('.make-proposal-container').hide(); | ||
393 | + $('.support-proposal-container').hide(); | ||
394 | + $('.results-container').hide(); | ||
395 | + $('.experience-proposal-container').hide(); | ||
396 | + $('.talk-proposal-container').hide(); | ||
397 | + | ||
398 | + $('.body').show(); | ||
497 | } | 399 | } |
498 | - | ||
499 | - // remove query params | ||
500 | - hash = hash.split('?')[0]; | ||
501 | - | ||
502 | - var parts = hash.split('/'); | ||
503 | 400 | ||
504 | - var isProposal = regexProposals.exec(hash) !== null; | ||
505 | - var isCategory = regexCategory.exec(hash) !== null; | ||
506 | - | ||
507 | - if( isProposal ){ | 401 | + function display_proposal_by_category(item){ |
402 | + var $item = $('#' + item); | ||
508 | 403 | ||
509 | - // go to proposal | ||
510 | - var proposalId = parts[2]; | ||
511 | - navigateToProposal(proposalId); | 404 | + if($item.hasClass('proposal-category-items')){ |
405 | + //Display Topics or Discussion by category | ||
406 | + $('nav').show(); | ||
407 | + $('#content').show(); | ||
408 | + $('#proposal-categories').show(); | ||
409 | + $('#nav-proposal-categories a').addClass('active'); | ||
410 | + $('#nav-proposal-group a').removeClass('active'); | ||
411 | + $('.proposal-category-items').hide(); | ||
412 | + $('.proposal-detail').hide(); | ||
413 | + $item.toggle( 'blind', 1000 ); | ||
414 | + $('.proposal-item p').dotdotdot(); | ||
415 | + $('.proposal-category .arrow-box').hide(); | ||
416 | + var categorySlug = $item.data('category'); | ||
417 | + $('#proposal-category-' + categorySlug).find('.arrow-box').show(); | ||
418 | + } | ||
512 | } | 419 | } |
513 | - | ||
514 | - if( isCategory ){ | 420 | + |
421 | + var BARRA_ADDED = false; | ||
422 | + function addBarraDoGoverno(){ | ||
423 | + console.log('add barra'); | ||
515 | 424 | ||
516 | - // go to category | ||
517 | - var categoryId = parts[3]; | ||
518 | - navigateToCategory(categoryId); | 425 | + if( BARRA_ADDED ) { return; } |
426 | + | ||
427 | + var HTML_BODY_PREPEND = '' + | ||
428 | + '<div id="barra-brasil" style="background:#7F7F7F; height: 20px; padding:0 0 0 10px;display:block;"> ' + | ||
429 | + '<ul id="menu-barra-temp" style="list-style:none;">' + | ||
430 | + '<li style="display:inline; float:left;padding-right:10px; margin-right:10px; border-right:1px solid #EDEDED"><a href="http://brasil.gov.br" style="font-family:sans,sans-serif; text-decoration:none; color:white;">Portal do Governo Brasileiro</a></li> ' + | ||
431 | + '<li><a style="font-family:sans,sans-serif; text-decoration:none; color:white;" href="http://epwg.governoeletronico.gov.br/barra/atualize.html">Atualize sua Barra de Governo</a></li>' + | ||
432 | + '</ul>' + | ||
433 | + '</div>'; | ||
434 | + | ||
435 | + var HTML_BODY_APPEND = ''+ | ||
436 | + '<div id="footer-brasil"></div>' + | ||
437 | + '<script defer="defer" src="http://barra.brasil.gov.br/barra.js" type="text/javascript"></script>'; | ||
438 | + | ||
439 | + var STYLE_TEMA_AZUL = '' + | ||
440 | + '<style>'+ | ||
441 | + '#footer-brasil {'+ | ||
442 | + 'background: none repeat scroll 0% 0% #0042b1;'+ | ||
443 | + 'padding: 1em 0px;'+ | ||
444 | + 'max-width: 100%;'+ | ||
445 | + 'margin-top: 40px;'+ | ||
446 | + '}'+ | ||
447 | + '#barra-brasil ul {'+ | ||
448 | + 'width: auto;'+ | ||
449 | + '}'+ | ||
450 | + '<style>'; | ||
451 | + | ||
452 | + var $body = $(document.body); | ||
453 | + $body.prepend(HTML_BODY_PREPEND); | ||
454 | + $body.append(HTML_BODY_APPEND); | ||
455 | + $body.append(STYLE_TEMA_AZUL); | ||
456 | + | ||
457 | + BARRA_ADDED = true; | ||
519 | } | 458 | } |
520 | - | ||
521 | - // default | ||
522 | - if( !isProposal && !isCategory ){ | ||
523 | - // show the 'index' -> category tab | ||
524 | - display_category_tab(); | 459 | + |
460 | + function updateHash(hash){ | ||
461 | + var id = hash.replace(/^.*#/, ''); | ||
462 | + var elem = document.getElementById(id); | ||
463 | + | ||
464 | + // preserve the query param | ||
465 | + // if (HIDE_BARRA_DO_GOVERNO && (hash.indexOf('?barra=false') === -1)){ | ||
466 | + // hash += '?barra=false'; | ||
467 | + // } | ||
468 | + | ||
469 | + if ( !elem ) { | ||
470 | + window.location.hash = hash; | ||
471 | + return; | ||
472 | + } | ||
473 | + | ||
474 | + elem.id = id+'-tmp'; | ||
475 | + window.location.hash = hash; | ||
476 | + elem.id = id; | ||
525 | } | 477 | } |
526 | - | ||
527 | - $('html, body').animate({ scrollTop: 0 }, 'fast'); | ||
528 | -} | ||
529 | - | ||
530 | -function navigateToProposal(proposalId){ | ||
531 | - if(proposalId === undefined){ | ||
532 | - display_proposals_tab(); | ||
533 | - }else{ | ||
534 | - display_proposal('proposal-item-' + proposalId); | ||
535 | - | ||
536 | - // show sub-page | ||
537 | - var regexSubpages = /sobre-o-programa$/; | ||
538 | - var m; | ||
539 | - if((m = regexSubpages.exec(window.location.hash)) !== null ){ | ||
540 | - display_proposal_detail(); | 478 | + |
479 | + function locationHashChanged(){ | ||
480 | + var hash = window.location.hash; | ||
481 | + navigateTo(hash); | ||
482 | + } | ||
483 | + | ||
484 | + var HIDE_BARRA_DO_GOVERNO = false; | ||
485 | + function navigateTo(hash){ | ||
486 | + var regexProposals = /#\/programas/; | ||
487 | + var regexCategory = /#\/temas/; | ||
488 | + var regexHideBarra = /barra=false$/; | ||
489 | + | ||
490 | + if( !(regexHideBarra.exec(hash) !== null) && !HIDE_BARRA_DO_GOVERNO ){ | ||
491 | + addBarraDoGoverno(); | ||
492 | + }else{ | ||
493 | + HIDE_BARRA_DO_GOVERNO = true; | ||
541 | } | 494 | } |
495 | + | ||
496 | + // remove query params | ||
497 | + hash = hash.split('?')[0]; | ||
498 | + | ||
499 | + var parts = hash.split('/'); | ||
500 | + | ||
501 | + var isProposal = regexProposals.exec(hash) !== null; | ||
502 | + var isCategory = regexCategory.exec(hash) !== null; | ||
503 | + | ||
504 | + if( isProposal ){ | ||
505 | + | ||
506 | + // go to proposal | ||
507 | + var proposalId = parts[2]; | ||
508 | + navigateToProposal(proposalId); | ||
509 | + } | ||
510 | + | ||
511 | + if( isCategory ){ | ||
512 | + | ||
513 | + // go to category | ||
514 | + var categoryId = parts[3]; | ||
515 | + navigateToCategory(categoryId); | ||
516 | + } | ||
517 | + | ||
518 | + // default | ||
519 | + if( !isProposal && !isCategory ){ | ||
520 | + // show the 'index' -> category tab | ||
521 | + display_category_tab(); | ||
522 | + } | ||
523 | + | ||
524 | + $('html, body').animate({ scrollTop: 0 }, 'fast'); | ||
542 | } | 525 | } |
543 | -} | ||
544 | - | ||
545 | -function navigateToCategory(categoryId){ | ||
546 | - if(categoryId === undefined){ | ||
547 | - display_category_tab(); | 526 | + |
527 | + function navigateToProposal(proposalId){ | ||
528 | + if(proposalId === undefined){ | ||
529 | + display_proposals_tab(); | ||
530 | + }else{ | ||
531 | + display_proposal('proposal-item-' + proposalId); | ||
532 | + | ||
533 | + // show sub-page | ||
534 | + var regexSubpages = /sobre-o-programa$/; | ||
535 | + var m; | ||
536 | + if((m = regexSubpages.exec(window.location.hash)) !== null ){ | ||
537 | + display_proposal_detail(); | ||
538 | + } | ||
539 | + } | ||
540 | + } | ||
541 | + | ||
542 | + function navigateToCategory(categoryId){ | ||
543 | + if(categoryId === undefined){ | ||
544 | + display_category_tab(); | ||
545 | + }else{ | ||
546 | + display_proposal_by_category('proposal-item-' + categoryId); | ||
547 | + } | ||
548 | + } | ||
549 | + | ||
550 | + if('onhashchange' in window){ | ||
551 | + window.onhashchange = locationHashChanged; | ||
548 | }else{ | 552 | }else{ |
549 | - display_proposal_by_category('proposal-item-' + categoryId); | 553 | + console.log('The browser not supports the hashchange event!'); |
550 | } | 554 | } |
551 | -} | ||
552 | 555 | ||
553 | -if('onhashchange' in window){ | ||
554 | - window.onhashchange = locationHashChanged; | ||
555 | -}else{ | ||
556 | - console.log('The browser not supports the hashchange event!'); | ||
557 | -} | 556 | +}); |
@@ -0,0 +1,36 @@ | @@ -0,0 +1,36 @@ | ||
1 | +/* | ||
2 | + RequireJS 2.1.17 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved. | ||
3 | + Available via the MIT or new BSD license. | ||
4 | + see: http://github.com/jrburke/requirejs for details | ||
5 | +*/ | ||
6 | +var requirejs,require,define; | ||
7 | +(function(ba){function G(b){return"[object Function]"===K.call(b)}function H(b){return"[object Array]"===K.call(b)}function v(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+=1);}}function T(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b));d-=1);}}function t(b,c){return fa.call(b,c)}function m(b,c){return t(b,c)&&b[c]}function B(b,c){for(var d in b)if(t(b,d)&&c(b[d],d))break}function U(b,c,d,e){c&&B(c,function(c,g){if(d||!t(b,g))e&&"object"===typeof c&&c&&!H(c)&&!G(c)&&!(c instanceof | ||
8 | +RegExp)?(b[g]||(b[g]={}),U(b[g],c,d,e)):b[g]=c});return b}function u(b,c){return function(){return c.apply(b,arguments)}}function ca(b){throw b;}function da(b){if(!b)return b;var c=ba;v(b.split("."),function(b){c=c[b]});return c}function C(b,c,d,e){c=Error(c+"\nhttp://requirejs.org/docs/errors.html#"+b);c.requireType=b;c.requireModules=e;d&&(c.originalError=d);return c}function ga(b){function c(a,k,b){var f,l,c,d,e,g,i,p,k=k&&k.split("/"),h=j.map,n=h&&h["*"];if(a){a=a.split("/");l=a.length-1;j.nodeIdCompat&& | ||
9 | +Q.test(a[l])&&(a[l]=a[l].replace(Q,""));"."===a[0].charAt(0)&&k&&(l=k.slice(0,k.length-1),a=l.concat(a));l=a;for(c=0;c<l.length;c++)if(d=l[c],"."===d)l.splice(c,1),c-=1;else if(".."===d&&!(0===c||1===c&&".."===l[2]||".."===l[c-1])&&0<c)l.splice(c-1,2),c-=2;a=a.join("/")}if(b&&h&&(k||n)){l=a.split("/");c=l.length;a:for(;0<c;c-=1){e=l.slice(0,c).join("/");if(k)for(d=k.length;0<d;d-=1)if(b=m(h,k.slice(0,d).join("/")))if(b=m(b,e)){f=b;g=c;break a}!i&&(n&&m(n,e))&&(i=m(n,e),p=c)}!f&&i&&(f=i,g=p);f&&(l.splice(0, | ||
10 | +g,f),a=l.join("/"))}return(f=m(j.pkgs,a))?f:a}function d(a){z&&v(document.getElementsByTagName("script"),function(k){if(k.getAttribute("data-requiremodule")===a&&k.getAttribute("data-requirecontext")===i.contextName)return k.parentNode.removeChild(k),!0})}function e(a){var k=m(j.paths,a);if(k&&H(k)&&1<k.length)return k.shift(),i.require.undef(a),i.makeRequire(null,{skipMap:!0})([a]),!0}function n(a){var k,c=a?a.indexOf("!"):-1;-1<c&&(k=a.substring(0,c),a=a.substring(c+1,a.length));return[k,a]}function p(a, | ||
11 | +k,b,f){var l,d,e=null,g=k?k.name:null,j=a,p=!0,h="";a||(p=!1,a="_@r"+(K+=1));a=n(a);e=a[0];a=a[1];e&&(e=c(e,g,f),d=m(r,e));a&&(e?h=d&&d.normalize?d.normalize(a,function(a){return c(a,g,f)}):-1===a.indexOf("!")?c(a,g,f):a:(h=c(a,g,f),a=n(h),e=a[0],h=a[1],b=!0,l=i.nameToUrl(h)));b=e&&!d&&!b?"_unnormalized"+(O+=1):"";return{prefix:e,name:h,parentMap:k,unnormalized:!!b,url:l,originalName:j,isDefine:p,id:(e?e+"!"+h:h)+b}}function s(a){var k=a.id,b=m(h,k);b||(b=h[k]=new i.Module(a));return b}function q(a, | ||
12 | +k,b){var f=a.id,c=m(h,f);if(t(r,f)&&(!c||c.defineEmitComplete))"defined"===k&&b(r[f]);else if(c=s(a),c.error&&"error"===k)b(c.error);else c.on(k,b)}function w(a,b){var c=a.requireModules,f=!1;if(b)b(a);else if(v(c,function(b){if(b=m(h,b))b.error=a,b.events.error&&(f=!0,b.emit("error",a))}),!f)g.onError(a)}function x(){R.length&&(ha.apply(A,[A.length,0].concat(R)),R=[])}function y(a){delete h[a];delete V[a]}function F(a,b,c){var f=a.map.id;a.error?a.emit("error",a.error):(b[f]=!0,v(a.depMaps,function(f, | ||
13 | +d){var e=f.id,g=m(h,e);g&&(!a.depMatched[d]&&!c[e])&&(m(b,e)?(a.defineDep(d,r[e]),a.check()):F(g,b,c))}),c[f]=!0)}function D(){var a,b,c=(a=1E3*j.waitSeconds)&&i.startTime+a<(new Date).getTime(),f=[],l=[],g=!1,h=!0;if(!W){W=!0;B(V,function(a){var i=a.map,j=i.id;if(a.enabled&&(i.isDefine||l.push(a),!a.error))if(!a.inited&&c)e(j)?g=b=!0:(f.push(j),d(j));else if(!a.inited&&(a.fetched&&i.isDefine)&&(g=!0,!i.prefix))return h=!1});if(c&&f.length)return a=C("timeout","Load timeout for modules: "+f,null, | ||
14 | +f),a.contextName=i.contextName,w(a);h&&v(l,function(a){F(a,{},{})});if((!c||b)&&g)if((z||ea)&&!X)X=setTimeout(function(){X=0;D()},50);W=!1}}function E(a){t(r,a[0])||s(p(a[0],null,!0)).init(a[1],a[2])}function I(a){var a=a.currentTarget||a.srcElement,b=i.onScriptLoad;a.detachEvent&&!Y?a.detachEvent("onreadystatechange",b):a.removeEventListener("load",b,!1);b=i.onScriptError;(!a.detachEvent||Y)&&a.removeEventListener("error",b,!1);return{node:a,id:a&&a.getAttribute("data-requiremodule")}}function J(){var a; | ||
15 | +for(x();A.length;){a=A.shift();if(null===a[0])return w(C("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));E(a)}}var W,Z,i,L,X,j={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},h={},V={},$={},A=[],r={},S={},aa={},K=1,O=1;L={require:function(a){return a.require?a.require:a.require=i.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?r[a.map.id]=a.exports:a.exports=r[a.map.id]={}},module:function(a){return a.module? | ||
16 | +a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return m(j.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}};Z=function(a){this.events=m($,a.id)||{};this.map=a;this.shim=m(j.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};Z.prototype={init:function(a,b,c,f){f=f||{};if(!this.inited){this.factory=b;if(c)this.on("error",c);else this.events.error&&(c=u(this,function(a){this.emit("error",a)}));this.depMaps=a&&a.slice(0);this.errback= | ||
17 | +c;this.inited=!0;this.ignore=f.ignore;f.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0;i.startTime=(new Date).getTime();var a=this.map;if(this.shim)i.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],u(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?this.callPlugin():this.load()}},load:function(){var a= | ||
18 | +this.map.url;S[a]||(S[a]=!0,i.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var f=this.exports,l=this.factory;if(this.inited)if(this.error)this.emit("error",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(G(l)){if(this.events.error&&this.map.isDefine||g.onError!==ca)try{f=i.execCb(c,l,b,f)}catch(d){a=d}else f=i.execCb(c,l,b,f);this.map.isDefine&&void 0===f&&((b=this.module)?f=b.exports:this.usingExports&& | ||
19 | +(f=this.exports));if(a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",w(this.error=a)}else f=l;this.exports=f;if(this.map.isDefine&&!this.ignore&&(r[c]=f,g.onResourceLoad))g.onResourceLoad(i,this.map,this.depMaps);y(c);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a= | ||
20 | +this.map,b=a.id,d=p(a.prefix);this.depMaps.push(d);q(d,"defined",u(this,function(f){var l,d;d=m(aa,this.map.id);var e=this.map.name,P=this.map.parentMap?this.map.parentMap.name:null,n=i.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(f.normalize&&(e=f.normalize(e,function(a){return c(a,P,!0)})||""),f=p(a.prefix+"!"+e,this.map.parentMap),q(f,"defined",u(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),d=m(h,f.id)){this.depMaps.push(f); | ||
21 | +if(this.events.error)d.on("error",u(this,function(a){this.emit("error",a)}));d.enable()}}else d?(this.map.url=i.nameToUrl(d),this.load()):(l=u(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),l.error=u(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];B(h,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&y(a.map.id)});w(a)}),l.fromText=u(this,function(f,c){var d=a.name,e=p(d),P=M;c&&(f=c);P&&(M=!1);s(e);t(j.config,b)&&(j.config[d]=j.config[b]);try{g.exec(f)}catch(h){return w(C("fromtexteval", | ||
22 | +"fromText eval for "+b+" failed: "+h,h,[b]))}P&&(M=!0);this.depMaps.push(e);i.completeLoad(d);n([d],l)}),f.load(a.name,n,l,j))}));i.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){V[this.map.id]=this;this.enabling=this.enabled=!0;v(this.depMaps,u(this,function(a,b){var c,f;if("string"===typeof a){a=p(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=m(L,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;q(a,"defined",u(this,function(a){this.defineDep(b, | ||
23 | +a);this.check()}));this.errback?q(a,"error",u(this,this.errback)):this.events.error&&q(a,"error",u(this,function(a){this.emit("error",a)}))}c=a.id;f=h[c];!t(L,c)&&(f&&!f.enabled)&&i.enable(a,this)}));B(this.pluginMaps,u(this,function(a){var b=m(h,a.id);b&&!b.enabled&&i.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){v(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};i={config:j,contextName:b, | ||
24 | +registry:h,defined:r,urlFetched:S,defQueue:A,Module:Z,makeModuleMap:p,nextTick:g.nextTick,onError:w,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=j.shim,c={paths:!0,bundles:!0,config:!0,map:!0};B(a,function(a,b){c[b]?(j[b]||(j[b]={}),U(j[b],a,!0,!0)):j[b]=a});a.bundles&&B(a.bundles,function(a,b){v(a,function(a){a!==b&&(aa[a]=b)})});a.shim&&(B(a.shim,function(a,c){H(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=i.makeShimExports(a); | ||
25 | +b[c]=a}),j.shim=b);a.packages&&v(a.packages,function(a){var b,a="string"===typeof a?{name:a}:a;b=a.name;a.location&&(j.paths[b]=a.location);j.pkgs[b]=a.name+"/"+(a.main||"main").replace(ia,"").replace(Q,"")});B(h,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=p(b))});if(a.deps||a.callback)i.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(ba,arguments));return b||a.exports&&da(a.exports)}},makeRequire:function(a,e){function j(c,d,m){var n, | ||
26 | +q;e.enableBuildCallback&&(d&&G(d))&&(d.__requireJsBuild=!0);if("string"===typeof c){if(G(d))return w(C("requireargs","Invalid require call"),m);if(a&&t(L,c))return L[c](h[a.id]);if(g.get)return g.get(i,c,a,j);n=p(c,a,!1,!0);n=n.id;return!t(r,n)?w(C("notloaded",'Module name "'+n+'" has not been loaded yet for context: '+b+(a?"":". Use require([])"))):r[n]}J();i.nextTick(function(){J();q=s(p(null,a));q.skipMap=e.skipMap;q.init(c,d,m,{enabled:!0});D()});return j}e=e||{};U(j,{isBrowser:z,toUrl:function(b){var d, | ||
27 | +e=b.lastIndexOf("."),k=b.split("/")[0];if(-1!==e&&(!("."===k||".."===k)||1<e))d=b.substring(e,b.length),b=b.substring(0,e);return i.nameToUrl(c(b,a&&a.id,!0),d,!0)},defined:function(b){return t(r,p(b,a,!1,!0).id)},specified:function(b){b=p(b,a,!1,!0).id;return t(r,b)||t(h,b)}});a||(j.undef=function(b){x();var c=p(b,a,!0),e=m(h,b);d(b);delete r[b];delete S[c.url];delete $[b];T(A,function(a,c){a[0]===b&&A.splice(c,1)});e&&(e.events.defined&&($[b]=e.events),y(b))});return j},enable:function(a){m(h,a.id)&& | ||
28 | +s(a).enable()},completeLoad:function(a){var b,c,d=m(j.shim,a)||{},g=d.exports;for(x();A.length;){c=A.shift();if(null===c[0]){c[0]=a;if(b)break;b=!0}else c[0]===a&&(b=!0);E(c)}c=m(h,a);if(!b&&!t(r,a)&&c&&!c.inited){if(j.enforceDefine&&(!g||!da(g)))return e(a)?void 0:w(C("nodefine","No define call for "+a,null,[a]));E([a,d.deps||[],d.exportsFn])}D()},nameToUrl:function(a,b,c){var d,e,h;(d=m(j.pkgs,a))&&(a=d);if(d=m(aa,a))return i.nameToUrl(d,b,c);if(g.jsExtRegExp.test(a))d=a+(b||"");else{d=j.paths; | ||
29 | +a=a.split("/");for(e=a.length;0<e;e-=1)if(h=a.slice(0,e).join("/"),h=m(d,h)){H(h)&&(h=h[0]);a.splice(0,e,h);break}d=a.join("/");d+=b||(/^data\:|\?/.test(d)||c?"":".js");d=("/"===d.charAt(0)||d.match(/^[\w\+\.\-]+:/)?"":j.baseUrl)+d}return j.urlArgs?d+((-1===d.indexOf("?")?"?":"&")+j.urlArgs):d},load:function(a,b){g.load(i,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||ja.test((a.currentTarget||a.srcElement).readyState))N=null,a=I(a),i.completeLoad(a.id)}, | ||
30 | +onScriptError:function(a){var b=I(a);if(!e(b.id))return w(C("scripterror","Script error for: "+b.id,a,[b.id]))}};i.require=i.makeRequire();return i}var g,x,y,D,I,E,N,J,s,O,ka=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,la=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,Q=/\.js$/,ia=/^\.\//;x=Object.prototype;var K=x.toString,fa=x.hasOwnProperty,ha=Array.prototype.splice,z=!!("undefined"!==typeof window&&"undefined"!==typeof navigator&&window.document),ea=!z&&"undefined"!==typeof importScripts,ja= | ||
31 | +z&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,Y="undefined"!==typeof opera&&"[object Opera]"===opera.toString(),F={},q={},R=[],M=!1;if("undefined"===typeof define){if("undefined"!==typeof requirejs){if(G(requirejs))return;q=requirejs;requirejs=void 0}"undefined"!==typeof require&&!G(require)&&(q=require,require=void 0);g=requirejs=function(b,c,d,e){var n,p="_";!H(b)&&"string"!==typeof b&&(n=b,H(c)?(b=c,c=d,d=e):b=[]);n&&n.context&&(p=n.context);(e=m(F,p))||(e=F[p]=g.s.newContext(p)); | ||
32 | +n&&e.configure(n);return e.require(b,c,d)};g.config=function(b){return g(b)};g.nextTick="undefined"!==typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=g);g.version="2.1.17";g.jsExtRegExp=/^\/|:|\?|\.js$/;g.isBrowser=z;x=g.s={contexts:F,newContext:ga};g({});v(["toUrl","undef","defined","specified"],function(b){g[b]=function(){var c=F._;return c.require[b].apply(c,arguments)}});if(z&&(y=x.head=document.getElementsByTagName("head")[0],D=document.getElementsByTagName("base")[0]))y= | ||
33 | +x.head=D.parentNode;g.onError=ca;g.createNode=function(b){var c=b.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");c.type=b.scriptType||"text/javascript";c.charset="utf-8";c.async=!0;return c};g.load=function(b,c,d){var e=b&&b.config||{};if(z)return e=g.createNode(e,c,d),e.setAttribute("data-requirecontext",b.contextName),e.setAttribute("data-requiremodule",c),e.attachEvent&&!(e.attachEvent.toString&&0>e.attachEvent.toString().indexOf("[native code"))&& | ||
34 | +!Y?(M=!0,e.attachEvent("onreadystatechange",b.onScriptLoad)):(e.addEventListener("load",b.onScriptLoad,!1),e.addEventListener("error",b.onScriptError,!1)),e.src=d,J=e,D?y.insertBefore(e,D):y.appendChild(e),J=null,e;if(ea)try{importScripts(d),b.completeLoad(c)}catch(m){b.onError(C("importscripts","importScripts failed for "+c+" at "+d,m,[c]))}};z&&!q.skipDataMain&&T(document.getElementsByTagName("script"),function(b){y||(y=b.parentNode);if(I=b.getAttribute("data-main"))return s=I,q.baseUrl||(E=s.split("/"), | ||
35 | +s=E.pop(),O=E.length?E.join("/")+"/":"./",q.baseUrl=O),s=s.replace(Q,""),g.jsExtRegExp.test(s)&&(s=I),q.deps=q.deps?q.deps.concat(s):[s],!0});define=function(b,c,d){var e,g;"string"!==typeof b&&(d=c,c=b,b=null);H(c)||(d=c,c=null);!c&&G(d)&&(c=[],d.length&&(d.toString().replace(ka,"").replace(la,function(b,d){c.push(d)}),c=(1===d.length?["require"]:["require","exports","module"]).concat(c)));if(M){if(!(e=J))N&&"interactive"===N.readyState||T(document.getElementsByTagName("script"),function(b){if("interactive"=== | ||
36 | +b.readyState)return N=b}),e=N;e&&(b||(b=e.getAttribute("data-requiremodule")),g=F[e.getAttribute("data-requirecontext")])}(g?g.defQueue:R).push([b,c,d])};define.amd={jQuery:!0};g.exec=function(b){return eval(b)};g(q)}})(this); |