Commit 1bbd307babfac0befcffbd69947ccdf53338ac7b

Authored by Michel Felipe
1 parent 1f3b2247
Exists in jasmine-testing

Resolve merge conflicts of testing Refactory

index.html
... ... @@ -19,16 +19,8 @@
19 19 return {
20 20  
21 21 initBase: function(){
22   - _base = window.location.href;
23   - var host = window.location.host;
24   - var regex = new RegExp(".*" + host + '/', "g");
25   -
26   - if(host){
27   - _base = _base.replace(regex,'');
28   - }else{
29   - _base = _base.replace('index.html','');
30   - }
31   - return this;
  22 + _base = "//" + window.location.host + window.location.pathname.replace('/index.html','');
  23 + return _base;
32 24 },
33 25 getBase: function(){
34 26 if(!_base){
... ... @@ -37,17 +29,16 @@
37 29  
38 30 return _base;
39 31 },
40   - removeUrlParameters: function(full_url){
41   - full_url = full_url || _base;
42   - var url_base = full_url.split('#').shift();
43   - return url_base;
  32 + getPath: function(){
  33 +
  34 + return window.location.pathname.replace(/\/\w*\.html/g,'');
44 35 },
45 36 addBaseUrl: function(filename){
46 37 base = window.location.href;
47 38 if(base.match(/file:/) || filename.match(/http:/)){
48 39 base = '';
49 40 }else{
50   - base = this.removeUrlParameters(base) + '/';
  41 + base = this.initBase() + '/';
51 42 }
52 43 return base + filename;
53 44 },
... ... @@ -93,16 +84,16 @@
93 84 var script_element = document.createElement('script');
94 85 script_element.type = 'text/javascript';
95 86 script_element.src = makeJSURL('js/require.js');
96   - // script_element.setAttribute('data-main', makeJSURL('js/requirejs-config.js'));
  87 +
97 88 if(onLoad instanceof Function){
98 89 script_element.onreadystatechange = function(){
99 90 if (this.readyState == 'complete'){
100 91 onload();
101 92 }
  93 +
102 94 }
103 95 script_element.addEventListener('load', onLoad);
104 96 }
105   -
106 97 head.appendChild(script_element);
107 98 }
108 99 loadCSSFiles();
... ... @@ -245,6 +236,7 @@
245 236 </div>
246 237 </div>
247 238 <div class="results-container hide"></div>
  239 +
248 240 <div class="experience-proposal-container">
249 241 <div class="experience-proposal">
250 242 <div class="container-title">Conte sua experiência</div>
... ... @@ -297,6 +289,8 @@
297 289 </ul>
298 290 </div>
299 291 </div>
  292 +
  293 + <div class="clearfix"></div>
300 294 </div>
301 295 </div>
302 296 {{!-- </div> --}}
... ... @@ -363,13 +357,15 @@
363 357 </script>
364 358  
365 359 <script type='text/javascript'>
  360 +
366 361 loadRequireJS(function(){
367 362  
368   - require([ Url.getBase()+'/js/requirejs-config' ], function(){
  363 + require([Url.getPath()+'/js/requirejs-config.js' ], function(){
369 364 requirejs(['proposal_app','main']);
370 365 });
371 366  
372 367 });
  368 +
373 369 </script>
374 370  
375 371 </body>
... ...
js/handlebars-helpers.js
... ... @@ -3,13 +3,13 @@ define([&#39;handlebars&#39;], function(Handlebars){
3 3 Handlebars.registerHelper('link', function(text, url) {
4 4 text = Handlebars.Utils.escapeExpression(text);
5 5 url = Handlebars.Utils.escapeExpression(url);
6   -
  6 +
7 7 // Exemplo: <a href="#/programas/{{id}}" class="proposal-link" data-target="">{{name}}</a>
8 8 var result = '<a href="#/programas/' + url + '" data-target="proposal-item-' + url + '" class="proposal-link">' + text + '</a>';
9   -
  9 +
10 10 return new Handlebars.SafeString(result);
11 11 });
12   -
  12 +
13 13 Handlebars.registerHelper('list_proposal', function(proposals, options) {
14 14  
15 15 proposals = proposals.sort(function(p1, p2) {
... ... @@ -18,19 +18,19 @@ define([&#39;handlebars&#39;], function(Handlebars){
18 18 var ret = "";
19 19 for(var i=0, j=proposals.length; i<j; i++) {
20 20 var proposal = proposals[i];
21   -
22   - element = '<li class="proposal-item">' +
  21 +
  22 + element = '<li class="proposal-item">' +
23 23 '<a href="#/programas/'+proposal.id+'" data-target="proposal-item-'+proposal.id+'" class="proposal-link">' +
24 24 '<div class="item">' +
25 25 '' + proposal.title;
26 26 category = "<ul class='category'>";
27   -
28   -
  27 +
  28 +
29 29 for(var x=0, y=proposal.categories.length; x<y; x++) {
30 30 if((options.hash['category'] != null) && (options.hash['category'] != proposal.categories[x].slug)){
31 31 element = '';
32 32 continue;
33   - }
  33 + }
34 34 category = category + '<li class="category-'+proposal.categories[x].slug+'">' + proposal.categories[x].name + '</li>';
35 35 }
36 36 if(element == ''){
... ... @@ -39,13 +39,13 @@ define([&#39;handlebars&#39;], function(Handlebars){
39 39 category = category + '</ul>';
40 40 // element = element + options.fn(proposal);
41 41 element = element + (proposal.abstract ? proposal.abstract : '');
42   -
  42 +
43 43 element = element + category;
44 44 ret = ret + element + '</div></a></li>';
45 45 }
46 46 return ret;
47 47 });
48   -
  48 +
49 49 Handlebars.registerHelper('proposal_detail', function(proposals, options) {
50 50 var ret = "";
51 51 for(var i=0, j=proposals.length; i<j; i++) {
... ... @@ -56,29 +56,29 @@ define([&#39;handlebars&#39;], function(Handlebars){
56 56 }
57 57 return ret;
58 58 });
59   -
  59 +
60 60 Handlebars.registerHelper('replace', function(string, to_replace, replacement) {
61 61 return (string || '').replace(new RegExp(to_replace, 'g'), replacement);
62 62 });
63   -
  63 +
64 64 Handlebars.registerHelper('score', function(article) {
65 65 return article.votes_for - article.votes_against;
66 66 });
67   -
  67 +
68 68 Handlebars.registerHelper('apoio', function(article) {
69 69 // return (article.votes_for - article.votes_against)/(article.countViews);
70 70 return 0;
71 71 });
72   -
  72 +
73 73 Handlebars.registerHelper('participacao', function(article) {
74 74 // return (article.votes_for + article.votes_against)/(article.countViews);
75 75 return 0;
76 76 });
77   -
  77 +
78 78 Handlebars.registerHelper('select_proposal', function(proposals, category_slug, selected_id) {
79 79 var ret = '<label for="proposal-selection" class="sr-only">Selecione o programa</label>'
80 80 ret = ret + '<select id="proposal-selection" name="proposal-selection" data-proposal="'+selected_id+'" title="Selecione o programa" class="proposal-selection">';
81   -
  81 +
82 82 for(var i=0; i<proposals.length; i++) {
83 83 if(!proposal_has_category(proposals[i], category_slug)) continue;
84 84 var selected = proposals[i].id===selected_id ? "selected" : "";
... ... @@ -109,4 +109,6 @@ define([&#39;handlebars&#39;], function(Handlebars){
109 109 return false;
110 110 }
111 111  
  112 + return Handlebars;
  113 +
112 114 });
... ...
js/requirejs-config.js
1 1 var base,test = '';
2 2  
3 3 if(window.Url){
4   - var base = Url.initBase().removeUrlParameters()+'/js/';
  4 + base = Url.initBase() + '/js/';
5 5 }else{
6   - base = '../js'
  6 + base = '../js';
7 7 test = window.location.href.replace(/\/\w*\.html/g,'');
8 8 }
9 9  
... ... @@ -45,13 +45,13 @@ requirejs.config({
45 45 'jquery_maxlength':{
46 46 deps: ['jquery']
47 47 },
48   - 'jquery_cookie':{
49   - deps: ['jquery']
50   - },
51 48 'jquery_slick': {
52 49 deps: ['jquery']
53 50 },
54   - 'proposal_app' :{
  51 + 'jquery_cookie':{
  52 + deps: ['jquery']
  53 + },
  54 + 'proposal_app': {
55 55 deps: ['jquery'],
56 56 exports: 'ProposalApp'
57 57 }
... ...