typus 3.1.0.rc14 → 3.1.0.rc15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. data/.gitmodules +3 -0
  2. data/README.md +10 -14
  3. data/Rakefile +7 -5
  4. data/app/assets/javascripts/typus.js +1 -0
  5. data/app/assets/javascripts/typus/jquery.application.js +0 -2
  6. data/app/assets/stylesheets/typus.css +13 -1
  7. data/app/assets/stylesheets/typus/account.css +53 -0
  8. data/app/assets/stylesheets/typus/actions.css +11 -0
  9. data/app/assets/stylesheets/typus/content.css +92 -0
  10. data/app/assets/stylesheets/typus/defaults.css +31 -0
  11. data/app/assets/stylesheets/typus/errors.css +33 -0
  12. data/app/assets/stylesheets/typus/footer.css +8 -0
  13. data/app/assets/stylesheets/typus/forms.css +52 -0
  14. data/app/assets/stylesheets/typus/hacks.css +20 -0
  15. data/app/assets/stylesheets/typus/header.css +55 -0
  16. data/app/assets/stylesheets/typus/layout.css +4 -0
  17. data/app/assets/stylesheets/typus/pagination.css +34 -8
  18. data/app/assets/stylesheets/typus/sidebar.css +23 -0
  19. data/app/assets/stylesheets/typus/tables.css +47 -0
  20. data/app/helpers/admin/base_helper.rb +1 -1
  21. data/app/helpers/admin/resources/data_types/belongs_to_helper.rb +1 -0
  22. data/app/helpers/admin/resources/data_types/tree_helper.rb +1 -0
  23. data/app/helpers/admin/resources/display_helper.rb +1 -1
  24. data/app/helpers/admin/resources/form_helper.rb +1 -0
  25. data/app/helpers/admin/resources_helper.rb +3 -5
  26. data/app/views/admin/account/forgot_password.html.erb +7 -1
  27. data/app/views/admin/base/user_guide.html.erb +61 -57
  28. data/app/views/admin/dashboard/show.html.erb +6 -16
  29. data/app/views/admin/dashboard/widgets/_applications.html.erb +31 -0
  30. data/app/views/admin/dashboard/widgets/_models.html.erb +23 -0
  31. data/app/views/admin/dashboard/widgets/_models_extended.html.erb +25 -0
  32. data/app/views/admin/dashboard/widgets/_resources.html.erb +23 -0
  33. data/app/views/admin/resources/_actions.html.erb +23 -0
  34. data/app/views/admin/resources/edit.html.erb +26 -20
  35. data/app/views/admin/resources/edit/_actions.html.erb +7 -0
  36. data/app/views/admin/resources/edit/_rencently_edited.html.erb +8 -0
  37. data/app/views/admin/resources/index.html.erb +42 -32
  38. data/app/views/admin/resources/new.html.erb +16 -8
  39. data/app/views/admin/resources/show.html.erb +22 -14
  40. data/app/views/admin/session/new.html.erb +9 -1
  41. data/app/views/admin/templates/_belongs_to.html.erb +1 -1
  42. data/app/views/admin/templates/_belongs_to_with_autocomplete.html.erb +1 -1
  43. data/app/views/admin/templates/_boolean.html.erb +1 -1
  44. data/app/views/admin/templates/_date.html.erb +1 -1
  45. data/app/views/admin/templates/_datetime.html.erb +1 -1
  46. data/app/views/admin/templates/_dragonfly.html.erb +1 -1
  47. data/app/views/admin/templates/_paperclip.html.erb +1 -1
  48. data/app/views/admin/templates/_password.html.erb +1 -1
  49. data/app/views/admin/templates/_selector.html.erb +1 -1
  50. data/app/views/admin/templates/_string.html.erb +1 -1
  51. data/app/views/admin/templates/_string_with_preview.html.erb +1 -1
  52. data/app/views/admin/templates/_text.html.erb +1 -1
  53. data/app/views/admin/templates/_text_with_ckeditor.html.erb +16 -2
  54. data/app/views/admin/templates/_text_with_ckeditor_and_assets.html.erb +16 -2
  55. data/app/views/admin/templates/_time.html.erb +1 -1
  56. data/app/views/admin/templates/_tree.html.erb +1 -1
  57. data/app/views/helpers/admin/resources/_sidebar.html.erb +36 -12
  58. data/app/views/helpers/admin/resources/_table.html.erb +5 -3
  59. data/app/views/layouts/admin/base.html.erb +16 -29
  60. data/app/views/layouts/admin/headless.html.erb +1 -1
  61. data/app/views/layouts/admin/session.html.erb +6 -0
  62. data/lib/support/fake_user.rb +2 -8
  63. data/lib/typus.rb +6 -2
  64. data/lib/typus/authentication/devise.rb +19 -0
  65. data/lib/typus/controller/headless.rb +1 -1
  66. data/lib/typus/orm/active_record/admin_user_v1.rb +15 -1
  67. data/lib/typus/orm/active_record/admin_user_v2.rb +16 -2
  68. data/lib/typus/orm/active_record/user/class_methods.rb +2 -3
  69. data/lib/typus/orm/active_record/user/instance_methods.rb +5 -2
  70. data/lib/typus/orm/active_record/user/instance_methods_more.rb +19 -0
  71. data/lib/typus/version.rb +1 -1
  72. data/vendor/assets/adapt/css/1200.css +357 -0
  73. data/vendor/assets/adapt/css/1200.min.css +1 -0
  74. data/vendor/assets/adapt/css/1560.css +357 -0
  75. data/vendor/assets/adapt/css/1560.min.css +1 -0
  76. data/vendor/assets/adapt/css/720.css +357 -0
  77. data/vendor/assets/adapt/css/720.min.css +1 -0
  78. data/vendor/assets/adapt/css/960.css +357 -0
  79. data/vendor/assets/adapt/css/960.min.css +1 -0
  80. data/vendor/assets/adapt/css/fluid.css +345 -0
  81. data/vendor/assets/adapt/css/fluid.min.css +1 -0
  82. data/vendor/assets/adapt/css/master.css +120 -0
  83. data/vendor/assets/adapt/css/mobile.css +20 -0
  84. data/vendor/assets/adapt/css/mobile.min.css +1 -0
  85. data/vendor/assets/adapt/css/reset.css +202 -0
  86. data/vendor/assets/adapt/css/text.css +81 -0
  87. data/vendor/assets/adapt/images/h1.png +0 -0
  88. data/vendor/assets/adapt/js/adapt.js +135 -0
  89. data/vendor/assets/adapt/js/adapt.min.js +1 -0
  90. data/vendor/assets/formalize/.gitignore +1 -0
  91. data/vendor/assets/formalize/css/_formalize.sass +332 -0
  92. data/vendor/assets/formalize/css/demo.css +47 -0
  93. data/vendor/assets/formalize/css/formalize.css +395 -0
  94. data/vendor/assets/formalize/css/reset.css +202 -0
  95. data/vendor/assets/formalize/css/text.css +81 -0
  96. data/vendor/assets/formalize/images/button.png +0 -0
  97. data/vendor/assets/formalize/images/select_arrow.gif +0 -0
  98. data/vendor/assets/formalize/js/dojo.formalize.js +166 -0
  99. data/vendor/assets/formalize/js/dojo.formalize.min.js +1 -0
  100. data/vendor/assets/formalize/js/extjs.formalize.js +163 -0
  101. data/vendor/assets/formalize/js/extjs.formalize.min.js +1 -0
  102. data/vendor/assets/formalize/js/jquery.formalize.js +150 -0
  103. data/vendor/assets/formalize/js/jquery.formalize.min.js +1 -0
  104. data/vendor/assets/formalize/js/mootools.formalize.js +155 -0
  105. data/vendor/assets/formalize/js/mootools.formalize.min.js +1 -0
  106. data/vendor/assets/formalize/js/prototype.formalize.js +163 -0
  107. data/vendor/assets/formalize/js/prototype.formalize.min.js +1 -0
  108. data/vendor/assets/formalize/js/yui.formalize.js +152 -0
  109. data/vendor/assets/formalize/js/yui.formalize.min.js +1 -0
  110. metadata +79 -47
  111. data/app/assets/stylesheets/typus/screen.css +0 -340
  112. data/app/helpers/admin/dashboard_helper.rb +0 -8
  113. data/app/views/admin/dashboard/_applications.html.erb +0 -21
  114. data/config/locales/typus.ca.models.yml +0 -17
  115. data/config/locales/typus.ca.yml +0 -80
  116. data/config/locales/typus.de.models.yml +0 -17
  117. data/config/locales/typus.de.yml +0 -79
  118. data/config/locales/typus.el.models.yml +0 -17
  119. data/config/locales/typus.el.yml +0 -81
  120. data/config/locales/typus.es.models.yml +0 -18
  121. data/config/locales/typus.es.yml +0 -81
  122. data/config/locales/typus.fr.models.yml +0 -18
  123. data/config/locales/typus.fr.yml +0 -85
  124. data/config/locales/typus.hu.models.yml +0 -17
  125. data/config/locales/typus.hu.yml +0 -79
  126. data/config/locales/typus.it.models.yml +0 -18
  127. data/config/locales/typus.it.yml +0 -88
  128. data/config/locales/typus.locale.models.yml.template +0 -17
  129. data/config/locales/typus.locale.yml.template +0 -80
  130. data/config/locales/typus.pt-BR.models.yml +0 -17
  131. data/config/locales/typus.pt-BR.yml +0 -79
  132. data/config/locales/typus.pt-PT.models.yml +0 -17
  133. data/config/locales/typus.pt-PT.yml +0 -83
  134. data/config/locales/typus.ru.models.yml +0 -17
  135. data/config/locales/typus.ru.yml +0 -79
  136. data/config/locales/typus.zh-CN.models.yml +0 -17
  137. data/config/locales/typus.zh-CN.yml +0 -78
