diff --git a/vendor/gems/discourse_poll/Gemfile b/vendor/gems/discourse_poll/Gemfile deleted file mode 100644 index fcb7fdc2990..00000000000 --- a/vendor/gems/discourse_poll/Gemfile +++ /dev/null @@ -1,13 +0,0 @@ -source 'https://rubygems.org' - -group :test do - gem 'rails' - gem 'rspec' - gem 'mocha' -end - -# TODO: We need our own gem server -gem 'discourse_plugin', path: '../discourse_plugin' - -# Specify your gem's dependencies in rails_multisite.gemspec -gemspec diff --git a/vendor/gems/discourse_poll/Gemfile.lock b/vendor/gems/discourse_poll/Gemfile.lock deleted file mode 100644 index 8f3075cc95d..00000000000 --- a/vendor/gems/discourse_poll/Gemfile.lock +++ /dev/null @@ -1,111 +0,0 @@ -PATH - remote: . - specs: - discourse_poll (0.0.1) - -PATH - remote: ../discourse_plugin - specs: - discourse_plugin (0.0.1) - -GEM - remote: https://rubygems.org/ - specs: - actionmailer (3.2.8) - actionpack (= 3.2.8) - mail (~> 2.4.4) - actionpack (3.2.8) - activemodel (= 3.2.8) - activesupport (= 3.2.8) - builder (~> 3.0.0) - erubis (~> 2.7.0) - journey (~> 1.0.4) - rack (~> 1.4.0) - rack-cache (~> 1.2) - rack-test (~> 0.6.1) - sprockets (~> 2.1.3) - activemodel (3.2.8) - activesupport (= 3.2.8) - builder (~> 3.0.0) - activerecord (3.2.8) - activemodel (= 3.2.8) - activesupport (= 3.2.8) - arel (~> 3.0.2) - tzinfo (~> 0.3.29) - activeresource (3.2.8) - activemodel (= 3.2.8) - activesupport (= 3.2.8) - activesupport (3.2.8) - i18n (~> 0.6) - multi_json (~> 1.0) - arel (3.0.2) - builder (3.0.3) - diff-lcs (1.1.3) - erubis (2.7.0) - hike (1.2.1) - i18n (0.6.1) - journey (1.0.4) - json (1.7.5) - mail (2.4.4) - i18n (>= 0.4.0) - mime-types (~> 1.16) - treetop (~> 1.4.8) - metaclass (0.0.1) - mime-types (1.19) - mocha (0.12.7) - metaclass (~> 0.0.1) - multi_json (1.3.6) - polyglot (0.3.3) - rack (1.4.1) - rack-cache (1.2) - rack (>= 0.4) - rack-ssl (1.3.2) - rack - rack-test (0.6.2) - rack (>= 1.0) - rails (3.2.8) - actionmailer (= 3.2.8) - actionpack (= 3.2.8) - activerecord (= 3.2.8) - activeresource (= 3.2.8) - activesupport (= 3.2.8) - bundler (~> 1.0) - railties (= 3.2.8) - railties (3.2.8) - actionpack (= 3.2.8) - activesupport (= 3.2.8) - rack-ssl (~> 1.3.2) - rake (>= 0.8.7) - rdoc (~> 3.4) - thor (>= 0.14.6, < 2.0) - rake (0.9.2.2) - rdoc (3.12) - json (~> 1.4) - rspec (2.11.0) - rspec-core (~> 2.11.0) - rspec-expectations (~> 2.11.0) - rspec-mocks (~> 2.11.0) - rspec-core (2.11.1) - rspec-expectations (2.11.3) - diff-lcs (~> 1.1.3) - rspec-mocks (2.11.3) - sprockets (2.1.3) - hike (~> 1.2) - rack (~> 1.0) - tilt (~> 1.1, != 1.3.0) - thor (0.16.0) - tilt (1.3.3) - treetop (1.4.10) - polyglot - polyglot (>= 0.3.1) - tzinfo (0.3.33) - -PLATFORMS - ruby - -DEPENDENCIES - discourse_plugin! - discourse_poll! - mocha - rails - rspec diff --git a/vendor/gems/discourse_poll/LICENSE b/vendor/gems/discourse_poll/LICENSE deleted file mode 100644 index 1561959f642..00000000000 --- a/vendor/gems/discourse_poll/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2012 Robin Ward - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/vendor/gems/discourse_poll/README.md b/vendor/gems/discourse_poll/README.md deleted file mode 100644 index 4ce99b594b6..00000000000 --- a/vendor/gems/discourse_poll/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Discourse Poll Gem - -Include to give Discourse the ability to support polls. diff --git a/vendor/gems/discourse_poll/Rakefile b/vendor/gems/discourse_poll/Rakefile deleted file mode 100644 index 56bb7292a1e..00000000000 --- a/vendor/gems/discourse_poll/Rakefile +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env rake -require "bundler/gem_tasks" -require "rspec/core/rake_task" - -RSpec::Core::RakeTask.new(:test) do |spec| - spec.pattern = 'spec/*_spec.rb' -end diff --git a/vendor/gems/discourse_poll/discourse_poll.gemspec b/vendor/gems/discourse_poll/discourse_poll.gemspec deleted file mode 100644 index 4a024a83703..00000000000 --- a/vendor/gems/discourse_poll/discourse_poll.gemspec +++ /dev/null @@ -1,20 +0,0 @@ -# -*- encoding: utf-8 -*- -require File.expand_path('../lib/discourse_poll/version', __FILE__) - -Gem::Specification.new do |gem| - gem.authors = ["Robin Ward"] - gem.email = ["robin.ward@gmail.com"] - gem.description = %q{TODO: Write a gem description} - gem.summary = %q{TODO: Write a gem summary} - gem.homepage = "" - - # when this is extracted comment it back in, prd has no .git - # gem.files = `git ls-files`.split($\) - gem.files = Dir['README*','LICENSE','lib/**/*.rb'] - - gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) } - gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) - gem.name = "discourse_poll" - gem.require_paths = ["lib"] - gem.version = DiscoursePoll::VERSION -end diff --git a/vendor/gems/discourse_poll/lib/discourse_poll.rb b/vendor/gems/discourse_poll/lib/discourse_poll.rb deleted file mode 100644 index 5126027de7c..00000000000 --- a/vendor/gems/discourse_poll/lib/discourse_poll.rb +++ /dev/null @@ -1,5 +0,0 @@ -require 'discourse_poll/version' -require 'discourse_poll/engine' if defined?(Rails) && (!Rails.env.test?) - - -I18n.load_path << "#{File.dirname(__FILE__)}/discourse_poll/locale/en.yml" \ No newline at end of file diff --git a/vendor/gems/discourse_poll/lib/discourse_poll/engine.rb b/vendor/gems/discourse_poll/lib/discourse_poll/engine.rb deleted file mode 100644 index c8cc053c683..00000000000 --- a/vendor/gems/discourse_poll/lib/discourse_poll/engine.rb +++ /dev/null @@ -1,21 +0,0 @@ -require 'discourse_poll/plugin' - -module DiscoursePoll - class Engine < Rails::Engine - - engine_name 'discourse_poll' - - initializer "discourse_poll.configure_rails_initialization" do |app| - - app.config.after_initialize do - DiscoursePluginRegistry.setup(DiscoursePoll::Plugin) - end - - app.config.to_prepare do - DiscoursePoll::Plugin.include_mixins - end - - end - - end -end diff --git a/vendor/gems/discourse_poll/lib/discourse_poll/locale/en.yml b/vendor/gems/discourse_poll/lib/discourse_poll/locale/en.yml deleted file mode 100644 index a3611b374ca..00000000000 --- a/vendor/gems/discourse_poll/lib/discourse_poll/locale/en.yml +++ /dev/null @@ -1,47 +0,0 @@ -en: - - js: - poll: - title: "Poll" - description: "This topic is a poll. Vote for posts by clicking the vote button. Posts with the most votes will rise to the top!" - - vote: - voted: 'voted' - title: 'vote' - help: 'vote for this post' - who_voted: 'click to see who voted for this option' - cant: "Sorry, you've already voted." - not_logged_in: "You must be logged in to vote." - - topic_statuses: - poll: - help: "this topic is a poll" - - topic: - reply: - poll: "Add Poll Option" - - post: - archetypes: - poll: - public: "Other users can see what you voted for." - private: "Your vote will be kept private." - single_vote: "You may only vote once." - many_votes: "You may vote for as many options as you like." - - post_action_types: - vote: - title: 'Vote' - description: 'Vote for this post' - long_form: 'voted for this post' - - archetypes: - poll: - title: "Poll Topic" - options: - single_vote: - title: "Only allow one vote" - description: "A user may only vote on one post." - private_poll: - title: "Voting is Private" - description: "Hide who voted for what choice." diff --git a/vendor/gems/discourse_poll/lib/discourse_poll/plugin.rb b/vendor/gems/discourse_poll/lib/discourse_poll/plugin.rb deleted file mode 100644 index efee17d7f49..00000000000 --- a/vendor/gems/discourse_poll/lib/discourse_poll/plugin.rb +++ /dev/null @@ -1,49 +0,0 @@ -require 'discourse_plugin' - -module DiscoursePoll - class Plugin < DiscoursePlugin - - MAX_SORT_ORDER = 2147483647 - POLL_OPTIONS = {private_poll: 1, single_vote: 1} - - def setup - - # Add our Assets - register_js('discourse_poll') - register_css('discourse_poll') - - # Create the poll archetype - register_archetype('poll', POLL_OPTIONS) - - # Callbacks - listen_for(:before_create_post) - end - - # Callbacks below - def before_create_post(post) - return unless post.archetype == 'poll' - if post.post_number == 1 - post.sort_order = 1 - else - post.sort_order = DiscoursePoll::Plugin::MAX_SORT_ORDER - end - end - - module TopicViewSerializerMixin - - def self.included(base) - base.attributes :private_poll, :single_vote - end - - def private_poll - object.topic.has_meta_data_boolean?(:private_poll) - end - - def single_vote - object.topic.has_meta_data_boolean?(:single_vote) - end - - end - - end -end diff --git a/vendor/gems/discourse_poll/lib/discourse_poll/version.rb b/vendor/gems/discourse_poll/lib/discourse_poll/version.rb deleted file mode 100644 index 2540fa414ee..00000000000 --- a/vendor/gems/discourse_poll/lib/discourse_poll/version.rb +++ /dev/null @@ -1,3 +0,0 @@ -module DiscoursePoll - VERSION = "0.0.1" -end diff --git a/vendor/gems/discourse_poll/spec/plugin_spec.rb b/vendor/gems/discourse_poll/spec/plugin_spec.rb deleted file mode 100644 index d73cd9a711e..00000000000 --- a/vendor/gems/discourse_poll/spec/plugin_spec.rb +++ /dev/null @@ -1,66 +0,0 @@ -require 'spec_helper' -require 'discourse_poll/plugin' -require 'ostruct' - -describe DiscoursePoll::Plugin do - - let(:registry) { stub_everything } - let(:plugin) { DiscoursePoll::Plugin.new(registry) } - - context '.setup' do - - it 'registers its js' do - plugin.expects(:register_js) - plugin.setup - end - - it 'registers its css' do - plugin.expects(:register_css) - plugin.setup - end - - it 'registers a poll archetype' do - plugin.expects(:register_archetype).with('poll', DiscoursePoll::Plugin::POLL_OPTIONS) - plugin.setup - end - - it 'registers a handler on post_create' do - plugin.expects(:listen_for).with(:before_create_post) - plugin.setup - end - end - - - context ".before_create_post" do - - context 'without a poll' do - let(:post) { OpenStruct.new(archetype: 'something-else', post_number: 1000) } - - it "doesn't set the sort order" do - plugin.before_create_post(post) - post.sort_order.should_not == DiscoursePoll::Plugin::MAX_SORT_ORDER - end - - end - - context 'with a poll' do - let(:post) { OpenStruct.new(archetype: 'poll') } - - it 'sets the sort order to 1 when the post_number is 1' do - post.post_number = 1 - plugin.before_create_post(post) - post.sort_order.should == 1 - end - - it 'sets the sort order to MAX_SORT_ORDER when the post_number is not 1' do - post.post_number = 1000 - plugin.before_create_post(post) - post.sort_order.should == DiscoursePoll::Plugin::MAX_SORT_ORDER - end - - end - - end - - -end diff --git a/vendor/gems/discourse_poll/spec/spec_helper.rb b/vendor/gems/discourse_poll/spec/spec_helper.rb deleted file mode 100644 index aaa32597f1f..00000000000 --- a/vendor/gems/discourse_poll/spec/spec_helper.rb +++ /dev/null @@ -1,13 +0,0 @@ -require 'rubygems' -require 'rails' - -ENV["RAILS_ENV"] ||= 'test' - -RSpec.configure do |config| - - config.mock_framework = :mocha - config.color_enabled = true - -end - - diff --git a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll.js b/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll.js deleted file mode 100644 index 7fd6350629f..00000000000 --- a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll.js +++ /dev/null @@ -1,3 +0,0 @@ -//= require_tree ./discourse_poll - - diff --git a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/models/post.js b/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/models/post.js deleted file mode 100644 index eeb0b25a9ac..00000000000 --- a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/models/post.js +++ /dev/null @@ -1,45 +0,0 @@ -(function() { - window.Discourse.Post.reopen({ - - voteAction: function () { - return this.get('actionByName.vote'); - }.property('actionByName.vote'), - - // We never show "replies below" for polls. - replyBelowUrl: function() { - if (this.get('topic.archetype') === 'poll') return null; - return this.get('replyBelowUrlComputed'); - }.property('replyBelowUrlComputed', 'topic.archetype'), - - // Vote for this post - vote: function() { - voteType = Discourse.get('site.post_action_types').findProperty('name_key', 'vote'); - this.get('voteAction').act(); - Em.run.next(function () { - this.set('topic.voted_in_topic', true); - }.bind(this)); - return false; - }, - - cantVote: function() { - - if (!Discourse.get('currentUser')) { - bootbox.alert(I18n.t('vote.not_logged_in')); - return false; - } - - bootbox.alert(I18n.t('vote.cant')); - return false; - }, - - undoVote: function() { - voteType = Discourse.get('site.post_action_types').findProperty('name_key', 'vote'); - this.get('voteAction').undo(); - Em.run.next(function () { - this.set('topic.voted_in_topic', false); - }.bind(this)); - return false; - } - - }); -}).call(this); diff --git a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/models/post_action_type.js b/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/models/post_action_type.js deleted file mode 100644 index f0d42dca6f5..00000000000 --- a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/models/post_action_type.js +++ /dev/null @@ -1,9 +0,0 @@ -(function() { - Discourse.PostActionType.reopen({ - - isVote: function() { - return (this.get('name_key') === 'vote'); - }.property('name_key') - - }); -}).call(this); diff --git a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/templates/about_poll.js.handlebars b/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/templates/about_poll.js.handlebars deleted file mode 100644 index ad54b908f33..00000000000 --- a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/templates/about_poll.js.handlebars +++ /dev/null @@ -1,15 +0,0 @@ -

