Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge branch 'develop' of git.alabs.es:oiga.me into develop

  • Loading branch information...
commit fbeb218a1b35cb86081a5321470f4d793c772e17 2 parents d67bce5 + 7bbdf6a
Antonio Pardo apardo authored
2  Gemfile
View
@@ -57,3 +57,5 @@ gem 'fb_graph'
gem 'kaminari'
gem 'omniauth-facebook'
gem 'omniauth-twitter'
+
+gem 'rails_admin'
22 Gemfile.lock
View
@@ -51,7 +51,9 @@ GEM
ansi (1.4.3)
arel (3.0.2)
attr_required (0.0.5)
+ bbenezech-nested_form (0.0.6)
bcrypt-ruby (3.0.1)
+ bootstrap-sass (2.0.4.0)
builder (3.0.0)
cancan (1.6.8)
capistrano (2.12.0)
@@ -99,10 +101,12 @@ GEM
rack-oauth2 (>= 0.14.4)
tzinfo
ffi (1.0.11)
+ haml (3.1.7)
hashie (1.2.0)
highline (1.6.13)
hike (1.2.1)
honeypot-captcha (0.0.2)
+ hpricot (0.8.6)
httparty (0.8.3)
multi_json (~> 1.0)
multi_xml
@@ -186,6 +190,9 @@ GEM
i18n
json (>= 1.4.3)
rack (>= 1.1)
+ rack-pjax (0.5.9)
+ hpricot (~> 0.8.6)
+ rack (~> 1.3)
rack-ssl (1.3.2)
rack
rack-test (0.6.1)
@@ -200,6 +207,19 @@ GEM
railties (= 3.2.7)
rails3_acts_as_paranoid (0.2.4)
activerecord (~> 3.2)
+ rails_admin (0.0.5)
+ bbenezech-nested_form (~> 0.0.6)
+ bootstrap-sass (~> 2.0, >= 2.0.3)
+ builder (~> 3.0)
+ coffee-rails (~> 3.1)
+ haml (~> 3.1)
+ jquery-rails (>= 1.0.17)
+ jquery-ui-rails (>= 0.5, < 2)
+ kaminari (~> 0.12)
+ rack-pjax (~> 0.5)
+ rails (~> 3.1)
+ remotipart (~> 1.0)
+ sass-rails (~> 3.1)
railties (3.2.7)
actionpack (= 3.2.7)
activesupport (= 3.2.7)
@@ -229,6 +249,7 @@ GEM
redis-store (~> 1.1.0)
redis-store (1.1.1)
redis (>= 2.2.0)
+ remotipart (1.0.2)
riddle (1.5.2)
rmagick (2.13.1)
rubyzip (0.9.9)
@@ -312,6 +333,7 @@ DEPENDENCIES
query_reviewer!
rails (= 3.2.7)
rails3_acts_as_paranoid (~> 0.2.0)
+ rails_admin
redcarpet
redis-rails
redis-store
1  app/assets/stylesheets/application.css.sass
View
@@ -8,6 +8,7 @@
@import "jquery.datePicker"
@import "jquery.ui.all"
@import "multi-select"
+@import "glyphicons"
//import "translate"
6 app/models/ability.rb
View
@@ -7,6 +7,8 @@ def initialize(user)
user ||= User.new
if user.role? :user
+ cannot :access, :rails_admin # revoke access to rails_admin
+ cannot :dashboard # revoke access to the dashboard
can :read, Campaign, :moderated => false
can :read, Campaign do |campaign|
unless campaign.sub_oigame.nil?
@@ -42,6 +44,8 @@ def initialize(user)
end
if user.role? :editor
+ cannot :access, :rails_admin # revoke access to rails_admin
+ cannot :dashboard # revoke access to the dashboard
can :manage, Campaign do |campaign|
campaign.sub_oigame.nil?
end
@@ -63,6 +67,8 @@ def initialize(user)
end
if user.role? :admin
+ can :access, :rails_admin # grant access to rails_admin
+ can :dashboard # grant access to the dashboard
can :manage, :all
end
end
11 app/models/admin_user.rb
View
@@ -1,11 +0,0 @@
-class AdminUser < ActiveRecord::Base
- # Include default devise modules. Others available are:
- # :token_authenticatable, :confirmable,
- # :lockable, :timeoutable and :omniauthable
- devise :database_authenticatable,
- :recoverable, :rememberable, :trackable, :validatable
-
- # Setup accessible (or protected) attributes for your model
- attr_accessible :email, :password, :password_confirmation, :remember_me
- # attr_accessible :title, :body
-end
1  app/models/user.rb
View
@@ -6,6 +6,7 @@ class User < ActiveRecord::Base
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me, :mailing, :name, :vat, :provider, :uid
+ attr_accessible :email, :password, :password_confirmation, :remember_me, :mailing, :name, :vat, :provider, :uid, :role, as: :admin
has_many :campaigns, :dependent => :destroy
has_and_belongs_to_many :sub_oigames
14 app/views/layouts/application.html.erb
View
@@ -124,8 +124,18 @@
</div>
<%= submit_tag 'Iniciar sesión', :class => "btn" %>
<p><%= link_to '¿Olvidaste tu contraseña?', new_user_password_path %></p>
- <p><%= link_to 'Iniciar sesión con Facebook', user_omniauth_authorize_path(:facebook) %></p>
- <p><%= link_to 'Iniciar sesión con Twitter', user_omniauth_authorize_path(:twitter) %></p>
+ <p>
+ <%= link_to user_omniauth_authorize_path(:facebook) do %>
+ <i class="glyphicon-facebook"></i>
+ Iniciar sesión con Facebook
+ <% end %>
+ </p>
+ <p>
+ <%= link_to user_omniauth_authorize_path(:twitter) do %>
+ <i class="glyphicon-twitter"></i>
+ Iniciar sesión con Twitter
+ <% end %>
+ </p>
</fieldset>
<% end %>
</div><!-- signin-container -->
5 app/views/rails_admin/main/_user_role.html.erb
View
@@ -0,0 +1,5 @@
+<select>
+ <option value="user">user</option>
+ <option value="editor">editor</option>
+ <option value="admin">admin</option>
+</select>
254 config/initializers/rails_admin.rb
View
@@ -0,0 +1,254 @@
+# RailsAdmin config file. Generated on August 23, 2012 12:53
+# See github.com/sferik/rails_admin for more informations
+
+RailsAdmin.config do |config|
+
+
+ config.model User do
+ update do
+ configure :role do
+ partial "user_role"
+ end
+ end
+ end
+
+ config.attr_accessible_role { :admin }
+
+ # https://github.com/sferik/rails_admin/wiki/CanCan
+ # FIXME: da este error -
+ # The accessible_by call cannot be used with a block 'can' definition. The SQL cannot be determined for :index Campaign(id: integer, name: string, slug: string, intro: text, body: text, created_at: datetime, updated_at: datetime, user_id: integer, image: string, emails: text, moderated: boolean, published_at: datetime, target: string, duedate_at: datetime, ttype: string, status: string, sub_oigame_id: integer, default_message_subject: string, default_message_body: text, priority: boolean, deleted_at: time, messages_count: integer, petitions_count: integer, commentable: boolean)
+ #config.authorize_with :cancan
+
+ # If your default_local is different from :en, uncomment the following 2 lines and set your default locale here:
+ # require 'i18n'
+ # I18n.default_locale = :de
+
+ config.current_user_method { current_user } # auto-generated
+
+ # If you want to track changes on your models:
+ # config.audit_with :history, User
+
+ # Or with a PaperTrail: (you need to install it first)
+ # config.audit_with :paper_trail, User
+
+ config.main_app_name = ['oiga.me', 'Admin']
+
+
+ # ==> Global show view settings
+ # Display empty fields in show views
+ # config.compact_show_view = false
+
+ # ==> Global list view settings
+ # Number of default rows per-page:
+ # config.default_items_per_page = 20
+
+ # ==> Included models
+ # Add all excluded models here:
+ # config.excluded_models = [Campaign, Contact, Message, Petition, SubOigame, User]
+
+ # Add models here if you want to go 'whitelist mode':
+ # config.included_models = [Campaign, Contact, Message, Petition, SubOigame, User]
+
+ # Application wide tried label methods for models' instances
+ # config.label_methods << :description # Default is [:name, :title]
+
+ # ==> Global models configuration
+ # config.models do
+ # # Configuration here will affect all included models in all scopes, handle with care!
+ #
+ # list do
+ # # Configuration here will affect all included models in list sections (same for show, export, edit, update, create)
+ #
+ # fields_of_type :date do
+ # # Configuration here will affect all date fields, in the list section, for all included models. See README for a comprehensive type list.
+ # end
+ # end
+ # end
+ #
+ # ==> Model specific configuration
+ # Keep in mind that *all* configuration blocks are optional.
+ # RailsAdmin will try his best to provide the best defaults for each section, for each field.
+ # Try to override as few things as possible, in the most generic way. Try to avoid setting labels for models and attributes, use ActiveRecord I18n API instead.
+ # Less code is better code!
+ # config.model MyModel do
+ # # Cross-section field configuration
+ # object_label_method :name # Name of the method called for pretty printing an *instance* of ModelName
+ # label 'My model' # Name of ModelName (smartly defaults to ActiveRecord's I18n API)
+ # label_plural 'My models' # Same, plural
+ # weight -1 # Navigation priority. Bigger is higher.
+ # parent OtherModel # Set parent model for navigation. MyModel will be nested below. OtherModel will be on first position of the dropdown
+ # navigation_label # Sets dropdown entry's name in navigation. Only for parents!
+ # # Section specific configuration:
+ # list do
+ # filters [:id, :name] # Array of field names which filters should be shown by default in the table header
+ # items_per_page 100 # Override default_items_per_page
+ # sort_by :id # Sort column (default is primary key)
+ # sort_reverse true # Sort direction (default is true for primary key, last created first)
+ # # Here goes the fields configuration for the list view
+ # end
+ # end
+
+ # Your model's configuration, to help you get started:
+
+ # All fields marked as 'hidden' won't be shown anywhere in the rails_admin unless you mark them as visible. (visible(true))
+
+ # config.model Campaign do
+ # # Found associations:
+ # configure :user, :belongs_to_association
+ # configure :sub_oigame, :belongs_to_association
+ # configure :messages, :has_many_association
+ # configure :petitions, :has_many_association
+ # configure :taggings, :has_many_association # Hidden
+ # configure :base_tags, :has_many_association # Hidden
+ # configure :tag_taggings, :has_many_association # Hidden
+ # configure :tags, :has_many_association # Hidden # # Found columns:
+ # configure :id, :integer
+ # configure :name, :string
+ # configure :slug, :string
+ # configure :intro, :text
+ # configure :body, :text
+ # configure :created_at, :datetime
+ # configure :updated_at, :datetime
+ # configure :user_id, :integer # Hidden
+ # configure :image, :carrierwave
+ # configure :emails, :serialized
+ # configure :moderated, :boolean
+ # configure :published_at, :datetime
+ # configure :target, :string
+ # configure :duedate_at, :datetime
+ # configure :ttype, :string
+ # configure :status, :string
+ # configure :sub_oigame_id, :integer # Hidden
+ # configure :default_message_subject, :string
+ # configure :default_message_body, :text
+ # configure :priority, :boolean
+ # configure :deleted_at, :time
+ # configure :messages_count, :integer
+ # configure :petitions_count, :integer
+ # configure :commentable, :boolean # # Sections:
+ # list do; end
+ # export do; end
+ # show do; end
+ # edit do; end
+ # create do; end
+ # update do; end
+ # end
+ # config.model Contact do
+ # # Found associations:
+ # # Found columns:
+ # configure :id, :integer
+ # configure :name, :string
+ # configure :email, :string
+ # configure :subject, :string
+ # configure :body, :text
+ # configure :created_at, :datetime
+ # configure :updated_at, :datetime
+ # configure :mailing, :boolean # # Sections:
+ # list do; end
+ # export do; end
+ # show do; end
+ # edit do; end
+ # create do; end
+ # update do; end
+ # end
+ # config.model Message do
+ # # Found associations:
+ # configure :campaign, :belongs_to_association # # Found columns:
+ # configure :id, :integer
+ # configure :campaign_id, :integer # Hidden
+ # configure :created_at, :datetime
+ # configure :updated_at, :datetime
+ # configure :email, :string
+ # configure :validated, :boolean
+ # configure :token, :string
+ # configure :body, :text
+ # configure :subject, :string
+ # configure :name, :string # # Sections:
+ # list do; end
+ # export do; end
+ # show do; end
+ # edit do; end
+ # create do; end
+ # update do; end
+ # end
+ # config.model Petition do
+ # # Found associations:
+ # configure :campaign, :belongs_to_association # # Found columns:
+ # configure :id, :integer
+ # configure :campaign_id, :integer # Hidden
+ # configure :email, :string
+ # configure :created_at, :datetime
+ # configure :updated_at, :datetime
+ # configure :validated, :boolean
+ # configure :token, :string
+ # configure :name, :string # # Sections:
+ # list do; end
+ # export do; end
+ # show do; end
+ # edit do; end
+ # create do; end
+ # update do; end
+ # end
+ # config.model SubOigame do
+ # # Found associations:
+ # configure :users, :has_and_belongs_to_many_association
+ # configure :campaigns, :has_many_association # # Found columns:
+ # configure :id, :integer
+ # configure :name, :string
+ # configure :slug, :string
+ # configure :html_header, :text
+ # configure :html_footer, :text
+ # configure :html_style, :text
+ # configure :created_at, :datetime
+ # configure :updated_at, :datetime
+ # configure :logo, :carrierwave
+ # configure :logobase64, :text
+ # configure :from, :string
+ # configure :deleted_at, :time
+ # configure :mail_message, :text
+ # configure :campaigns_count, :integer # # Sections:
+ # list do; end
+ # export do; end
+ # show do; end
+ # edit do; end
+ # create do; end
+ # update do; end
+ # end
+ # config.model User do
+ # # Found associations:
+ # configure :campaigns, :has_many_association
+ # configure :sub_oigames, :has_and_belongs_to_many_association # # Found columns:
+ # configure :id, :integer
+ # configure :email, :string
+ # configure :password, :password # Hidden
+ # configure :password_confirmation, :password # Hidden
+ # configure :reset_password_token, :string # Hidden
+ # configure :reset_password_sent_at, :datetime
+ # configure :remember_created_at, :datetime
+ # configure :sign_in_count, :integer
+ # configure :current_sign_in_at, :datetime
+ # configure :last_sign_in_at, :datetime
+ # configure :current_sign_in_ip, :string
+ # configure :last_sign_in_ip, :string
+ # configure :confirmation_token, :string
+ # configure :confirmed_at, :datetime
+ # configure :confirmation_sent_at, :datetime
+ # configure :created_at, :datetime
+ # configure :updated_at, :datetime
+ # configure :mailing, :boolean
+ # configure :role, :string
+ # configure :name, :string
+ # configure :vat, :string
+ # configure :authentication_token, :string
+ # configure :unconfirmed_email, :string
+ # configure :campaigns_count, :integer
+ # configure :provider, :string
+ # configure :uid, :string # # Sections:
+ # list do; end
+ # export do; end
+ # show do; end
+ # edit do; end
+ # create do; end
+ # update do; end
+ # end
+end
130 config/locales/rails_admin.en.yml
View
@@ -0,0 +1,130 @@
+en:
+ admin:
+ home:
+ name: "Home"
+ pagination:
+ previous: "&laquo; Prev"
+ next: "Next &raquo;"
+ truncate: ""
+ misc:
+ filter_date_format: "mm/dd/yy" # a combination of 'dd', 'mm' and 'yy' with any delimiter. No other interpolation will be done!
+ search: "Search"
+ filter: "Filter"
+ refresh: "Refresh"
+ show_all: "Show all"
+ add_filter: "Add filter"
+ bulk_menu_title: "Selected items"
+ remove: "Remove"
+ add_new: "Add new"
+ chosen: "Chosen %{name}"
+ chose_all: "Choose all"
+ clear_all: "Clear all"
+ up: "Up"
+ down: "Down"
+ navigation: "Navigation"
+ navigation_static_label: "Links"
+ log_out: "Log out"
+ ago: "ago"
+ flash:
+ successful: "%{name} successfully %{action}"
+ error: "%{name} failed to be %{action}"
+ noaction: "No actions were taken"
+ model_not_found: "Model '%{model}' could not be found"
+ object_not_found: "%{model} with id '%{id}' could not be found"
+ table_headers:
+ model_name: "Model name"
+ last_used: "Last used"
+ records: "Records"
+ username: "User"
+ changes: "Changes"
+ created_at: "Date/Time"
+ item: "Item"
+ message: "Message"
+ actions:
+ dashboard:
+ title: "Site administration"
+ menu: "Dashboard"
+ breadcrumb: "Dashboard"
+ index:
+ title: "List of %{model_label_plural}"
+ menu: "List"
+ breadcrumb: "%{model_label_plural}"
+ show:
+ title: "Details for %{model_label} '%{object_label}'"
+ menu: "Show"
+ breadcrumb: "%{object_label}"
+ show_in_app:
+ menu: "Show in app"
+ new:
+ title: "New %{model_label}"
+ menu: "Add new"
+ breadcrumb: "New"
+ link: "Add a new %{model_label}"
+ done: "created"
+ edit:
+ title: "Edit %{model_label} '%{object_label}'"
+ menu: "Edit"
+ breadcrumb: "Edit"
+ link: "Edit this %{model_label}"
+ done: "updated"
+ delete:
+ title: "Delete %{model_label} '%{object_label}'"
+ menu: "Delete"
+ breadcrumb: "Delete"
+ link: "Delete '%{object_label}'"
+ done: "deleted"
+ bulk_delete:
+ title: "Delete %{model_label_plural}"
+ menu: "Multiple delete"
+ breadcrumb: "Multiple delete"
+ bulk_link: "Delete selected %{model_label_plural}"
+ export:
+ title: "Export %{model_label_plural}"
+ menu: "Export"
+ breadcrumb: "Export"
+ link: "Export found %{model_label_plural}"
+ bulk_link: "Export selected %{model_label_plural}"
+ done: "exported"
+ history_index:
+ title: "History for %{model_label_plural}"
+ menu: "History"
+ breadcrumb: "History"
+ history_show:
+ title: "History for %{model_label} '%{object_label}'"
+ menu: "History"
+ breadcrumb: "History"
+ form:
+ cancel: "Cancel"
+ basic_info: "Basic info"
+ required: "Required"
+ optional: "Optional"
+ one_char: "character"
+ char_length_up_to: "length up to"
+ char_length_of: "length of"
+ save: "Save"
+ save_and_add_another: "Save and add another"
+ save_and_edit: "Save and edit"
+ all_of_the_following_related_items_will_be_deleted: "? The following related items may be deleted or orphaned:"
+ are_you_sure_you_want_to_delete_the_object: "Are you sure you want to delete this %{model_name}"
+ confirmation: "Yes, I'm sure"
+ bulk_delete: "The following objects will be deleted, which may delete or orphan some of their related dependencies:"
+ new_model: "%{name} (new)"
+ export:
+ confirmation: "Export to %{name}"
+ select: "Select fields to export"
+ fields_from: "Fields from %{name}"
+ fields_from_associated: "Fields from associated %{name}"
+ display: "Display %{name}: %{type}"
+ options_for: "Options for %{name}"
+ empty_value_for_associated_objects: "<empty>"
+ click_to_reverse_selection: 'Click to reverse selection'
+ csv:
+ header_for_root_methods: "%{name}" # 'model' is available
+ header_for_association_methods: "%{name} [%{association}]"
+ encoding_to: "Encode to"
+ encoding_to_help: "Choose output encoding. Leave empty to let current input encoding untouched: (%{name})"
+ skip_header: "No header"
+ skip_header_help: "Do not output a header (no fields description)"
+ default_col_sep: ","
+ col_sep: "Column separator"
+ col_sep_help: "Leave blank for default ('%{value}')" # value is default_col_sep
129 config/locales/rails_admin.es.yml
View
@@ -0,0 +1,129 @@
+es:
+ admin:
+ home:
+ name: Inicio
+ pagination:
+ previous: "&laquo; Anterior"
+ next: "Siguiente &raquo;"
+ truncate: ""
+ misc:
+ filter_date_format: "dd/mm/yy" # a combination of 'dd', 'mm' and 'yy' with any delimiter. No other interpolation will be done!
+ search: "Search"
+ filter: "Filtrar"
+ refresh: "Actualizar"
+ show_all: "Mostrar todo"
+ add_filter: "Añadir filtro..."
+ bulk_menu_title: "Elementos seleccionados..."
+ remove: "Eliminar"
+ add_new: "Agregar nuevo"
+ chosen: "Elegido %{name}"
+ chose_all: "Elegir todos"
+ clear_all: "Borrar todos"
+ up: "Arriba"
+ down: "Abajo"
+ navigation: "Navegación"
+ log_out: "Salir"
+ ago: "atrás" #TODO: better something like "%{time} ago" -> "hace %{time}"
+ flash:
+ successful: "%{name} %{action} con éxito"
+ error: "%{name} no se %{action}"
+ noaction: "No se llevó a cabo ninguna acción"
+ model_not_found: "El modelo '%{model}' no se pudo encontrar"
+ object_not_found: "%{model} con id '%{id}' no se pudo encontrar"
+ table_headers:
+ model_name: "Nombre del modelo"
+ last_used: "Último uso"
+ records: "Registros"
+ username: "Usuario"
+ changes: "Cambios"
+ created_at: "Fecha/Hora"
+ item: "Elemento"
+ message: "Mensaje"
+ actions:
+ dashboard:
+ title: "Administración del sitio"
+ menu: "Panel de control"
+ breadcrumb: "Panel de control"
+ index:
+ title: "Lista de %{model_label_plural}"
+ menu: "Listar"
+ breadcrumb: "%{model_label_plural}"
+ show:
+ title: "Detalles de %{model_label} '%{object_label}'"
+ menu: "Mostrar"
+ breadcrumb: "%{object_label}"
+ show_in_app:
+ menu: "Mostrar en la app"
+ new:
+ title: "Nuevo %{model_label}"
+ menu: "Agregar nuevo"
+ breadcrumb: "Nuevo"
+ link: "Agregar un nuevo %{model_label}"
+ done: "creado"
+ edit:
+ title: "Editar %{model_label} '%{object_label}'"
+ menu: "Editar"
+ breadcrumb: "Editar"
+ link: "Editar este %{model_label}"
+ done: "modificado"
+ delete:
+ title: "Eliminar %{model_label} '%{object_label}'"
+ menu: "Eliminar"
+ breadcrumb: "Eliminar"
+ link: "Eliminar '%{object_label}'"
+ done: "eliminado"
+ bulk_delete:
+ title: "Eliminar %{model_label_plural}"
+ menu: "Eliminar varios"
+ breadcrumb: "Eliminar varios"
+ bulk_link: "Eliminar %{model_label_plural} seleccionados"
+ export:
+ title: "Exportar %{model_label}"
+ menu: "Exportar"
+ breadcrumb: "Exportar"
+ link: "Exportar %{model_label_plural} encontrados"
+ bulk_link: "Exportar %{model_label_plural} seleccionados"
+ done: "exportados"
+ history_index:
+ title: "Historial para %{model_label_plural}"
+ menu: "Historial"
+ breadcrumb: "Historial"
+ history_show:
+ title: "Historial para %{model_label} '%{object_label}'"
+ menu: "Historial"
+ breadcrumb: "Historial"
+ form:
+ cancel: "Cancelar"
+ basic_info: "Información básica"
+ required: "Requerido"
+ optional: "Opcional"
+ one_char: "carácter"
+ char_length_up_to: "longitud de hasta"
+ char_length_of: "longitud de"
+ save: "Guardar"
+ save_and_add_another: "Guardar y añadir otro"
+ save_and_edit: "Guardar y editar"
+ all_of_the_following_related_items_will_be_deleted: "? Los siguientes elementos relacionados pueden ser eliminados o quedar huérfanos:"
+ are_you_sure_you_want_to_delete_the_object: "¿Está seguro de que quiere eliminar este %{model_name}"
+ confirmation: "Si, estoy seguro"
+ bulk_delete: "Los siguientes objetos serán eliminados, lo cual puede eliminar o dejar huérfanas algunas de sus dependencias relacionadas:"
+ new_model: "%{name} (nuevo)"
+ export:
+ confirmation: "Exportar a %{name}"
+ select: "Seleccione los campos para la exportación"
+ fields_from: "Campos de %{name}"
+ fields_from_associated: "Campos del %{name} asociado"
+ display: "Mostrar %{name}: %{type}"
+ options_for: "Opciones para %{name}"
+ empty_value_for_associated_objects: "<vacío>"
+ click_to_reverse_selection: 'Haga click para invertir la selección'
+ csv:
+ header_for_root_methods: "%{name}" # 'model' is available
+ header_for_association_methods: "%{name} [%{association}]"
+ encoding_to: "Codificar a"
+ encoding_to_help: "Elija la codificación de salida. Deje en blanco para no cambiar la codificación actual: (%{name})"
+ skip_header: "Sin cabecera"
+ skip_header_help: "No incluir un encabezado (sin descripción de los campos)"
+ default_col_sep: ","
+ col_sep: "Separador de columnas"
+ col_sep_help: "Deje en blanco para el de defecto ('%{value}')" # value is default_col_sep
4 config/routes.rb
View
@@ -1,5 +1,9 @@
Oigame::Application.routes.draw do
+ mount RailsAdmin::Engine => '/admin', :as => 'rails_admin'
+
+ devise_for :users
+
#ActiveAdmin.routes(self)
#devise_for :admin_users, ActiveAdmin::Devise.config
18 db/migrate/20120823105333_create_rails_admin_histories_table.rb
View
@@ -0,0 +1,18 @@
+class CreateRailsAdminHistoriesTable < ActiveRecord::Migration
+ def self.up
+ create_table :rails_admin_histories do |t|
+ t.text :message # title, name, or object_id
+ t.string :username
+ t.integer :item
+ t.string :table
+ t.integer :month, :limit => 2
+ t.integer :year, :limit => 5
+ t.timestamps
+ end
+ add_index(:rails_admin_histories, [:item, :table, :month, :year], :name => 'index_rails_admin_histories' )
+ end
+
+ def self.down
+ drop_table :rails_admin_histories
+ end
+end
83 db/schema.rb
View
@@ -11,15 +11,15 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20120820093118) do
+ActiveRecord::Schema.define(:version => 20120823105333) do
create_table "campaigns", :force => true do |t|
t.string "name"
t.string "slug"
t.text "intro"
t.text "body"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
t.integer "user_id"
t.string "image"
t.text "emails"
@@ -29,11 +29,11 @@
t.datetime "duedate_at"
t.string "ttype"
t.string "status", :default => "active"
- t.time "deleted_at"
t.integer "sub_oigame_id"
t.string "default_message_subject"
t.text "default_message_body"
t.boolean "priority", :default => false
+ t.time "deleted_at"
t.integer "messages_count", :default => 0
t.integer "petitions_count", :default => 0
t.boolean "commentable", :default => true
@@ -51,15 +51,15 @@
t.string "email"
t.string "subject"
t.text "body"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
t.boolean "mailing", :default => false
end
create_table "messages", :force => true do |t|
t.integer "campaign_id"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
t.string "email"
t.boolean "validated", :default => false
t.string "token"
@@ -74,8 +74,8 @@
create_table "petitions", :force => true do |t|
t.integer "campaign_id"
t.string "email"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
t.boolean "validated", :default => false
t.string "token"
t.string "name"
@@ -84,11 +84,24 @@
add_index "petitions", ["campaign_id"], :name => "index_petitions_on_campaign_id"
add_index "petitions", ["validated"], :name => "index_petitions_on_validated"
+ create_table "rails_admin_histories", :force => true do |t|
+ t.text "message"
+ t.string "username"
+ t.integer "item"
+ t.string "table"
+ t.integer "month", :limit => 2
+ t.integer "year", :limit => 8
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
+ add_index "rails_admin_histories", ["item", "table", "month", "year"], :name => "index_rails_admin_histories"
+
create_table "sessions", :force => true do |t|
t.string "session_id", :null => false
t.text "data"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
end
add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id"
@@ -137,13 +150,39 @@
add_index "tags", ["name"], :name => "index_tags_on_name", :length => {"name"=>254}
+ create_table "tolk_locales", :force => true do |t|
+ t.string "name"
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ end
+
+ add_index "tolk_locales", ["name"], :name => "index_tolk_locales_on_name", :unique => true
+
+ create_table "tolk_phrases", :force => true do |t|
+ t.text "key"
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ end
+
+ create_table "tolk_translations", :force => true do |t|
+ t.integer "phrase_id"
+ t.integer "locale_id"
+ t.text "text"
+ t.text "previous_text"
+ t.boolean "primary_updated", :default => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ end
+
+ add_index "tolk_translations", ["phrase_id", "locale_id"], :name => "index_tolk_translations_on_phrase_id_and_locale_id", :unique => true
+
create_table "users", :force => true do |t|
- t.string "email", :default => "", :null => false
- t.string "encrypted_password", :default => "", :null => false
+ t.string "email", :default => "", :null => false
+ t.string "encrypted_password", :limit => 128, :default => "", :null => false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
- t.integer "sign_in_count", :default => 0
+ t.integer "sign_in_count", :default => 0
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
@@ -151,15 +190,15 @@
t.string "confirmation_token"
t.datetime "confirmed_at"
t.datetime "confirmation_sent_at"
- t.string "unconfirmed_email"
- t.string "authentication_token"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
- t.boolean "mailing", :default => false
- t.string "role", :default => "user"
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ t.boolean "mailing", :default => false
+ t.string "role", :default => "user"
t.string "name"
t.string "vat"
- t.integer "campaigns_count", :default => 0
+ t.string "authentication_token"
+ t.string "unconfirmed_email"
+ t.integer "campaigns_count", :default => 0
t.string "provider"
t.string "uid"
end
BIN  vendor/assets/images/glyphicon.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
413 vendor/assets/stylesheets/glyphicons.css
View
@@ -0,0 +1,413 @@
+/* http://supercerebral.com/glyphicons-to-halflings-sprite/ */
+[class^="glyphicon-"],[class*=" glyphicon-"] {
+ display:inline-block;
+ width:14px;height:14px;
+ *margin-right:.3em;
+ line-height:14px;
+ vertical-align:text-top;
+ background-image:url("/assets/glyphicon.png");
+ background-repeat:no-repeat;
+}
+[class^="glyphicon-"]:last-child,[class*=" glyphicon-"]:last-child {
+ *margin-left:0;
+}
+.glyphicon-glass { background-position: 0 0 }
+.glyphicon-leaf { background-position: -34px 0 }
+.glyphicon-dog { background-position: -68px 0 }
+.glyphicon-user { background-position: -102px 0 }
+.glyphicon-girl { background-position: -136px 0 }
+.glyphicon-car { background-position: -170px 0 }
+.glyphicon-user-add { background-position: -204px 0 }
+.glyphicon-user-remove { background-position: -238px 0 }
+.glyphicon-film { background-position: -272px 0 }
+.glyphicon-magic { background-position: -306px 0 }
+.glyphicon-envelope { background-position: -340px 0 }
+.glyphicon-camera { background-position: -374px 0 }
+.glyphicon-heart { background-position: -408px 0 }
+.glyphicon-beach-umbrella { background-position: -442px 0 }
+.glyphicon-train { background-position: -476px 0 }
+.glyphicon-print { background-position: -510px 0 }
+.glyphicon-bin { background-position: -544px 0 }
+.glyphicon-music { background-position: -578px 0 }
+.glyphicon-note { background-position: -612px 0 }
+.glyphicon-cogwheel { background-position: -646px 0 }
+.glyphicon-home { background-position: -680px 0 }
+.glyphicon-snowflake { background-position: -714px 0 }
+.glyphicon-fire { background-position: -748px 0 }
+.glyphicon-cogwheels { background-position: -782px 0 }
+.glyphicon-parents { background-position: -816px 0 }
+.glyphicon-binoculars { background-position: -850px 0 }
+.glyphicon-road { background-position: -884px 0 }
+.glyphicon-search { background-position: -918px 0 }
+.glyphicon-cars { background-position: -952px 0 }
+.glyphicon-notes-2 { background-position: -986px 0 }
+.glyphicon-pencil { background-position: -1020px 0 }
+.glyphicon-bus { background-position: -1054px 0 }
+.glyphicon-wifi-alt { background-position: -1088px 0 }
+.glyphicon-luggage { background-position: -1122px 0 }
+.glyphicon-old-man { background-position: -1156px 0 }
+.glyphicon-woman { background-position: -1190px 0 }
+.glyphicon-file { background-position: -1224px 0 }
+.glyphicon-credit { background-position: -1258px 0 }
+.glyphicon-airplane { background-position: -1292px 0 }
+.glyphicon-notes { background-position: -1326px 0 }
+.glyphicon-stats { background-position: -1360px 0 }
+.glyphicon-charts { background-position: -1394px 0 }
+.glyphicon-pie-chart { background-position: -1428px 0 }
+.glyphicon-group { background-position: -1462px 0 }
+.glyphicon-keys { background-position: -1496px 0 }
+.glyphicon-calendar { background-position: -1530px 0 }
+.glyphicon-router { background-position: -1564px 0 }
+.glyphicon-camera-small { background-position: -1598px 0 }
+.glyphicon-dislikes { background-position: -1632px 0 }
+.glyphicon-star { background-position: -1666px 0 }
+.glyphicon-link { background-position: -1700px 0 }
+.glyphicon-eye-open { background-position: -1734px 0 }
+.glyphicon-eye-close { background-position: -1768px 0 }
+.glyphicon-alarm { background-position: -1802px 0 }
+.glyphicon-clock { background-position: -1836px 0 }
+.glyphicon-stopwatch { background-position: -1870px 0 }
+.glyphicon-projector { background-position: -1904px 0 }
+.glyphicon-history { background-position: -1938px 0 }
+.glyphicon-truck { background-position: -1972px 0 }
+.glyphicon-cargo { background-position: 0 -34px }
+.glyphicon-compass { background-position: -34px -34px }
+.glyphicon-keynote { background-position: -68px -34px }
+.glyphicon-attach { background-position: -102px -34px }
+.glyphicon-power { background-position: -136px -34px }
+.glyphicon-lightbulb { background-position: -170px -34px }
+.glyphicon-tag { background-position: -204px -34px }
+.glyphicon-tags { background-position: -238px -34px }
+.glyphicon-cleaning { background-position: -272px -34px }
+.glyphicon-ruller { background-position: -306px -34px }
+.glyphicon-gift { background-position: -340px -34px }
+.glyphicon-umbrella { background-position: -374px -34px }
+.glyphicon-book { background-position: -408px -34px }
+.glyphicon-bookmark { background-position: -442px -34px }
+.glyphicon-signal { background-position: -476px -34px }
+.glyphicon-cup { background-position: -510px -34px }
+.glyphicon-stroller { background-position: -544px -34px }
+.glyphicon-headphones { background-position: -578px -34px }
+.glyphicon-headset { background-position: -612px -34px }
+.glyphicon-warning-sign { background-position: -646px -34px }
+.glyphicon-signal { background-position: -680px -34px }
+.glyphicon-retweet { background-position: -714px -34px }
+.glyphicon-refresh { background-position: -748px -34px }
+.glyphicon-roundabout { background-position: -782px -34px }
+.glyphicon-random { background-position: -816px -34px }
+.glyphicon-heat { background-position: -850px -34px }
+.glyphicon-repeat { background-position: -884px -34px }
+.glyphicon-display { background-position: -918px -34px }
+.glyphicon-log-book { background-position: -952px -34px }
+.glyphicon-adress-book { background-position: -986px -34px }
+.glyphicon-magnet { background-position: -1020px -34px }
+.glyphicon-table { background-position: -1054px -34px }
+.glyphicon-adjust { background-position: -1088px -34px }
+.glyphicon-tint { background-position: -1122px -34px }
+.glyphicon-crop { background-position: -1156px -34px }
+.glyphicon-vector-path-square { background-position: -1190px -34px }
+.glyphicon-vector-path-circle { background-position: -1224px -34px }
+.glyphicon-vector-path-polygon { background-position: -1258px -34px }
+.glyphicon-vector-path-line { background-position: -1292px -34px }
+.glyphicon-vector-path-curve { background-position: -1326px -34px }
+.glyphicon-vector-path-all { background-position: -1360px -34px }
+.glyphicon-font { background-position: -1394px -34px }
+.glyphicon-italic { background-position: -1428px -34px }
+.glyphicon-bold { background-position: -1462px -34px }
+.glyphicon-text-underline { background-position: -1496px -34px }
+.glyphicon-text-strike { background-position: -1530px -34px }
+.glyphicon-text-height { background-position: -1564px -34px }
+.glyphicon-text-width { background-position: -1598px -34px }
+.glyphicon-text-resize { background-position: -1632px -34px }
+.glyphicon-left-indent { background-position: -1666px -34px }
+.glyphicon-right-indent { background-position: -1700px -34px }
+.glyphicon-align-left { background-position: -1734px -34px }
+.glyphicon-align-center { background-position: -1768px -34px }
+.glyphicon-align-right { background-position: -1802px -34px }
+.glyphicon-justify { background-position: -1836px -34px }
+.glyphicon-list { background-position: -1870px -34px }
+.glyphicon-text-smaller { background-position: -1904px -34px }
+.glyphicon-text-bigger { background-position: -1938px -34px }
+.glyphicon-embed { background-position: -1972px -34px }
+.glyphicon-embed-close { background-position: 0 -68px }
+.glyphicon-adjust { background-position: -34px -68px }
+.glyphicon-message-full { background-position: -68px -68px }
+.glyphicon-message-empty { background-position: -102px -68px }
+.glyphicon-message-in { background-position: -136px -68px }
+.glyphicon-message-out { background-position: -170px -68px }
+.glyphicon-message-plus { background-position: -204px -68px }
+.glyphicon-message-minus { background-position: -238px -68px }
+.glyphicon-message-ban { background-position: -272px -68px }
+.glyphicon-message-flag { background-position: -306px -68px }
+.glyphicon-message-lock { background-position: -340px -68px }
+.glyphicon-message-new { background-position: -374px -68px }
+.glyphicon-inbox { background-position: -408px -68px }
+.glyphicon-inbox-plus { background-position: -442px -68px }
+.glyphicon-inbox-minus { background-position: -476px -68px }
+.glyphicon-inbox-lock { background-position: -510px -68px }
+.glyphicon-inbox-in { background-position: -544px -68px }
+.glyphicon-inbox-out { background-position: -578px -68px }
+.glyphicon-computer-locked { background-position: -612px -68px }
+.glyphicon-computer-service { background-position: -646px -68px }
+.glyphicon-computer-proces { background-position: -680px -68px }
+.glyphicon-phone { background-position: -714px -68px }
+.glyphicon-database-lock { background-position: -748px -68px }
+.glyphicon-database-plus { background-position: -782px -68px }
+.glyphicon-database-minus { background-position: -816px -68px }
+.glyphicon-database-ban { background-position: -850px -68px }
+.glyphicon-folder-open { background-position: -884px -68px }
+.glyphicon-folder-plus { background-position: -918px -68px }
+.glyphicon-folder-minus { background-position: -952px -68px }
+.glyphicon-folder-lock { background-position: -986px -68px }
+.glyphicon-folder-flag { background-position: -1020px -68px }
+.glyphicon-folder-new { background-position: -1054px -68px }
+.glyphicon-check { background-position: -1088px -68px }
+.glyphicon-edit { background-position: -1122px -68px }
+.glyphicon-new-window { background-position: -1156px -68px }
+.glyphicon-more-windows { background-position: -1190px -68px }
+.glyphicon-show-big-thumbnails { background-position: -1224px -68px }
+.glyphicon-show-thumbnails { background-position: -1258px -68px }
+.glyphicon-show-thumbnails-with-lines { background-position: -1292px -68px }
+.glyphicon-show-lines { background-position: -1326px -68px }
+.glyphicon-playlist { background-position: -1360px -68px }
+.glyphicon-picture { background-position: -1394px -68px }
+.glyphicon-imac { background-position: -1428px -68px }
+.glyphicon-macbook { background-position: -1462px -68px }
+.glyphicon-ipad { background-position: -1496px -68px }
+.glyphicon-iphone { background-position: -1530px -68px }
+.glyphicon-iphone-transfer { background-position: -1564px -68px }
+.glyphicon-iphone-exchange { background-position: -1598px -68px }
+.glyphicon-ipod { background-position: -1632px -68px }
+.glyphicon-ipod-shuffle { background-position: -1666px -68px }
+.glyphicon-ear-plugs { background-position: -1700px -68px }
+.glyphicon-albums { background-position: -1734px -68px }
+.glyphicon-step-backward { background-position: -1768px -68px }
+.glyphicon-fast-backward { background-position: -1802px -68px }
+.glyphicon-rewind { background-position: -1836px -68px }
+.glyphicon-play { background-position: -1870px -68px }
+.glyphicon-pause { background-position: -1904px -68px }
+.glyphicon-stop { background-position: -1938px -68px }
+.glyphicon-forward { background-position: -1972px -68px }
+.glyphicon-fast-forward { background-position: 0 -102px }
+.glyphicon-step-forward { background-position: -34px -102px }
+.glyphicon-eject { background-position: -68px -102px }
+.glyphicon-facetime-video { background-position: -102px -102px }
+.glyphicon-download-alt { background-position: -136px -102px }
+.glyphicon-mute { background-position: -170px -102px }
+.glyphicon-volume-down { background-position: -204px -102px }
+.glyphicon-volume-up { background-position: -238px -102px }
+.glyphicon-screenshot { background-position: -272px -102px }
+.glyphicon-move { background-position: -306px -102px }
+.glyphicon-more { background-position: -340px -102px }
+.glyphicon-brightness-reduce { background-position: -374px -102px }
+.glyphicon-brightness-increase { background-position: -408px -102px }
+.glyphicon-circle-plus { background-position: -442px -102px }
+.glyphicon-circle-minus { background-position: -476px -102px }
+.glyphicon-circle-remove { background-position: -510px -102px }
+.glyphicon-circle-ok { background-position: -544px -102px }
+.glyphicon-circle-question-mark { background-position: -578px -102px }
+.glyphicon-circle-info { background-position: -612px -102px }
+.glyphicon-circle-exclamation-mark { background-position: -646px -102px }
+.glyphicon-remove { background-position: -680px -102px }
+.glyphicon-ok { background-position: -714px -102px }
+.glyphicon-ban { background-position: -748px -102px }
+.glyphicon-download { background-position: -782px -102px }
+.glyphicon-upload { background-position: -816px -102px }
+.glyphicon-shopping-cart { background-position: -850px -102px }
+.glyphicon-lock { background-position: -884px -102px }
+.glyphicon-unlock { background-position: -918px -102px }
+.glyphicon-electricity { background-position: -952px -102px }
+.glyphicon-ok-2 { background-position: -986px -102px }
+.glyphicon-remove-2 { background-position: -1020px -102px }
+.glyphicon-cart-out { background-position: -1054px -102px }
+.glyphicon-cart-in { background-position: -1088px -102px }
+.glyphicon-left-arrow { background-position: -1122px -102px }
+.glyphicon-right-arrow { background-position: -1156px -102px }
+.glyphicon-down-arrow { background-position: -1190px -102px }
+.glyphicon-up-arrow { background-position: -1224px -102px }
+.glyphicon-resize-small { background-position: -1258px -102px }
+.glyphicon-resize-full { background-position: -1292px -102px }
+.glyphicon-circle-arrow-left { background-position: -1326px -102px }
+.glyphicon-circle-arrow-right { background-position: -1360px -102px }
+.glyphicon-circle-arrow-top { background-position: -1394px -102px }
+.glyphicon-circle-arrow-down { background-position: -1428px -102px }
+.glyphicon-play-button { background-position: -1462px -102px }
+.glyphicon-unshare { background-position: -1496px -102px }
+.glyphicon-share { background-position: -1530px -102px }
+.glyphicon-thin-right-arrow { background-position: -1564px -102px }
+.glyphicon-thin-arrow-left { background-position: -1598px -102px }
+.glyphicon-bluetooth { background-position: -1632px -102px }
+.glyphicon-euro { background-position: -1666px -102px }
+.glyphicon-usd { background-position: -1700px -102px }
+.glyphicon-bp { background-position: -1734px -102px }
+.glyphicon-retweet-2 { background-position: -1768px -102px }
+.glyphicon-moon { background-position: -1802px -102px }
+.glyphicon-sun { background-position: -1836px -102px }
+.glyphicon-cloud { background-position: -1870px -102px }
+.glyphicon-direction { background-position: -1904px -102px }
+.glyphicon-brush { background-position: -1938px -102px }
+.glyphicon-pen { background-position: -1972px -102px }
+.glyphicon-zoom-in { background-position: 0 -136px }
+.glyphicon-zoom-out { background-position: -34px -136px }
+.glyphicon-pin { background-position: -68px -136px }
+.glyphicon-riflescope { background-position: -102px -136px }
+.glyphicon-rotation-lock { background-position: -136px -136px }
+.glyphicon-flash { background-position: -170px -136px }
+.glyphicon-google-maps { background-position: -204px -136px }
+.glyphicon-anchor { background-position: -238px -136px }
+.glyphicon-conversation { background-position: -272px -136px }
+.glyphicon-chat { background-position: -306px -136px }
+.glyphicon-male { background-position: -340px -136px }
+.glyphicon-female { background-position: -374px -136px }
+.glyphicon-asterisk { background-position: -408px -136px }
+.glyphicon-divide { background-position: -442px -136px }
+.glyphicon-snorkel-diving { background-position: -476px -136px }
+.glyphicon-scuba-diving { background-position: -510px -136px }
+.glyphicon-oxygen-bottle { background-position: -544px -136px }
+.glyphicon-fins { background-position: -578px -136px }
+.glyphicon-fishes { background-position: -612px -136px }
+.glyphicon-boat { background-position: -646px -136px }
+.glyphicon-delete-point { background-position: -680px -136px }
+.glyphicon-sheriffs--star { background-position: -714px -136px }
+.glyphicon-qrcode { background-position: -748px -136px }
+.glyphicon-barcode { background-position: -782px -136px }
+.glyphicon-pool { background-position: -816px -136px }
+.glyphicon-buoy { background-position: -850px -136px }
+.glyphicon-spade { background-position: -884px -136px }
+.glyphicon-bank { background-position: -918px -136px }
+.glyphicon-vcard { background-position: -952px -136px }
+.glyphicon-electrical-plug { background-position: -986px -136px }
+.glyphicon-flag { background-position: -1020px -136px }
+.glyphicon-credit-card { background-position: -1054px -136px }
+.glyphicon-keyboard-wireless { background-position: -1088px -136px }
+.glyphicon-keyboard-wired { background-position: -1122px -136px }
+.glyphicon-shield { background-position: -1156px -136px }
+.glyphicon-ring { background-position: -1190px -136px }
+.glyphicon-cake { background-position: -1224px -136px }
+.glyphicon-drink { background-position: -1258px -136px }
+.glyphicon-beer { background-position: -1292px -136px }
+.glyphicon-fast-food { background-position: -1326px -136px }
+.glyphicon-cutlery { background-position: -1360px -136px }
+.glyphicon-pizza { background-position: -1394px -136px }
+.glyphicon-birthday-cake { background-position: -1428px -136px }
+.glyphicon-tablet { background-position: -1462px -136px }
+.glyphicon-settings { background-position: -1496px -136px }
+.glyphicon-bullets { background-position: -1530px -136px }
+.glyphicon-cardio { background-position: -1564px -136px }
+.glyphicon-t-shirt { background-position: -1598px -136px }
+.glyphicon-pants { background-position: -1632px -136px }
+.glyphicon-sweater { background-position: -1666px -136px }
+.glyphicon-fabric { background-position: -1700px -136px }
+.glyphicon-leather { background-position: -1734px -136px }
+.glyphicon-scissors { background-position: -1768px -136px }
+.glyphicon-podium { background-position: -1802px -136px }
+.glyphicon-skull { background-position: -1836px -136px }
+.glyphicon-celebration { background-position: -1870px -136px }
+.glyphicon-tea-kettle { background-position: -1904px -136px }
+.glyphicon-french-press { background-position: -1938px -136px }
+.glyphicon-coffe-cup { background-position: -1972px -136px }
+.glyphicon-pot { background-position: 0 -170px }
+.glyphicon-grater { background-position: -34px -170px }
+.glyphicon-kettle { background-position: -68px -170px }
+.glyphicon-hospital { background-position: -102px -170px }
+.glyphicon-hospital-h { background-position: -136px -170px }
+.glyphicon-microphone { background-position: -170px -170px }
+.glyphicon-webcam { background-position: -204px -170px }
+.glyphicon-temple-christianity-church { background-position: -238px -170px }
+.glyphicon-temple-islam { background-position: -272px -170px }
+.glyphicon-temple-hindu { background-position: -306px -170px }
+.glyphicon-temple-buddhist { background-position: -340px -170px }
+.glyphicon-electrical-socket-eu { background-position: -374px -170px }
+.glyphicon-electrical-socket-us { background-position: -408px -170px }
+.glyphicon-bomb { background-position: -442px -170px }
+.glyphicon-comments { background-position: -476px -170px }
+.glyphicon-flower { background-position: -510px -170px }
+.glyphicon-baseball { background-position: -544px -170px }
+.glyphicon-rugby { background-position: -578px -170px }
+.glyphicon-ax { background-position: -612px -170px }
+.glyphicon-table-tennis { background-position: -646px -170px }
+.glyphicon-bowling { background-position: -680px -170px }
+.glyphicon-tree-conifer { background-position: -714px -170px }
+.glyphicon-tree-deciduous { background-position: -748px -170px }
+.glyphicon-more-items { background-position: -782px -170px }
+.glyphicon-sort { background-position: -816px -170px }
+.glyphicon-filter { background-position: -850px -170px }
+.glyphicon-gamepad { background-position: -884px -170px }
+.glyphicon-playing-dices { background-position: -918px -170px }
+.glyphicon-calculator { background-position: -952px -170px }
+.glyphicon-tie { background-position: -986px -170px }
+.glyphicon-wallet { background-position: -1020px -170px }
+.glyphicon-share { background-position: -1054px -170px }
+.glyphicon-sampler { background-position: -1088px -170px }
+.glyphicon-piano { background-position: -1122px -170px }
+.glyphicon-web-browser { background-position: -1156px -170px }
+.glyphicon-blog { background-position: -1190px -170px }
+.glyphicon-dashboard { background-position: -1224px -170px }
+.glyphicon-certificate { background-position: -1258px -170px }
+.glyphicon-bell { background-position: -1292px -170px }
+.glyphicon-candle { background-position: -1326px -170px }
+.glyphicon-pin-classic { background-position: -1360px -170px }
+.glyphicon-iphone-shake { background-position: -1394px -170px }
+.glyphicon-pin-flag { background-position: -1428px -170px }
+.glyphicon-turtle { background-position: -1462px -170px }
+.glyphicon-rabbit { background-position: -1496px -170px }
+.glyphicon-globe { background-position: -1530px -170px }
+.glyphicon-briefcase { background-position: -1564px -170px }
+.glyphicon-hdd { background-position: -1598px -170px }
+.glyphicon-thumbs-up { background-position: -1632px -170px }
+.glyphicon-thumbs-down { background-position: -1666px -170px }
+.glyphicon-hand-right { background-position: -1700px -170px }
+.glyphicon-hand-left { background-position: -1734px -170px }
+.glyphicon-hand-up { background-position: -1768px -170px }
+.glyphicon-hand-down { background-position: -1802px -170px }
+.glyphicon-fullscreen { background-position: -1836px -170px }
+.glyphicon-shopping-bag { background-position: -1870px -170px }
+.glyphicon-book-open { background-position: -1904px -170px }
+.glyphicon-nameplate { background-position: -1938px -170px }
+.glyphicon-nameplate-alt { background-position: -1972px -170px }
+.glyphicon-vases { background-position: 0 -204px }
+.glyphicon-announcement { background-position: -34px -204px }
+.glyphicon-dumbbell { background-position: -68px -204px }
+.glyphicon-suitcase { background-position: -102px -204px }
+.glyphicon-file-import { background-position: -136px -204px }
+.glyphicon-file-export { background-position: -170px -204px }
+.glyphicon-pinterest { background-position: -204px -204px }
+.glyphicon-dropbox { background-position: -238px -204px }
+.glyphicon-google-alt { background-position: -272px -204px }
+.glyphicon-jolicloud { background-position: -306px -204px }
+.glyphicon-yahoo { background-position: -340px -204px }
+.glyphicon-blogger { background-position: -374px -204px }
+.glyphicon-picasa { background-position: -408px -204px }
+.glyphicon-amazon { background-position: -442px -204px }
+.glyphicon-tumblr { background-position: -476px -204px }
+.glyphicon-wordpress { background-position: -510px -204px }
+.glyphicon-instapaper { background-position: -544px -204px }
+.glyphicon-evernote { background-position: -578px -204px }
+.glyphicon-xing { background-position: -612px -204px }
+.glyphicon-zootool { background-position: -646px -204px }
+.glyphicon-dribbble { background-position: -680px -204px }
+.glyphicon-deviantart { background-position: -714px -204px }
+.glyphicon-read-it-later { background-position: -748px -204px }
+.glyphicon-linked-in { background-position: -782px -204px }
+.glyphicon-forrst { background-position: -816px -204px }
+.glyphicon-pinboard { background-position: -850px -204px }
+.glyphicon-behance { background-position: -884px -204px }
+.glyphicon-github { background-position: -918px -204px }
+.glyphicon-youtube { background-position: -952px -204px }
+.glyphicon-skitch { background-position: -986px -204px }
+.glyphicon-4square { background-position: -1020px -204px }
+.glyphicon-quora { background-position: -1054px -204px }
+.glyphicon-google-plus { background-position: -1088px -204px }
+.glyphicon-spootify { background-position: -1122px -204px }
+.glyphicon-stumbleupon { background-position: -1156px -204px }
+.glyphicon-readability { background-position: -1190px -204px }
+.glyphicon-facebook { background-position: -1224px -204px }
+.glyphicon-twitter-t { background-position: -1258px -204px }
+.glyphicon-twitter { background-position: -1292px -204px }
+.glyphicon-buzz { background-position: -1326px -204px }
+.glyphicon-vimeo { background-position: -1360px -204px }
+.glyphicon-flickr { background-position: -1394px -204px }
+.glyphicon-last-fm { background-position: -1428px -204px }
+.glyphicon-rss { background-position: -1462px -204px }
+.glyphicon-skype { background-position: -1496px -204px }
+.glyphicon-e-mail { background-position: -1530px -204px }
Please sign in to comment.
Something went wrong with that request. Please try again.