@@ -3,7 +3,7 @@
3
3
  options.merge!(custom)
4
4
  %>
5
5
 
6
- <li id="<%= attribute %>">
6
+ <li id="<%= attribute_id %>">
7
7
  <%= form.label attribute, label_text %>
8
8
  <%= form.time_select attribute, options, html_options %>
9
9
  </li>
@@ -1,5 +1,5 @@
1
1
  <% unless values.empty? %>
2
- <li id="<%= attribute %>">
2
+ <li id="<%= attribute_id %>">
3
3
  <%= form.label label_text %>
4
4
  <%= form.select :parent_id, values, { :include_blank => true } %>
5
5
  </li>
@@ -1,17 +1,41 @@
1
- <% resources.each do |resource, actions| %>
1
+ <% if Typus.quick_sidebar %>
2
+ <h2><%= @resource.typus_application %></h2>
2
3
 
3
- <% klass = resource.constantize %>
4
+ <ul>
5
+ <% resources.each do |resource, actions| %>
6
+ <% klass = resource.constantize %>
7
+ <li>
8
+ <%= link_to klass.model_name.human.pluralize, :controller => "/admin/#{klass.to_resource}" %>
9
+ <small>
10
+ <%= link_to Typus::I18n.t("Add New"), :controller => "/admin/#{klass.to_resource}", :action => "new" %>
11
+ </small>
12
+ </li>
13
+ <% end %>
14
+ </ul>
15
+ <% else %>
16
+ <div id="sidebar">
4
17
 
