voluntary_ranking 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +29 -0
  5. data/app/assets/javascripts/voluntary_ranking/app.js +11 -0
  6. data/app/assets/javascripts/voluntary_ranking/application.js +4 -0
  7. data/app/assets/javascripts/voluntary_ranking/base.js.coffee +3 -0
  8. data/app/assets/javascripts/voluntary_ranking/components/modal_dialog_component.js.coffee +6 -0
  9. data/app/assets/javascripts/voluntary_ranking/controllers/arguments/index_controller.js.coffee +5 -0
  10. data/app/assets/javascripts/voluntary_ranking/controllers/arguments/new_controller.js.coffee +16 -0
  11. data/app/assets/javascripts/voluntary_ranking/controllers/compare_things/arguments_controller.js.coffee +5 -0
  12. data/app/assets/javascripts/voluntary_ranking/controllers/compare_things_controller.js.coffee +8 -0
  13. data/app/assets/javascripts/voluntary_ranking/controllers/controller.js.coffee +1 -0
  14. data/app/assets/javascripts/voluntary_ranking/controllers/index_controller.js.coffee +5 -0
  15. data/app/assets/javascripts/voluntary_ranking/controllers/profile/rankings_controller.js.coffee +3 -0
  16. data/app/assets/javascripts/voluntary_ranking/controllers/ranking_item_controller.js.coffee +7 -0
  17. data/app/assets/javascripts/voluntary_ranking/controllers/rankings/index_controller.js.coffee +5 -0
  18. data/app/assets/javascripts/voluntary_ranking/controllers/rankings/show_controller.js.coffee +6 -0
  19. data/app/assets/javascripts/voluntary_ranking/controllers/thing_controller.js.coffee +10 -0
  20. data/app/assets/javascripts/voluntary_ranking/controllers/user/rankings/show_controller.js.coffee +92 -0
  21. data/app/assets/javascripts/voluntary_ranking/controllers/user_controller.js.coffee +5 -0
  22. data/app/assets/javascripts/voluntary_ranking/controllers/user_ranking_controller.js.coffee +2 -0
  23. data/app/assets/javascripts/voluntary_ranking/helpers/name_with_apostrophe_helper.js.coffee +5 -0
  24. data/app/assets/javascripts/voluntary_ranking/helpers/stars_html_helper.js.coffee +29 -0
  25. data/app/assets/javascripts/voluntary_ranking/mixins/has_current_user.js.coffee +4 -0
  26. data/app/assets/javascripts/voluntary_ranking/mixins/pagination_controller.js.coffee +51 -0
  27. data/app/assets/javascripts/voluntary_ranking/mixins/ranking_controller.js.coffee +31 -0
  28. data/app/assets/javascripts/voluntary_ranking/mixins/singleton.js.coffee +17 -0
  29. data/app/assets/javascripts/voluntary_ranking/models/argument.js.coffee +7 -0
  30. data/app/assets/javascripts/voluntary_ranking/models/movie.js.coffee +5 -0
  31. data/app/assets/javascripts/voluntary_ranking/models/ranking.js.coffee +5 -0
  32. data/app/assets/javascripts/voluntary_ranking/models/ranking_item.js.coffee +26 -0
  33. data/app/assets/javascripts/voluntary_ranking/models/thing.js.coffee +2 -0
  34. data/app/assets/javascripts/voluntary_ranking/models/user.js.coffee +18 -0
  35. data/app/assets/javascripts/voluntary_ranking/models/user/ranking_item.js.coffee +33 -0
  36. data/app/assets/javascripts/voluntary_ranking/router.js.coffee +30 -0
  37. data/app/assets/javascripts/voluntary_ranking/routes/arguments/index_route.js.coffee +24 -0
  38. data/app/assets/javascripts/voluntary_ranking/routes/compare_things/arguments_route.js.coffee +16 -0
  39. data/app/assets/javascripts/voluntary_ranking/routes/compare_things/compare_things_route.js.coffee +9 -0
  40. data/app/assets/javascripts/voluntary_ranking/routes/profile/rankings_route.js.coffee +29 -0
  41. data/app/assets/javascripts/voluntary_ranking/routes/ranking_item_route.js.coffee +25 -0
  42. data/app/assets/javascripts/voluntary_ranking/routes/rankings/index_route.js.coffee +10 -0
  43. data/app/assets/javascripts/voluntary_ranking/routes/rankings/show_route.js.coffee +19 -0
  44. data/app/assets/javascripts/voluntary_ranking/routes/thing_route.js.coffee +7 -0
  45. data/app/assets/javascripts/voluntary_ranking/routes/user_ranking_route.js.coffee +27 -0
  46. data/app/assets/javascripts/voluntary_ranking/routes/user_route.js.coffee +20 -0
  47. data/app/assets/javascripts/voluntary_ranking/templates/application.handlebars.erb +16 -0
  48. data/app/assets/javascripts/voluntary_ranking/templates/arguments.js.handlebars +1 -0
  49. data/app/assets/javascripts/voluntary_ranking/templates/arguments/index.js.handlebars +27 -0
  50. data/app/assets/javascripts/voluntary_ranking/templates/arguments/new.js.handlebars +17 -0
  51. data/app/assets/javascripts/voluntary_ranking/templates/compare_things.js.handlebars +22 -0
  52. data/app/assets/javascripts/voluntary_ranking/templates/compare_things/arguments.js.handlebars +26 -0
  53. data/app/assets/javascripts/voluntary_ranking/templates/components/modal-dialog.js.handlebars +9 -0
  54. data/app/assets/javascripts/voluntary_ranking/templates/components/rankings-component.handlebars +17 -0
  55. data/app/assets/javascripts/voluntary_ranking/templates/index.js.handlebars +1 -0
  56. data/app/assets/javascripts/voluntary_ranking/templates/navigation.js.handlebars +28 -0
  57. data/app/assets/javascripts/voluntary_ranking/templates/ranking_item.js.handlebars +31 -0
  58. data/app/assets/javascripts/voluntary_ranking/templates/ranking_items/_collection.js.handlebars +84 -0
  59. data/app/assets/javascripts/voluntary_ranking/templates/ranking_items/_form.js.handlebars +30 -0
  60. data/app/assets/javascripts/voluntary_ranking/templates/rankings/_form.js.handlebars +38 -0
  61. data/app/assets/javascripts/voluntary_ranking/templates/rankings/index.js.handlebars +3 -0
  62. data/app/assets/javascripts/voluntary_ranking/templates/rankings/show.js.handlebars +3 -0
  63. data/app/assets/javascripts/voluntary_ranking/templates/shared/_pagination.js.handlebars +23 -0
  64. data/app/assets/javascripts/voluntary_ranking/templates/shared/_stars.js.handlebars +3 -0
  65. data/app/assets/javascripts/voluntary_ranking/templates/thing.js.handlebars +13 -0
  66. data/app/assets/javascripts/voluntary_ranking/templates/thing/index.js.handlebars +0 -0
  67. data/app/assets/javascripts/voluntary_ranking/templates/things/show.arguments.js.handlebars +1 -0
  68. data/app/assets/javascripts/voluntary_ranking/templates/things/show.js.handlebars +1 -0
  69. data/app/assets/javascripts/voluntary_ranking/templates/user.js.handlebars +5 -0
  70. data/app/assets/javascripts/voluntary_ranking/templates/user/rankings/details.js.handlebars +7 -0
  71. data/app/assets/javascripts/voluntary_ranking/views/application/index_view.js.coffee +1 -0
  72. data/app/assets/javascripts/voluntary_ranking/views/arguments/new_view.js.coffee +9 -0
  73. data/app/assets/javascripts/voluntary_ranking/views/index_view.js.coffee +1 -0
  74. data/app/assets/javascripts/voluntary_ranking/views/ranking_items/colllection_view.js.coffee +25 -0
  75. data/app/assets/javascripts/voluntary_ranking/views/shared/pagination.js +4 -0
  76. data/app/assets/stylesheets/voluntary_ranking/application.css +17 -0
  77. data/app/assets/stylesheets/voluntary_ranking/base.css.sass +6 -0
  78. data/app/assets/stylesheets/voluntary_ranking/bootstrap_and_overrides.css.sass +0 -0
  79. data/app/assets/stylesheets/voluntary_ranking/stars.css.sass +31 -0
  80. data/app/assets/stylesheets/voluntary_ranking/twitter-typeahead.css.sass +29 -0
  81. data/app/controllers/api/v1/argument_topics_controller.rb +12 -0
  82. data/app/controllers/api/v1/arguments_controller.rb +32 -0
  83. data/app/controllers/api/v1/ranking_items_controller.rb +43 -0
  84. data/app/controllers/api/v1/rankings_controller.rb +29 -0
  85. data/app/controllers/api/v1/things/arguments_controller.rb +40 -0
  86. data/app/controllers/api/v1/things_controller.rb +26 -0
  87. data/app/controllers/api/v1/user_ranking_items_controller.rb +94 -0
  88. data/app/controllers/api/v1/users_controller.rb +9 -0
  89. data/app/controllers/product/ranking_controller.rb +16 -0
  90. data/app/models/argument.rb +48 -0
  91. data/app/models/argument_topic.rb +7 -0
  92. data/app/models/product/ranking.rb +2 -0
  93. data/app/models/ranking.rb +97 -0
  94. data/app/models/ranking_item.rb +30 -0
  95. data/app/models/user_ranking_item.rb +136 -0
  96. data/app/serializers/argument_serializer.rb +11 -0
  97. data/app/serializers/base_ranking_item_serializer.rb +23 -0
  98. data/app/serializers/ranking_item_serializer.rb +2 -0
  99. data/app/serializers/user_ranking_item_serializer.rb +7 -0
  100. data/app/views/product/ranking/index.html.erb +0 -0
  101. data/config/locales/en.yml +10 -0
  102. data/config/locales/resources/ranking/en.yml +10 -0
  103. data/config/routes.rb +41 -0
  104. data/db/migrate/20130817115303_add_ranking_product.rb +50 -0
  105. data/db/migrate/20140926102943_create_arguments.rb +20 -0
  106. data/lib/concerns/controller/base_ranking_items_controller.rb +10 -0
  107. data/lib/concerns/model/base_ranking_item.rb +29 -0
  108. data/lib/concerns/model/user/ranking.rb +48 -0
  109. data/lib/tasks/voluntary_ranking_tasks.rake +4 -0
  110. data/lib/voluntary_ranking.rb +12 -0
  111. data/lib/voluntary_ranking/ability.rb +11 -0
  112. data/lib/voluntary_ranking/engine.rb +16 -0
  113. data/lib/voluntary_ranking/version.rb +3 -0
  114. metadata +436 -0
