voluntary-ember_js 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/voluntary/ember_js/app.js.coffee +40 -2
  3. data/app/assets/javascripts/voluntary/ember_js/components/like_or_dislike_component.js.coffee +73 -0
  4. data/app/assets/javascripts/voluntary/ember_js/components/modal_dialog_component.js.coffee +6 -0
  5. data/app/assets/javascripts/voluntary/ember_js/components/toggle_text_component.js.coffee +11 -0
  6. data/app/assets/javascripts/voluntary/ember_js/controllers/application_controller.js.coffee +3 -2
  7. data/app/assets/javascripts/voluntary/ember_js/controllers/controller.js.coffee +1 -0
  8. data/app/assets/javascripts/voluntary/ember_js/helpers/name_with_apostrophe_helper.js.coffee +7 -0
  9. data/app/assets/javascripts/voluntary/ember_js/helpers/t_helper.js.coffee +10 -0
  10. data/app/assets/javascripts/voluntary/ember_js/mixins/has_current_user.js.coffee +4 -0
  11. data/app/assets/javascripts/voluntary/ember_js/mixins/singleton.js.coffee +17 -0
  12. data/app/assets/javascripts/voluntary/ember_js/models/argument.js.coffee +14 -0
  13. data/app/assets/javascripts/voluntary/ember_js/models/user.js.coffee +1 -0
  14. data/app/assets/javascripts/voluntary/ember_js/router.js.coffee +3 -0
  15. data/app/assets/javascripts/voluntary/ember_js/routes/application_route.js.coffee +2 -5
  16. data/app/assets/javascripts/voluntary/ember_js/templates/components/like-or-dislike.js.handlebars +12 -0
  17. data/app/assets/javascripts/voluntary/ember_js/templates/components/modal-dialog.js.handlebars +9 -0
  18. data/app/assets/javascripts/voluntary/ember_js/templates/components/toggle-text.js.handlebars +7 -0
  19. data/app/views/layouts/voluntary/ember_js.html.erb +4 -0
  20. data/lib/voluntary/ember_js/version.rb +1 -1
  21. metadata +15 -21
  22. data/app/serializers/application_serializer.rb +0 -3
  23. data/app/serializers/basic_user_serializer.rb +0 -3
  24. data/app/serializers/current_user_serializer.rb +0 -3
  25. data/app/serializers/user_serializer.rb +0 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 757dbdd5f35b39bd54b73bc1d6972a1820c729c6
4
- data.tar.gz: bc3ca252f712fe8b6d87d16db36ce0292543e052
3
+ metadata.gz: 9da223c770795b529aac20b85d4c97e37f2c6310
4
+ data.tar.gz: eec2022b526439cad03fb2191e5dad492dbf7163
5
5
  SHA512:
6
- metadata.gz: 9eae05cd6bd9ce64c8bad280a5d45168430cdf4a2698de516195a1d2096c0d2121b7ed85406f48c2f613ae6cc09297438486247299aaf12a59af5759a4552830
7
- data.tar.gz: fcf83e0e14d2e6f01cba0e9bff7374c21a63cac1ed9900e44b1b0b61d35015b0f47969863619de583fb05c1c88518dc9250c1560937a9f0fa4391c5f21076516
6
+ metadata.gz: d5d91d9553c161be75096767cb0da82f0f0c2eab0880159fcf5f59513d2665c5d0ef9d8832fd801071e29423e6e87cfc020f79d73e36332bd6b1bda977f42039
7
+ data.tar.gz: 6f518f01d1a064f515520e7b662ea0129fb374347157548c0c026d9da52d943ddee23965f5d14ad528fbf83067a106ed01b410856c83224d64500e5ea7c60fa6
@@ -1,10 +1,48 @@
1
+ #= require_tree ./mixins
1
2
  #= require_tree ./adapters
2
3
  #= require_tree ./serializers
3
4
  #= require_tree ./models
4
5
  #= require_tree ./controllers
5
6
  #= require_tree ./views
6
- #= require_tree ./helpers
7
7
  #= require_tree ./templates
8
8
  #= require_tree ./routes
9
+ #= require_tree ./helpers
10
+ #= require_tree ./components
9
11
  #= require ./router