{{i18n poll.title}}

-

{{{i18n poll.description}}}

- - diff --git a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/templates/poll_controls.js.handlebars b/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/templates/poll_controls.js.handlebars deleted file mode 100644 index 4a2f8dd2247..00000000000 --- a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/templates/poll_controls.js.handlebars +++ /dev/null @@ -1,17 +0,0 @@ -{{#if view.showVotes}} - {{#if view.canSeeWhoVoted}} - {{view.post.voteAction.count}} - {{else}} -
{{view.post.voteAction.count}}
- {{/if}} - - {{#if view.showVoteControls}} - - {{else}} - - {{/if}} - - {{#if view.post.voteAction.can_undo}} - undo - {{/if}} -{{/if}} diff --git a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/post_view.js b/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/post_view.js deleted file mode 100644 index b325fe265b5..00000000000 --- a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/post_view.js +++ /dev/null @@ -1,18 +0,0 @@ -(function() { - window.Discourse.PostView.reopen({ - - extraClass: function() { - if (this.get('showVotes')) return 'votes'; - return null; - }.property('showVotes'), - - showVotes: function() { - var post = this.get('post'); - if (post.get('post_number') === 1) return; - if (post.get('post_type') !== Discourse.Post.REGULAR_TYPE) return; - if (post.get('reply_to_post_number')) return; - return (post.get('topic.archetype') === 'poll'); - }.property('post.post_number', 'post.post_type', 'post.reply_to_post_number') - - }) -}).call(this); diff --git a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/prepend_post_view.js b/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/prepend_post_view.js deleted file mode 100644 index 4b17f200f59..00000000000 --- a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/prepend_post_view.js +++ /dev/null @@ -1,12 +0,0 @@ -(function() { - - Discourse.PrependPostView.prototype.on("prependPostContent", function(event) { - - // Append our template for the poll controls - if (this.get('controller.content.archetype') == 'poll') { - this.get('childViews').pushObject(Discourse.VoteControlsView.create()); - } - - }); - -}).call(this); diff --git a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/topic_footer_buttons_view.js b/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/topic_footer_buttons_view.js deleted file mode 100644 index 9a4b87d7976..00000000000 --- a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/topic_footer_buttons_view.js +++ /dev/null @@ -1,9 +0,0 @@ -(function() { - window.Discourse.TopicFooterButtonsView.reopen({ - - replyButtonTextPoll: function() { - return I18n.t("topic.reply.poll"); - }.property() - - }); -}).call(this); diff --git a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/topic_information_view.js b/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/topic_information_view.js deleted file mode 100644 index 976341d8418..00000000000 --- a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/topic_information_view.js +++ /dev/null @@ -1,14 +0,0 @@ -(function() { - - Discourse.TopicSummaryView.prototype.on("appendSummaryInformation", function(childViews) { - // Add the poll information - if (this.get('topic.archetype') === 'poll') { - childViews.pushObject(Em.View.create({ - tagName: 'section', - classNames: ['information'], - templateName: 'discourse_poll/templates/about_poll' - })); - } - }); - -}).call(this); diff --git a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/topic_status_view.js b/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/topic_status_view.js deleted file mode 100644 index ca5a9d49aeb..00000000000 --- a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/topic_status_view.js +++ /dev/null @@ -1,12 +0,0 @@ -(function() { - - Discourse.TopicStatusView.prototype.on("addCustomIcon", function(buffer) { - - // Add check icon for polls - if (this.get('topic.archetype') === 'poll') { - this.renderIcon(buffer, 'square-o', 'poll'); - } - - }); - -}).call(this); diff --git a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/vote_controls_view.js b/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/vote_controls_view.js deleted file mode 100644 index 33809bbda8a..00000000000 --- a/vendor/gems/discourse_poll/vendor/assets/javascripts/discourse_poll/views/vote_controls_view.js +++ /dev/null @@ -1,41 +0,0 @@ -(function() { - window.Discourse.VoteControlsView = Em.View.extend({ - templateName: 'discourse_poll/templates/poll_controls', - classNameBindings: ['pollControlsClass'], - postBinding: 'parentView.post', - showVotesBinding: 'parentView.parentView.showVotes', - - canSeeWhoVoted: function() { - if (this.get('post.voteAction.count') === 0) return false; - return !this.get('controller.content.private_poll'); - }.property('post.voteAction.count'), - - showVoteControls: function() { - if (!Discourse.get('currentUser')) return false; - if (this.get('post.post_number') === 1) return; - if (this.get('post.topic.single_vote') && this.get('post.topic.voted_in_topic')) return false; - if (this.get('post.topic.archived')) return false; - return true; - }.property('post.post_number', 'post.topic.archived', 'post.topic.single_vote', 'post.topic.voted_in_topic'), - - pollControlsClass: function() { - if (this.get('post.post_number') === 1) return; - if (this.get('post.reply_to_post_number')) return; - return 'poll-controls'; - }.property('showVoteControls'), - - canUndo: function() { - return true; - }.property(), - - voteDisabled: function() { - return !this.get('post.voteAction.can_act'); - }.property('post.voteAction.can_act'), - - voteButtonText: function() { - if (!this.get('post.voteAction.can_act')) return I18n.t("vote.voted"); - return I18n.t("vote.title"); - }.property('post.voteAction.can_act') - - }) -}).call(this); diff --git a/vendor/gems/discourse_poll/vendor/assets/stylesheets/discourse_poll.css.sass b/vendor/gems/discourse_poll/vendor/assets/stylesheets/discourse_poll.css.sass deleted file mode 100644 index 3d3741b3555..00000000000 --- a/vendor/gems/discourse_poll/vendor/assets/stylesheets/discourse_poll.css.sass +++ /dev/null @@ -1,53 +0,0 @@ -#main - .votes - aside - margin-left: 55px !important - blockquote - margin-left: 0 - - blockquote - margin-left: 55px - .onebox-result - margin-left: 55px - - .topic-body - .contents.votes - min-height: 120px !important - - .poll-controls - width: 50px - float: left - height: 100% - margin-right: 5px - padding-top: 10px - text-align: center - - .undo - font-size: 12px - - .total - color: #000 - font-size: 30px - line-height: 20px - text-decoration: none - margin: 0 - padding: 0 - - .total.chosen - color: #0f0 - - button - margin: 10px 0 0 0 - font-size: 14px - padding: 0 3px - - i - font-size: 17px - margin: 4px 0 0 0 - padding: 0 - display: inline-block - - &:disabled - background-color: #070 - color: #fff - text-shadow: none !important \ No newline at end of file