5
- <%= link_to :controller => "/admin/#{klass.to_resource}" do %>
6
- <h3><%= klass.model_name.human.pluralize %></h3>
7
- <% end %>
18
+ <% resources.each do |resource, actions| %>
8
19
 
9
- <% if @resource.model_name.eql?(resource) %>
10
- <ul>
11
- <% actions.each do |action| %>
12
- <li><%= link_to action[:message], action[:url] %></li>
13
- <% end %>
14
- </ul>
15
- <% end %>
20
+ <% klass = resource.constantize %>
16
21
 
22
+ <ul>
23
+
24
+ <%= link_to :controller => "/admin/#{klass.to_resource}" do %>
25
+ <li class="header"><%= klass.model_name.human.pluralize %></li>
26
+ <% end %>
27
+
28
+ <% if @resource.model_name.eql?(resource) %>
29
+ <ul>
30
+ <% actions.each do |action| %>
31
+ <li><%= link_to action[:message], action[:url] %></li>
32
+ <% end %>
33
+ </ul>
34
+ <% end %>
35
+
36
+ </ul>
37
+
38
+ <% end %>
39
+
40
+ </div>
17
41
  <% end %>
@@ -1,4 +1,6 @@
1
- <% content_for :table_headers do %>
1
+ <% yield_name = "table_headers_#{model}" %>
2
+
3
+ <% content_for yield_name do %>
2
4
  <thead>
