From 8b89cc511784ecf74d87a3664bdb9c1fc0e46249 Mon Sep 17 00:00:00 2001 From: David Gil Date: Sat, 15 Aug 2015 18:57:27 +0200 Subject: [PATCH] adds some js to click-and-add tags to the debate's tag list input --- app/assets/javascripts/application.js | 1 + app/assets/javascripts/tags.js.coffee | 21 +++++++++++++++++++++ app/views/debates/_form.html.erb | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 app/assets/javascripts/tags.js.coffee diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index ed87ec326..11bbe4cad 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -24,6 +24,7 @@ var initialize_modules = function() { App.Comments.initialize(); App.Users.initialize(); App.Votes.initialize(); + App.Tags.initialize(); }; $(function(){ diff --git a/app/assets/javascripts/tags.js.coffee b/app/assets/javascripts/tags.js.coffee new file mode 100644 index 000000000..12c4c3115 --- /dev/null +++ b/app/assets/javascripts/tags.js.coffee @@ -0,0 +1,21 @@ +App.Tags = + + initialize: -> + $tag_input = $('input#debate_tag_list') + + $('body .js-add-tag-link').each -> + $this = $(this) + + unless $this.data('initialized') is 'yes' + $this.on('click', -> + name = $(this).text() + current_tags = $tag_input.val().split(',').filter(Boolean) + + if $.inArray(name, current_tags) >= 0 + current_tags.splice($.inArray(name, current_tags), 1); + else + current_tags.push name + + $tag_input.val(current_tags.join(',')) + false + ).data 'initialized', 'yes' diff --git a/app/views/debates/_form.html.erb b/app/views/debates/_form.html.erb index 402c0388a..2585e6fed 100644 --- a/app/views/debates/_form.html.erb +++ b/app/views/debates/_form.html.erb @@ -28,7 +28,7 @@ <%= t("debates.form.tags_instructions") %> <% @featured_tags.each do |tag| %> - <%= tag.name %> + <%= tag.name %> <% end %> <%= f.text_field :tag_list, value: @debate.tag_list.to_s %>