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); | ... | ... |