3
5
  <tr>
4
6
  <% if controller.respond_to?(:bulk) %>
@@ -13,7 +15,7 @@
13
15
 
14
16
  <table>
15
17
 
16
- <%= yield :table_headers %>
18
+ <%= yield yield_name %>
17
19
 
18
20
  <% items.each do |item| %>
19
21
  <tr class="<%= cycle('even', 'odd') %>" id="<%= dom_id(item) %>">
@@ -38,6 +40,6 @@
38
40
  </tr>
39
41
  <% end %>
40
42
 
41
- <%= yield :table_headers %>
43
+ <%= yield yield_name %>
42
44
 
43
45
  </table>
@@ -10,49 +10,36 @@
10
10
 
11
11
  <div id="wrapper">
12
12
 
13
- <div id="header_wrapper">
14
-
15
- <div id="header">
16
- <%= header %>
17
- <div class="clear"></div>
18
- </div>
19
-
20
- <div id="links">
13
+ <div id="header">
14
+ <div class="container_12">
15
+ <div class="grid_12 title">
16
+ <%= header %>
17
+ </div>
21
18
 
22
- <div class="left">
19
+ <div class="grid_8 applications">
23
20
  <%= apps %>
24
21
  </div>
25
22
 
26
- <div class="right">
23
+ <div class="grid_4 profile">
27
24
  <%= login_info %>
28
25
  </div>
29
-
30
- <div class="clear"></div>
31
-
32
26
  </div>
33
-
34
27
  </div>
35
28
 
36
- <div id="content_wrapper">
37
-
38
- <div id="sidebar">
39
- <%= yield :sidebar %>
40
- </div>
41
-
42
- <div id="content">
29
+ <div id="content">
30
+ <div class="container_12">
43
31
  <%= yield :layout %>
44
32
  </div>
45
-
46
- <div class="clear"></div>
47
-
48
33
  </div>
49
34
 
50
- <div id="footer_wrapper">
51
-
52
- <div id="footer">
53
- <%= Typus.admin_sub_title.html_safe %>
35
+ <div id="footer">
36
+ <div class="container_12">
37
+ <div class="grid_12">
38
+ <span class="copyright">
39
+ Powered by <%= link_to "Typus", "http://core.typuscms.com/" %> &#183; <%= Typus.admin_sub_title.html_safe %>
40
+ </span>
41
+ </div>
54
42
  </div>
55
-
56
43
  </div>
57
44
 
58
45
  </div>
@@ -9,7 +9,7 @@
9
9
  <body>
10
10
 
11
11
  <div id="content" class="headless">
12
- <%= yield :layout %>
12
+ <%= yield :main_grid %>
13
13
  </div>
14
14
 
15
15
  </body>
@@ -16,6 +16,12 @@
16
16
  <%= yield :layout %>
17
17
  </div>
18
18
 
19
+ <% if content_for?(:actions) %>
20
+ <div id="actions">
21
+ <%= yield :actions %>
22
+ </div>
23
+ <% end %>
24
+
19
25
  </div>
20
26
 
21
27
  </body>
@@ -1,5 +1,7 @@
1
1
  class FakeUser
2
2
 
