puffer 0.0.15 → 0.0.16

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 (48) hide show
  1. data/README.md +5 -2
  2. data/VERSION +1 -1
  3. data/app/controllers/puffer/dashboard_base.rb +13 -0
  4. data/app/controllers/puffer/sessions_base.rb +17 -0
  5. data/app/helpers/puffer_helper.rb +29 -1
  6. data/app/views/layouts/puffer.html.erb +7 -1
  7. data/app/views/layouts/puffer_dashboard.html.erb +29 -0
  8. data/app/views/layouts/puffer_sessions.html.erb +21 -0
  9. data/app/views/puffer/_form.html.erb +1 -0
  10. data/app/views/puffer/edit.html.erb +0 -16
  11. data/app/views/puffer/index.html.erb +0 -12
  12. data/app/views/puffer/new.html.erb +0 -15
  13. data/app/views/puffer/show.html.erb +1 -8
  14. data/app/views/puffer_dashboard/index.html.erb +17 -0
  15. data/app/views/puffer_sessions/new.html.erb +12 -0
  16. data/config/routes.rb +0 -7
  17. data/lib/generators/puffer/controller/controller_generator.rb +1 -1
  18. data/lib/generators/puffer/controller/templates/controller.rb +4 -1
  19. data/lib/generators/puffer/install/install_generator.rb +9 -0
  20. data/lib/generators/puffer/install/templates/dashboard_controller.rb +3 -0
  21. data/lib/generators/puffer/install/templates/puffer/javascripts/puffer.js +1 -1
  22. data/lib/generators/puffer/install/templates/puffer/stylesheets/puffer.css +83 -12
  23. data/lib/generators/puffer/install/templates/sessions_controller.rb +29 -0
  24. data/lib/puffer/base.rb +2 -7
  25. data/lib/puffer/controller/config.rb +4 -4
  26. data/lib/puffer/controller/dsl.rb +1 -1
  27. data/lib/puffer/controller/helpers.rb +1 -19
  28. data/lib/puffer/controller/mutate.rb +23 -8
  29. data/lib/puffer/extensions/controller.rb +9 -0
  30. data/lib/puffer/extensions/form.rb +3 -1
  31. data/lib/puffer/extensions/mapper.rb +9 -7
  32. data/lib/puffer/fields/field.rb +12 -12
  33. data/lib/puffer/resource/routing.rb +1 -1
  34. data/lib/puffer/resource.rb +6 -6
  35. data/puffer.gemspec +14 -5
  36. data/spec/dummy/app/controllers/admin/categories_controller.rb +1 -1
  37. data/spec/dummy/app/controllers/admin/posts_controller.rb +5 -3
  38. data/spec/dummy/app/controllers/admin/profiles_controller.rb +1 -1
  39. data/spec/dummy/app/controllers/admin/users_controller.rb +1 -1
  40. data/spec/dummy/app/controllers/puffer/dashboard_controller.rb +3 -0
  41. data/spec/dummy/app/controllers/puffer/sessions_controller.rb +16 -0
  42. data/spec/dummy/config/routes.rb +5 -56
  43. data/spec/dummy/public/puffer/stylesheets/puffer.css +90 -12
  44. data/spec/lib/fields_spec.rb +13 -13
  45. metadata +16 -7
  46. data/app/controllers/admin/dashboard_controller.rb +0 -13
  47. data/app/views/admin/dashboard/index.html.erb +0 -1
  48. data/app/views/puffer/toggle.rjs +0 -1
@@ -5,25 +5,42 @@ module Puffer
5
5
  def self.included base
6
6
  base.class_eval do
7
7
  extend ClassMethods
8
+ include InstanceMethods
8
9
 
9
10
  layout 'puffer'
10
11
  helper :puffer
11
- helper_method :puffer?
12
-
13
- view_paths_fallbacks :puffer
12
+ helper_method :puffer?, :namespace
14
13
  end
15
14
  end
16
15
 
17
- def puffer?; true; end
16
+ module InstanceMethods
17
+
18
+ def puffer?
19
+ self.class.puffer?
20
+ end
21
+
22
+ def namespace
23
+ self.class.namespace
24
+ end
25
+
26
+ end
18
27
 
19
28
  module ClassMethods
20
29
 
