voluntary_brainstorming 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +3 -2
  3. data/app/assets/javascripts/voluntary_brainstorming/app.js.coffee +8 -0
  4. data/app/assets/javascripts/voluntary_brainstorming/application.js +4 -0
  5. data/app/assets/javascripts/voluntary_brainstorming/components/brainstorming_idea_argument_component.js.coffee +63 -0
  6. data/app/assets/javascripts/voluntary_brainstorming/components/brainstorming_idea_cell_component.js.coffee +34 -0
  7. data/app/assets/javascripts/voluntary_brainstorming/components/brainstorming_idea_vote_component.js.coffee +46 -0
  8. data/app/assets/javascripts/voluntary_brainstorming/controllers/brainstorming_controller.js.coffee +79 -0
  9. data/app/assets/javascripts/voluntary_brainstorming/controllers/user_brainstormings_controller.js.coffee +5 -0
  10. data/app/assets/javascripts/voluntary_brainstorming/mixins/destroy_brainstorming.js.coffee +14 -0
  11. data/app/assets/javascripts/voluntary_brainstorming/mixins/pagination_controller.js.coffee +43 -0
  12. data/app/assets/javascripts/voluntary_brainstorming/models/brainstorming.js.coffee +6 -0
  13. data/app/assets/javascripts/voluntary_brainstorming/models/user.js.coffee +18 -0
  14. data/app/assets/javascripts/voluntary_brainstorming/router.js.coffee +9 -0
  15. data/app/assets/javascripts/voluntary_brainstorming/routes/brainstorming_route.js.coffee +37 -0
  16. data/app/assets/javascripts/voluntary_brainstorming/routes/edit_brainstorming_route.js.coffee +16 -0
  17. data/app/assets/javascripts/voluntary_brainstorming/routes/index_route.js.coffee +4 -0
  18. data/app/assets/javascripts/voluntary_brainstorming/routes/new_brainstorming_route.js.coffee +5 -0
  19. data/app/assets/javascripts/voluntary_brainstorming/routes/user_brainstormings_route.js.coffee +20 -0
  20. data/app/assets/javascripts/voluntary_brainstorming/templates/application.handlebars.erb +20 -0
  21. data/app/assets/javascripts/voluntary_brainstorming/templates/brainstorming.js.handlebars +77 -0
  22. data/app/assets/javascripts/voluntary_brainstorming/templates/brainstorming_form.js.handlebars +18 -0
  23. data/app/assets/javascripts/voluntary_brainstorming/templates/brainstorming_idea_form.js.handlebars +19 -0
  24. data/app/assets/javascripts/voluntary_brainstorming/templates/components/brainstorming-idea-argument.js.handlebars +86 -0
  25. data/app/assets/javascripts/voluntary_brainstorming/templates/components/brainstorming-idea-cell.js.handlebars +7 -0
  26. data/app/assets/javascripts/voluntary_brainstorming/templates/components/brainstorming-idea-vote.js.handlebars +6 -0
  27. data/app/assets/javascripts/voluntary_brainstorming/templates/edit_brainstorming.js.handlebars +3 -0
  28. data/app/assets/javascripts/voluntary_brainstorming/templates/navigation.js.handlebars +28 -0
  29. data/app/assets/javascripts/voluntary_brainstorming/templates/new_brainstorming.js.handlebars +3 -0
  30. data/app/assets/javascripts/voluntary_brainstorming/templates/shared/_pagination.js.handlebars +23 -0
  31. data/app/assets/javascripts/voluntary_brainstorming/templates/user_brainstormings.js.handlebars +33 -0
  32. data/app/assets/stylesheets/voluntary_brainstorming/application.css +13 -0
  33. data/app/controllers/product/brainstorming_controller.rb +16 -0
  34. data/app/controllers/voluntary/api/v1/brainstorming_idea_votes_controller.rb +38 -0
  35. data/app/controllers/voluntary/api/v1/brainstorming_ideas_controller.rb +66 -0
  36. data/app/controllers/voluntary/api/v1/brainstormings_controller.rb +70 -0
  37. data/app/models/brainstorming.rb +18 -0
  38. data/app/models/brainstorming_idea.rb +53 -0
  39. data/app/models/brainstorming_idea_vote.rb +32 -0
  40. data/app/models/product/brainstorming.rb +2 -0
  41. data/app/serializers/brainstorming_idea_serializer.rb +15 -0
  42. data/app/serializers/brainstorming_idea_vote_serializer.rb +11 -0
  43. data/app/serializers/brainstorming_serializer.rb +7 -0
  44. data/app/views/product/brainstorming/index.html.erb +0 -0
  45. data/config/locales/resources/brainstorming/en.yml +26 -0
  46. data/config/locales/resources/brainstorming_idea_votes/en.yml +18 -0
  47. data/config/locales/resources/brainstorming_ideas/en.yml +31 -0
  48. data/config/routes.rb +9 -0
  49. data/db/migrate/20150818181847_add_brainstorming_product.rb +51 -0
  50. data/lib/voluntary_brainstorming.rb +5 -1
  51. data/lib/voluntary_brainstorming/concerns/model/argument/publishes_changes_to_brainstorming.rb +49 -0
  52. data/lib/voluntary_brainstorming/concerns/model/user/has_brainstormings.rb +17 -0
  53. data/lib/voluntary_brainstorming/engine.rb +13 -0
  54. data/lib/voluntary_brainstorming/version.rb +1 -1
  55. metadata +322 -37
  56. data/MIT-LICENSE +0 -20
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7227275b853144a1f9b01017474cc27f2b67eb5f
4
+ data.tar.gz: de6f1121dc7b6e2a82786ccbb4d0e1b34adad542
5
+ SHA512:
6
+ metadata.gz: 3d0338762e47439794842b5664c56c9952ef6150ada502bf2ccae98b72f777bb3b00f1068e35f43ac924eac94904b1e0aa2a7749cf3007866eac9d78fbba071f
7
+ data.tar.gz: 7183bfb43e6ba1129f2ae1ee389bf92c88e5e01b575a50b34f057b0fbe8dac685334c8971c76de074d53236c10546058e75be7384b74ec9b879ec66526076653
data/README.md CHANGED
@@ -1,2 +1,3 @@
1
- # voluntary_brainstorming
2
- Product for crowdsourcing management system voluntary about brainstorming of ideas and their pros / cons with voting
1
+ # voluntary_brainstorming [![Build Status](https://travis-ci.org/volontariat/voluntary_brainstorming.svg?branch=master)](https://travis-ci.org/volontariat/voluntary_brainstorming) [![Code Climate](https://codeclimate.com/github/volontariat/voluntary_brainstorming/badges/gpa.svg)](https://codeclimate.com/github/volontariat/voluntary_brainstorming) [![Test Coverage](https://codeclimate.com/github/volontariat/voluntary_brainstorming/badges/coverage.svg)](https://codeclimate.com/github/volontariat/voluntary_brainstorming) [![Dependency Status](https://gemnasium.com/volontariat/voluntary_brainstorming.png)](https://gemnasium.com/volontariat/voluntary_brainstorming)
2
+
3
+ Product for crowdsourcing management system voluntary about brainstorming of ideas and their pros / cons with voting.
@@ -0,0 +1,8 @@
1
+ #= require_tree ./mixins
2
+ #= require_tree ./controllers
3
+ #= require_tree ./models
4
+ #= require ./router.js.coffee
5
+ #= require_tree ./routes
6
+ #= require_tree ./components
7
+ #= require_tree ./templates
8
+ #= require_self
@@ -0,0 +1,4 @@
1
+ //= require voluntary/ember_js/application
2
+ //= require message-bus
3
+ //= require_self
4
+ //= require ./app
@@ -0,0 +1,63 @@
1
+ Volontariat.BrainstormingIdeaArgumentComponent = Ember.Component.extend
2
+ tagName: 'tr'
3
+
4
+ composeMode: (->
5
+ (@get('selectedNewArgumentIdeaId') != undefined && @get('selectedNewArgumentIdeaId') == @get('ideaId')) || (@get('selectedId') != undefined && @get('selectedId') == @get('id'))
6
+ ).property('selectedNewArgumentIdeaId', 'ideaId', 'selectedId', 'id')
7
+
8
+ pro: (-> @get('argument').vote == true).property('argument')
9
+ contra: (-> @get('argument').vote == false).property('argument')
10
+ neutral: (-> @get('argument').vote == null).property('argument')
11
+
12
+ actions:
13
+
14
+ new: (ideaId) ->
15
+ @sendAction 'newAction', ideaId
16
+
17
+ edit: (id) ->
18
+ @sendAction 'editAction', id, @get('pro'), @get('contra'), @get('neutral')
19
+
20
+ cancel: ->
21
+ @sendAction 'leaveComposeArgumentModeAction'
22
+
23
+ save: ->
24
+ @sendAction 'setDirtyAction'
25
+
26
+ $.ajax(
27
+ type: if @get('id') then 'PUT' else 'POST'
28
+ url: '/api/v1/arguments' + if @get('id') then "/#{@get('id')}" else '',
29
+ data: {
30
+ argument: {
31
+ argumentable_type: 'BrainstormingIdea', argumentable_id: @get('ideaId'),
32
+ vote: $('input[name="argument[vote]"]:checked').val(),
33
+ topic_name: $('#argument_topic_name').val(), value: $('#argument_value').val()
34
+ }
35
+ }
36
+ ).success((data) =>
37
+ if data.errors
38
+ alert "#{Volontariat.t('arguments.save.failed')}: #{JSON.stringify(data.errors)}"
39
+ else
40
+ @sendAction 'leaveComposeArgumentModeAction'
41
+
42
+ unless @get('id')
43
+ @set 'topicName', ''
44
+ @set 'value', ''
45
+
46
+ @sendAction 'reloadAction'
47
+ alert Volontariat.t('arguments.save.successful')
48
+ ).fail((data) =>
49
+ alert "#{Volontariat.t('arguments.save.failed')}!"
50
+ )
51
+
52
+ destroy: (id) ->
53
+ @sendAction 'setDirtyAction'
54
+
55
+ if Volontariat.User.current() == undefined || @get('argument').user_id != Volontariat.User.current().id
56
+ alert Volontariat.t('general.exceptions.access_denied') + @get('argument').user_id + ',' + Volontariat.User.current().id
57
+ else
58
+ $.ajax("/api/v1/arguments/#{id}", type: 'DELETE').done((data) =>
59
+ @sendAction 'reloadAction'
60
+ alert Volontariat.t('arguments.destroy.successful')
61
+ ).fail((data) ->
62
+ alert Volontariat.t('arguments.destroy.failed')
63
+ )
@@ -0,0 +1,34 @@
1
+ Volontariat.BrainstormingIdeaCellComponent = Ember.Component.extend
2
+ editMode: (-> @get('selectedId') == @get('ideaId')).property('selectedId', 'ideaId')
3
+
4
+ actions:
5
+
6
+ cancel: ->
7
+ @sendAction 'leaveEditIdeaModeAction'
8
+
9
+ save: ->
10
+ @sendAction 'setDirtyAction'
11
+
12
+ $.ajax(
13
+ type: if @get('ideaId') then 'PUT' else 'POST'
14
+ url: '/api/v1/brainstorming_ideas' + if @get('ideaId') then "/#{@get('ideaId')}" else '',
15
+ data: {
16
+ user_slug: @get('userSlug'), brainstorming_slug: @get('slug'),
17
+ brainstorming_idea: {
18
+ name: $('#brainstorming_idea_name').val(), text: $('#brainstorming_idea_text').val()
19
+ }
20
+ }
21
+ ).success((data) =>
22
+ if data.errors
23
+ alert "#{Volontariat.t('brainstorming_ideas.save.failed')}: #{JSON.stringify(data.errors)}"
24
+ else
25
+ unless @get('ideaId')
26
+ @sendAction 'leaveNewIdeaModeAction'
27
+ @set 'ideaName', ''
28
+ @set 'ideaText', ''
29
+
30
+ @sendAction 'reloadAction'
31
+ alert Volontariat.t('brainstorming_ideas.save.successful')
32
+ ).fail((data) =>
33
+ alert "#{Volontariat.t('brainstorming_ideas.save.failed')}!"
34
+ )
@@ -0,0 +1,46 @@
1
+ Volontariat.BrainstormingIdeaVoteComponent = Ember.Component.extend
2
+ actions:
3
+ up: ->
4
+ if Volontariat.User.current() == undefined
5
+ alert Volontariat.t('general.exceptions.access_denied')
6
+
7
+ return
8
+
9
+ @set 'count', @get('count') + 1
10
+ @set 'vote', true
11
+
12
+ @sendAction 'setDirtyAction'
13
+
14
+ $.ajax(type: 'POST', url: '/api/v1/brainstorming_idea_votes', data: { idea_id: @get('ideaId') }).success((data) =>
15
+ if data.errors
16
+ alert "#{Volontariat.t('brainstorming_idea_votes.create.failed')}: #{JSON.stringify(data.errors)}"
17
+ @set 'count', @get('count') - 1
18
+ @set 'vote', false
19
+ else
20
+ @sendAction 'reloadAction'
21
+ alert Volontariat.t('brainstorming_idea_votes.create.successfully')
22
+ ).fail((data) =>
23
+ alert "#{Volontariat.t('brainstorming_idea_votes.create.failed')}!"
24
+ @set 'count', @get('count') - 1
25
+ @set 'vote', false
26
+ )
27
+
28
+ down: ->
29
+ if Volontariat.User.current() == undefined
30
+ alert Volontariat.t('general.exceptions.access_denied')
31
+
32
+ return
33
+
34
+ @set 'count', @get('count') - 1
35
+ @set 'vote', false
36
+
37
+ @sendAction 'setDirtyAction'
38
+
39
+ $.ajax("/api/v1/brainstorming_idea_votes/0", type: 'DELETE', data: { idea_id: @get('ideaId') }).done((data) =>
40
+ @sendAction 'reloadAction'
41
+ alert Volontariat.t('brainstorming_idea_votes.destroy.successful')
42
+ ).fail((data) =>
43
+ alert Volontariat.t('activerecord.errors.models.brainstorming_idea_vote.attributes.base.deletion_failed')
44
+ @set 'count', @get('count') + 1
45
+ @set 'vote', true
46
+ )
@@ -0,0 +1,79 @@
1
+ Volontariat.BrainstormingController = Ember.Controller.extend(Volontariat.DestroyBrainstorming,
2
+ ideas: [], newIdeaMode: false, newArgumentIdeaId: null, argumentId: null
3
+
4
+ anyIdeas: (-> @get('ideas').length > 0).property('ideas')
5
+
6
+ actions:
7
+
8
+ setDirty: ->
9
+ @set 'dirty', true
10
+ setTimeout (=>
11
+ @set 'dirty', false
12
+ ), 3000
13
+
14
+ save: ->
15
+ $.ajax(
16
+ type: if @get('slug') then 'PUT' else 'POST'
17
+ url: '/api/v1/brainstormings' + if @get('slug') then "/#{@get('slug')}" else '',
18
+ data: { brainstorming: { name: $('#brainstorming_name').val(), text: $('#brainstorming_text').val() } }
19
+ ).success((data) =>
20
+ if data.errors
21
+ Volontariat.alert 'danger', "#{Volontariat.t('brainstormings.save.failed')}: #{JSON.stringify(data.errors)}"
22
+ else
23
+ @transitionToRoute 'brainstorming', @get('userSlug'), data.brainstorming.slug
24
+ Volontariat.alert 'success', Volontariat.t('brainstormings.save.successful')
25
+ ).fail((data) =>
26
+ Volontariat.alert 'danger', "#{Volontariat.t('brainstormings.save.failed')}!"
27
+ )
28
+
29
+ newIdea: ->
30
+ @set 'ideaId', null
31
+ @set 'newIdeaMode', true
32
+
33
+ leaveNewIdeaMode: ->
34
+ @set 'newIdeaMode', false
35
+
36
+ editIdea: (id) ->
37
+ @set 'newIdeaMode', false
38
+ @set 'ideaId', id
39
+
40
+ leaveEditIdeaMode: ->
41
+ @set 'ideaId', null
42
+
43
+ newArgument: (ideaId) ->
44
+ @set 'newArgumentIdeaId', ideaId
45
+ @set 'argumentId', null
46
+
47
+ editArgument: (id, pro, contra, neutral) ->
48
+ @set 'newArgumentIdeaId', null
49
+ @set 'argumentId', id
50
+
51
+ setTimeout (->
52
+ if pro
53
+ $('input[name="argument[vote]"][value="1"]').click()
54
+ else if contra
55
+ $('input[name="argument[vote]"][value="0"]').click()
56
+ else if neutral
57
+ $('input[name="argument[vote]"][value=""]').click()
58
+ ), 100
59
+
60
+ leaveComposeArgumentMode: ->
61
+ @set 'newArgumentIdeaId', null
62
+ @set 'argumentId', null
63
+
64
+ destroyIdea: (ideaId, userId) ->
65
+ @send 'setDirty'
66
+
67
+ if Volontariat.User.current() == undefined || userId != Volontariat.User.current().id
68
+ alert 'Access denied!'
69
+ else
70
+ $.ajax("/api/v1/brainstorming_ideas/#{ideaId}", type: 'DELETE').done((data) =>
71
+ @send 'reload'
72
+ ).fail((data) ->
73
+ alert Volontariat.t('brainstorming_ideas.destroy.failed')
74
+ )
75
+
76
+ reload: ->
77
+ @transitionToRoute 'no_data'
78
+ @transitionToRoute 'brainstorming', @get('userSlug'), @get('slug')
79
+ )
@@ -0,0 +1,5 @@
1
+ Volontariat.UserBrainstormingsController = Ember.Controller.extend(Volontariat.HasCurrentUser, Volontariat.PaginationController, Volontariat.DestroyBrainstorming,
2
+ brainstormings: [], paginationResource: null, paginationRoute: 'user_brainstormings'
3
+
4
+ anyBrainstormings: (-> @get('brainstormings').length > 0).property('brainstormings')
5
+ )
@@ -0,0 +1,14 @@
1
+ Volontariat.DestroyBrainstorming = Em.Mixin.create
2
+ actions:
3
+
4
+ destroy: (user_slug, slug) ->
5
+ if Volontariat.User.current() == undefined || user_slug != Volontariat.User.current().slug
6
+ @transitionToRoute 'index'
7
+ Volontariat.alert 'danger', 'Access denied!'
8
+ else
9
+ $.ajax("/api/v1/brainstormings/#{slug}", type: 'DELETE').done((data) =>
10
+ @transitionToRoute 'no_data'
11
+ @transitionToRoute 'user_brainstormings', user_slug, 1
12
+ ).fail((data) ->
13
+ Volontariat.alert 'danger', 'Removing item failed!'
14
+ )
@@ -0,0 +1,43 @@
1
+ Volontariat.PaginationController = Em.Mixin.create
2
+ pages: [], totalPages: 1, page: 1, metadata: null
3
+
4
+ showFirstPageLink: (-> @get('page') != 1).property('page')
5
+ showPreviousPageLink: (-> @get('page') - 1 > 0).property('page')
6
+ previousPage: (-> @get('page') - 1).property('page')
7
+ showNextPageLink: (-> @get('page') + 1 <= @get('totalPages')).property('page')
8
+ nextPage: (-> @get('page') + 1).property('page')
9
+ showLastPageLink: (-> @get('page') != @get('totalPages')).property('page')
10
+
11
+ _goToPage: (page) ->
12
+ page = parseInt(page)
13
+ @set('page', page)
14
+ @set('totalPages', (@get('metadata') || @store.metadataFor(@get('paginationResource'))).pagination.total_pages)
15
+ pages = []; i = page - 4
16
+
17
+ while i <= page
18
+ pages.push i if i > 0
19
+ i += 1
20
+
21
+ i = page + 1
22
+
23
+ while i <= page + 4
24
+ pages.push i if i <= @get('totalPages')
25
+ i += 1
26
+
27
+ pages = pages.map((item) ->
28
+ number: item
29
+ isCurrent: item is page
30
+ )
31
+
32
+ @set('pages', pages)
33
+
34
+ actions:
35
+ goToPage: (page) ->
36
+ @_goToPage(page)
37
+
38
+ switch @get('paginationRoute')
39
+ when 'user_brainstormings'
40
+ @transitionToRoute @get('paginationRoute'), @get('userName'), page
41
+
42
+ goToPageWithoutRedirect: (page) ->
43
+ @_goToPage(page)
@@ -0,0 +1,6 @@
1
+ Volontariat.Brainstorming = DS.Model.extend
2
+ userId: DS.attr('integer')
3
+ userSlug: DS.attr('string')
4
+ slug: DS.attr('string')
5
+ name: DS.attr('string')
6
+ text: DS.attr('string')
@@ -0,0 +1,18 @@
1
+ Volontariat.User.reopenClass Volontariat.Singleton,
2
+ createCurrent: ->
3
+ userJson = PreloadStore.get("currentUser")
4
+
5
+ return userJson
6
+
7
+ # TODO: build record from JSON to save find query without posting it after next store commit
8
+ #return Volontariat.__container__.lookup('store:main').createRecord(userJson) if userJson
9
+
10
+ if userJson
11
+ return Volontariat.__container__.lookup('store:main').query('user', userJson.id)
12
+
13
+ Volontariat.__container__.lookup('store:main').query('user', userJson.id).then (current_user) ->
14
+ Volontariat.currentUser = current_user
15
+
16
+ return Volontariat.currentUser
17
+
18
+ null
@@ -0,0 +1,9 @@
1
+ Volontariat.Router.reopen location: 'hash'
2
+
3
+ Volontariat.Router.map ->
4
+ @_super
5
+
6
+ @route 'user_brainstormings', path: '/users/:user_slug/brainstormings/page/:page'
7
+ @route 'brainstorming', path: '/users/:user_slug/brainstormings/:slug'
8
+ @route 'new_brainstorming', path: '/users/:user_slug/brainstormings/new'
9
+ @route 'edit_brainstorming', path: '/users/:user_slug/brainstormings/:slug/edit'
@@ -0,0 +1,37 @@
1
+ Volontariat.BrainstormingRoute = Ember.Route.extend
2
+ model: (params) ->
3
+ $('#reload_alert').slideUp()
4
+
5
+ #@controllerFor('brainstorming').set 'reloading', false
6
+
7
+ MessageBus.subscribe "/brainstormings/#{params.slug}", (data) =>
8
+ #if @controllerFor('brainstorming').get('reloading')
9
+ # alert 'reloading still active'
10
+ #else if (
11
+ return if @controllerFor('brainstorming').get('dirty')
12
+
13
+ if (
14
+ @controllerFor('brainstorming').get('newIdeaMode') || @controllerFor('brainstorming').get('ideaId') ||
15
+ @controllerFor('brainstorming').get('newArgumentIdeaId') || @controllerFor('brainstorming').get('argumentId')
16
+ )
17
+ Volontariat.reload_alert data.message
18
+ else
19
+ #@controllerFor('brainstorming').set 'reloading', true
20
+ @transitionTo 'no_data'
21
+ @transitionTo 'brainstorming', params.user_slug, params.slug
22
+
23
+ @controllerFor('brainstorming').set 'slug', params.slug
24
+ @controllerFor('brainstorming').set 'userSlug', params.user_slug
25
+ @controllerFor('brainstorming').set 'ideaId', null
26
+
27
+ Ember.$.getJSON(
28
+ "/api/v1/brainstorming_ideas.json?user_slug=#{params.user_slug}&brainstorming_slug=#{params.slug}"
29
+ ).then (json) =>
30
+ @controllerFor('brainstorming').set 'ideas', json.brainstorming_ideas
31
+
32
+ Ember.$.getJSON("/api/v1/brainstormings/#{params.slug}?user_slug=#{params.user_slug}").then (json) =>
33
+ json.brainstorming
34
+
35
+ closeReloadAlert: (->
36
+ $('#reload_alert').slideUp()
37
+ ).on('deactivate')
@@ -0,0 +1,16 @@
1
+ Volontariat.EditBrainstormingRoute = Ember.Route.extend
2
+ controllerName: 'brainstorming'
3
+
4
+ model: (params) ->
5
+ if Volontariat.User.current() == undefined || params.user_slug != Volontariat.User.current().slug
6
+ @transitionTo 'index'
7
+ Volontariat.alert 'danger', 'Access denied!'
8
+ else
9
+ @controllerFor('brainstorming').set 'userSlug', params.user_slug
10
+ @controllerFor('brainstorming').set 'slug', params.slug
11
+
12
+ Ember.$.getJSON("/api/v1/brainstormings/#{params.slug}?user_slug=#{params.user_slug}").then (json) =>
13
+ @controllerFor('brainstorming').set 'name', json.brainstorming.name
14
+ @controllerFor('brainstorming').set 'text', json.brainstorming.text
15
+
16
+ json.brainstorming
@@ -0,0 +1,4 @@
1
+ Volontariat.IndexRoute = Ember.Route.extend
2
+ model: (params) ->
3
+ unless Volontariat.User.current() == undefined
4
+ @transitionTo 'user_brainstormings', Volontariat.User.current().slug, 1
@@ -0,0 +1,5 @@
1
+ Volontariat.NewBrainstormingRoute = Ember.Route.extend
2
+ controllerName: 'brainstorming'
3
+
4
+ model: (params) ->
5
+ @controllerFor('brainstorming').set 'userSlug', params.user_slug
@@ -0,0 +1,20 @@
1
+ Volontariat.UserBrainstormingsRoute = Ember.Route.extend
2
+ model: (params) ->
3
+ @controllerFor('user_brainstormings').set 'metadata', {}
4
+ @controllerFor('user_brainstormings').set 'userSlug', params.user_slug
5
+ @controllerFor('user_brainstormings').set 'page', params.page
6
+
7
+ @store.findRecord('user', params.user_slug).then (user) =>
8
+ @controllerFor('user_brainstormings').set 'userName', user.get('name')
9
+
10
+ Ember.$.getJSON(
11
+ "/api/v1/brainstormings.json?user_slug=#{params.user_slug}"
12
+ ).then (json) =>
13
+ @controllerFor('user_brainstormings').set 'metadata', json.meta
14
+ @controllerFor('user_brainstormings').set 'brainstormings', json.brainstormings
15
+
16
+ { name: params.user_name }
17
+
18
+ setupController: (controller, model) ->
19
+ controller.send('goToPageWithoutRedirect', controller.get('page'))
20
+ controller.set('model', model)