10
- #= require_self
12
+ #= require_self
13
+
14
+ Ember.TextField.reopen attributeBindings: [
15
+ 'data-autocomplete', 'data-append-autocomplete', 'data-append-to'
16
+ ]
17
+
18
+ Volontariat.alert = (type, message) ->
19
+ $('#alert_message').text message
20
+ $('#alert').addClass "alert-#{type}"
21
+ $("#alert").slideDown()
22
+
23
+ setTimeout (->
24
+ $("#alert").slideUp(400, ->
25
+ $('#alert').removeClass "alert-#{type}"
26
+ )
27
+ ), 5000
28
+
29
+ Volontariat.reload_alert = (message) ->
30
+ $('#reload_alert_message').text message
31
+ $('#reload_alert').slideDown()
32
+
33
+ Volontariat.t = (key) ->
34
+ keyArray = key.split('.')
35
+ text = Volontariat.translations[keyArray.shift()]
36
+
37
+ unless text == undefined || typeof(text) == 'string'
38
+ $.each keyArray, (index, value) ->
39
+ if text[value] == undefined
40
+ text = undefined
41
+
42
+ return false
43
+
44
+ text = text[value]
45
+
46
+ return false if typeof(text) == 'string'
47
+
48
+ text
@@ -0,0 +1,73 @@
1
+ Volontariat.LikeOrDislikeComponent = Ember.Component.extend
2
+ likesCount: (->
3
+ if @get('likes') == null
4
+ 0
5
+ else
6
+ @get('likes')
7
+ ).property('likes')
8
+
9
+ dislikesCount: (->
10
+ if @get('dislikes') == null
11
+ 0
12
+ else
13
+ @get('dislikes')
14
+ ).property('dislikes')
15
+
16
+ liked: (-> @get('positive') == true).property('positive')
17
+ disliked: (-> @get('positive') == false).property('positive')
18
+
19
+ actions:
20
+ like: ->
21
+ positiveWas = @get 'positive'
22
+ @set 'dislikesCount', @get('dislikesCount') - 1 if positiveWas == false
23
+ @set 'positive', true
24
+ @set 'likesCount', @get('likesCount') + 1
25
+
26
+ $.post("/like/#{@get('targetType')}/#{@get('targetId')}").done(=>
27
+ ).fail(->
28
+ alert Volontariat.t('likes.create.like_failed')
29
+ @set 'positive', positiveWas
30
+ @set 'likesCount', @get('likesCount') - 1
31
+ )
32
+
33
+ unlike: ->
34
+ @set 'positive', null
35
+ @set 'likesCount', @get('likesCount') - 1
36
+
37
+ $.post("/unlike/#{@get('targetType')}/#{@get('targetId')}").done(=>
38
+ ).fail(->
39
+ alert Volontariat.t('likes.destroy.unlike_failed')
40
+ @set 'positive', true
41
+ @set 'likesCount', @get('likesCount') + 1
42
+ )
43
+
44
+ dislike: ->
45
+ positiveWas = @get 'positive'
46
+ @set 'positive', false
47
+
48
+ if positiveWas == true
49
+ @set 'likesCount', @get('likesCount') - 1
50
+
51
+ @set 'dislikesCount', @get('dislikesCount') + 1
52
+
53
+ $.post("/dislike/#{@get('targetType')}/#{@get('targetId')}").done(=>
54
+ ).fail(->
55
+ alert Volontariat.t('likes.create.dislike_failed')
56
+ @set 'positive', positiveWas
57
+
58
+ if positiveWas == true
59
+ @set 'likesCount', @get('likesCount') + 1
60
+
61
+ @set 'dislikesCount', @get('dislikesCount') - 1
62
+ )
63
+
64
+ undoDislike: ->
65
+ @set 'positive', null
66
+ @set 'dislikesCount', @get('dislikesCount') - 1
67
+
68
+ $.post("/unlike/#{@get('targetType')}/#{@get('targetId')}").done(=>
69
+ ).fail(->
70
+ alert Volontariat.t('likes.destroy.undo_dislike_failed')
71
+ @set 'positive', false
72
+ @set 'dislikesCount', @get('dislikesCount') + 1
73
+ )
@@ -0,0 +1,6 @@
1
+ Volontariat.ModalDialogComponent = Ember.Component.extend(
2
+ actions:
3
+
4
+ close: ->
5
+ @sendAction()
6
+ )
@@ -0,0 +1,11 @@
1
+ Volontariat.ToggleTextComponent = Ember.Component.extend
2
+ length: 140
3
+ collapsed: 'more'
4
+
5
+ currentText: (-> if @get('collapsed') == 'more' then @get('text').truncate(@get('length')) else @get('text')).property('text', 'collapsed', 'length')
6
+ tooLong: (-> @get('text').length > @get('length')).property('text', 'length')
7
+
8
+ actions:
9
+
10
+ toggle: ->
11
+ @set 'collapsed', if @get('collapsed') == 'more' then 'less' else 'more'
@@ -1,4 +1,4 @@
1
- Volontariat.ApplicationController = Ember.Controller.extend
1
+ Volontariat.ApplicationController = Ember.Controller.extend(Volontariat.HasCurrentUser,
2
2
 
3
3
  actions:
4
4
 
@@ -7,4 +7,5 @@ Volontariat.ApplicationController = Ember.Controller.extend
7
7
  window.location.reload()
8
8
  ).fail((data) ->
9
9
  alert 'Signing out failed!'
10
- )
10
+ )
11
+ )
@@ -0,0 +1 @@
1
+ Volontariat.Controller = Ember.Controller.extend(Volontariat.HasCurrentUser)
@@ -0,0 +1,7 @@
1
+ Ember.Handlebars.helper 'name-with-apostrophe', (name, options) ->
2
+ if name == undefined || name[name.length - 1] == undefined
3
+ name
4
+ else if name[name.length - 1].toLowerCase() == 's'
5
+ "#{name}'"
6
+ else
7
+ "#{name}'s"
@@ -0,0 +1,10 @@
1
+ Ember.Handlebars.helper 't', (key, no_html, options) ->
2
+ text = Volontariat.t key
3
+
4
+ if text == undefined
5
+ if no_html == true
6
+ "Missing translation: #{key}"
7
+ else
8
+ new (Ember.Handlebars.SafeString)('<span class="translation_missing" title="translation missing: ' + Volontariat.locale + '.' + key + '">' + key + '</span>')
9
+ else
10
+ text
@@ -0,0 +1,4 @@
1
+ Volontariat.HasCurrentUser = Em.Mixin.create
2
+ currentUser: (->
3
+ Volontariat.User.current()
4
+ ).property().volatile()
@@ -0,0 +1,17 @@
1
+ Volontariat.Singleton = Em.Mixin.create(
2
+ current: ->
3
+ @_current = @createCurrent() unless @_current
4
+ @_current
5
+
6
+ createCurrent: ->
7
+ @create {}
8
+
9
+ currentProp: (property, value) ->
10
+ instance = @current()
11
+ return unless instance
12
+ if typeof (value) isnt "undefined"
13
+ instance.set property, value
14
+ value
15
+ else
16
+ instance.get property
17
+ )
@@ -0,0 +1,14 @@
1
+ Volontariat.Argument = DS.Model.extend
2
+ vote: DS.attr('boolean')
3
+ topicId: DS.attr('number')
4
+ topicName: DS.attr('string')
5
+ argumentableType: DS.attr('string')
6
+ argumentableId: DS.attr('number')
7
+ argumentableName: DS.attr('string')
8
+ value: DS.attr('string')
9
+
10
+ pro: (-> @get('vote') == true).property('vote')
11
+ contra: (-> @get('vote') == false).property('vote')
12
+ neutral: (-> @get('vote') == null).property('vote')
13
+
14
+
@@ -1,3 +1,4 @@
1
1
  Volontariat.User = DS.Model.extend
