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 | 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 | 50 | function loadJavaScriptAsync(file_path){ |
62 | 51 | var head = document.getElementsByTagName('head')[0]; |
63 | 52 | var script_element = document.createElement('script'); |
... | ... | @@ -66,30 +55,10 @@ |
66 | 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 | 62 | loadCSSFiles(); |
94 | 63 | </script> |
95 | 64 | |
... | ... | @@ -332,8 +301,50 @@ |
332 | 301 | </form> |
333 | 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 | 348 | </script> |
338 | 349 | |
339 | 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 | 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 | 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 | 286 | message.hide(); |
170 | 287 | message.text(''); |
171 | 288 | $.ajax({ |
172 | 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 | 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 | 339 | $('#proposal-categories').show(); |
412 | 340 | $('#nav-proposal-categories a').addClass('active'); |
413 | 341 | $('#nav-proposal-group a').removeClass('active'); |
414 | 342 | $('.proposal-category-items').hide(); |
343 | + $('.proposal-category .arrow-box').hide(); | |
415 | 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 | 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 | 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 @@ |
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); | ... | ... |