├── log
└── .gitkeep
├── .rspec
├── lib
├── tasks
│ └── .gitkeep
└── assets
│ └── .gitkeep
├── app
├── mailers
│ └── .gitkeep
├── models
│ ├── .gitkeep
│ ├── major_category.rb
│ ├── minor_category.rb
│ ├── manufacturer.rb
│ └── item.rb
├── .DS_Store
├── assets
│ ├── .DS_Store
│ ├── images
│ │ ├── .DS_Store
│ │ ├── dish.png
│ │ ├── logo.png
│ │ ├── gray_jean.png
│ │ ├── tupperware.png
│ │ ├── blue_pattern.png
│ │ ├── fridge_logo.png
│ │ └── grocery_list.png
│ ├── stylesheets
│ │ ├── application.css
│ │ ├── custom.css.scss
│ │ └── m-buttons.css
│ └── javascripts
│ │ └── application.js
├── controllers
│ ├── application_controller.rb
│ └── static_pages_controller.rb
├── views
│ ├── layouts
│ │ ├── _shim.html.erb
│ │ ├── _header.html.erb
│ │ └── application.html.erb
│ └── static_pages
│ │ └── home.html.erb
└── helpers
│ └── application_helper.rb
├── vendor
├── plugins
│ └── .gitkeep
└── assets
│ ├── javascripts
│ └── .gitkeep
│ └── stylesheets
│ └── .gitkeep
├── README.md
├── .DS_Store
├── public
├── favicon.ico
├── robots.txt
├── 500.html
├── 422.html
└── 404.html
├── config
├── routes.rb
├── environment.rb
├── boot.rb
├── initializers
│ ├── mime_types.rb
│ ├── session_store.rb
│ ├── backtrace_silencers.rb
│ ├── secret_token.rb
│ ├── wrap_parameters.rb
│ └── inflections.rb
├── locales
│ └── en.yml
├── database.yml
├── environments
│ ├── development.rb
│ ├── test.rb
│ └── production.rb
└── application.rb
├── spec
├── models
│ ├── item_spec.rb
│ ├── manufacturer_spec.rb
│ ├── major_category_spec.rb
│ └── minor_category_spec.rb
└── spec_helper.rb
├── config.ru
├── db
├── migrate
│ ├── 20130303091521_remove_major_category_from_items.rb
│ ├── 20130303090918_create_major_categories.rb
│ ├── 20130303091208_create_minor_categories.rb
│ ├── 20130303085754_create_manufacturers.rb
│ └── 20130303085226_create_items.rb
├── seeds.rb
└── schema.rb
├── doc
└── README_FOR_APP
├── Rakefile
├── script
└── rails
├── .gitignore
├── Gemfile
└── Gemfile.lock
/log/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.rspec:
--------------------------------------------------------------------------------
1 | --color
2 |
--------------------------------------------------------------------------------
/lib/tasks/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/mailers/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/models/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/lib/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/plugins/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/assets/javascripts/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | **FridgeChart** - Home Inventory Management System
--------------------------------------------------------------------------------
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/fc/master/.DS_Store
--------------------------------------------------------------------------------
/app/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/fc/master/app/.DS_Store
--------------------------------------------------------------------------------
/app/assets/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/fc/master/app/assets/.DS_Store
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/fc/master/public/favicon.ico
--------------------------------------------------------------------------------
/config/routes.rb:
--------------------------------------------------------------------------------
1 | Fc::Application.routes.draw do
2 | root to: 'static_pages#home'
3 | end
4 |
--------------------------------------------------------------------------------
/app/assets/images/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/fc/master/app/assets/images/.DS_Store
--------------------------------------------------------------------------------
/app/assets/images/dish.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/fc/master/app/assets/images/dish.png
--------------------------------------------------------------------------------
/app/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/fc/master/app/assets/images/logo.png
--------------------------------------------------------------------------------
/app/assets/images/gray_jean.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/fc/master/app/assets/images/gray_jean.png
--------------------------------------------------------------------------------
/app/assets/images/tupperware.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/fc/master/app/assets/images/tupperware.png
--------------------------------------------------------------------------------
/app/assets/images/blue_pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/fc/master/app/assets/images/blue_pattern.png
--------------------------------------------------------------------------------
/app/assets/images/fridge_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/fc/master/app/assets/images/fridge_logo.png
--------------------------------------------------------------------------------
/app/assets/images/grocery_list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diasks2/fc/master/app/assets/images/grocery_list.png
--------------------------------------------------------------------------------
/app/controllers/application_controller.rb:
--------------------------------------------------------------------------------
1 | class ApplicationController < ActionController::Base
2 | protect_from_forgery
3 | end
4 |
--------------------------------------------------------------------------------
/app/controllers/static_pages_controller.rb:
--------------------------------------------------------------------------------
1 | class StaticPagesController < ApplicationController
2 | def home
3 | end
4 | end
5 |
--------------------------------------------------------------------------------
/app/models/major_category.rb:
--------------------------------------------------------------------------------
1 | class MajorCategory < ActiveRecord::Base
2 | attr_accessible :name
3 |
4 | has_many :minor_categories
5 | end
6 |
--------------------------------------------------------------------------------
/app/views/layouts/_shim.html.erb:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spec/models/item_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe Item do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/spec/models/manufacturer_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe Manufacturer do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/spec/models/major_category_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe MajorCategory do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/spec/models/minor_category_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe MinorCategory do
4 | pending "add some examples to (or delete) #{__FILE__}"
5 | end
6 |
--------------------------------------------------------------------------------
/config.ru:
--------------------------------------------------------------------------------
1 | # This file is used by Rack-based servers to start the application.
2 |
3 | require ::File.expand_path('../config/environment', __FILE__)
4 | run Fc::Application
5 |
--------------------------------------------------------------------------------
/config/environment.rb:
--------------------------------------------------------------------------------
1 | # Load the rails application
2 | require File.expand_path('../application', __FILE__)
3 |
4 | # Initialize the rails application
5 | Fc::Application.initialize!
6 |
--------------------------------------------------------------------------------
/app/models/minor_category.rb:
--------------------------------------------------------------------------------
1 | class MinorCategory < ActiveRecord::Base
2 | attr_accessible :name, :major_category_id
3 |
4 | has_many :items
5 | belongs_to :major_category
6 | end
7 |
--------------------------------------------------------------------------------
/db/migrate/20130303091521_remove_major_category_from_items.rb:
--------------------------------------------------------------------------------
1 | class RemoveMajorCategoryFromItems < ActiveRecord::Migration
2 | def change
3 | remove_column :items, :major_category_id
4 | end
5 | end
--------------------------------------------------------------------------------
/app/models/manufacturer.rb:
--------------------------------------------------------------------------------
1 | class Manufacturer < ActiveRecord::Base
2 | attr_accessible :name, :hq_phone_number, :hq_address, :url, :hq_country, :sic_industry, :naics_industry
3 |
4 | has_many :items
5 |
6 | end
7 |
--------------------------------------------------------------------------------
/config/boot.rb:
--------------------------------------------------------------------------------
1 | require 'rubygems'
2 |
3 | # Set up gems listed in the Gemfile.
4 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
5 |
6 | require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
7 |
--------------------------------------------------------------------------------
/doc/README_FOR_APP:
--------------------------------------------------------------------------------
1 | Use this README file to introduce your application and point to useful places in the API for learning more.
2 | Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries.
3 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2 | #
3 | # To ban all spiders from the entire site uncomment the next two lines:
4 | # User-Agent: *
5 | # Disallow: /
6 |
--------------------------------------------------------------------------------
/config/initializers/mime_types.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new mime types for use in respond_to blocks:
4 | # Mime::Type.register "text/richtext", :rtf
5 | # Mime::Type.register_alias "text/html", :iphone
6 |
--------------------------------------------------------------------------------
/config/locales/en.yml:
--------------------------------------------------------------------------------
1 | # Sample localization file for English. Add more files in this directory for other locales.
2 | # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3 |
4 | en:
5 | hello: "Hello world"
6 |
--------------------------------------------------------------------------------
/db/migrate/20130303090918_create_major_categories.rb:
--------------------------------------------------------------------------------
1 | class CreateMajorCategories < ActiveRecord::Migration
2 | def change
3 | create_table :major_categories do |t|
4 | t.string :name
5 |
6 | t.timestamps
7 | end
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/app/helpers/application_helper.rb:
--------------------------------------------------------------------------------
1 | module ApplicationHelper
2 |
3 | def full_title(page_title)
4 | base_title = "FridgeChart"
5 | if page_title.empty?
6 | base_title
7 | else
8 | "#{base_title} | #{page_title}"
9 | end
10 | end
11 | end
12 |
--------------------------------------------------------------------------------
/Rakefile:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env rake
2 | # Add your own tasks in files placed in lib/tasks ending in .rake,
3 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
4 |
5 | require File.expand_path('../config/application', __FILE__)
6 |
7 | Fc::Application.load_tasks
8 |
--------------------------------------------------------------------------------
/db/migrate/20130303091208_create_minor_categories.rb:
--------------------------------------------------------------------------------
1 | class CreateMinorCategories < ActiveRecord::Migration
2 | def change
3 | create_table :minor_categories do |t|
4 | t.string :name
5 | t.integer :major_category_id
6 |
7 | t.timestamps
8 | end
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/app/models/item.rb:
--------------------------------------------------------------------------------
1 | class Item < ActiveRecord::Base
2 | attr_accessible :name, :manufacturer_id, :barcode_symbology, :barcode, :net_weight, :gross_weight, :net_weight_unit, :gross_weight_unit, :country, :image, :discrete, :quantity, :minor_category_id
3 |
4 | belongs_to :manufacturer
5 | belongs_to :minor_category
6 | end
7 |
--------------------------------------------------------------------------------
/script/rails:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3 |
4 | APP_PATH = File.expand_path('../../config/application', __FILE__)
5 | require File.expand_path('../../config/boot', __FILE__)
6 | require 'rails/commands'
7 |
--------------------------------------------------------------------------------
/db/seeds.rb:
--------------------------------------------------------------------------------
1 | # This file should contain all the record creation needed to seed the database with its default values.
2 | # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3 | #
4 | # Examples:
5 | #
6 | # cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
7 | # Mayor.create(name: 'Emanuel', city: cities.first)
8 |
--------------------------------------------------------------------------------
/db/migrate/20130303085754_create_manufacturers.rb:
--------------------------------------------------------------------------------
1 | class CreateManufacturers < ActiveRecord::Migration
2 | def change
3 | create_table :manufacturers do |t|
4 | t.string :name
5 | t.string :hq_phone_number
6 | t.string :hq_address
7 | t.string :url
8 | t.string :hq_country
9 | t.string :sic_industry
10 | t.string :naics_industry
11 |
12 | t.timestamps
13 | end
14 | end
15 | end
16 |
--------------------------------------------------------------------------------
/config/initializers/session_store.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | Fc::Application.config.session_store :cookie_store, key: '_fc_session'
4 |
5 | # Use the database for sessions instead of the cookie-based default,
6 | # which shouldn't be used to store highly confidential information
7 | # (create the session table with "rails generate session_migration")
8 | # Fc::Application.config.session_store :active_record_store
9 |
--------------------------------------------------------------------------------
/app/views/layouts/_header.html.erb:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/config/initializers/backtrace_silencers.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5 |
6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7 | # Rails.backtrace_cleaner.remove_silencers!
8 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See http://help.github.com/ignore-files/ for more about ignoring files.
2 | #
3 | # If you find yourself ignoring temporary files generated by your text editor
4 | # or operating system, you probably want to add a global ignore instead:
5 | # git config --global core.excludesfile ~/.gitignore_global
6 |
7 | # Ignore bundler config
8 | /.bundle
9 |
10 | # Ignore the default SQLite database.
11 | /db/*.sqlite3
12 |
13 | # Ignore all logfiles and tempfiles.
14 | /log/*.log
15 | /tmp
16 |
--------------------------------------------------------------------------------
/config/initializers/secret_token.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Your secret key for verifying the integrity of signed cookies.
4 | # If you change this key, all old signed cookies will become invalid!
5 | # Make sure the secret is at least 30 characters and all random,
6 | # no regular words or you'll be exposed to dictionary attacks.
7 | Fc::Application.config.secret_token = 'cbca32d3bc62eb1393ea17e9a3a3b133c93fcef853f6865fb97d626347d3fe585dcefa94b829b9a78bffd2faf841e5ff60142dfaeb7a88a24215d2d15a28d2e4'
8 |
--------------------------------------------------------------------------------
/config/initializers/wrap_parameters.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 | #
3 | # This file contains settings for ActionController::ParamsWrapper which
4 | # is enabled by default.
5 |
6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7 | ActiveSupport.on_load(:action_controller) do
8 | wrap_parameters format: [:json]
9 | end
10 |
11 | # Disable root element in JSON by default.
12 | ActiveSupport.on_load(:active_record) do
13 | self.include_root_in_json = false
14 | end
15 |
--------------------------------------------------------------------------------
/config/initializers/inflections.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new inflection rules using the following format
4 | # (all these examples are active by default):
5 | # ActiveSupport::Inflector.inflections do |inflect|
6 | # inflect.plural /^(ox)$/i, '\1en'
7 | # inflect.singular /^(ox)en/i, '\1'
8 | # inflect.irregular 'person', 'people'
9 | # inflect.uncountable %w( fish sheep )
10 | # end
11 | #
12 | # These inflection rules are supported but not enabled by default:
13 | # ActiveSupport::Inflector.inflections do |inflect|
14 | # inflect.acronym 'RESTful'
15 | # end
16 |
--------------------------------------------------------------------------------
/db/migrate/20130303085226_create_items.rb:
--------------------------------------------------------------------------------
1 | class CreateItems < ActiveRecord::Migration
2 | def change
3 | create_table :items do |t|
4 | t.string :name
5 | t.integer :manufacturer_id
6 | t.string :barcode_symbology
7 | t.string :barcode
8 | t.decimal :net_weight
9 | t.decimal :gross_weight
10 | t.string :net_weight_unit
11 | t.string :gross_weight_unit
12 | t.string :country
13 | t.string :image
14 | t.boolean :discrete
15 | t.integer :quantity
16 | t.integer :major_category_id
17 | t.integer :minor_category_id
18 |
19 | t.timestamps
20 | end
21 | end
22 | end
23 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 |
3 | gem 'rails', '3.2.12'
4 |
5 | group :development, :test do
6 | gem 'sqlite3', '1.3.5'
7 | gem 'rspec-rails', '2.11.0'
8 | end
9 |
10 | # Gems used only for assets and not required
11 | # in production environments by default.
12 | group :assets do
13 | gem 'sass-rails', '3.2.5'
14 | gem 'coffee-rails', '3.2.2'
15 | gem 'uglifier', '1.2.3'
16 | gem 'bootstrap-sass', '~> 2.3.0.0'
17 | gem 'bootstrap-datepicker-rails'
18 | gem 'select2-rails'
19 | end
20 |
21 | gem 'jquery-rails', '2.0.2'
22 |
23 | group :test do
24 | gem 'capybara', '1.1.2'
25 | end
26 |
27 | group :production do
28 | gem 'pg', '0.12.2'
29 | end
--------------------------------------------------------------------------------
/app/assets/stylesheets/application.css:
--------------------------------------------------------------------------------
1 | /*
2 | * This is a manifest file that'll be compiled into application.css, which will include all the files
3 | * listed below.
4 | *
5 | * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6 | * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7 | *
8 | * You're free to add application-wide styles to this file and they'll appear at the top of the
9 | * compiled file, but it's generally better to create a new file per style scope.
10 | *
11 | *= require_self
12 | *= require select2
13 | *= require bootstrap-datepicker
14 | *= require_tree .
15 | */
16 |
--------------------------------------------------------------------------------
/config/database.yml:
--------------------------------------------------------------------------------
1 | # SQLite version 3.x
2 | # gem install sqlite3
3 | #
4 | # Ensure the SQLite 3 gem is defined in your Gemfile
5 | # gem 'sqlite3'
6 | development:
7 | adapter: sqlite3
8 | database: db/development.sqlite3
9 | pool: 5
10 | timeout: 5000
11 |
12 | # Warning: The database defined as "test" will be erased and
13 | # re-generated from your development database when you run "rake".
14 | # Do not set this db to the same as development or production.
15 | test:
16 | adapter: sqlite3
17 | database: db/test.sqlite3
18 | pool: 5
19 | timeout: 5000
20 |
21 | production:
22 | adapter: sqlite3
23 | database: db/production.sqlite3
24 | pool: 5
25 | timeout: 5000
26 |
--------------------------------------------------------------------------------
/public/500.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | We're sorry, but something went wrong (500)
5 |
17 |
18 |
19 |
20 |
21 |
22 |
We're sorry, but something went wrong.
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/app/views/layouts/application.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | <%= full_title(yield(:title)) %>
5 | <%= stylesheet_link_tag "application", :media => "all" %>
6 | <%= javascript_include_tag "application" %>
7 | <%= csrf_meta_tags %>
8 | <%= render 'layouts/shim' %>
9 |
10 |
11 |
12 |
13 | <%= render 'layouts/header' %>
14 | <% flash.each do |key, value| %>
15 | <%= value %>
16 | <% end %>
17 | <%= yield %>
18 |
19 |
--------------------------------------------------------------------------------
/app/assets/javascripts/application.js:
--------------------------------------------------------------------------------
1 | // This is a manifest file that'll be compiled into application.js, which will include all the files
2 | // listed below.
3 | //
4 | // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5 | // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6 | //
7 | // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8 | // the compiled file.
9 | //
10 | // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11 | // GO AFTER THE REQUIRES BELOW.
12 | //
13 | //= require jquery
14 | //= require jquery_ujs
15 | //= require bootstrap
16 | //= require bootstrap-datepicker
17 | //= require select2
18 | //= require_tree .
19 |
--------------------------------------------------------------------------------
/public/422.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The change you wanted was rejected (422)
5 |
17 |
18 |
19 |
20 |
21 |
22 |
The change you wanted was rejected.
23 |
Maybe you tried to change something you didn't have access to.
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/public/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The page you were looking for doesn't exist (404)
5 |
17 |
18 |
19 |
20 |
21 |
22 |
The page you were looking for doesn't exist.
23 |
You may have mistyped the address or the page may have moved.
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/custom.css.scss:
--------------------------------------------------------------------------------
1 | @import "bootstrap";
2 |
3 | $fridgeblue: #2480de;
4 |
5 | h1 {
6 | color: $fridgeblue;
7 | font-family: 'Open Sans', sans-serif;
8 | }
9 |
10 | h3 {
11 | font-family: 'Open Sans', sans-serif;
12 | }
13 |
14 | .center {
15 | text-align:center;
16 | }
17 |
18 | .top_banner {
19 | background: url('/assets/gray_jean.png') repeat;
20 | height: 300px;
21 | }
22 |
23 | .navbar .brand {
24 | padding: 6px 20px 0px;
25 | }
26 |
27 | .nav li a {
28 | font-family: 'Open Sans', sans-serif;
29 | }
30 |
31 | .nav li {
32 | padding-top: 3px;
33 | }
34 |
35 | .nav > li.active {
36 | border-top: 3px solid #fff;
37 | padding-top: 0px;
38 | }
39 |
40 | #lower_banner {
41 | padding-top: 30px;
42 | }
43 |
44 | #top_slogan {
45 | margin-top: 50px;
46 | }
47 |
48 | #home_demo_button {
49 | margin-top:25px;
50 | }
--------------------------------------------------------------------------------
/app/views/static_pages/home.html.erb:
--------------------------------------------------------------------------------
1 | <% provide(:title, 'Home') %>
2 |
3 |
4 |
5 |
FridgeChart - Never Let Your Food Spoil Again
6 |
Easily track your fridge inventory. Save money. Save Time.
7 |
8 | <%= link_to "Free Demo", root_path, :class => "m-btn red big rnd" %>
9 |
10 |
11 |
12 |
13 |
14 |
15 | <%= image_tag("tupperware.png", :alt => "Reduce Waste") %>
16 |
17 |
Reduces waste by alerting you as to what foods are expiring soon.
18 |
19 |
20 | <%= image_tag("grocery_list.png", :alt => "Automated Grocery Lists") %>
21 |
22 |
Automagically generates your grocery list.
23 |
24 |
25 | <%= image_tag("dish.png", :alt => "Recipes") %>
26 |
27 |
See which ingredients you are missing for your favorite recipes.
28 |
29 |
30 |
--------------------------------------------------------------------------------
/config/environments/development.rb:
--------------------------------------------------------------------------------
1 | Fc::Application.configure do
2 | # Settings specified here will take precedence over those in config/application.rb
3 |
4 | # In the development environment your application's code is reloaded on
5 | # every request. This slows down response time but is perfect for development
6 | # since you don't have to restart the web server when you make code changes.
7 | config.cache_classes = false
8 |
9 | # Log error messages when you accidentally call methods on nil.
10 | config.whiny_nils = true
11 |
12 | # Show full error reports and disable caching
13 | config.consider_all_requests_local = true
14 | config.action_controller.perform_caching = false
15 |
16 | # Don't care if the mailer can't send
17 | config.action_mailer.raise_delivery_errors = false
18 |
19 | # Print deprecation notices to the Rails logger
20 | config.active_support.deprecation = :log
21 |
22 | # Only use best-standards-support built into browsers
23 | config.action_dispatch.best_standards_support = :builtin
24 |
25 | # Raise exception on mass assignment protection for Active Record models
26 | config.active_record.mass_assignment_sanitizer = :strict
27 |
28 | # Log the query plan for queries taking more than this (works
29 | # with SQLite, MySQL, and PostgreSQL)
30 | config.active_record.auto_explain_threshold_in_seconds = 0.5
31 |
32 | # Do not compress assets
33 | config.assets.compress = false
34 |
35 | # Expands the lines which load the assets
36 | config.assets.debug = true
37 | end
38 |
--------------------------------------------------------------------------------
/spec/spec_helper.rb:
--------------------------------------------------------------------------------
1 | # This file is copied to spec/ when you run 'rails generate rspec:install'
2 | ENV["RAILS_ENV"] ||= 'test'
3 | require File.expand_path("../../config/environment", __FILE__)
4 | require 'rspec/rails'
5 | require 'rspec/autorun'
6 |
7 | # Requires supporting ruby files with custom matchers and macros, etc,
8 | # in spec/support/ and its subdirectories.
9 | Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
10 |
11 | RSpec.configure do |config|
12 | # ## Mock Framework
13 | #
14 | # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
15 | #
16 | # config.mock_with :mocha
17 | # config.mock_with :flexmock
18 | # config.mock_with :rr
19 |
20 | # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
21 | config.fixture_path = "#{::Rails.root}/spec/fixtures"
22 |
23 | # If you're not using ActiveRecord, or you'd prefer not to run each of your
24 | # examples within a transaction, remove the following line or assign false
25 | # instead of true.
26 | config.use_transactional_fixtures = true
27 |
28 | # If true, the base class of anonymous controllers will be inferred
29 | # automatically. This will be the default behavior in future versions of
30 | # rspec-rails.
31 | config.infer_base_class_for_anonymous_controllers = false
32 |
33 | # Run specs in random order to surface order dependencies. If you find an
34 | # order dependency and want to debug it, you can fix the order by providing
35 | # the seed, which is printed after each run.
36 | # --seed 1234
37 | config.order = "random"
38 | end
39 |
--------------------------------------------------------------------------------
/config/environments/test.rb:
--------------------------------------------------------------------------------
1 | Fc::Application.configure do
2 | # Settings specified here will take precedence over those in config/application.rb
3 |
4 | # The test environment is used exclusively to run your application's
5 | # test suite. You never need to work with it otherwise. Remember that
6 | # your test database is "scratch space" for the test suite and is wiped
7 | # and recreated between test runs. Don't rely on the data there!
8 | config.cache_classes = true
9 |
10 | # Configure static asset server for tests with Cache-Control for performance
11 | config.serve_static_assets = true
12 | config.static_cache_control = "public, max-age=3600"
13 |
14 | # Log error messages when you accidentally call methods on nil
15 | config.whiny_nils = true
16 |
17 | # Show full error reports and disable caching
18 | config.consider_all_requests_local = true
19 | config.action_controller.perform_caching = false
20 |
21 | # Raise exceptions instead of rendering exception templates
22 | config.action_dispatch.show_exceptions = false
23 |
24 | # Disable request forgery protection in test environment
25 | config.action_controller.allow_forgery_protection = false
26 |
27 | # Tell Action Mailer not to deliver emails to the real world.
28 | # The :test delivery method accumulates sent emails in the
29 | # ActionMailer::Base.deliveries array.
30 | config.action_mailer.delivery_method = :test
31 |
32 | # Raise exception on mass assignment protection for Active Record models
33 | config.active_record.mass_assignment_sanitizer = :strict
34 |
35 | # Print deprecation notices to the stderr
36 | config.active_support.deprecation = :stderr
37 | end
38 |
--------------------------------------------------------------------------------
/db/schema.rb:
--------------------------------------------------------------------------------
1 | # encoding: UTF-8
2 | # This file is auto-generated from the current state of the database. Instead
3 | # of editing this file, please use the migrations feature of Active Record to
4 | # incrementally modify your database, and then regenerate this schema definition.
5 | #
6 | # Note that this schema.rb definition is the authoritative source for your
7 | # database schema. If you need to create the application database on another
8 | # system, you should be using db:schema:load, not running all the migrations
9 | # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10 | # you'll amass, the slower it'll run and the greater likelihood for issues).
11 | #
12 | # It's strongly recommended to check this file into your version control system.
13 |
14 | ActiveRecord::Schema.define(:version => 20130303091521) do
15 |
16 | create_table "items", :force => true do |t|
17 | t.string "name"
18 | t.integer "manufacturer_id"
19 | t.string "barcode_symbology"
20 | t.string "barcode"
21 | t.decimal "net_weight"
22 | t.decimal "gross_weight"
23 | t.string "net_weight_unit"
24 | t.string "gross_weight_unit"
25 | t.string "country"
26 | t.string "image"
27 | t.boolean "discrete"
28 | t.integer "quantity"
29 | t.integer "minor_category_id"
30 | t.datetime "created_at", :null => false
31 | t.datetime "updated_at", :null => false
32 | end
33 |
34 | create_table "major_categories", :force => true do |t|
35 | t.string "name"
36 | t.datetime "created_at", :null => false
37 | t.datetime "updated_at", :null => false
38 | end
39 |
40 | create_table "manufacturers", :force => true do |t|
41 | t.string "name"
42 | t.string "hq_phone_number"
43 | t.string "hq_address"
44 | t.string "url"
45 | t.string "hq_country"
46 | t.string "sic_industry"
47 | t.string "naics_industry"
48 | t.datetime "created_at", :null => false
49 | t.datetime "updated_at", :null => false
50 | end
51 |
52 | create_table "minor_categories", :force => true do |t|
53 | t.string "name"
54 | t.integer "major_category_id"
55 | t.datetime "created_at", :null => false
56 | t.datetime "updated_at", :null => false
57 | end
58 |
59 | end
60 |
--------------------------------------------------------------------------------
/config/environments/production.rb:
--------------------------------------------------------------------------------
1 | Fc::Application.configure do
2 | # Settings specified here will take precedence over those in config/application.rb
3 |
4 | # Code is not reloaded between requests
5 | config.cache_classes = true
6 |
7 | # Full error reports are disabled and caching is turned on
8 | config.consider_all_requests_local = false
9 | config.action_controller.perform_caching = true
10 |
11 | # Disable Rails's static asset server (Apache or nginx will already do this)
12 | config.serve_static_assets = false
13 |
14 | # Compress JavaScripts and CSS
15 | config.assets.compress = true
16 |
17 | # Don't fallback to assets pipeline if a precompiled asset is missed
18 | config.assets.compile = false
19 |
20 | # Generate digests for assets URLs
21 | config.assets.digest = true
22 |
23 | # Defaults to nil and saved in location specified by config.assets.prefix
24 | # config.assets.manifest = YOUR_PATH
25 |
26 | # Specifies the header that your server uses for sending files
27 | # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
28 | # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
29 |
30 | # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
31 | # config.force_ssl = true
32 |
33 | # See everything in the log (default is :info)
34 | # config.log_level = :debug
35 |
36 | # Prepend all log lines with the following tags
37 | # config.log_tags = [ :subdomain, :uuid ]
38 |
39 | # Use a different logger for distributed setups
40 | # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
41 |
42 | # Use a different cache store in production
43 | # config.cache_store = :mem_cache_store
44 |
45 | # Enable serving of images, stylesheets, and JavaScripts from an asset server
46 | # config.action_controller.asset_host = "http://assets.example.com"
47 |
48 | # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
49 | # config.assets.precompile += %w( search.js )
50 |
51 | # Disable delivery errors, bad email addresses will be ignored
52 | # config.action_mailer.raise_delivery_errors = false
53 |
54 | # Enable threaded mode
55 | # config.threadsafe!
56 |
57 | # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
58 | # the I18n.default_locale when a translation can not be found)
59 | config.i18n.fallbacks = true
60 |
61 | # Send deprecation notices to registered listeners
62 | config.active_support.deprecation = :notify
63 |
64 | # Log the query plan for queries taking more than this (works
65 | # with SQLite, MySQL, and PostgreSQL)
66 | # config.active_record.auto_explain_threshold_in_seconds = 0.5
67 | end
68 |
--------------------------------------------------------------------------------
/config/application.rb:
--------------------------------------------------------------------------------
1 | require File.expand_path('../boot', __FILE__)
2 |
3 | # Pick the frameworks you want:
4 | require "active_record/railtie"
5 | require "action_controller/railtie"
6 | require "action_mailer/railtie"
7 | require "active_resource/railtie"
8 | require "sprockets/railtie"
9 | # require "rails/test_unit/railtie"
10 |
11 | if defined?(Bundler)
12 | # If you precompile assets before deploying to production, use this line
13 | Bundler.require(*Rails.groups(:assets => %w(development test)))
14 | # If you want your assets lazily compiled in production, use this line
15 | # Bundler.require(:default, :assets, Rails.env)
16 | end
17 |
18 | module Fc
19 | class Application < Rails::Application
20 | # Settings in config/environments/* take precedence over those specified here.
21 | # Application configuration should go into files in config/initializers
22 | # -- all .rb files in that directory are automatically loaded.
23 |
24 | # Custom directories with classes and modules you want to be autoloadable.
25 | # config.autoload_paths += %W(#{config.root}/extras)
26 |
27 | # Only load the plugins named here, in the order given (default is alphabetical).
28 | # :all can be used as a placeholder for all plugins not explicitly named.
29 | # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
30 |
31 | # Activate observers that should always be running.
32 | # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
33 |
34 | # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
35 | # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
36 | # config.time_zone = 'Central Time (US & Canada)'
37 |
38 | # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
39 | # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
40 | # config.i18n.default_locale = :de
41 |
42 | # Configure the default encoding used in templates for Ruby 1.9.
43 | config.encoding = "utf-8"
44 |
45 | # Configure sensitive parameters which will be filtered from the log file.
46 | config.filter_parameters += [:password]
47 |
48 | # Enable escaping HTML in JSON.
49 | config.active_support.escape_html_entities_in_json = true
50 |
51 | # Use SQL instead of Active Record's schema dumper when creating the database.
52 | # This is necessary if your schema can't be completely dumped by the schema dumper,
53 | # like if you have constraints or database-specific column types
54 | # config.active_record.schema_format = :sql
55 |
56 | # Enforce whitelist mode for mass assignment.
57 | # This will create an empty whitelist of attributes available for mass-assignment for all models
58 | # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
59 | # parameters by using an attr_accessible or attr_protected declaration.
60 | config.active_record.whitelist_attributes = true
61 |
62 | # Enable the asset pipeline
63 | config.assets.enabled = true
64 |
65 | # Version of your assets, change this if you want to expire all your assets
66 | config.assets.version = '1.0'
67 | end
68 | end
69 |
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | actionmailer (3.2.12)
5 | actionpack (= 3.2.12)
6 | mail (~> 2.4.4)
7 | actionpack (3.2.12)
8 | activemodel (= 3.2.12)
9 | activesupport (= 3.2.12)
10 | builder (~> 3.0.0)
11 | erubis (~> 2.7.0)
12 | journey (~> 1.0.4)
13 | rack (~> 1.4.5)
14 | rack-cache (~> 1.2)
15 | rack-test (~> 0.6.1)
16 | sprockets (~> 2.2.1)
17 | activemodel (3.2.12)
18 | activesupport (= 3.2.12)
19 | builder (~> 3.0.0)
20 | activerecord (3.2.12)
21 | activemodel (= 3.2.12)
22 | activesupport (= 3.2.12)
23 | arel (~> 3.0.2)
24 | tzinfo (~> 0.3.29)
25 | activeresource (3.2.12)
26 | activemodel (= 3.2.12)
27 | activesupport (= 3.2.12)
28 | activesupport (3.2.12)
29 | i18n (~> 0.6)
30 | multi_json (~> 1.0)
31 | arel (3.0.2)
32 | bootstrap-datepicker-rails (0.6.42)
33 | railties (>= 3.0)
34 | bootstrap-sass (2.3.0.0)
35 | sass (~> 3.2)
36 | builder (3.0.4)
37 | capybara (1.1.2)
38 | mime-types (>= 1.16)
39 | nokogiri (>= 1.3.3)
40 | rack (>= 1.0.0)
41 | rack-test (>= 0.5.4)
42 | selenium-webdriver (~> 2.0)
43 | xpath (~> 0.1.4)
44 | childprocess (0.3.8)
45 | ffi (~> 1.0, >= 1.0.11)
46 | coffee-rails (3.2.2)
47 | coffee-script (>= 2.2.0)
48 | railties (~> 3.2.0)
49 | coffee-script (2.2.0)
50 | coffee-script-source
51 | execjs
52 | coffee-script-source (1.5.0)
53 | diff-lcs (1.1.3)
54 | erubis (2.7.0)
55 | execjs (1.4.0)
56 | multi_json (~> 1.0)
57 | ffi (1.4.0)
58 | hike (1.2.1)
59 | i18n (0.6.4)
60 | journey (1.0.4)
61 | jquery-rails (2.0.2)
62 | railties (>= 3.2.0, < 5.0)
63 | thor (~> 0.14)
64 | json (1.7.7)
65 | mail (2.4.4)
66 | i18n (>= 0.4.0)
67 | mime-types (~> 1.16)
68 | treetop (~> 1.4.8)
69 | mime-types (1.21)
70 | multi_json (1.6.1)
71 | nokogiri (1.5.6)
72 | pg (0.12.2)
73 | polyglot (0.3.3)
74 | rack (1.4.5)
75 | rack-cache (1.2)
76 | rack (>= 0.4)
77 | rack-ssl (1.3.3)
78 | rack
79 | rack-test (0.6.2)
80 | rack (>= 1.0)
81 | rails (3.2.12)
82 | actionmailer (= 3.2.12)
83 | actionpack (= 3.2.12)
84 | activerecord (= 3.2.12)
85 | activeresource (= 3.2.12)
86 | activesupport (= 3.2.12)
87 | bundler (~> 1.0)
88 | railties (= 3.2.12)
89 | railties (3.2.12)
90 | actionpack (= 3.2.12)
91 | activesupport (= 3.2.12)
92 | rack-ssl (~> 1.3.2)
93 | rake (>= 0.8.7)
94 | rdoc (~> 3.4)
95 | thor (>= 0.14.6, < 2.0)
96 | rake (10.0.3)
97 | rdoc (3.12.2)
98 | json (~> 1.4)
99 | rspec (2.11.0)
100 | rspec-core (~> 2.11.0)
101 | rspec-expectations (~> 2.11.0)
102 | rspec-mocks (~> 2.11.0)
103 | rspec-core (2.11.1)
104 | rspec-expectations (2.11.3)
105 | diff-lcs (~> 1.1.3)
106 | rspec-mocks (2.11.3)
107 | rspec-rails (2.11.0)
108 | actionpack (>= 3.0)
109 | activesupport (>= 3.0)
110 | railties (>= 3.0)
111 | rspec (~> 2.11.0)
112 | rubyzip (0.9.9)
113 | sass (3.2.6)
114 | sass-rails (3.2.5)
115 | railties (~> 3.2.0)
116 | sass (>= 3.1.10)
117 | tilt (~> 1.3)
118 | select2-rails (3.3.0)
119 | sass-rails (~> 3.2)
120 | thor (~> 0.14)
121 | selenium-webdriver (2.29.0)
122 | childprocess (>= 0.2.5)
123 | multi_json (~> 1.0)
124 | rubyzip
125 | websocket (~> 1.0.4)
126 | sprockets (2.2.2)
127 | hike (~> 1.2)
128 | multi_json (~> 1.0)
129 | rack (~> 1.0)
130 | tilt (~> 1.1, != 1.3.0)
131 | sqlite3 (1.3.5)
132 | thor (0.17.0)
133 | tilt (1.3.4)
134 | treetop (1.4.12)
135 | polyglot
136 | polyglot (>= 0.3.1)
137 | tzinfo (0.3.35)
138 | uglifier (1.2.3)
139 | execjs (>= 0.3.0)
140 | multi_json (>= 1.0.2)
141 | websocket (1.0.7)
142 | xpath (0.1.4)
143 | nokogiri (~> 1.3)
144 |
145 | PLATFORMS
146 | ruby
147 |
148 | DEPENDENCIES
149 | bootstrap-datepicker-rails
150 | bootstrap-sass (~> 2.3.0.0)
151 | capybara (= 1.1.2)
152 | coffee-rails (= 3.2.2)
153 | jquery-rails (= 2.0.2)
154 | pg (= 0.12.2)
155 | rails (= 3.2.12)
156 | rspec-rails (= 2.11.0)
157 | sass-rails (= 3.2.5)
158 | select2-rails
159 | sqlite3 (= 1.3.5)
160 | uglifier (= 1.2.3)
161 |
--------------------------------------------------------------------------------
/app/assets/stylesheets/m-buttons.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * CSS3 Microsoft Metro Buttons
3 | * Inspired by Tim O'Donnell's CSS3 Google Buttons, Twitter Bootstrap, and Microsoft. Icons from glyphicons.com and Syncfusion's Metro Studio.
4 | * I do not claim ownership on the origin of design and icons.
5 | * Built by Ace Subido (http://github.com/ace-subido)
6 | */
7 | a:focus {
8 | outline: thin dotted;
9 | outline: 5px auto -webkit-focus-ring-color;
10 | outline-offset: -2px;
11 | }
12 | a:hover, a:active {
13 | outline: 0;
14 | }
15 | button,
16 | input,
17 | select,
18 | textarea {
19 | margin: 0;
20 | font-size: 100%;
21 | /*vertical-align: middle;*/
22 |
23 | }
24 | button, input {
25 | *overflow: visible;
26 | line-height: normal;
27 | }
28 | button::-moz-focus-inner, input::-moz-focus-inner {
29 | padding: 0;
30 | border: 0;
31 | }
32 | button,
33 | input[type="button"],
34 | input[type="reset"],
35 | input[type="submit"] {
36 | cursor: pointer;
37 | -webkit-appearance: button;
38 | -moz-appearance: none;
39 | }
40 | /* overrides button presets for mozilla clients*/
41 | @-moz-document url-prefix() {
42 | button,
43 | input[type="button"],
44 | input[type="reset"],
45 | input[type="submit"] {
46 | cursor: pointer;
47 | padding: 6px 14px;
48 | }
49 | }
50 | input[type="search"] {
51 | -webkit-appearance: textfield;
52 | -webkit-box-sizing: content-box;
53 | -moz-box-sizing: content-box;
54 | box-sizing: content-box;
55 | }
56 | input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button {
57 | -webkit-appearance: none;
58 | }
59 | .dropdown {
60 | position: relative;
61 | }
62 | .dropdown-toggle {
63 | *margin-bottom: -3px;
64 | }
65 | .dropdown-toggle:active, .open .dropdown-toggle {
66 | outline: 0;
67 | }
68 |
69 | .caret {
70 | display: inline-block;
71 | width: 0;
72 | height: 0;
73 | text-indent: -99999px;
74 | *text-indent: 0;
75 | vertical-align: top;
76 | margin-top: 5px;
77 | margin-left: 2px;
78 | margin-right: 2px;
79 | border-left: 4px solid transparent;
80 | border-right: 4px solid transparent;
81 | border-top: 4px solid black;
82 | opacity: 0.5;
83 | filter: alpha(opacity=50);
84 | content: "\2193";
85 | }
86 | .caret.white{
87 | border-left: 4px solid transparent;
88 | border-right: 4px solid transparent;
89 | border-top: 4px solid white;
90 | opacity: 0.95;
91 | filter: alpha(opacity=95);
92 | }
93 | .dropdown .caret {
94 | margin-top: 8px;
95 | margin-left: 2px;
96 | }
97 |
98 | .dropdown:hover .caret, .open.dropdown .caret {
99 | opacity: 1;
100 | filter: alpha(opacity=100);
101 | }
102 |
103 | .m-dropdown-menu {
104 | position: absolute;
105 | top: 98%;
106 | left: 0;
107 | z-index: 1000;
108 | float: left;
109 | display: none;
110 | min-width: 225px;
111 | max-width: 225px;
112 | padding: 0 0 6px 0;
113 | margin: 0 0 0;
114 | list-style: none;
115 | background-color: white;
116 |
117 | -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
118 | -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
119 | box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
120 |
121 | font-size: 14px;
122 | font-family: "Segoe UI",Helvetica, Arial, sans-serif;
123 |
124 | border: 1px solid #eeeeee;
125 |
126 | }
127 |
128 | .m-dropdown-menu.bottom-up {
129 | top: auto;
130 | bottom: 100%;
131 | margin-bottom: 2px;
132 | }
133 |
134 | .m-dropdown-menu .divider {
135 | border-top: 1px solid #ebebeb;
136 | margin-top: 9px;
137 | margin-bottom: 10px;
138 | padding: 0;
139 | cursor: default;
140 | }
141 | .m-dropdown-menu a {
142 | position: relative;
143 | padding: 6px 0 6px 30px;
144 | color: #333;
145 | text-decoration: none;
146 | display: block;
147 | clear: both;
148 | font-weight: normal;
149 | line-height: 18px;
150 | white-space: nowrap;
151 | }
152 | .m-dropdown-menu a [class^="icon-"] {
153 | position: absolute;
154 | left: 7px;
155 | top: 8px;
156 | }
157 | .m-dropdown-menu li > a:hover, .m-dropdown-menu .active > a, .m-dropdown-menu .active > a:hover {
158 | text-decoration: none;
159 | background-color: #eee;
160 | }
161 | .dropdown.open {
162 | *z-index: 1000;
163 | }
164 | .dropdown.open .dropdown-toggle {
165 | color: #08c;
166 | background: #ccc;
167 | background: rgba(0, 0, 0, 0.3);
168 | }
169 | .dropdown.open .m-dropdown-menu {
170 | display: block;
171 | }
172 |
173 | .m-btn {
174 | position: relative;
175 | display: inline-block;
176 | overflow: visible;
177 | margin: 0;
178 | padding: 10px 14px;
179 | margin-top: 8px;
180 | cursor: pointer;
181 | outline: none;
182 | border: none;
183 | background-color: #eeeeee;
184 | background-image: -moz-linear-gradient(top, #eeeeee, #eeeeee);
185 | background-image: -ms-linear-gradient(top, #eeeeee, #eeeeee);
186 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#eeeeee), to(#eeeeee));
187 | background-image: -webkit-linear-gradient(top, #eeeeee, #eeeeee);
188 | background-image: -o-linear-gradient(top, #eeeeee, #eeeeee);
189 | background-image: linear-gradient(top, #eeeeee, #eeeeee);
190 | background-repeat: repeat-x;
191 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#eeeeee', GradientType=0);
192 | -webkit-background-clip: padding;
193 | -moz-background-clip: padding;
194 | background-clip: padding;
195 | /* IE hacks */
196 |
197 | zoom: 1;
198 | z-index: 1;
199 | *display: inline;
200 | font-family: "Segoe UI", Helvetica, Arial, sans-serif;
201 | font-size: 14px;
202 | line-height: 14px;
203 | color: #333333;
204 | min-width: 42px;
205 |
206 | text-shadow: #ffffff 0 1px 0;
207 | text-align: center;
208 | text-decoration: none;
209 | white-space: nowrap;
210 |
211 | vertical-align: inherit;
212 | }
213 | .m-btn:hover,
214 | .m-btn:focus,
215 | .m-btn:active,
216 | .m-btn.active {
217 | color: #333;
218 | text-decoration: none;
219 | background-color: #dcdcdc;
220 | background-image: -moz-linear-gradient(top, #dcdcdc, #dcdcdc);
221 | background-image: -ms-linear-gradient(top, #dcdcdc, #dcdcdc);
222 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dcdcdc), to(#dcdcdc));
223 | background-image: -webkit-linear-gradient(top, #dcdcdc, #dcdcdc);
224 | background-image: -o-linear-gradient(top, #dcdcdc, #dcdcdc);
225 | background-image: linear-gradient(top, #dcdcdc, #dcdcdc);
226 | background-repeat: repeat-x;
227 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdcdc', endColorstr='#dcdcdc', GradientType=0);
228 | z-index: 100;
229 | outline: none;
230 | }
231 | .m-btn:active, .m-btn.active {
232 | background-color: #eeeeee;
233 | background-image: -moz-linear-gradient(top, #eeeeee, #dcdcdc);
234 | background-image: -ms-linear-gradient(top, #eeeeee, #dcdcdc);
235 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#eeeeee), to(#dcdcdc));
236 | background-image: -webkit-linear-gradient(top, #eeeeee, #dcdcdc);
237 | background-image: -o-linear-gradient(top, #eeeeee, #dcdcdc);
238 | background-image: linear-gradient(top, #eeeeee, #dcdcdc);
239 | background-repeat: repeat-x;
240 | -webkit-box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.25);
241 | -moz-box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.25);
242 | box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.25);
243 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dcdcdc', GradientType=0);
244 | }
245 | .m-btn:focus {
246 | /* Blue border on button focus. */
247 | border-color: #4D90FE;
248 | }
249 | /* overrides extra padding on button elements in Firefox */
250 | .m-btn::-moz-focus-inner {
251 | padding: 0;
252 | border: 0;
253 | }
254 | .m-btn.red-stripe
255 | {
256 | border-left: 3px solid #d84a38;
257 | }
258 |
259 | .m-btn.blue-stripe
260 | {
261 | border-left: 3px solid #4d90fe;
262 | }
263 |
264 | .m-btn.purple-stripe
265 | {
266 | border-left: 3px solid #852b99;
267 | }
268 |
269 | .m-btn.green-stripe
270 | {
271 | border-left: 3px solid #35aa47;
272 | }
273 |
274 | /* Common button classes */
275 | .m-btn.red:active,
276 | .m-btn.red.active,
277 | .m-btn.red.disabled,
278 | .m-btn.red[disabled],
279 | .m-btn.blue:active,
280 | .m-btn.blue.active,
281 | .m-btn.blue.disabled,
282 | .m-btn.blue[disabled],
283 | .m-btn.purple:active,
284 | .m-btn.purple.active,
285 | .m-btn.purple.disabled,
286 | .m-btn.purple[disabled],
287 | .m-btn.green:active,
288 | .m-btn.green.active,
289 | .m-btn.green.disabled,
290 | .m-btn.green[disabled],
291 | .m-btn.black:active,
292 | .m-btn.black.active,
293 | .m-btn.black.disabled,
294 | .m-btn.black[disabled]
295 | {
296 | -webkit-box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.25);
297 | -moz-box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.25);
298 | box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.25);
299 | color: white !important;
300 | }
301 | .m-btn.red.disabled,
302 | .m-btn.red[disabled],
303 | .m-btn.blue.disabled,
304 | .m-btn.blue[disabled],
305 | .m-btn.purple.disabled,
306 | .m-btn.purple[disabled],
307 | .m-btn.green.disabled,
308 | .m-btn.green[disabled]
309 | {
310 | opacity: .7;
311 | }
312 |
313 | .m-btn.black.disabled,
314 | .m-btn.black[disabled]
315 | {
316 | opacity: .5;
317 | }
318 |
319 | /* Red */
320 | .m-btn.red {
321 | color: white;
322 | text-shadow: none;
323 | background-color: #d84a38;
324 | background-image: -moz-linear-gradient(top, #dd4b39, #d14836);
325 | background-image: -ms-linear-gradient(top, #dd4b39, #d14836);
326 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dd4b39), to(#d14836));
327 | background-image: -webkit-linear-gradient(top, #dd4b39, #d14836);
328 | background-image: -o-linear-gradient(top, #dd4b39, #d14836);
329 | background-image: linear-gradient(top, #dd4b39, #d14836);
330 | background-repeat: repeat-x;
331 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dd4b39', endColorstr='#d14836', GradientType=0);
332 | }
333 | .m-btn.red:hover,
334 | .m-btn.red:focus,
335 | .m-btn.red:active,
336 | .m-btn.red.active,
337 | .m-btn.red[disabled],
338 | .m-btn.red.disabled {
339 | background-color: #c53727;
340 | background-image: -moz-linear-gradient(top, #c53727, #c53727);
341 | background-image: -ms-linear-gradient(top, #c53727, #c53727);
342 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#c53727), to(#c53727));
343 | background-image: -webkit-linear-gradient(top, #c53727, #c53727);
344 | background-image: -o-linear-gradient(top, #c53727, #c53727);
345 | background-image: linear-gradient(top, #c53727, #c53727);
346 | background-repeat: repeat-x;
347 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#c53727', endColorstr='#c53727', GradientType=0);
348 | }
349 |
350 |
351 | .m-btn.red:active,
352 | .m-btn.red.active
353 | {
354 | background-color: #dd4b39;
355 | background-image: -moz-linear-gradient(top, #dd4b39, #c53727);
356 | background-image: -ms-linear-gradient(top, #dd4b39, #c53727);
357 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dd4b39), to(#c53727));
358 | background-image: -webkit-linear-gradient(top, #dd4b39, #c53727);
359 | background-image: -o-lineark-gradient(top, #dd4b39, #c53727);
360 | background-image: linear-gradient(top, #dd4b39, #c53727);
361 | background-repeat: repeat-x;
362 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dd4b39', endColorstr='#c53727', GradientType=0);
363 |
364 | }
365 |
366 | /* Blue */
367 | .m-btn.blue
368 | {
369 | color: white;
370 | text-shadow: none;
371 | background-color: #4d90fe;
372 | background-image: -moz-linear-gradient(top, #4d90fe, #4787ed);
373 | background-image: -ms-linear-gradient(top, #4d90fe, #4787ed);
374 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#4d90fe), to(#4787ed));
375 | background-image: -webkit-linear-gradient(top, #4d90fe, #4787ed);
376 | background-image: -o-linear-gradient(top, #4d90fe, #4787ed);
377 | background-image: linear-gradient(top, #4d90fe, #4787ed);
378 | background-repeat: repeat-x;
379 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d90fe', endColorstr='#4787ed', GradientType=0);
380 | }
381 | .m-btn.blue:hover,
382 | .m-btn.blue:focus,
383 | .m-btn.blue:active,
384 | .m-btn.blue.active,
385 | .m-btn.blue[disabled],
386 | .m-btn.blue.disabled {
387 | background-color: #0072bb;
388 | background-image: -moz-linear-gradient(top, #0072bb, #0072bb);
389 | background-image: -ms-linear-gradient(top, #0072bb, #0072bb);
390 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0072bb), to(#0072bb));
391 | background-image: -webkit-linear-gradient(top, #0072bb, #0072bb);
392 | background-image: -o-linear-gradient(top, #0072bb, #0072bb);
393 | background-image: linear-gradient(top, #0072bb, #0072bb);
394 | background-repeat: repeat-x;
395 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0072bb', endColorstr='#0072bb', GradientType=0);
396 | }
397 |
398 | .m-btn.blue:active,
399 | .m-btn.blue.active
400 | {
401 | background-color: #4d90fe;
402 | background-image: -moz-linear-gradient(top, #4d90fe, #0072bb);
403 | background-image: -ms-linear-gradient(top, #4d90fe, #0072bb);
404 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#4d90fe), to(#0072bb));
405 | background-image: -webkit-linear-gradient(top, #4d90fe, #0072bb);
406 | background-image: -o-linear-gradient(top, #4d90fe, #0072bb);
407 | background-image: linear-gradient(top, #4d90fe, #0072bb);
408 | background-repeat: repeat-x;
409 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#4d90fe', endColorstr='#0072bb', GradientType=0);
410 |
411 | }
412 | /* Green */
413 | .m-btn.green {
414 | color: white;
415 | text-shadow: none;
416 | background-color: #35aa47;
417 | background-image: -moz-linear-gradient(top, #35aa47, #35aa47);
418 | background-image: -ms-linear-gradient(top, #35aa47, #35aa47);
419 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#35aa47), to(#35aa47));
420 | background-image: -webkit-linear-gradient(top, #35aa47, #35aa47);
421 | background-image: -o-linear-gradient(top, #35aa47, #35aa47);
422 | background-image: linear-gradient(top, #35aa47, #35aa47);
423 | background-repeat: repeat-x;
424 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#35aa47', endColorstr='#35aa47', GradientType=0);
425 | }
426 | .m-btn.green:hover,
427 | .m-btn.green:focus,
428 | .m-btn.green:active,
429 | .m-btn.green.active,
430 | .m-btn.green.disabled,
431 | .m-btn.green[disabled]{
432 | background-color: #1d943b;
433 | background-image: -moz-linear-gradient(top, #1d943b, #1d943b);
434 | background-image: -ms-linear-gradient(top, #1d943b, #1d943b);
435 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#1d943b), to(#1d943b));
436 | background-image: -webkit-linear-gradient(top, #1d943b, #1d943b);
437 | background-image: -o-linear-gradient(top, #1d943b, #1d943b);
438 | background-image: linear-gradient(top, #1d943b, #1d943b);
439 | background-repeat: repeat-x;
440 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1d943b', endColorstr='#1d943b', GradientType=0);
441 | }
442 |
443 | .m-btn.green:active,
444 | .m-btn.green.active
445 | {
446 | background-color: #35aa47;
447 | background-image: -moz-linear-gradient(top, #35aa47, #1d943b);
448 | background-image: -ms-linear-gradient(top, #35aa47, #1d943b);
449 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#35aa47), to(#1d943b));
450 | background-image: -webkit-linear-gradient(top, #35aa47, #1d943b);
451 | background-image: -o-linear-gradient(top, #35aa47, #1d943b);
452 | background-image: linear-gradient(top, #35aa47, #1d943b);
453 | background-repeat: repeat-x;
454 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#35aa47', endColorstr='#1d943b', GradientType=0);
455 |
456 | }
457 | /* Purple */
458 | .m-btn.purple {
459 | color: white;
460 | text-shadow: none;
461 | background-color: #852b99;
462 | background-image: -moz-linear-gradient(top, #852b99, #852b99);
463 | background-image: -ms-linear-gradient(top, #852b99, #852b99);
464 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#852b99), to(#852b99));
465 | background-image: -webkit-linear-gradient(top, #852b99, #852b99);
466 | background-image: -o-linear-gradient(top, #852b99, #852b99);
467 | background-image: linear-gradient(top, #852b99, #852b99);
468 | background-repeat: repeat-x;
469 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#852b99', endColorstr='#852b99', GradientType=0);
470 | }
471 | .m-btn.purple:hover,
472 | .m-btn.purple:focus,
473 | .m-btn.purple:active,
474 | .m-btn.purple.active,
475 | .m-btn.purple.disabled,
476 | .m-btn.purple[disabled] {
477 | background-color: #6d1b81;
478 | background-image: -moz-linear-gradient(top, #6d1b81, #6d1b81);
479 | background-image: -ms-linear-gradient(top, #6d1b81, #6d1b81);
480 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#6d1b81), to(#6d1b81));
481 | background-image: -webkit-linear-gradient(top, #6d1b81, #6d1b81);
482 | background-image: -o-linear-gradient(top, #6d1b81, #6d1b81);
483 | background-image: linear-gradient(top, #6d1b81, #6d1b81);
484 | background-repeat: repeat-x;
485 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#6d1b81', endColorstr='#6d1b81', GradientType=0);
486 | }
487 |
488 | .m-btn.purple:active,
489 | .m-btn.purple.active
490 | {
491 | background-color: #35aa47;
492 | background-image: -moz-linear-gradient(top, #852b99, #6d1b81);
493 | background-image: -ms-linear-gradient(top, #852b99, #6d1b81);
494 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#852b99), to(#6d1b81));
495 | background-image: -webkit-linear-gradient(top, #852b99, #6d1b81);
496 | background-image: -o-linear-gradient(top, #852b99, #6d1b81);
497 | background-image: linear-gradient(top, #852b99, #6d1b81);
498 | background-repeat: repeat-x;
499 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#852b99', endColorstr='#6d1b81', GradientType=0);
500 |
501 | }
502 |
503 |
504 | .m-btn.black {
505 | color: white;
506 | text-shadow: none;
507 | background-color: #555555;
508 | background-image: -moz-linear-gradient(top, #555555, #555555);
509 | background-image: -ms-linear-gradient(top, #555555, #555555);
510 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#555555));
511 | background-image: -webkit-linear-gradient(top, #555555, #555555);
512 | background-image: -o-linear-gradient(top, #555555, #555555);
513 | background-image: linear-gradient(top, #555555, #555555);
514 | background-repeat: repeat-x;
515 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#555555', GradientType=0);
516 | }
517 | .m-btn.black:hover,
518 | .m-btn.black:focus,
519 | .m-btn.black:active,
520 | .m-btn.black.active,
521 | .m-btn.black.disabled,
522 | .m-btn.black[disabled] {
523 | background-color: #222222;
524 | background-image: -moz-linear-gradient(top, #222222, #222222);
525 | background-image: -ms-linear-gradient(top, #222222, #222222);
526 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#222222));
527 | background-image: -webkit-linear-gradient(top, #222222, #222222);
528 | background-image: -o-linear-gradient(top, #222222, #222222);
529 | background-image: linear-gradient(top, #222222, #222222);
530 | background-repeat: repeat-x;
531 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#222222', endColorstr='#222222', GradientType=0);
532 | }
533 |
534 | .m-btn.black:active,
535 | .m-btn.black.active
536 | {
537 | background-color: #222222;
538 | background-image: -moz-linear-gradient(top, #444444, #222222);
539 | background-image: -ms-linear-gradient(top, #444444, #222222);
540 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#222222));
541 | background-image: -webkit-linear-gradient(top, #444444, #222222);
542 | background-image: -o-linear-gradient(top, #444444, #222222);
543 | background-image: linear-gradient(top, #444444, #222222);
544 | background-repeat: repeat-x;
545 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#444444', endColorstr='#222222', GradientType=0);
546 |
547 | }
548 | /* Mini-button */
549 | .sm {
550 | font-size: 11px;
551 | }
552 | .mini
553 | {
554 | height: 13px;
555 | font-size: 11px;
556 | line-height: 13px;
557 | padding: 4px 10px;
558 | }
559 | .big
560 | {
561 | height: 38px;
562 | font-size: 18px;
563 | line-height: 38px;
564 | padding: 20px 26px;
565 | }
566 |
567 | .rnd
568 | {
569 | -webkit-border-radius: 5px;
570 | -moz-border-radius: 5px;
571 | border-radius: 5px;
572 | }
573 |
574 | .big.rnd
575 | {
576 | -webkit-border-radius: 11px;
577 | -moz-border-radius: 11px;
578 | border-radius: 11px;
579 | }
580 |
581 | /* Disabled */
582 | .m-btn.disabled, .m-btn[disabled] {
583 | color: #999999;
584 | background-color: #f5f5f5;
585 | background-image: -moz-linear-gradient(top, #eeeeee, #dddddd);
586 | background-image: -ms-linear-gradient(top, #eeeeee, #dddddd);
587 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#eeeeee), to(#dddddd));
588 | background-image: -webkit-linear-gradient(top, #eeeeee, #dddddd);
589 | background-image: -o-linear-gradient(top, #eeeeee, #dddddd);
590 | background-image: linear-gradient(top, #eeeeee, #dddddd);
591 | background-repeat: repeat-x;
592 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dddddd', GradientType=0);
593 | cursor: default;
594 | -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.25);
595 | -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.25);
596 | box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.25);
597 | }
598 | /* Misc */
599 | .m-btn.icn-only {
600 | min-width: 14px;
601 | }
602 | .m-btn.bigicn-only {
603 | min-width: 34px;
604 | }
605 | .m-btn-group {
606 | position: relative;
607 | display: inline-block;
608 | list-style: none;
609 | padding: 0;
610 | margin: 0;
611 | /* IE hacks */
612 |
613 | zoom: 1;
614 | *display: inline;
615 | }
616 | .m-btn + .m-btn,
617 | .m-btn + .m-btn-group,
618 | .m-btn-group + .m-btn,
619 | .m-btn-group + .m-btn-group {
620 | margin-left: 15px;
621 | }
622 |
623 | .m-btn.dropdown-carettoggle {
624 | min-width: 5px;
625 | height: 18px;
626 | padding: 8px;
627 | }
628 | .m-btn.dropdown-carettoggle > .caret {
629 | margin-top: 8px;
630 | }
631 | .m-btn.caret:hover {
632 | opacity: 1;
633 | }
634 |
635 | .m-btn-group .m-btn {
636 | position: relative;
637 | float: left;
638 | margin-left: -1px;
639 | }
640 |
641 | .m-btn-group .m-btn:first-child {
642 | margin-left: 0;
643 | }
644 |
645 | .m-btn-group .m-btn.rnd:first-child {
646 | -webkit-border-radius: 5px 0 0 5px;
647 | -moz-border-radius: 5px 0 0 5px;
648 | border-radius: 5px 0 0 5px;
649 | }
650 |
651 | .m-btn-group .m-btn.rnd.dropdown-carettoggle {
652 | -webkit-border-radius: 0 5px 5px 0;
653 | -moz-border-radius: 0 5px 5px 0;
654 | border-radius: 0 5px 5px 0;
655 | }
656 |
657 | /* BUTTON CONTAINER */
658 | /* For mixing buttons and button groups, e.g., in a navigation bar */
659 | .m-btn-strip .m-btn, .m-btn-strip .m-btn-group {
660 | vertical-align: top;
661 | }
662 | .m-btn-group.open {
663 | *z-index: 1000;
664 | }
665 |
666 | .m-btn-group.open .dropdown-carettoggle,
667 | .m-btn-group.open .dropdown-toggle {
668 | background-image: none;
669 | -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.2);
670 | -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.2);
671 | box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.2);
672 | }
673 |
674 | .m-btn-group.open .m-dropdown-menu {
675 | display: block;
676 | margin-top: 1px;
677 | }
--------------------------------------------------------------------------------