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.
- checksums.yaml +7 -0
- data/README.md +3 -2
- data/app/assets/javascripts/voluntary_brainstorming/app.js.coffee +8 -0
- data/app/assets/javascripts/voluntary_brainstorming/application.js +4 -0
- data/app/assets/javascripts/voluntary_brainstorming/components/brainstorming_idea_argument_component.js.coffee +63 -0
- data/app/assets/javascripts/voluntary_brainstorming/components/brainstorming_idea_cell_component.js.coffee +34 -0
- data/app/assets/javascripts/voluntary_brainstorming/components/brainstorming_idea_vote_component.js.coffee +46 -0
- data/app/assets/javascripts/voluntary_brainstorming/controllers/brainstorming_controller.js.coffee +79 -0
- data/app/assets/javascripts/voluntary_brainstorming/controllers/user_brainstormings_controller.js.coffee +5 -0
- data/app/assets/javascripts/voluntary_brainstorming/mixins/destroy_brainstorming.js.coffee +14 -0
- data/app/assets/javascripts/voluntary_brainstorming/mixins/pagination_controller.js.coffee +43 -0
- data/app/assets/javascripts/voluntary_brainstorming/models/brainstorming.js.coffee +6 -0
- data/app/assets/javascripts/voluntary_brainstorming/models/user.js.coffee +18 -0
- data/app/assets/javascripts/voluntary_brainstorming/router.js.coffee +9 -0
- data/app/assets/javascripts/voluntary_brainstorming/routes/brainstorming_route.js.coffee +37 -0
- data/app/assets/javascripts/voluntary_brainstorming/routes/edit_brainstorming_route.js.coffee +16 -0
- data/app/assets/javascripts/voluntary_brainstorming/routes/index_route.js.coffee +4 -0
- data/app/assets/javascripts/voluntary_brainstorming/routes/new_brainstorming_route.js.coffee +5 -0
- data/app/assets/javascripts/voluntary_brainstorming/routes/user_brainstormings_route.js.coffee +20 -0
- data/app/assets/javascripts/voluntary_brainstorming/templates/application.handlebars.erb +20 -0
- data/app/assets/javascripts/voluntary_brainstorming/templates/brainstorming.js.handlebars +77 -0
- data/app/assets/javascripts/voluntary_brainstorming/templates/brainstorming_form.js.handlebars +18 -0
- data/app/assets/javascripts/voluntary_brainstorming/templates/brainstorming_idea_form.js.handlebars +19 -0
- data/app/assets/javascripts/voluntary_brainstorming/templates/components/brainstorming-idea-argument.js.handlebars +86 -0
- data/app/assets/javascripts/voluntary_brainstorming/templates/components/brainstorming-idea-cell.js.handlebars +7 -0
- data/app/assets/javascripts/voluntary_brainstorming/templates/components/brainstorming-idea-vote.js.handlebars +6 -0
- data/app/assets/javascripts/voluntary_brainstorming/templates/edit_brainstorming.js.handlebars +3 -0
- data/app/assets/javascripts/voluntary_brainstorming/templates/navigation.js.handlebars +28 -0
- data/app/assets/javascripts/voluntary_brainstorming/templates/new_brainstorming.js.handlebars +3 -0
- data/app/assets/javascripts/voluntary_brainstorming/templates/shared/_pagination.js.handlebars +23 -0
- data/app/assets/javascripts/voluntary_brainstorming/templates/user_brainstormings.js.handlebars +33 -0
- data/app/assets/stylesheets/voluntary_brainstorming/application.css +13 -0
- data/app/controllers/product/brainstorming_controller.rb +16 -0
- data/app/controllers/voluntary/api/v1/brainstorming_idea_votes_controller.rb +38 -0
- data/app/controllers/voluntary/api/v1/brainstorming_ideas_controller.rb +66 -0
- data/app/controllers/voluntary/api/v1/brainstormings_controller.rb +70 -0
- data/app/models/brainstorming.rb +18 -0
- data/app/models/brainstorming_idea.rb +53 -0
- data/app/models/brainstorming_idea_vote.rb +32 -0
- data/app/models/product/brainstorming.rb +2 -0
- data/app/serializers/brainstorming_idea_serializer.rb +15 -0
- data/app/serializers/brainstorming_idea_vote_serializer.rb +11 -0
- data/app/serializers/brainstorming_serializer.rb +7 -0
- data/app/views/product/brainstorming/index.html.erb +0 -0
- data/config/locales/resources/brainstorming/en.yml +26 -0
- data/config/locales/resources/brainstorming_idea_votes/en.yml +18 -0
- data/config/locales/resources/brainstorming_ideas/en.yml +31 -0
- data/config/routes.rb +9 -0
- data/db/migrate/20150818181847_add_brainstorming_product.rb +51 -0
- data/lib/voluntary_brainstorming.rb +5 -1
- data/lib/voluntary_brainstorming/concerns/model/argument/publishes_changes_to_brainstorming.rb +49 -0
- data/lib/voluntary_brainstorming/concerns/model/user/has_brainstormings.rb +17 -0
- data/lib/voluntary_brainstorming/engine.rb +13 -0
- data/lib/voluntary_brainstorming/version.rb +1 -1
- metadata +322 -37
- data/MIT-LICENSE +0 -20
checksums.yaml
ADDED
@@ -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
|
-
|
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,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
|
+
)
|
data/app/assets/javascripts/voluntary_brainstorming/controllers/brainstorming_controller.js.coffee
ADDED
@@ -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,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
|
data/app/assets/javascripts/voluntary_brainstorming/routes/user_brainstormings_route.js.coffee
ADDED
@@ -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)
|