@@ -0,0 +1,9 @@
1
+ <div id="modal" class="modal hide fade">
2
+ <div class="modal-dialog">
3
+ <div class="modal-content">
4
+ <div class="modal-body">
5
+ {{yield}}
6
+ </div>
7
+ </div>
8
+ </div>
9
+ </div>
@@ -0,0 +1,17 @@
1
+ {{#if anyItems}}
2
+ <table class="table table-striped" style="margin-top:15px;">
3
+ <tbody>
4
+ {{#each collection as |ranking|}}
5
+ <tr>
6
+ <td>
7
+ {{#link-to 'rankings.show' ranking.adjective ranking.negativeAdjective ranking.topic ranking.scope 1}}
8
+ {{ranking.adjective}} and {{ranking.negativeAdjective}} {{ranking.topic}} {{ranking.scope}}
9
+ {{/link-to}}
10
+ </td>
11
+ </tr>
12
+ {{/each}}
13
+ </tbody>
14
+ </table>
15
+ {{else}}
16
+ No rankings found.
17
+ {{/if}}
@@ -0,0 +1 @@
1
+ {{partial 'rankings/form'}}
@@ -0,0 +1,28 @@
1
+ <div class="navbar navbar-inverse navbar-fixed-top">
2
+ <div class="container">
3
+ <a id="plattform_brand" class="navbar-brand" href="/">Volontari.at /</a>
4
+ <a id="product_brand" class="navbar-brand" href="#">Ranking</a>
5
+
6
+ <ul class="navbar-nav nav">
7
+ {{#if currentUser}}
8
+ <li class="dropdown">
9
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">
10
+ Account
11
+ <b class="caret"></b>
12
+ </a>
13
+ <ul class="dropdown-menu">
14
+ {{#link-to 'user' currentUser.name 1 tagName='li'}}<a>Your rankings</a>{{/link-to}}
15
+ <li>
16
+ <a {{action 'signOut'}}>Sign out</a>
17
+ </li>
18
+ </ul>
19
+ </li>
20
+ {{else}}
21
+ <li>
22
+ <a href="/users/sign_in">Authentication</a>
23
+ </li>
24
+ {{/if}}
25
+ <li><a href="http://GitHub.com/Volontariat/voluntary_ranking/issues">Issues</a></li>
26
+ </ul>
27
+ </div>
28
+ </div>
@@ -0,0 +1,31 @@
1
+ {{partial 'rankings/form'}}
2
+
3
+ <h2>User votes</h2>
4
+
5
+ {{#if anyUserRankingItems}}
6
+ <table class="table table-striped" style="margin-top:15px;">
7
+ <tbody>
8
+ {{#each userRankingItems as |userRankingItem|}}
9
+ <tr>
10
+ <td style="width:50px;">
11
+ {{userRankingItem.position}}
12
+ </td>
13
+ <td>
14
+ {{#link-to 'user_ranking' userRankingItem.user_name userRankingItem.ranking_adjective userRankingItem.ranking_negative_adjective userRankingItem.ranking_topic userRankingItem.ranking_scope 1}}
15
+ {{userRankingItem.user_name}}
16
+ {{/link-to}}
17
+ </td>
18
+ <td>
19
+ <div class="stars">
20
+ {{stars-html userRankingItem.stars}}
21
+ </div>
22
+ </td>
23
+ </tr>
24
+ {{/each}}
25
+ </tbody>
26
+ </table>
27
+ {{else}}
28
+ <span style="position:relative; top:10px;">No user votes found.</span>
29
+ {{/if}}
30
+
31
+ {{partial 'shared/pagination'}}
@@ -0,0 +1,84 @@
1
+ {{#if anyItems}}
2
+ <table class="table" style="margin-bottom: 0px">
3
+ <thead>
4
+ <tr>
5
+ {{#if controller.yourRanking}}
6
+ <th width="2%"></th>
7
+ {{/if}}
8
+ <th width="5%" style="vertical-align:top;">Position</th>
9
+ {{#if controller.yourRanking}}
10
+ <th width="5%" style="vertical-align:top; text-align:center;">Move</th>
11
+ <th width="70%" style="vertical-align:top;">Name</th>
12
+ {{else}}
13
+ <th width="80%" style="vertical-align:top;">Name</th>
14
+ {{/if}}
15
+ <th width="15%" style="vertical-align:top; text-align:center;">Stars</th>
16
+ {{#if controller.yourRanking}}
17
+ <th width="5%"></th>
18
+ {{/if}}
19
+ </tr>
20
+ </thead>
21
+ </table>
22
+ {{/if}}
23
+
24
+ <ul class="nav nav-tabs nav-stacked list-striped" id="ranking">
25
+ {{#each model as |rankingItem|}}
26
+ <li class="ranking_item_{{unbound rankingItem.id}}" data-id="{{unbound rankingItem.id}}" data-position="{{unbound rankingItem.position}}">
27
+ <table class="table">
28
+ <tr>
29
+ {{#if controller.yourRanking}}
30
+ <td width="2%" style="text-align:center">
31
+ <span class="ranking_item_sortable glyphicon glyphicon-move"></span>
32
+ </td>
33
+ {{/if}}
34
+ <td class="list-element-striped" width="5%" style="text-align:right">
35
+ {{#link-to 'ranking_item' rankingItem.thingName rankingItem.positiveOrNegativeAdjective rankingItem.rankingTopic rankingItem.rankingScope 1 class="ranking_item_position"}}
36
+ {{rankingItem.position}}
37
+ {{/link-to}}
38
+ </td>
39
+ {{#if controller.yourRanking}}
40
+ <td class="list-element-striped" width="5%" style="text-align:center">
41
+ <a {{action 'moveToPreviousPage' rankingItem.id}} title="move to previous page"><span class="glyphicon glyphicon-chevron-left"></span></a>
42
+ <a {{action 'moveToNextPage' rankingItem.id}} title="move to next page"><span class="glyphicon glyphicon-chevron-right"></span></a>
43
+ </td>
44
+ <td class="list-element-striped" width="70%" style="padding-left:10px;">
45
+ {{#link-to 'thing' rankingItem.thingName}}{{rankingItem.thingName}}{{/link-to}}
46
+ </td>
47
+ {{else}}
48
+ <td class="list-element-striped" width="80%" style="padding-left:10px;">
49
+ {{#link-to 'thing' rankingItem.thingName}}{{rankingItem.thingName}}{{/link-to}}
50
+ </td>
51
+ {{/if}}
52
+ <td class="list-element-striped" width="15%" style="text-align:center;">
53
+ <div class="stars" style="white-space:nowrap;">
54
+ {{#if controller.yourRanking}}
55
+ <span class="5stars {{if rankingItem.is5StarClass 'active'}}" {{action 'updateStars' rankingItem.id rankingItem.stars 5}}></span>
56
+ <span class="4stars {{if rankingItem.is4StarClass 'active'}}" {{action 'updateStars' rankingItem.id rankingItem.stars 4}}></span>
57
+ <span class="3stars {{if rankingItem.is3StarClass 'active'}}" {{action 'updateStars' rankingItem.id rankingItem.stars 3}}></span>
58
+ <span class="2stars {{if rankingItem.is2StarClass 'active'}}" {{action 'updateStars' rankingItem.id rankingItem.stars 2}}></span>
59
+ <span class="1stars {{if rankingItem.is1StarClass 'active'}}" {{action 'updateStars' rankingItem.id rankingItem.stars 1}}></span>
60
+ {{else}}
61
+ <span class="{{if rankingItem.is5StarClass 'active'}}"></span>
62
+ <span class="{{if rankingItem.is4StarClass 'active'}}"></span>
63
+ <span class="{{if rankingItem.is3StarClass 'active'}}"></span>
64
+ <span class="{{if rankingItem.is2StarClass 'active'}}"></span>
65
+ <span class="{{if rankingItem.is1StarClass 'active'}}"></span>
66
+ {{/if}}
67
+ </div>
68
+ </td>
69
+ {{#if controller.yourRanking}}
70
+ <td width="3%" style="text-align:center;">
71
+ <span class="glyphicon glyphicon-remove" {{action 'destroy' rankingItem.id}}></span>
72
+ </td>
73
+ {{/if}}
74
+ </tr>
75
+ </table>
76
+ </li>
77
+ {{/each}}
78
+ </ul>
79
+
80
+ {{#if anyItems}}
81
+ {{partial 'shared/pagination'}}
82
+ {{else}}
83
+ <p style="padding-top:10px;">No items found.</p>
84
+ {{/if}}
@@ -0,0 +1,30 @@
1
+ <form id="new_ranking_item_form">
2
+ <div>
3
+ <button class="add_user_ranking_item_button btn btn-default" type="button" {{action 'addItem'}}>Add</button>
4
+
5
+ &nbsp;&nbsp;
6
+
7
+ {{input value=thingName placeholder="Thing" class="thing_name" style="margin-bottom: 0px;" data-autocomplete="/api/v1/things/suggest"}}
8
+
9
+ &nbsp;&nbsp;
10
+
11
+ to
12
+
13
+ &nbsp;&nbsp;
14
+
15
+ <span class="btn-group" data-toggle-name="ranking_item_best" data-toggle="buttons-radio">
16
+ <button class="{{isBestClass}}" type="button" data-toggle-value="1" {{action 'setBest'}}>Best?</button>
17
+ <button class="{{isWorstClass}}" type="button" data-toggle-value="0" {{action 'setWorst'}}>Worst?</button>
18
+ </span>
19
+
20
+ &nbsp;&nbsp;
21
+
22
+ <div class="stars" style="display: inline; position: relative; top: 5px;">
23
+ <span class="{{is5Star}}" {{action 'set5Star'}}></span>
24
+ <span class="{{is4Star}}" {{action 'set4Star'}}></span>
25
+ <span class="{{is3Star}}" {{action 'set3Star'}}></span>
26
+ <span class="{{is2Star}}" {{action 'set2Star'}}></span>
27
+ <span class="{{is1Star}}" {{action 'set1Star'}}></span>
28
+ </div>
29
+ </div>
30
+ </form>
@@ -0,0 +1,38 @@
1
+ <form class="form-inline" id="new_ranking_form">
2
+ <p>
3
+ {{#if rankingItemThingName}}
4
+ {{#link-to 'thing' rankingItemThingName}}{{rankingItemThingName}}{{/link-to}}
5
+ &nbsp;&nbsp;is&nbsp;&nbsp;
6
+ {{/if}}
7
+
8
+ {{#if userName}}
9
+ {{#link-to 'user' userName 1}}{{name-with-apostrophe userName}}{{/link-to}}
10
+ &nbsp;&nbsp;
11
+ {{else}}
12
+ {{#if currentUser}}
13
+ <span class="btn-group" data-toggle-name="ranking_form_your_ranking" data-toggle="buttons-radio">
14
+ <button class="{{globalRankingClass}}" type="button" data-toggle-value="1" {{action 'setGlobalRanking'}}>Global</button>
15
+ <button class="{{yourRankingClass}}" type="button" data-toggle-value="0" {{action 'setYourRanking'}}>Your</button>
16
+ </span>
17
+ &nbsp;&nbsp;
18
+ {{/if}}
19
+ {{/if}}
20
+
21
+ {{#if position}}
22
+ #{{position}}
23
+ &nbsp;&nbsp;
24
+ {{/if}}
25
+
26
+ {{input size="10" value=adjective placeholder="Adjective" class="adjective" data-autocomplete="/api/v1/rankings/attributes/adjective/autocomplete"}}
27
+ &nbsp;&nbsp;
28
+ and
29
+ &nbsp;&nbsp;
30
+ {{input size="10" value=negativeAdjective placeholder="Negative adjective" class="negative_adjective" data-autocomplete="/api/v1/rankings/attributes/negative_adjective/autocomplete"}}
31
+ &nbsp;&nbsp;
32
+ {{input value=topic placeholder="Topic" class="topic" data-autocomplete="/api/v1/rankings/attributes/topic/autocomplete"}}
33
+ &nbsp;&nbsp;
34
+ {{input size="10" value=scope placeholder="Scope" class="scope" data-autocomplete="/api/v1/rankings/attributes/scope/autocomplete"}}
35
+ &nbsp;&nbsp;
36
+ <button class="get_ranking_button btn btn-default" type="button" {{action 'getRanking'}}>Get</button>
37
+ </p>
38
+ </form>
@@ -0,0 +1,3 @@
1
+ {{rankings-component collection=model anyItems=anyItems}}
2
+
3
+ {{partial 'shared/pagination'}}
@@ -0,0 +1,3 @@
1
+ {{partial 'rankings/form'}}
2
+
3
+ {{partial 'ranking_items/collection'}}
@@ -0,0 +1,23 @@
1
+ <nav>
2
+ <ul class="pagination">
3
+ {{#if controller.showFirstPageLink}}
4
+ <li class="first"><a {{action 'goToPage' 1}}>&laquo; First</a></li>
5
+ {{/if}}
6
+
7
+ {{#if controller.showPreviousPageLink}}
8
+ <li class="prev"><a {{action 'goToPage' controller.previousPage}}>&laquo; Previous</a></li>
9
+ {{/if}}
10
+
11
+ {{#each controller.pages as |currentPage|}}
12
+ <li class="{{if currentPage.isCurrent 'active'}}"><a href="#" {{action 'goToPage' currentPage.number}}>{{currentPage.number}}</a></li>
13
+ {{/each}}
14
+
15
+ {{#if controller.showNextPageLink}}
16
+ <li class="next_page"><a {{action 'goToPage' controller.nextPage}}>Next &raquo;</a></li>
17
+ {{/if}}
18
+
19
+ {{#if controller.showLastPageLink}}
20
+ <li class="last next"><a {{action 'goToPage' controller.totalPages}}>Last &raquo;</a></li>
21
+ {{/if}}
22
+ </ul>
23
+ </nav>
@@ -0,0 +1,3 @@
1
+ <div class="stars">
2
+ <span></span><span></span><span></span><span></span><span></span>
3
+ </div>
@@ -0,0 +1,13 @@
1
+ <h1>
2
+ {{name}}
3
+ vs.
4
+ {{input type="text" value=otherThingName placeholder="Other thing" data-autocomplete="/api/v1/things/autocomplete"}}
5
+ <button class="compare_button" {{action 'compare'}}>Compare</button>
6
+ </h1>
7
+
8
+ <ul class="nav nav-pills">
9
+ {{#link-to 'rankings.index' name 1 tagName="li"}}<a href="{{view.href}}">Rankings</a>{{/link-to}}
10
+ {{#link-to 'arguments.index' name 1 tagName="li"}}<a href="{{view.href}}">Arguments</a>{{/link-to}}
11
+ </ul>
12
+
13
+ {{outlet}}
@@ -0,0 +1,5 @@
1
+ <h2>{{name-with-apostrophe name}} Rankings</h2>
2
+
3
+ {{rankings-component collection=rankings anyItems=anyRankings}}
4
+
5
+ {{partial 'shared/pagination'}}
@@ -0,0 +1,7 @@
1
+ {{partial 'rankings/form'}}
2
+
3
+ {{#if yourRanking}}
4
+ {{partial 'ranking_items/form'}}
5
+ {{/if}}
6
+
7
+ {{view 'ranking_items_collection'}}
@@ -0,0 +1 @@
1
+ Volontariat.ApplicationIndexView = Ember.View.extend()
@@ -0,0 +1,9 @@
1
+ Volontariat.ArgumentsNewView = Ember.View.extend
2
+ didInsertElement: ->
3
+ $('input[data-append-autocomplete]').each (k, v) ->
4
+ $(v).autocomplete
5
+ source: $(this).attr('data-append-autocomplete'),
6
+ appendTo: '#topic_suggestions'
7
+ select: (event, ui) ->
8
+ $(this).val(ui.item.value)
9
+ false
@@ -0,0 +1 @@
1
+ Volontariat.IndexView = Ember.View.extend()
@@ -0,0 +1,25 @@
1
+ Volontariat.RankingItemsCollectionView = Ember.View.extend
2
+ templateName: 'ranking_items/_collection'
3
+
4
+ didInsertElement: ->
5
+ first_position = $('#ranking li:first').data('position')
6
+ last_position = $('#ranking li:last').data('position')
7
+
8
+ @$( '#ranking' ).sortable
9
+ handle: '.ranking_item_sortable'
10
+ start: (event, ui) =>
11
+ first_position = $('#ranking li:first').data('position')
12
+ last_position = $('#ranking li:last').data('position')
13
+
14
+ update: (event, ui) =>
15
+ source_item = $(ui.item).closest('li')
16
+ Volontariat.current_position = first_position
17
+
18
+ $.each $('#ranking li'), (index, element) ->
19
+ $(element).data('position', Volontariat.current_position)
20
+ $(element).find('.ranking_item_position').text(Volontariat.current_position)
21
+
22
+ if $(element).data('id') == $(source_item).data('id')
23
+ $.post '/api/v1/user_ranking_items/' + $(element).data('id') + '/move', { _method: 'put', position: Volontariat.current_position }
24
+
25
+ Volontariat.current_position += 1
@@ -0,0 +1,4 @@
1
+ Volontariat.SharedPaginationView = Ember.View.extend({
2
+ templateName: 'voluntary_ranking/templates/shared/pagination',
3
+ pages: ['1']
4
+ });
@@ -0,0 +1,17 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the top of the
9
+ * compiled file, but it's generally better to create a new file per style scope.
10
+ *
11
+ *= require voluntary/ember_js/application
12
+ *= require ./base
13
+ *= require ./bootstrap_and_overrides
14
+ *= require ./stars
15
+ *= require ./twitter-typeahead
16
+ *= require_self
17
+ */
@@ -0,0 +1,6 @@
1
+ .moveToBottom4px
2
+ position: relative
3
+ top: 4px
4
+
5
+ #ranking table
6
+ margin-bottom: 0px
@@ -0,0 +1,31 @@
1
+ .stars
2
+ direction: rtl
3
+ font-size: 20px
4
+ margin: auto
5
+ unicode-bidi: bidi-override
6
+ width: 120px
7
+
8
+ span
9
+ display: inline-block
10
+ font-family: FontAwesome
11
+ font-style: normal
12
+ font-weight: normal
13
+
14
+ &:hover
15
+ cursor: pointer
16
+
17
+ &.active
18
+ &:before, ~ span:before
19
+ content: ""
20
+
21
+ &:before
22
+ content: ""
23
+ padding-right: 5px
24
+ &:hover span.active
25
+ &:before, ~ span:before
26
+ content: ""
27
+ padding-right: 5px
28
+
29
+ span:hover
30
+ &:before, ~ span:before
31
+ content: "" !important