2
+ slug: DS.attr('string')
2
3
  name: DS.attr('string'),
3
4
  email: DS.attr('string')
@@ -1,5 +1,8 @@
1
1
  Volontariat.Router.map ->
2
2
  @resource 'users'
3
+
4
+ # This route will be used to reload the current route by going to this route and then back to the current route
5
+ @route 'no_data'
3
6
 
4
7
  Volontariat.Router.reopen
5
8
  location: 'hash'
@@ -13,10 +13,7 @@ Volontariat.ApplicationRoute = Ember.Route.extend
13
13
  else
14
14
  alert "Something went wrong: HTTP status code #{error.status}!"
15
15
 
16
- if error.status == undefined
17
- return true
18
- else
19
- @transitionTo('index')
20
-
16
+ return true if error.status == undefined
17
+
21
18
  renderTemplate: ->
22
19
  @render 'application'
@@ -0,0 +1,12 @@
1
+ {{#if liked}}
2
+ <a {{action 'unlike'}}><span class="glyphicon glyphicon-thumbs-up"></span> {{t 'likes.actions.undo_like'}}</a>
3
+ {{else}}
4
+ <a {{action 'like'}}><span class="glyphicon glyphicon-thumbs-up"></span> {{t 'likes.actions.like'}}</a>
5
+ {{/if}}
6
+ {{likesCount}}
7
+ {{#if disliked}}
8
+ <a {{action 'undoDislike'}}><span class="glyphicon glyphicon-thumbs-down"></span> {{t 'likes.actions.undo_dislike'}}</a>
9
+ {{else}}
10
+ <a {{action 'dislike'}}><span class="glyphicon glyphicon-thumbs-down"></span> {{t 'likes.actions.dislike'}}</a>
11
+ {{/if}}
12
+ {{dislikesCount}}
@@ -0,0 +1,9 @@
1
+ <div id="modal" class="modal 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,7 @@
1
+ {{#if text}}
2
+ {{currentText}}
3
+
4
+ {{#if tooLong}}
5
+ <a {{action 'toggle'}}>{{collapsed}}</a>
6
+ {{/if}}
7
+ {{/if}}
@@ -59,6 +59,10 @@
59
59
  #= javascript_include_tag *voluntary_ember_js_javascripts %>
60
60
  -->
61
61
  <%= javascript_include_tag *voluntary_ember_js_javascripts %>
62
+ <script type="text/javascript">
63
+ Volontariat.locale = '<%= I18n.locale.to_s %>';
64
+ Volontariat.translations = <%= I18n.backend.send(:translations)[I18n.locale].to_json.html_safe %>;
65
+ </script>
62
66
  <%= javascript_tag do %>
63
67
  <%= yield :top_javascript %>
64
68
 
@@ -1,5 +1,5 @@
1
1
  module Voluntary
2
2
  module EmberJs
3
- VERSION = "0.0.1"
3
+ VERSION = '0.0.2'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: voluntary-ember_js
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mathias Gawlista
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-17 00:00:00.000000000 Z
11
+ date: 2015-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: voluntary
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.13.8
69
- - !ruby/object:Gem::Dependency
70
- name: active_model_serializers
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 0.9.3
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 0.9.3
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: letter_opener
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -332,7 +318,7 @@ dependencies:
332
318
  - - "~>"
333
319
  - !ruby/object:Gem::Version
334
320
  version: 0.7.1
335
- description: 'Ember.js support for #crowdsourcing management system voluntary: bit.ly/vej-0-0-1'
321
+ description: 'Ember.js support for #crowdsourcing management system voluntary: bit.ly/vej-0-0-2'
336
322
  email:
337
323
  - gawlista@gmail.com
338
324
  executables: []
@@ -346,19 +332,27 @@ files:
346
332
  - app/assets/javascripts/voluntary/ember_js/adapters/application_adapter.js.coffee
347
333
  - app/assets/javascripts/voluntary/ember_js/app.js.coffee
348
334
  - app/assets/javascripts/voluntary/ember_js/application.js
335
+ - app/assets/javascripts/voluntary/ember_js/components/like_or_dislike_component.js.coffee
336
+ - app/assets/javascripts/voluntary/ember_js/components/modal_dialog_component.js.coffee
337
+ - app/assets/javascripts/voluntary/ember_js/components/toggle_text_component.js.coffee
349
338
  - app/assets/javascripts/voluntary/ember_js/controllers/application_controller.js.coffee
339
+ - app/assets/javascripts/voluntary/ember_js/controllers/controller.js.coffee
350
340
  - app/assets/javascripts/voluntary/ember_js/external/preload_store.js
341
+ - app/assets/javascripts/voluntary/ember_js/helpers/name_with_apostrophe_helper.js.coffee
342
+ - app/assets/javascripts/voluntary/ember_js/helpers/t_helper.js.coffee
343
+ - app/assets/javascripts/voluntary/ember_js/mixins/has_current_user.js.coffee
344
+ - app/assets/javascripts/voluntary/ember_js/mixins/singleton.js.coffee
345
+ - app/assets/javascripts/voluntary/ember_js/models/argument.js.coffee
351
346
  - app/assets/javascripts/voluntary/ember_js/models/user.js.coffee
352
347
  - app/assets/javascripts/voluntary/ember_js/router.js.coffee
353
348
  - app/assets/javascripts/voluntary/ember_js/routes/application_route.js.coffee
354
349
  - app/assets/javascripts/voluntary/ember_js/serializers/application_serializer.js.coffee
350
+ - app/assets/javascripts/voluntary/ember_js/templates/components/like-or-dislike.js.handlebars
351
+ - app/assets/javascripts/voluntary/ember_js/templates/components/modal-dialog.js.handlebars
352
+ - app/assets/javascripts/voluntary/ember_js/templates/components/toggle-text.js.handlebars
355
353
  - app/assets/javascripts/voluntary/ember_js/views/application_view.js.coffee
356
354
  - app/assets/stylesheets/voluntary/ember_js/application.css
357
355
  - app/controllers/voluntary/ember_js/application_controller.rb
358
- - app/serializers/application_serializer.rb
359
- - app/serializers/basic_user_serializer.rb
360
- - app/serializers/current_user_serializer.rb
361
- - app/serializers/user_serializer.rb
362
356
  - app/views/layouts/voluntary/ember_js.html.erb
363
357
  - config/routes.rb
364
358
  - lib/voluntary/ember_js.rb
@@ -1,3 +0,0 @@
1
- class ApplicationSerializer < ActiveModel::Serializer
2
- embed :ids, include: true
3
- end
@@ -1,3 +0,0 @@
1
- class BasicUserSerializer < ApplicationSerializer
2
- attributes :id, :name, :email
3
- end
@@ -1,3 +0,0 @@
1
- class CurrentUserSerializer < BasicUserSerializer
2
- #attributes :admin?
3
- end
@@ -1,2 +0,0 @@
1
- class UserSerializer < BasicUserSerializer
2
- end