30
+ def puffer?
31
+ true
32
+ end
33
+
34
+ def namespace
35
+ to_s.underscore.split('/').first
36
+ end
37
+
21
38
  def model_name
22
- @model_name ||= ((puffer? and configuration.model) || controller_name.singularize).to_s
39
+ @model_name ||= (configuration.model_name || controller_name.singularize).to_s
23
40
  end
24
41
 
25
42
  def model
26
- @model ||= model_name.classify.constantize if model_name.present?
43
+ @model ||= model_name.classify.constantize rescue nil
27
44
  end
28
45
 
29
46
  def view_paths_fallbacks *args
@@ -40,8 +57,6 @@ module Puffer
40
57
  view_paths_fallbacks view_paths._fallbacks, args
41
58
  end
42
59
 
43
- def puffer?; true; end
44
-
45
60
  end
46
61
 
47
62
  end
@@ -17,6 +17,15 @@ module Puffer
17
17
 
18
18
  def puffer?; false; end
19
19
 
20
+ def pufferize!
21
+ include Puffer::Controller::Mutate
22
+ include Puffer::Controller::Helpers
23
+ include Puffer::Controller::Dsl
24
+ include Puffer::Controller::Mapping
25
+ include Puffer::Controller::Config
26
+ include Puffer::Controller::Generated
27
+ end
28
+
20
29
  end
21
30
 
22
31
  end
@@ -6,8 +6,10 @@ module Puffer
6
6
  field = if args.first.is_a? Puffer::Fields::Field
7
7
  args.first
8
8
  else
9
- Puffer::Fields::Field.new object.class, *args
9
+ options = args.extract_options!
10
+ Puffer::Fields::Field.new args, options
10
11
  end
12
+ field.resource = object.class
11
13
  input = Puffer::Inputs.map_field field
12
14
  input.new(self, @template, field).render
13
15
  end
@@ -21,11 +21,13 @@ module Puffer
21
21
  end
22
22
 
23
23
  def puffer_controller controller
24
- puffer = Rails.application.routes.puffer
25
- prefix = @scope[:module]
26
- puffer[prefix] ||= ActiveSupport::OrderedHash.new
27
- puffer[prefix][controller.configuration.group] ||= []
28
- puffer[prefix][controller.configuration.group] << controller
24
+ if controller.configuration.group
25
+ puffer = Rails.application.routes.puffer
26
+ namespace = @scope[:module]
27
+ puffer[namespace] ||= ActiveSupport::OrderedHash.new
28
+ puffer[namespace][controller.configuration.group] ||= []
29
+ puffer[namespace][controller.configuration.group] << controller
30
+ end
29
31
  end
30
32
 
31
33
  def puffer_resource(*resources, &block)
@@ -158,14 +160,14 @@ module Puffer
158
160
  include InstanceMethods
159
161
 
160
162
  alias_method_chain :clear!, :puffer
161
- attr_accessor_with_default :puffer, {}
163
+ attr_accessor_with_default :puffer, ActiveSupport::OrderedHash.new
162
164
  end
163
165
  end
164
166
 
165
167
  module InstanceMethods
166
168
 
167
169
  def clear_with_puffer!
168
- self.puffer = {}
170
+ self.puffer = ActiveSupport::OrderedHash.new
169
171
  clear_without_puffer!
170
172
  end
171
173
 
@@ -4,10 +4,10 @@ module Puffer
4
4
 
5
5
  attr_accessor :resource, :field, :options
6
6
 
7
- def initialize resource, field, options = {}
8
- @resource = resource
7
+ def initialize field, *resource_and_options
9
8
  @field = field.to_s
10
- @options = options
9
+ @options = resource_and_options.extract_options!
10
+ @resource = resource_and_options.first
11
11
  end
12
12
 
13
13
  def native?
@@ -39,7 +39,7 @@ module Puffer
39
39
  end
40
40
 
41
41
  def reflection
42
- @reflection ||= model.reflect_on_association(name.to_sym)
42
+ @reflection ||= model && model.reflect_on_association(name.to_sym)
43
43
  end
44
44
 
45
45
  def collection?
@@ -51,15 +51,15 @@ module Puffer
51
51
  end
52
52
 
53
53
  def model
54
- unless @model
55
- @model = resource
54
+ @model ||= begin
56
55
  associations = field.split('.')
57
56
  associations.pop