3
+ include Typus::Orm::ActiveRecord::User::InstanceMethodsMore
4
+
3
5
  def id
4
6
  0
5
7
  end
@@ -20,10 +22,6 @@ class FakeUser
20
22
  !is_root?
21
23
  end
22
24
 
23
- def locale
24
- ::I18n.locale
25
- end
26
-
27
25
  def applications
28
26
  Typus.applications
29
27
  end
@@ -32,10 +30,6 @@ class FakeUser
32
30
  Typus.application(name)
33
31
  end
34
32
 
35
- def role
36
- Typus.master_role
37
- end
38
-
39
33
  def status
40
34
  true
41
35
  end
@@ -35,6 +35,7 @@ module Typus
35
35
 
36
36
  module Authentication
37
37
  autoload :Base, "typus/authentication/base"
38
+ autoload :Devise, "typus/authentication/devise"
38
39
  autoload :None, "typus/authentication/none"
39
40
  autoload :HttpBasic, "typus/authentication/http_basic"
40
41
  autoload :Session, "typus/authentication/session"
@@ -129,10 +130,13 @@ module Typus
129
130
  @@master_role = "admin"
130
131
 
131
132
  mattr_accessor :user_class_name
132
- @@user_class_name = "TypusUser"
133
+ @@user_class_name = "AdminUser"
133
134
 
134
135
  mattr_accessor :user_foreign_key
135
- @@user_foreign_key = "typus_user_id"
136
+ @@user_foreign_key = "admin_user_id"
137
+
138
+ mattr_accessor :quick_sidebar
139
+ @@quick_sidebar = false
136
140
 
137
141
  class << self
138
142
 
@@ -0,0 +1,19 @@
1
+ module Typus
2
+ module Authentication
3
+ module Devise
4
+
5
+ protected
6
+
7
+ include Base
8
+
9
+ def admin_user
10
+ send("current_#{Typus.user_class_name.underscore}")
11
+ end
12
+
13
+ def authenticate
14
+ send("authenticate_#{Typus.user_class_name.underscore}!")
15
+ end
16
+
17
+ end
18
+ end
19
+ end
@@ -3,7 +3,7 @@ module Typus
3
3
  module Headless
4
4
 
5
5
  def self.included(base)
6
- base.before_filter :set_resources_action_for_headless_on_index, :only => [:index]
6
+ base.before_filter :set_resources_action_for_headless_on_index, :only => [:index, :trash]
7
7
  base.before_filter :set_resources_action_for_headless, :only => [:new, :create, :edit, :show]
8
8
  base.helper_method :headless_mode?
9
9
  base.layout :set_headless_layout
@@ -12,8 +12,8 @@ module Typus
12
12
 
13
13
  extend Typus::Orm::ActiveRecord::User::ClassMethods
14
14
 
15
- include InstanceMethods
16
15
  include Typus::Orm::ActiveRecord::User::InstanceMethods
16
+ include InstanceMethods
17
17
 
18
18
  attr_accessor :password
19
19
 
@@ -44,6 +44,20 @@ module Typus
44
44
 
45
45
  module InstanceMethods
46
46
 
47
+ def to_label
48
+ full_name = [first_name, last_name].delete_if { |s| s.blank? }
49
+ full_name.any? ? full_name.join(" ") : email
50
+ end
51
+
52
+ def locale
53
+ (preferences && preferences[:locale]) ? preferences[:locale] : ::I18n.default_locale
54
+ end
55
+
56
+ def locale=(locale)
57
+ self.preferences ||= {}
58
+ self.preferences[:locale] = locale
59
+ end
60
+
47
61
  def authenticated?(password)
48
62
  crypted_password == encrypt(password)
49
63
  end
@@ -13,8 +13,8 @@ module Typus
13
13
 
14
14
  extend Typus::Orm::ActiveRecord::User::ClassMethods
15
15
 
16
- include InstanceMethodsOnActivation
17
16
  include Typus::Orm::ActiveRecord::User::InstanceMethods
17
+ include InstanceMethods
18
18
 
19
19
  attr_reader :password
