puffer 0.0.15 → 0.0.16

Sign up to get free protection for your applications and to get access to all the features.
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%;