58
- while @model.reflect_on_association(association = swallow_nil{associations.shift.to_sym}) do
59
- @model = @model.reflect_on_association(association).klass
57
+ temp = resource
58
+ while temp.reflect_on_association(association = swallow_nil{associations.shift.to_sym}) do
59
+ temp = temp.reflect_on_association(association).klass
60
60
  end
61
- end
62
- @model
61
+ temp
62
+ end if resource
63
63
  end
64
64
 
65
65
  def association_columns
@@ -67,14 +67,14 @@ module Puffer
67
67
  @reflection_fields ||= begin
68
68
  fields = Puffer::Fields.new
69
69
  options[:columns].each do |field_name|
70
- fields.field reflection.klass, field_name
70
+ fields.field field_name, reflection.klass
71
71
  end
72
72
  fields
73
73
  end
74
74
  end
75
75
 
76
76
  def column
77
- @column ||= model.columns_hash[name]
77
+ @column ||= model && model.columns_hash[name]
78
78
  end
79
79
 
80
80
  def query_column
@@ -26,7 +26,7 @@ module Puffer
26
26
  def route_args *args
27
27
  options = args.extract_options!
28
28
  resource = args.shift
29
- return args + [prefix] + ancestors.map(&:route_member) + [resource], options
29
+ return args + [namespace] + ancestors.map(&:route_member) + [resource], options
30
30
  end
31
31
 
32
32
  def route_member suggest = nil
@@ -11,14 +11,14 @@ module Puffer
11
11
  include Routing
12
12
  include Scoping
13
13
 
14
- attr_reader :request, :params, :prefix, :action, :controller_name, :model_name, :controller, :model
14
+ attr_reader :request, :params, :namespace, :action, :controller_name, :model_name, :controller, :model
15
15
 
16
16
  def initialize params, request = nil
17
+ params = Marshal.load Marshal.dump(params)
17
18
  @action = params.delete :action
18
- @controller = "#{params[:controller]}_controller".camelize.constantize
19
+ @controller = "#{params.delete :controller}_controller".camelize.constantize
19
20
  @controller_name = controller.controller_name
20
- controller_segments = params.delete(:controller).split('/')
21
- @prefix = controller_segments.first
21
+ @namespace = controller.namespace
22
22
  @model_name = controller.model_name if controller.puffer?
23
23
  @model = controller.model if controller.puffer?
24
24
  @params = params
@@ -39,7 +39,7 @@ module Puffer
39
39
  parent_name = parent_ancestors.pop
40
40
  if parent_name
