mirror of
https://github.com/danbee/danbarberphoto
synced 2025-03-04 08:49:07 +00:00
Administrate dashboards live!
This commit is contained in:
parent
d9f47c3553
commit
5d15bfaf5f
23
Gemfile
23
Gemfile
@ -3,13 +3,13 @@ ruby '2.2.3'
|
|||||||
|
|
||||||
gem 'dotenv-rails', :groups => [:development, :test]
|
gem 'dotenv-rails', :groups => [:development, :test]
|
||||||
|
|
||||||
gem 'rails', '~> 4.1.0'
|
gem 'rails', '~> 4.2.0'
|
||||||
|
|
||||||
# Bundle edge Rails instead:
|
# Bundle edge Rails instead:
|
||||||
# gem 'rails', :git => 'git://github.com/rails/rails.git'
|
# gem 'rails', :git => 'git://github.com/rails/rails.git'
|
||||||
|
|
||||||
gem 'sass-rails', " ~> 5.0.0"
|
gem 'sass-rails'
|
||||||
gem 'coffee-rails', "~> 4.1.0"
|
gem 'coffee-rails'
|
||||||
gem 'uglifier'
|
gem 'uglifier'
|
||||||
|
|
||||||
gem 'bourbon'
|
gem 'bourbon'
|
||||||
@ -52,17 +52,16 @@ group :production do
|
|||||||
gem 'rails_12factor'
|
gem 'rails_12factor'
|
||||||
end
|
end
|
||||||
|
|
||||||
gem 'exception_notification', :git => 'git://github.com/rails/exception_notification', :require => 'exception_notifier'
|
gem 'administrate'
|
||||||
gem 'pg'
|
|
||||||
gem 'simple_form'
|
|
||||||
gem 'squeel'
|
|
||||||
gem 'will_paginate'
|
|
||||||
gem 'redcarpet'
|
|
||||||
gem 'dragonfly'
|
gem 'dragonfly'
|
||||||
gem 'dragonfly-s3_data_store'
|
gem 'dragonfly-s3_data_store'
|
||||||
gem 'unf'
|
gem 'exception_notification', :git => 'git://github.com/rails/exception_notification', :require => 'exception_notifier'
|
||||||
gem 'haml'
|
gem 'haml'
|
||||||
|
gem 'kaminari'
|
||||||
|
gem 'pg'
|
||||||
|
gem 'redcarpet'
|
||||||
|
gem 'simple_form'
|
||||||
gem 'skylight'
|
gem 'skylight'
|
||||||
|
|
||||||
gem 'slugtastic'
|
gem 'slugtastic'
|
||||||
|
gem 'squeel'
|
||||||
|
gem 'unf'
|
||||||
|
|||||||
126
Gemfile.lock
126
Gemfile.lock
@ -7,37 +7,60 @@ GIT
|
|||||||
GEM
|
GEM
|
||||||
remote: http://rubygems.org/
|
remote: http://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
actionmailer (4.1.13)
|
actionmailer (4.2.4)
|
||||||
actionpack (= 4.1.13)
|
actionpack (= 4.2.4)
|
||||||
actionview (= 4.1.13)
|
actionview (= 4.2.4)
|
||||||
|
activejob (= 4.2.4)
|
||||||
mail (~> 2.5, >= 2.5.4)
|
mail (~> 2.5, >= 2.5.4)
|
||||||
actionpack (4.1.13)
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
||||||
actionview (= 4.1.13)
|
actionpack (4.2.4)
|
||||||
activesupport (= 4.1.13)
|
actionview (= 4.2.4)
|
||||||
rack (~> 1.5.2)
|
activesupport (= 4.2.4)
|
||||||
|
rack (~> 1.6)
|
||||||
rack-test (~> 0.6.2)
|
rack-test (~> 0.6.2)
|
||||||
actionview (4.1.13)
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
||||||
activesupport (= 4.1.13)
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
||||||
|
actionview (4.2.4)
|
||||||
|
activesupport (= 4.2.4)
|
||||||
builder (~> 3.1)
|
builder (~> 3.1)
|
||||||
erubis (~> 2.7.0)
|
erubis (~> 2.7.0)
|
||||||
activemodel (4.1.13)
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
||||||
activesupport (= 4.1.13)
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
||||||
|
activejob (4.2.4)
|
||||||
|
activesupport (= 4.2.4)
|
||||||
|
globalid (>= 0.3.0)
|
||||||
|
activemodel (4.2.4)
|
||||||
|
activesupport (= 4.2.4)
|
||||||
builder (~> 3.1)
|
builder (~> 3.1)
|
||||||
activerecord (4.1.13)
|
activerecord (4.2.4)
|
||||||
activemodel (= 4.1.13)
|
activemodel (= 4.2.4)
|
||||||
activesupport (= 4.1.13)
|
activesupport (= 4.2.4)
|
||||||
arel (~> 5.0.0)
|
arel (~> 6.0)
|
||||||
activesupport (4.1.13)
|
activesupport (4.2.4)
|
||||||
i18n (~> 0.6, >= 0.6.9)
|
i18n (~> 0.7)
|
||||||
json (~> 1.7, >= 1.7.7)
|
json (~> 1.7, >= 1.7.7)
|
||||||
minitest (~> 5.1)
|
minitest (~> 5.1)
|
||||||
thread_safe (~> 0.1)
|
thread_safe (~> 0.3, >= 0.3.4)
|
||||||
tzinfo (~> 1.1)
|
tzinfo (~> 1.1)
|
||||||
addressable (2.3.8)
|
addressable (2.3.8)
|
||||||
arel (5.0.1.20140414130214)
|
administrate (0.0.12)
|
||||||
|
autoprefixer-rails
|
||||||
|
datetime_picker_rails (~> 0.0.4)
|
||||||
|
inline_svg (~> 0.6)
|
||||||
|
kaminari (~> 0.16)
|
||||||
|
momentjs-rails (>= 2.9.0)
|
||||||
|
neat (~> 1.1)
|
||||||
|
normalize-rails (~> 3.0)
|
||||||
|
rails (~> 4.2)
|
||||||
|
sass (~> 3.4)
|
||||||
|
selectize-rails (~> 0.6)
|
||||||
|
arel (6.0.3)
|
||||||
ast (2.1.0)
|
ast (2.1.0)
|
||||||
astrolabe (1.3.1)
|
astrolabe (1.3.1)
|
||||||
parser (~> 2.2)
|
parser (~> 2.2)
|
||||||
|
autoprefixer-rails (6.0.3)
|
||||||
|
execjs
|
||||||
|
json
|
||||||
aws-sdk (2.1.29)
|
aws-sdk (2.1.29)
|
||||||
aws-sdk-resources (= 2.1.29)
|
aws-sdk-resources (= 2.1.29)
|
||||||
aws-sdk-core (2.1.29)
|
aws-sdk-core (2.1.29)
|
||||||
@ -73,6 +96,8 @@ GEM
|
|||||||
execjs
|
execjs
|
||||||
coffee-script-source (1.9.1.1)
|
coffee-script-source (1.9.1.1)
|
||||||
database_cleaner (1.5.0)
|
database_cleaner (1.5.0)
|
||||||
|
datetime_picker_rails (0.0.4)
|
||||||
|
momentjs-rails (>= 2.8.1)
|
||||||
debug_inspector (0.0.2)
|
debug_inspector (0.0.2)
|
||||||
diff-lcs (1.2.5)
|
diff-lcs (1.2.5)
|
||||||
docile (1.1.5)
|
docile (1.1.5)
|
||||||
@ -115,31 +140,48 @@ GEM
|
|||||||
fog-core
|
fog-core
|
||||||
nokogiri (~> 1.5, >= 1.5.11)
|
nokogiri (~> 1.5, >= 1.5.11)
|
||||||
formatador (0.2.5)
|
formatador (0.2.5)
|
||||||
|
globalid (0.3.6)
|
||||||
|
activesupport (>= 4.1.0)
|
||||||
haml (4.0.7)
|
haml (4.0.7)
|
||||||
tilt
|
tilt
|
||||||
i18n (0.7.0)
|
i18n (0.7.0)
|
||||||
|
inline_svg (0.6.1)
|
||||||
|
activesupport (>= 4.0.4)
|
||||||
|
loofah (>= 2.0)
|
||||||
|
nokogiri (~> 1.6)
|
||||||
ipaddress (0.8.0)
|
ipaddress (0.8.0)
|
||||||
jmespath (1.1.3)
|
jmespath (1.1.3)
|
||||||
jquery-rails (3.1.4)
|
jquery-rails (3.1.4)
|
||||||
railties (>= 3.0, < 5.0)
|
railties (>= 3.0, < 5.0)
|
||||||
thor (>= 0.14, < 2.0)
|
thor (>= 0.14, < 2.0)
|
||||||
json (1.8.3)
|
json (1.8.3)
|
||||||
|
kaminari (0.16.3)
|
||||||
|
actionpack (>= 3.0.0)
|
||||||
|
activesupport (>= 3.0.0)
|
||||||
launchy (2.4.3)
|
launchy (2.4.3)
|
||||||
addressable (~> 2.3)
|
addressable (~> 2.3)
|
||||||
letter_opener (1.4.1)
|
letter_opener (1.4.1)
|
||||||
launchy (~> 2.2)
|
launchy (~> 2.2)
|
||||||
|
loofah (2.0.3)
|
||||||
|
nokogiri (>= 1.5.9)
|
||||||
mail (2.6.3)
|
mail (2.6.3)
|
||||||
mime-types (>= 1.16, < 3)
|
mime-types (>= 1.16, < 3)
|
||||||
method_source (0.8.2)
|
method_source (0.8.2)
|
||||||
mime-types (2.6.2)
|
mime-types (2.6.2)
|
||||||
mini_portile (0.6.2)
|
mini_portile (0.6.2)
|
||||||
minitest (5.8.1)
|
minitest (5.8.1)
|
||||||
|
momentjs-rails (2.10.6)
|
||||||
|
railties (>= 3.1)
|
||||||
multi_json (1.11.2)
|
multi_json (1.11.2)
|
||||||
|
neat (1.7.2)
|
||||||
|
bourbon (>= 4.0)
|
||||||
|
sass (>= 3.3)
|
||||||
net-scp (1.2.1)
|
net-scp (1.2.1)
|
||||||
net-ssh (>= 2.6.5)
|
net-ssh (>= 2.6.5)
|
||||||
net-ssh (3.0.1)
|
net-ssh (3.0.1)
|
||||||
nokogiri (1.6.6.2)
|
nokogiri (1.6.6.2)
|
||||||
mini_portile (~> 0.6.0)
|
mini_portile (~> 0.6.0)
|
||||||
|
normalize-rails (3.0.3)
|
||||||
parser (2.2.3.0)
|
parser (2.2.3.0)
|
||||||
ast (>= 1.1, < 3.0)
|
ast (>= 1.1, < 3.0)
|
||||||
pg (0.18.3)
|
pg (0.18.3)
|
||||||
@ -158,27 +200,36 @@ GEM
|
|||||||
method_source (~> 0.8.1)
|
method_source (~> 0.8.1)
|
||||||
slop (~> 3.4)
|
slop (~> 3.4)
|
||||||
puma (2.14.0)
|
puma (2.14.0)
|
||||||
rack (1.5.5)
|
rack (1.6.4)
|
||||||
rack-test (0.6.3)
|
rack-test (0.6.3)
|
||||||
rack (>= 1.0)
|
rack (>= 1.0)
|
||||||
rails (4.1.13)
|
rails (4.2.4)
|
||||||
actionmailer (= 4.1.13)
|
actionmailer (= 4.2.4)
|
||||||
actionpack (= 4.1.13)
|
actionpack (= 4.2.4)
|
||||||
actionview (= 4.1.13)
|
actionview (= 4.2.4)
|
||||||
activemodel (= 4.1.13)
|
activejob (= 4.2.4)
|
||||||
activerecord (= 4.1.13)
|
activemodel (= 4.2.4)
|
||||||
activesupport (= 4.1.13)
|
activerecord (= 4.2.4)
|
||||||
|
activesupport (= 4.2.4)
|
||||||
bundler (>= 1.3.0, < 2.0)
|
bundler (>= 1.3.0, < 2.0)
|
||||||
railties (= 4.1.13)
|
railties (= 4.2.4)
|
||||||
sprockets-rails (~> 2.0)
|
sprockets-rails
|
||||||
|
rails-deprecated_sanitizer (1.0.3)
|
||||||
|
activesupport (>= 4.2.0.alpha)
|
||||||
|
rails-dom-testing (1.0.7)
|
||||||
|
activesupport (>= 4.2.0.beta, < 5.0)
|
||||||
|
nokogiri (~> 1.6.0)
|
||||||
|
rails-deprecated_sanitizer (>= 1.0.1)
|
||||||
|
rails-html-sanitizer (1.0.2)
|
||||||
|
loofah (~> 2.0)
|
||||||
rails_12factor (0.0.3)
|
rails_12factor (0.0.3)
|
||||||
rails_serve_static_assets
|
rails_serve_static_assets
|
||||||
rails_stdout_logging
|
rails_stdout_logging
|
||||||
rails_serve_static_assets (0.0.4)
|
rails_serve_static_assets (0.0.4)
|
||||||
rails_stdout_logging (0.0.4)
|
rails_stdout_logging (0.0.4)
|
||||||
railties (4.1.13)
|
railties (4.2.4)
|
||||||
actionpack (= 4.1.13)
|
actionpack (= 4.2.4)
|
||||||
activesupport (= 4.1.13)
|
activesupport (= 4.2.4)
|
||||||
rake (>= 0.8.7)
|
rake (>= 0.8.7)
|
||||||
thor (>= 0.18.1, < 2.0)
|
thor (>= 0.18.1, < 2.0)
|
||||||
rainbow (2.0.0)
|
rainbow (2.0.0)
|
||||||
@ -217,6 +268,7 @@ GEM
|
|||||||
sprockets (>= 2.8, < 4.0)
|
sprockets (>= 2.8, < 4.0)
|
||||||
sprockets-rails (>= 2.0, < 4.0)
|
sprockets-rails (>= 2.0, < 4.0)
|
||||||
tilt (>= 1.1, < 3)
|
tilt (>= 1.1, < 3)
|
||||||
|
selectize-rails (0.12.1)
|
||||||
sexp_processor (4.6.0)
|
sexp_processor (4.6.0)
|
||||||
shoulda (3.5.0)
|
shoulda (3.5.0)
|
||||||
shoulda-context (~> 1.0, >= 1.0.1)
|
shoulda-context (~> 1.0, >= 1.0.1)
|
||||||
@ -260,7 +312,6 @@ GEM
|
|||||||
websocket-driver (0.6.2)
|
websocket-driver (0.6.2)
|
||||||
websocket-extensions (>= 0.1.0)
|
websocket-extensions (>= 0.1.0)
|
||||||
websocket-extensions (0.1.2)
|
websocket-extensions (0.1.2)
|
||||||
will_paginate (3.0.7)
|
|
||||||
xpath (2.0.0)
|
xpath (2.0.0)
|
||||||
nokogiri (~> 1.3)
|
nokogiri (~> 1.3)
|
||||||
|
|
||||||
@ -268,12 +319,13 @@ PLATFORMS
|
|||||||
ruby
|
ruby
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
|
administrate
|
||||||
aws-sdk
|
aws-sdk
|
||||||
better_errors
|
better_errors
|
||||||
binding_of_caller
|
binding_of_caller
|
||||||
bourbon
|
bourbon
|
||||||
capybara-screenshot
|
capybara-screenshot
|
||||||
coffee-rails (~> 4.1.0)
|
coffee-rails
|
||||||
database_cleaner
|
database_cleaner
|
||||||
dotenv-rails
|
dotenv-rails
|
||||||
dragonfly
|
dragonfly
|
||||||
@ -283,19 +335,20 @@ DEPENDENCIES
|
|||||||
fivemat
|
fivemat
|
||||||
haml
|
haml
|
||||||
jquery-rails
|
jquery-rails
|
||||||
|
kaminari
|
||||||
letter_opener
|
letter_opener
|
||||||
pg
|
pg
|
||||||
poltergeist
|
poltergeist
|
||||||
powder
|
powder
|
||||||
pry
|
pry
|
||||||
puma
|
puma
|
||||||
rails (~> 4.1.0)
|
rails (~> 4.2.0)
|
||||||
rails_12factor
|
rails_12factor
|
||||||
redcarpet
|
redcarpet
|
||||||
rspec-rails
|
rspec-rails
|
||||||
rubocop
|
rubocop
|
||||||
ruby_parser
|
ruby_parser
|
||||||
sass-rails (~> 5.0.0)
|
sass-rails
|
||||||
shoulda
|
shoulda
|
||||||
shoulda-context
|
shoulda-context
|
||||||
shoulda-matchers
|
shoulda-matchers
|
||||||
@ -306,7 +359,6 @@ DEPENDENCIES
|
|||||||
squeel
|
squeel
|
||||||
uglifier
|
uglifier
|
||||||
unf
|
unf
|
||||||
will_paginate
|
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
1.10.6
|
1.10.6
|
||||||
|
|||||||
19
app/controllers/admin/application_controller.rb
Normal file
19
app/controllers/admin/application_controller.rb
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# All Administrate controllers inherit from this `Admin::ApplicationController`,
|
||||||
|
# making it the ideal place to put authentication logic or other
|
||||||
|
# before_filters.
|
||||||
|
#
|
||||||
|
# If you want to add pagination or other controller-level concerns,
|
||||||
|
# you're free to overwrite the RESTful controller actions.
|
||||||
|
class Admin::ApplicationController < Administrate::ApplicationController
|
||||||
|
before_filter :authenticate_admin
|
||||||
|
|
||||||
|
def authenticate_admin
|
||||||
|
# TODO Add authentication logic here.
|
||||||
|
end
|
||||||
|
|
||||||
|
# Override this value to specify the number of elements to display at a time
|
||||||
|
# on index pages. Defaults to 20.
|
||||||
|
# def records_per_page
|
||||||
|
# params[:per_page] || 20
|
||||||
|
# end
|
||||||
|
end
|
||||||
19
app/controllers/admin/categories_controller.rb
Normal file
19
app/controllers/admin/categories_controller.rb
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
module Admin
|
||||||
|
class CategoriesController < Admin::ApplicationController
|
||||||
|
# To customize the behavior of this controller,
|
||||||
|
# simply overwrite any of the RESTful actions. For example:
|
||||||
|
#
|
||||||
|
# def index
|
||||||
|
# super
|
||||||
|
# @resources = Category.all.paginate(10, params[:page])
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Define a custom finder by overriding the `find_resource` method:
|
||||||
|
# def find_resource(param)
|
||||||
|
# Category.find_by!(slug: param)
|
||||||
|
# end
|
||||||
|
|
||||||
|
# See https://administrate-docs.herokuapp.com/customizing_controller_actions
|
||||||
|
# for more information
|
||||||
|
end
|
||||||
|
end
|
||||||
19
app/controllers/admin/pages_controller.rb
Normal file
19
app/controllers/admin/pages_controller.rb
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
module Admin
|
||||||
|
class PagesController < Admin::ApplicationController
|
||||||
|
# To customize the behavior of this controller,
|
||||||
|
# simply overwrite any of the RESTful actions. For example:
|
||||||
|
#
|
||||||
|
# def index
|
||||||
|
# super
|
||||||
|
# @resources = Page.all.paginate(10, params[:page])
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Define a custom finder by overriding the `find_resource` method:
|
||||||
|
# def find_resource(param)
|
||||||
|
# Page.find_by!(slug: param)
|
||||||
|
# end
|
||||||
|
|
||||||
|
# See https://administrate-docs.herokuapp.com/customizing_controller_actions
|
||||||
|
# for more information
|
||||||
|
end
|
||||||
|
end
|
||||||
19
app/controllers/admin/photos_controller.rb
Normal file
19
app/controllers/admin/photos_controller.rb
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
module Admin
|
||||||
|
class PhotosController < Admin::ApplicationController
|
||||||
|
# To customize the behavior of this controller,
|
||||||
|
# simply overwrite any of the RESTful actions. For example:
|
||||||
|
#
|
||||||
|
# def index
|
||||||
|
# super
|
||||||
|
# @resources = Photo.all.paginate(10, params[:page])
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Define a custom finder by overriding the `find_resource` method:
|
||||||
|
# def find_resource(param)
|
||||||
|
# Photo.find_by!(slug: param)
|
||||||
|
# end
|
||||||
|
|
||||||
|
# See https://administrate-docs.herokuapp.com/customizing_controller_actions
|
||||||
|
# for more information
|
||||||
|
end
|
||||||
|
end
|
||||||
44
app/dashboards/category_dashboard.rb
Normal file
44
app/dashboards/category_dashboard.rb
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
require "administrate/base_dashboard"
|
||||||
|
|
||||||
|
class CategoryDashboard < Administrate::BaseDashboard
|
||||||
|
READ_ONLY_ATTRIBUTES = [
|
||||||
|
:id,
|
||||||
|
:created_at,
|
||||||
|
:updated_at,
|
||||||
|
]
|
||||||
|
|
||||||
|
# ATTRIBUTE_TYPES
|
||||||
|
# a hash that describes the type of each of the model's fields.
|
||||||
|
#
|
||||||
|
# Each different type represents an Administrate::Field object,
|
||||||
|
# which determines how the attribute is displayed
|
||||||
|
# on pages throughout the dashboard.
|
||||||
|
ATTRIBUTE_TYPES = {
|
||||||
|
photos: Field::HasMany,
|
||||||
|
id: Field::Number,
|
||||||
|
name: Field::String,
|
||||||
|
description: Field::String,
|
||||||
|
created_at: Field::DateTime,
|
||||||
|
updated_at: Field::DateTime,
|
||||||
|
photo_id: Field::Number,
|
||||||
|
base_colour: Field::String,
|
||||||
|
sort: Field::Number,
|
||||||
|
slug: Field::String,
|
||||||
|
}
|
||||||
|
|
||||||
|
# TABLE_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed on the model's index page.
|
||||||
|
#
|
||||||
|
# By default, it's limited to four items to reduce clutter on index pages.
|
||||||
|
# Feel free to remove the limit or customize the returned array.
|
||||||
|
TABLE_ATTRIBUTES = ATTRIBUTE_TYPES.keys.first(4)
|
||||||
|
|
||||||
|
# SHOW_PAGE_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed on the model's show page.
|
||||||
|
SHOW_PAGE_ATTRIBUTES = ATTRIBUTE_TYPES.keys
|
||||||
|
|
||||||
|
# FORM_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed
|
||||||
|
# on the model's form (`new` and `edit`) pages.
|
||||||
|
FORM_ATTRIBUTES = ATTRIBUTE_TYPES.keys - READ_ONLY_ATTRIBUTES
|
||||||
|
end
|
||||||
25
app/dashboards/dashboard_manifest.rb
Normal file
25
app/dashboards/dashboard_manifest.rb
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# DashboardManifest tells Administrate which dashboards to display
|
||||||
|
class DashboardManifest
|
||||||
|
# `DASHBOARDS`
|
||||||
|
# a list of dashboards to display in the side navigation menu
|
||||||
|
#
|
||||||
|
# These are all of the rails models that we found in your database
|
||||||
|
# at the time you installed Administrate.
|
||||||
|
#
|
||||||
|
# To show or hide dashboards, add or remove the model name from this list.
|
||||||
|
# Dashboards returned from this method must be Rails models for Administrate
|
||||||
|
# to work correctly.
|
||||||
|
DASHBOARDS = [
|
||||||
|
:categories,
|
||||||
|
:pages,
|
||||||
|
:photos,
|
||||||
|
]
|
||||||
|
|
||||||
|
# `ROOT_DASHBOARD`
|
||||||
|
# the name of the dashboard that will be displayed
|
||||||
|
# at "http://your_site.com/admin"
|
||||||
|
#
|
||||||
|
# This dashboard will likely be the first page that admins see
|
||||||
|
# when they log into the dashboard.
|
||||||
|
ROOT_DASHBOARD = DASHBOARDS.first
|
||||||
|
end
|
||||||
40
app/dashboards/page_dashboard.rb
Normal file
40
app/dashboards/page_dashboard.rb
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
require "administrate/base_dashboard"
|
||||||
|
|
||||||
|
class PageDashboard < Administrate::BaseDashboard
|
||||||
|
READ_ONLY_ATTRIBUTES = [
|
||||||
|
:id,
|
||||||
|
:created_at,
|
||||||
|
:updated_at,
|
||||||
|
]
|
||||||
|
|
||||||
|
# ATTRIBUTE_TYPES
|
||||||
|
# a hash that describes the type of each of the model's fields.
|
||||||
|
#
|
||||||
|
# Each different type represents an Administrate::Field object,
|
||||||
|
# which determines how the attribute is displayed
|
||||||
|
# on pages throughout the dashboard.
|
||||||
|
ATTRIBUTE_TYPES = {
|
||||||
|
id: Field::Number,
|
||||||
|
name: Field::String,
|
||||||
|
title: Field::String,
|
||||||
|
content: Field::String,
|
||||||
|
created_at: Field::DateTime,
|
||||||
|
updated_at: Field::DateTime,
|
||||||
|
}
|
||||||
|
|
||||||
|
# TABLE_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed on the model's index page.
|
||||||
|
#
|
||||||
|
# By default, it's limited to four items to reduce clutter on index pages.
|
||||||
|
# Feel free to remove the limit or customize the returned array.
|
||||||
|
TABLE_ATTRIBUTES = ATTRIBUTE_TYPES.keys.first(4)
|
||||||
|
|
||||||
|
# SHOW_PAGE_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed on the model's show page.
|
||||||
|
SHOW_PAGE_ATTRIBUTES = ATTRIBUTE_TYPES.keys
|
||||||
|
|
||||||
|
# FORM_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed
|
||||||
|
# on the model's form (`new` and `edit`) pages.
|
||||||
|
FORM_ATTRIBUTES = ATTRIBUTE_TYPES.keys - READ_ONLY_ATTRIBUTES
|
||||||
|
end
|
||||||
48
app/dashboards/photo_dashboard.rb
Normal file
48
app/dashboards/photo_dashboard.rb
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
require "administrate/base_dashboard"
|
||||||
|
|
||||||
|
class PhotoDashboard < Administrate::BaseDashboard
|
||||||
|
READ_ONLY_ATTRIBUTES = [
|
||||||
|
:id,
|
||||||
|
:created_at,
|
||||||
|
:updated_at,
|
||||||
|
]
|
||||||
|
|
||||||
|
# ATTRIBUTE_TYPES
|
||||||
|
# a hash that describes the type of each of the model's fields.
|
||||||
|
#
|
||||||
|
# Each different type represents an Administrate::Field object,
|
||||||
|
# which determines how the attribute is displayed
|
||||||
|
# on pages throughout the dashboard.
|
||||||
|
ATTRIBUTE_TYPES = {
|
||||||
|
categories: Field::HasMany,
|
||||||
|
id: Field::Number,
|
||||||
|
flickr_url: Field::String,
|
||||||
|
created_at: Field::DateTime,
|
||||||
|
updated_at: Field::DateTime,
|
||||||
|
title: Field::String,
|
||||||
|
description: Field::String,
|
||||||
|
sort: Field::Number,
|
||||||
|
featured: Field::Boolean,
|
||||||
|
enabled: Field::Boolean,
|
||||||
|
taken_at: Field::DateTime,
|
||||||
|
views: Field::Number,
|
||||||
|
image_uid: Field::String,
|
||||||
|
image_name: Field::String,
|
||||||
|
}
|
||||||
|
|
||||||
|
# TABLE_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed on the model's index page.
|
||||||
|
#
|
||||||
|
# By default, it's limited to four items to reduce clutter on index pages.
|
||||||
|
# Feel free to remove the limit or customize the returned array.
|
||||||
|
TABLE_ATTRIBUTES = ATTRIBUTE_TYPES.keys.first(4)
|
||||||
|
|
||||||
|
# SHOW_PAGE_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed on the model's show page.
|
||||||
|
SHOW_PAGE_ATTRIBUTES = ATTRIBUTE_TYPES.keys
|
||||||
|
|
||||||
|
# FORM_ATTRIBUTES
|
||||||
|
# an array of attributes that will be displayed
|
||||||
|
# on the model's form (`new` and `edit`) pages.
|
||||||
|
FORM_ATTRIBUTES = ATTRIBUTE_TYPES.keys - READ_ONLY_ATTRIBUTES
|
||||||
|
end
|
||||||
@ -4,4 +4,8 @@ class Category < ActiveRecord::Base
|
|||||||
validates_uniqueness_of :name, :slug
|
validates_uniqueness_of :name, :slug
|
||||||
|
|
||||||
has_slug :slug, from: :name
|
has_slug :slug, from: :name
|
||||||
|
|
||||||
|
def to_s
|
||||||
|
name
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -1,2 +1,5 @@
|
|||||||
class Page < ActiveRecord::Base
|
class Page < ActiveRecord::Base
|
||||||
|
def to_s
|
||||||
|
title
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -5,7 +5,7 @@ class Photo < ActiveRecord::Base
|
|||||||
|
|
||||||
validates :image, presence: true
|
validates :image, presence: true
|
||||||
|
|
||||||
self.per_page = 11
|
paginates_per 11
|
||||||
|
|
||||||
scope :enabled, -> { where(enabled: true) }
|
scope :enabled, -> { where(enabled: true) }
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,12 @@
|
|||||||
DanBarberPhoto::Application.routes.draw do
|
DanBarberPhoto::Application.routes.draw do
|
||||||
|
namespace :admin do
|
||||||
|
DashboardManifest::DASHBOARDS.each do |dashboard_resource|
|
||||||
|
resources dashboard_resource
|
||||||
|
end
|
||||||
|
|
||||||
|
root controller: DashboardManifest::ROOT_DASHBOARD, action: :index
|
||||||
|
end
|
||||||
|
|
||||||
resources :contacts
|
resources :contacts
|
||||||
|
|
||||||
resources :categories do
|
resources :categories do
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user