20
20
  attr_accessor :password_confirmation
@@ -40,7 +40,21 @@ module Typus
40
40
 
41
41
  end
42
42
 
43
- module InstanceMethodsOnActivation
43
+ module InstanceMethods
44
+
45
+ def to_label
46
+ full_name = [first_name, last_name].delete_if { |s| s.blank? }
47
+ full_name.any? ? full_name.join(" ") : email
48
+ end
49
+
50
+ def locale
51
+ (preferences && preferences[:locale]) ? preferences[:locale] : ::I18n.default_locale
52
+ end
53
+
54
+ def locale=(locale)
55
+ self.preferences ||= {}
56
+ self.preferences[:locale] = locale
57
+ end
44
58
 
45
59
  # Returns self if the password is correct, otherwise false.
46
60
  def authenticate(unencrypted_password)
@@ -8,9 +8,8 @@ module Typus
8
8
  options = args.extract_options!
9
9
  options[:password] ||= Typus.password
10
10
  options[:role] ||= Typus.master_role
11
- user = new :email => options[:email], :password => options[:password]
12
- user.status = true
13
- user.role = options[:role]
11
+ options[:status] = true
12
+ user = new options, :without_protection => true
14
13
  user.save ? user : false
15
14
  end
16
15
 
@@ -5,14 +5,17 @@ module Typus
5
5
  module InstanceMethods
6
6
 
7
7
  def to_label
8
- full_name = [first_name, last_name].delete_if { |s| s.blank? }
9
- full_name.any? ? full_name.join(" ") : email
8
+ email
10
9
  end
11
10
 
12
11
  def resources
13
12
  Typus::Configuration.roles[role.to_s].compact
14
13
  end
15
14
 
15
+ def models
16
+ Typus.models.delete_if { |m| cannot?('read', m) }
17
+ end
18
+
16
19
  def applications
17
20
  Typus.applications.delete_if { |a| application(a).empty? }
18
21
  end
@@ -0,0 +1,19 @@
1
+ module Typus
2
+ module Orm
3
+ module ActiveRecord
4
+ module User
5
+ module InstanceMethodsMore
6
+
7
+ def locale
8
+ ::I18n.locale
9
+ end
10
+
11
+ def role
12
+ Typus.master_role
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  module Typus
2
- VERSION = "3.1.0.rc14"
2
+ VERSION = "3.1.0.rc15"
3
3
  end