41
41
  parent_params = ActiveSupport::HashWithIndifferentAccess.new({
42
- :controller => "#{prefix}/#{parent_name.to_s.pluralize}",
42
+ :controller => "#{namespace}/#{parent_name.to_s.pluralize}",
43
43
  :action => 'index',
44
44
  :plural => parent_name.plural?,
45
45
  :ancestors => parent_ancestors,
@@ -77,7 +77,7 @@ module Puffer
77
77
  def children(custom_params = {})
78
78
  @children ||= params[:children].map do |child_name|
79
79
  child_params = ActiveSupport::HashWithIndifferentAccess.new(custom_params.deep_merge({
80
- :controller => "#{prefix}/#{child_name.to_s.pluralize}",
80
+ :controller => "#{namespace}/#{child_name.to_s.pluralize}",
81
81
  :action => 'index',
82
82
  :plural => child_name.plural?,
83
83
  :ancestors => params[:ancestors].dup.push((plural? ? controller_name : controller_name.singularize).to_sym),
data/puffer.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{puffer}
8
- s.version = "0.0.15"
8
+ s.version = "0.0.16"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["pyromaniac"]
12
- s.date = %q{2011-02-10}
12
+ s.date = %q{2011-02-12}
13
13
  s.description = %q{In Soviet Russia puffer admins you}
14
14
  s.email = %q{kinwizard@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -25,10 +25,12 @@ Gem::Specification.new do |s|
25
25
  "VERSION",
26
26
  "app/cells/puffer/base/additional.html.erb",
27
27
  "app/cells/puffer/base_cell.rb",
28
- "app/controllers/admin/dashboard_controller.rb",
28
+ "app/controllers/puffer/dashboard_base.rb",
29
+ "app/controllers/puffer/sessions_base.rb",
29
30
  "app/helpers/puffer_helper.rb",
30
- "app/views/admin/dashboard/index.html.erb",
31
31
  "app/views/layouts/puffer.html.erb",
32
+ "app/views/layouts/puffer_dashboard.html.erb",
33
+ "app/views/layouts/puffer_sessions.html.erb",
32
34
  "app/views/puffer/_form.html.erb",
33
35
  "app/views/puffer/associated/_many.html.erb",
34
36
  "app/views/puffer/associated/many.rjs",
@@ -38,7 +40,8 @@ Gem::Specification.new do |s|
38
40
  "app/views/puffer/index.html.erb",
39
41
  "app/views/puffer/new.html.erb",
40
42
  "app/views/puffer/show.html.erb",
41
- "app/views/puffer/toggle.rjs",
43
+ "app/views/puffer_dashboard/index.html.erb",
44
+ "app/views/puffer_sessions/new.html.erb",
42
45
  "autotest/discover.rb",
43
46
  "config/routes.rb",
44
47
  "lib/generators/puffer/controller/USAGE",
@@ -46,6 +49,7 @@ Gem::Specification.new do |s|
46
49
  "lib/generators/puffer/controller/templates/controller.rb",
47
50
  "lib/generators/puffer/install/USAGE",
48
51
  "lib/generators/puffer/install/install_generator.rb",
52
+ "lib/generators/puffer/install/templates/dashboard_controller.rb",
49
53
  "lib/generators/puffer/install/templates/puffer.rb",
50
54
  "lib/generators/puffer/install/templates/puffer/javascripts/puffer.js",
51
55
  "lib/generators/puffer/install/templates/puffer/javascripts/rails.js",
@@ -54,6 +58,7 @@ Gem::Specification.new do |s|
54
58
  "lib/generators/puffer/install/templates/puffer/javascripts/right.js",
55
59
  "lib/generators/puffer/install/templates/puffer/stylesheets/puffer.css",
56
60
  "lib/generators/puffer/install/templates/puffer/stylesheets/reset.css",
61
+ "lib/generators/puffer/install/templates/sessions_controller.rb",
57
62
  "lib/puffer.rb",
58
63
  "lib/puffer/base.rb",
59
64
  "lib/puffer/controller/actions.rb",
@@ -94,6 +99,8 @@ Gem::Specification.new do |s|
94
99
  "spec/dummy/app/controllers/admin/tags_controller.rb",
95
100
  "spec/dummy/app/controllers/admin/users_controller.rb",
96
101
  "spec/dummy/app/controllers/application_controller.rb",
102
+ "spec/dummy/app/controllers/puffer/dashboard_controller.rb",
103
+ "spec/dummy/app/controllers/puffer/sessions_controller.rb",
97
104
  "spec/dummy/app/helpers/application_helper.rb",
98
105
  "spec/dummy/app/models/category.rb",
99
106
  "spec/dummy/app/models/friendship.rb",
@@ -174,6 +181,8 @@ Gem::Specification.new do |s|
174
181
  "spec/dummy/app/controllers/admin/tags_controller.rb",
175
182
  "spec/dummy/app/controllers/admin/users_controller.rb",
176
183
  "spec/dummy/app/controllers/application_controller.rb",
184
+ "spec/dummy/app/controllers/puffer/dashboard_controller.rb",
185
+ "spec/dummy/app/controllers/puffer/sessions_controller.rb",
177
186
  "spec/dummy/app/helpers/application_helper.rb",
178
187
  "spec/dummy/app/models/category.rb",
179
188
  "spec/dummy/app/models/friendship.rb",
@@ -1,6 +1,6 @@
1
1
  class Admin::CategoriesController < Puffer::Base
2
2
 
3
- configure do
3
+ setup do
4
4
  group :posting
5
5
  end
6
6
 
@@ -1,17 +1,19 @@
1
1
  class Admin::PostsController < Puffer::Base
2
2
 
3
- configure do
3
+ setup do
4
4
  group :posting
5
5
  end
6
6
 
7
7
  index do
8
- field :user
8
+ field :id
9
+ field 'user.email'
9
10
  field :title
10
11
  field :body
11
12
  end
12
13
 
13
14
  form do
14
- field :user
15
+ field :id
16
+ field :user, :columns => [:email]
15
17
  field :title
16
18
  field :body
17
19
  end
@@ -1,6 +1,6 @@
1
1
  class Admin::ProfilesController < Puffer::Base
2
2
 
3
- configure do
3
+ setup do
4
4
  group :users
5
5
  end
6
6
 
@@ -1,6 +1,6 @@
1
1
  class Admin::UsersController < Puffer::Base
2
2
 
3
- configure do
3
+ setup do
4
4
  group :users
5
5
  end
6
6
 
@@ -0,0 +1,3 @@
1
+ class Puffer::DashboardController < Puffer::DashboardBase
2
+
3
+ end
@@ -0,0 +1,16 @@
1
+ class Puffer::SessionsController < Puffer::SessionsBase
2
+
3
+ def new
4
+ @record = User.new
5
+ end
6
+
7
+ def create
8
+ record = User.new
9
+ respond_with record
10
+ end
11
+
12
+ def destroy
13
+
14
+ end
15
+
16
+ end
@@ -1,5 +1,10 @@
1
1
  Dummy::Application.routes.draw do
2
2
 
3
+ namespace :puffer do
4
+ root :to => 'dashboard#index'
5
+ resource :session
6
+ end
7
+
3
8
  namespace :admin do
4
9
  resources :users do
5
10
  resource :profile do
@@ -22,60 +27,4 @@ Dummy::Application.routes.draw do
22
27
  end
23
28
  end
24
29
 
25
- # The priority is based upon order of creation:
26
- # first created -> highest priority.
27
-
28
- # Sample of regular route:
29
- # match 'products/:id' => 'catalog#view'
30
- # Keep in mind you can assign values other than :controller and :action
31
-
32
- # Sample of named route:
33
- # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
34
- # This route can be invoked with purchase_url(:id => product.id)
35
-
36
- # Sample resource route (maps HTTP verbs to controller actions automatically):
37
- # resources :products
38
-
39
- # Sample resource route with options:
40
- # resources :products do
41
- # member do
42
- # get 'short'
43
- # post 'toggle'
44
- # end
45
- #
46
- # collection do
47
- # get 'sold'
48
- # end
49
- # end
50
-
51
- # Sample resource route with sub-resources:
52
- # resources :products do
53
- # resources :comments, :sales
54
- # resource :seller
55
- # end
56
-
57
- # Sample resource route with more complex sub-resources
58
- # resources :products do
59
- # resources :comments
60
- # resources :sales do
61
- # get 'recent', :on => :collection
62
- # end
63
- # end
64
-
65
- # Sample resource route within a namespace:
66
- # namespace :admin do
67
- # # Directs /admin/products/* to Admin::ProductsController
68
- # # (app/controllers/admin/products_controller.rb)
69
- # resources :products
70
- # end
71
-
72
- # You can have the root of your site routed with "root"
73
- # just remember to delete public/index.html.
74
- # root :to => "welcome#index"
75
-
76
- # See how all your routes lay out with "rake routes"
77
-
78
- # This is a legacy wild controller route that's not recommended for RESTful applications.
79
- # Note: This route will make all actions in every controller accessible via GET requests.
80
- # match ':controller(/:action(/:id(.:format)))'
81
30
  end
@@ -26,6 +26,12 @@ h1
26
26
  margin-bottom: 10px;
27
27
  }
28
28
 
29
+ h2
30
+ {
31
+ font-size: 17px;
32
+ margin-bottom: 10px;
33
+ }
34
+
29
35
  .body
30
36
  {
31
37
  position: relative;
@@ -49,7 +55,7 @@ h1
49
55
  left: 20px;
50
56
  }
51
57
 
52
- .logo a
58
+ .logo a, .logo span
53
59
  {
54
60
  color: #ddd;
55
61
  font-size: 30pt;
@@ -58,6 +64,13 @@ h1
58
64
  text-shadow: #0A2337 -1px -1px 0;
59
65
  }
60
66
 
67
+ .logout
68
+ {
69
+ position: absolute;
70
+ top: 35px;
71
+ right: 10px;
72
+ }
73
+
61
74
  .navigation
62
75
  {
63
76
  position: absolute;
@@ -65,7 +78,19 @@ h1
65
78
  bottom: 20px;
66
79
  }
67
80
 
68
- .navigation li
81
+ .namespaces
82
+ {
83
+ position: absolute;
84
+ right: 10px;
85
+ top: 0;
86
+ }
87
+
88
+ .dashboard .navigation
89
+ {
90
+ margin-bottom: 10px;
91
+ }
92
+
93
+ .navigation > li, .namespaces > li
69
94
  {
70
95
  display: inline-block;
71
96
  *display: inline;
@@ -74,7 +99,13 @@ h1
74
99
  border-radius: 3px;
75
100
  }
76
101
 
77
- .navigation li:hover, .navigation li.selected
102
+ .namespaces > li
103
+ {
104
+ -moz-border-radius: 0 0 3px 3px;
105
+ border-radius: 0 0 3px 3px;
106
+ }
107
+
108
+ .navigation > li:hover, .navigation > li.selected, .namespaces > li:hover, .namespaces > li.selected
78
109
  {
79
110
  -moz-box-shadow: -1px -1px 0 #0A2337;
80
111
  -webkit-box-shadow: -1px -1px 0 #0A2337;
@@ -82,7 +113,7 @@ h1
82
113
  background: #536C80;
83
114
  }
84
115
 
85
- .navigation li>a
116
+ .navigation > li > a, .navigation > li > span, .namespaces > li > a, .namespaces > li > span
86
117
  {
87
118
  display: inline-block;
88
119
  *display: inline;
@@ -94,23 +125,50 @@ h1
94
125
  text-shadow: #304759 -1px -1px 0;
95
126
  }
96
127
 
97
- .sidebar .navigation
128
+ .namespaces > li > a, .namespaces > li > span
129
+ {
130
+ padding: 5px 12px;
131
+ }
132
+
133
+ .sidebar .navigation, .dashboard .navigation
98
134
  {
99
135
  position: static;
100
136
  }
101
137
 
102
- .sidebar .navigation li
138
+ .sidebar .navigation > li, .dashboard .navigation > li
103
139
  {
104
140
  display: block;
105
141
  margin-bottom: 5px;
106
142
  }
107
143
 
108
- .sidebar .navigation li>a
144
+ .dashboard .navigation > li
145
+ {
146
+ background: #536C80;
147
+ }
148
+
149
+ .dashboard .navigation > li:hover, .dashboard .navigation > li.selected
150
+ {
151
+ -moz-box-shadow: none;
152
+ -webkit-box-shadow: none;
153
+ box-shadow: none;
154
+ }
155
+
156
+ .sidebar .navigation > li > a
109
157
  {
110
158
  display: block;
111
159
  }
112
160
 
113
- .sidebar .navigation li .additional
161
+ .sidebar .navigation > li .additional dt
162
+ {
163
+ margin-bottom: 2px;
164
+ }
165
+
166
+ .sidebar .navigation > li .additional dd
167
+ {
168
+ margin-bottom: 8px;
169
+ }
170
+
171
+ .sidebar .navigation > li .additional, .dashboard .navigation > li ul.additional
114
172
  {
115
173
  padding: 10px 12px;
116
174
  background: #eee;
@@ -120,14 +178,21 @@ h1
120
178
  border-bottom-right-radius: 3px;
121
179
  }
122
180
 
123
- .sidebar .navigation li .additional dt
181
+ .dashboard .navigation > li ul.additional
124
182
  {
125
- margin-bottom: 2px;
183
+ padding: 6px 6px;
126
184
  }
127
185
 
128
- .sidebar .navigation li .additional dd
186
+ .dashboard .navigation > li ul.additional li
129
187
  {
130
- margin-bottom: 8px;
188
+ list-style: none;
189
+ padding: 5px 12px;
190
+ }
191
+
192
+ .dashboard .navigation > li ul.additional li > a
193
+ {
194
+ color: #222;
195
+ font-size: 10pt;
131
196
  }
132
197
 
133
198
  .columns
@@ -183,6 +248,19 @@ h1
183
248
  padding: 30px;
184
249
  }
185
250
 
251
+ .sessions
252
+ {
253
+ min-height: 10px;
254
+ margin: 50px auto 0 auto;
255
+ width: 400px;
256
+ }
257
+
258
+ .dashboard
259
+ {
260
+ min-height: 10px;
261
+ margin-left: 20px;
262
+ }
263
+
186
264
  .list_table
187
265
  {
188
266
  width: 100%;