@@ -0,0 +1,357 @@
1
+ /*
2
+ 960 Grid System ~ Core CSS.
3
+ Learn more ~ http://960.gs/
4
+
5
+ Licensed under GPL and MIT.
6
+ */
7
+
8
+ /*
9
+ Forces backgrounds to span full width,
10
+ even if there is horizontal scrolling.
11
+ Increase this if your layout is wider.
12
+
13
+ Note: IE6 works fine without this fix.
14
+ */
15
+
16
+ body {
17
+ min-width: 1200px;
18
+ }
19
+
20
+ /* `Containers
21
+ ----------------------------------------------------------------------------------------------------*/
22
+
23
+ .container_12 {
24
+ margin-left: auto;
25
+ margin-right: auto;
26
+ width: 1200px;
27
+ }
28
+
29
+ /* `Grid >> Global
30
+ ----------------------------------------------------------------------------------------------------*/
31
+
32
+ .grid_1,
33
+ .grid_2,
34
+ .grid_3,
35
+ .grid_4,
36
+ .grid_5,
37
+ .grid_6,
38
+ .grid_7,
39
+ .grid_8,
40
+ .grid_9,
41
+ .grid_10,
42
+ .grid_11,
43
+ .grid_12 {
44
+ display: inline;
45
+ float: left;
46
+ margin-left: 10px;
47
+ margin-right: 10px;
48
+ }
49
+
50
+ .push_1, .pull_1,
51
+ .push_2, .pull_2,
52
+ .push_3, .pull_3,
53
+ .push_4, .pull_4,
54
+ .push_5, .pull_5,
55
+ .push_6, .pull_6,
56
+ .push_7, .pull_7,
57
+ .push_8, .pull_8,
58
+ .push_9, .pull_9,
59
+ .push_10, .pull_10,
60
+ .push_11, .pull_11 {
61
+ position: relative;
62
+ }
63
+
64
+ /* `Grid >> Children (Alpha ~ First, Omega ~ Last)
65
+ ----------------------------------------------------------------------------------------------------*/
66
+
67
+ .alpha {
68
+ margin-left: 0;
69
+ }
70
+
71
+ .omega {
72
+ margin-right: 0;
73
+ }
74
+
75
+ /* `Grid >> 12 Columns
76
+ ----------------------------------------------------------------------------------------------------*/
77
+
78
+ .container_12 .grid_1 {
79
+ width: 80px;
80
+ }
81
+
82
+ .container_12 .grid_2 {
83
+ width: 180px;
84
+ }
85
+
86
+ .container_12 .grid_3 {
87
+ width: 280px;
88
+ }
89
+
90
+ .container_12 .grid_4 {
91
+ width: 380px;
92
+ }
93
+
94
+ .container_12 .grid_5 {
95
+ width: 480px;
96
+ }
97
+
98
+ .container_12 .grid_6 {
99
+ width: 580px;
100
+ }
101
+
102
+ .container_12 .grid_7 {
103
+ width: 680px;
104
+ }
105
+
106
+ .container_12 .grid_8 {
107
+ width: 780px;
108
+ }
109
+
110
+ .container_12 .grid_9 {
111
+ width: 880px;
112
+ }
113
+
114
+ .container_12 .grid_10 {
115
+ width: 980px;
116
+ }
117
+
118
+ .container_12 .grid_11 {
119
+ width: 1080px;
120
+ }
121
+
122
+ .container_12 .grid_12 {
123
+ width: 1180px;
124
+ }
125
+
126
+ /* `Prefix Extra Space >> 12 Columns
127
+ ----------------------------------------------------------------------------------------------------*/
128
+
129
+ .container_12 .prefix_1 {
130
+ padding-left: 100px;
131
+ }
132
+
133
+ .container_12 .prefix_2 {
134
+ padding-left: 200px;
135
+ }
136
+
137
+ .container_12 .prefix_3 {
138
+ padding-left: 300px;
139
+ }
140
+
141
+ .container_12 .prefix_4 {
142
+ padding-left: 400px;
143
+ }
144
+
145
+ .container_12 .prefix_5 {
146
+ padding-left: 500px;
147
+ }
148
+
149
+ .container_12 .prefix_6 {
150
+ padding-left: 600px;
151
+ }
152
+
153
+ .container_12 .prefix_7 {
154
+ padding-left: 700px;
155
+ }
156
+
157
+ .container_12 .prefix_8 {
158
+ padding-left: 800px;
159
+ }
160
+
161
+ .container_12 .prefix_9 {
162
+ padding-left: 900px;
163
+ }
164
+
165
+ .container_12 .prefix_10 {
166
+ padding-left: 1000px;
167
+ }
168
+
169
+ .container_12 .prefix_11 {
170
+ padding-left: 1100px;
171
+ }
172
+
173
+ /* `Suffix Extra Space >> 12 Columns
174
+ ----------------------------------------------------------------------------------------------------*/
175
+
176
+ .container_12 .suffix_1 {
177
+ padding-right: 100px;
178
+ }
179
+
180
+ .container_12 .suffix_2 {
181
+ padding-right: 200px;
182
+ }
183
+
184
+ .container_12 .suffix_3 {
185
+ padding-right: 300px;
186
+ }
187
+
188
+ .container_12 .suffix_4 {
189
+ padding-right: 400px;
190
+ }
191
+
192
+ .container_12 .suffix_5 {
193
+ padding-right: 500px;
194
+ }
195
+
196
+ .container_12 .suffix_6 {
197
+ padding-right: 600px;
198
+ }
199
+
200
+ .container_12 .suffix_7 {
201
+ padding-right: 700px;
202
+ }
203
+
204
+ .container_12 .suffix_8 {
205
+ padding-right: 800px;
206
+ }
207
+
208
+ .container_12 .suffix_9 {
209
+ padding-right: 900px;
210
+ }
211
+
212
+ .container_12 .suffix_10 {
213
+ padding-right: 1000px;
214
+ }
215
+
216
+ .container_12 .suffix_11 {
217
+ padding-right: 1100px;
218
+ }
219
+
220
+ /* `Push Space >> 12 Columns
221
+ ----------------------------------------------------------------------------------------------------*/
222
+
223
+ .container_12 .push_1 {
224
+ left: 100px;
225
+ }
226
+
227
+ .container_12 .push_2 {
228
+ left: 200px;
229
+ }
230
+
231
+ .container_12 .push_3 {
232
+ left: 300px;
233
+ }
234
+
235
+ .container_12 .push_4 {
236
+ left: 400px;
237
+ }
238
+
239
+ .container_12 .push_5 {
240
+ left: 500px;
241
+ }
242
+
243
+ .container_12 .push_6 {
244
+ left: 600px;
245
+ }
246
+
247
+ .container_12 .push_7 {
248
+ left: 700px;
249
+ }
250
+
251
+ .container_12 .push_8 {
252
+ left: 800px;
253
+ }
254
+
255
+ .container_12 .push_9 {
256
+ left: 900px;
257
+ }
258
+
259
+ .container_12 .push_10 {
260
+ left: 1000px;
261
+ }
262
+
263
+ .container_12 .push_11 {
264
+ left: 1100px;
265
+ }
266
+
267
+ /* `Pull Space >> 12 Columns
268
+ ----------------------------------------------------------------------------------------------------*/
269
+
270
+ .container_12 .pull_1 {
271
+ left: -100px;
272
+ }
273
+
274
+ .container_12 .pull_2 {
275
+ left: -200px;
276
+ }
277
+
278
+ .container_12 .pull_3 {
279
+ left: -300px;
280
+ }
281
+
282
+ .container_12 .pull_4 {
283
+ left: -400px;
284
+ }
285
+
286
+ .container_12 .pull_5 {
287
+ left: -500px;
288
+ }
289
+
290
+ .container_12 .pull_6 {
291
+ left: -600px;
292
+ }
293
+
294
+ .container_12 .pull_7 {
295
+ left: -700px;
296
+ }
297
+
298
+ .container_12 .pull_8 {
299
+ left: -800px;
300
+ }
301
+
302
+ .container_12 .pull_9 {
303
+ left: -900px;
304
+ }
305
+
306
+ .container_12 .pull_10 {
307
+ left: -1000px;
308
+ }
309
+
310
+ .container_12 .pull_11 {
311
+ left: -1100px;
312
+ }
313
+
314
+ /* `Clear Floated Elements
315
+ ----------------------------------------------------------------------------------------------------*/
316
+
317
+ /* http://sonspring.com/journal/clearing-floats */
318
+
319
+ .clear {
320
+ clear: both;
321
+ display: block;
322
+ overflow: hidden;
323
+ visibility: hidden;
324
+ width: 0;
325
+ height: 0;
326
+ }
327
+
328
+ /* http://www.yuiblog.com/blog/2010/09/27/clearfix-reloaded-overflowhidden-demystified */
329
+
330
+ .clearfix:before,
331
+ .clearfix:after,
332
+ .container_12:before,
333
+ .container_12:after {
334
+ content: '.';
335
+ display: block;
336
+ overflow: hidden;
337
+ visibility: hidden;
338
+ font-size: 0;
339
+ line-height: 0;
340
+ width: 0;
341
+ height: 0;
342
+ }
343
+
344
+ .clearfix:after,
345
+ .container_12:after {
346
+ clear: both;
347
+ }
348
+
349
+ /*
350
+ The following zoom:1 rule is specifically for IE6 + IE7.
351
+ Move to separate stylesheet if invalid CSS is a problem.
352
+ */
353
+
354
+ .clearfix,
355
+ .container_12 {
356
+ zoom: 1;
357
+ }