beerdb-admin 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.md +3 -0
- data/Manifest.txt +55 -0
- data/README.md +29 -0
- data/Rakefile +26 -0
- data/app/assets/javascripts/beer_db_admin/application.js +15 -0
- data/app/assets/stylesheets/beer_db_admin/application.css.scss +3 -0
- data/app/controllers/beer_db_admin/beer_db_admin_controller.rb +6 -0
- data/app/controllers/beer_db_admin/beers_controller.rb +19 -0
- data/app/controllers/beer_db_admin/bookmarks_controller.rb +47 -0
- data/app/controllers/beer_db_admin/brands_controller.rb +21 -0
- data/app/controllers/beer_db_admin/breweries_controller.rb +31 -0
- data/app/controllers/beer_db_admin/countries_controller.rb +46 -0
- data/app/controllers/beer_db_admin/drinks_controller.rb +63 -0
- data/app/controllers/beer_db_admin/frontpage_controller.rb +15 -0
- data/app/controllers/beer_db_admin/pages_controller.rb +14 -0
- data/app/controllers/beer_db_admin/regions_controller.rb +13 -0
- data/app/controllers/beer_db_admin/sessions_controller.rb +53 -0
- data/app/controllers/beer_db_admin/tags_controller.rb +15 -0
- data/app/controllers/beer_db_admin/time_controller.rb +12 -0
- data/app/controllers/beer_db_admin/users_controller.rb +66 -0
- data/app/helpers/beer_db_admin/application_helper.rb +52 -0
- data/app/helpers/beer_db_admin/part_helper.rb +37 -0
- data/app/helpers/beer_db_admin/routes_helper.rb +21 -0
- data/app/views/beer_db_admin/beers/index.html.erb +70 -0
- data/app/views/beer_db_admin/beers/show.html.erb +132 -0
- data/app/views/beer_db_admin/brands/index.html.erb +41 -0
- data/app/views/beer_db_admin/breweries/index.html.erb +61 -0
- data/app/views/beer_db_admin/breweries/show.html.erb +111 -0
- data/app/views/beer_db_admin/countries/index.html.erb +49 -0
- data/app/views/beer_db_admin/countries/show.html.erb +133 -0
- data/app/views/beer_db_admin/countries/show_pocket.html.erb +111 -0
- data/app/views/beer_db_admin/drinks/_form.html.erb +29 -0
- data/app/views/beer_db_admin/drinks/edit.html.erb +4 -0
- data/app/views/beer_db_admin/drinks/new.html.erb +4 -0
- data/app/views/beer_db_admin/pages/about.html.erb +2 -0
- data/app/views/beer_db_admin/pages/index.html.erb +2 -0
- data/app/views/beer_db_admin/regions/index.html.erb +50 -0
- data/app/views/beer_db_admin/sessions/new.html.erb +54 -0
- data/app/views/beer_db_admin/shared/_beers.html.erb +16 -0
- data/app/views/beer_db_admin/shared/_bookmarks.html.erb +80 -0
- data/app/views/beer_db_admin/shared/_breweries_for_country.html.erb +22 -0
- data/app/views/beer_db_admin/shared/_breweries_for_region.html.erb +24 -0
- data/app/views/beer_db_admin/shared/_brewery_tags.html.erb +16 -0
- data/app/views/beer_db_admin/shared/_tags.html.erb +13 -0
- data/app/views/beer_db_admin/tags/index.html.erb +24 -0
- data/app/views/beer_db_admin/time/index.html.erb +40 -0
- data/app/views/beer_db_admin/users/edit.html.erb +40 -0
- data/app/views/beer_db_admin/users/show.html.erb +39 -0
- data/app/views/layouts/beer_db_admin/_flash.html.erb +6 -0
- data/app/views/layouts/beer_db_admin/_header.html.erb +16 -0
- data/app/views/layouts/beer_db_admin/beer_db_admin.html.erb +80 -0
- data/config/routes.rb +46 -0
- data/lib/beerdb/admin/engine.rb +6 -0
- data/lib/beerdb/admin/version.rb +5 -0
- data/lib/beerdb/admin.rb +20 -0
- metadata +127 -0
data/History.md
ADDED
data/Manifest.txt
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
History.md
|
2
|
+
Manifest.txt
|
3
|
+
README.md
|
4
|
+
Rakefile
|
5
|
+
app/assets/javascripts/beer_db_admin/application.js
|
6
|
+
app/assets/stylesheets/beer_db_admin/application.css.scss
|
7
|
+
app/controllers/beer_db_admin/beer_db_admin_controller.rb
|
8
|
+
app/controllers/beer_db_admin/beers_controller.rb
|
9
|
+
app/controllers/beer_db_admin/bookmarks_controller.rb
|
10
|
+
app/controllers/beer_db_admin/brands_controller.rb
|
11
|
+
app/controllers/beer_db_admin/breweries_controller.rb
|
12
|
+
app/controllers/beer_db_admin/countries_controller.rb
|
13
|
+
app/controllers/beer_db_admin/drinks_controller.rb
|
14
|
+
app/controllers/beer_db_admin/frontpage_controller.rb
|
15
|
+
app/controllers/beer_db_admin/pages_controller.rb
|
16
|
+
app/controllers/beer_db_admin/regions_controller.rb
|
17
|
+
app/controllers/beer_db_admin/sessions_controller.rb
|
18
|
+
app/controllers/beer_db_admin/tags_controller.rb
|
19
|
+
app/controllers/beer_db_admin/time_controller.rb
|
20
|
+
app/controllers/beer_db_admin/users_controller.rb
|
21
|
+
app/helpers/beer_db_admin/application_helper.rb
|
22
|
+
app/helpers/beer_db_admin/part_helper.rb
|
23
|
+
app/helpers/beer_db_admin/routes_helper.rb
|
24
|
+
app/views/beer_db_admin/beers/index.html.erb
|
25
|
+
app/views/beer_db_admin/beers/show.html.erb
|
26
|
+
app/views/beer_db_admin/brands/index.html.erb
|
27
|
+
app/views/beer_db_admin/breweries/index.html.erb
|
28
|
+
app/views/beer_db_admin/breweries/show.html.erb
|
29
|
+
app/views/beer_db_admin/countries/index.html.erb
|
30
|
+
app/views/beer_db_admin/countries/show.html.erb
|
31
|
+
app/views/beer_db_admin/countries/show_pocket.html.erb
|
32
|
+
app/views/beer_db_admin/drinks/_form.html.erb
|
33
|
+
app/views/beer_db_admin/drinks/edit.html.erb
|
34
|
+
app/views/beer_db_admin/drinks/new.html.erb
|
35
|
+
app/views/beer_db_admin/pages/about.html.erb
|
36
|
+
app/views/beer_db_admin/pages/index.html.erb
|
37
|
+
app/views/beer_db_admin/regions/index.html.erb
|
38
|
+
app/views/beer_db_admin/sessions/new.html.erb
|
39
|
+
app/views/beer_db_admin/shared/_beers.html.erb
|
40
|
+
app/views/beer_db_admin/shared/_bookmarks.html.erb
|
41
|
+
app/views/beer_db_admin/shared/_breweries_for_country.html.erb
|
42
|
+
app/views/beer_db_admin/shared/_breweries_for_region.html.erb
|
43
|
+
app/views/beer_db_admin/shared/_brewery_tags.html.erb
|
44
|
+
app/views/beer_db_admin/shared/_tags.html.erb
|
45
|
+
app/views/beer_db_admin/tags/index.html.erb
|
46
|
+
app/views/beer_db_admin/time/index.html.erb
|
47
|
+
app/views/beer_db_admin/users/edit.html.erb
|
48
|
+
app/views/beer_db_admin/users/show.html.erb
|
49
|
+
app/views/layouts/beer_db_admin/_flash.html.erb
|
50
|
+
app/views/layouts/beer_db_admin/_header.html.erb
|
51
|
+
app/views/layouts/beer_db_admin/beer_db_admin.html.erb
|
52
|
+
config/routes.rb
|
53
|
+
lib/beerdb/admin.rb
|
54
|
+
lib/beerdb/admin/engine.rb
|
55
|
+
lib/beerdb/admin/version.rb
|
data/README.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# beer.db.admin
|
2
|
+
|
3
|
+
Open beer web admin addon / rails engine
|
4
|
+
|
5
|
+
* home :: [github.com/geraldb/beer.db.admin](https://github.com/geraldb/beer.db.admin)
|
6
|
+
* bugs :: [github.com/geraldb/beer.db.admin/issues](https://github.com/geraldb/beer.db.admin/issues)
|
7
|
+
* gem :: [rubygems.org/gems/beerdb-admin](https://rubygems.org/gems/beerdb-admin)
|
8
|
+
* rdoc :: [rubydoc.info/gems/beerdb-admin](http://rubydoc.info/gems/beerdb-admin)
|
9
|
+
* forum :: [groups.google.com/group/beerdb](https://groups.google.com/group/beerdb)
|
10
|
+
|
11
|
+
## Demo
|
12
|
+
|
13
|
+
Try the `beer.db` web admin demo running
|
14
|
+
on Heroku [`prost.herokuapp.com`](http://prost.herokuapp.com).
|
15
|
+
|
16
|
+
## Usage
|
17
|
+
|
18
|
+
TBD
|
19
|
+
|
20
|
+
|
21
|
+
## License
|
22
|
+
|
23
|
+
The `beer.db.admin` scripts are dedicated to the public domain.
|
24
|
+
Use it as you please with no restrictions whatsoever.
|
25
|
+
|
26
|
+
## Questions? Comments?
|
27
|
+
|
28
|
+
Send them along to the [Open Beer Database & Friends Forum/Mailing List](http://groups.google.com/group/beerdb).
|
29
|
+
Thanks!
|
data/Rakefile
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'hoe'
|
2
|
+
require './lib/beerdb/admin/version.rb'
|
3
|
+
|
4
|
+
|
5
|
+
Hoe.spec 'beerdb-admin' do
|
6
|
+
|
7
|
+
self.version = BeerDbAdmin::VERSION
|
8
|
+
|
9
|
+
self.summary = 'beerdb admin addon - rails engine'
|
10
|
+
self.description = summary
|
11
|
+
|
12
|
+
self.urls = ['https://github.com/geraldb/beer.db.admin']
|
13
|
+
|
14
|
+
self.author = 'Gerald Bauer'
|
15
|
+
self.email = 'beerdb@googlegroups.com'
|
16
|
+
|
17
|
+
self.readme_file = 'README.md'
|
18
|
+
self.history_file = 'History.md'
|
19
|
+
|
20
|
+
self.licenses = ['Public Domain']
|
21
|
+
|
22
|
+
self.spec_extras = {
|
23
|
+
:required_ruby_version => '>= 1.9.2'
|
24
|
+
}
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// the compiled file.
|
9
|
+
//
|
10
|
+
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
|
11
|
+
// GO AFTER THE REQUIRES BELOW.
|
12
|
+
//
|
13
|
+
//= require jquery
|
14
|
+
//= require jquery_ujs
|
15
|
+
//= require_tree .
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BeerDbAdmin
|
4
|
+
|
5
|
+
class BeersController < BeerDbAdminController
|
6
|
+
|
7
|
+
def index
|
8
|
+
# note: show 25 per page for now
|
9
|
+
@beers = Beer.limit( 25 )
|
10
|
+
end
|
11
|
+
|
12
|
+
# GET /beers/:id e.g. /beers/1
|
13
|
+
def show
|
14
|
+
@beer = Beer.find( params[:id] )
|
15
|
+
end
|
16
|
+
|
17
|
+
end # class BeersController
|
18
|
+
|
19
|
+
end # module BeerDbAdmin
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BeerDbAdmin
|
4
|
+
|
5
|
+
class BookmarksController < BeerDbAdminController
|
6
|
+
|
7
|
+
def update_flag
|
8
|
+
|
9
|
+
bookmark = Bookmark.find( params[:id] )
|
10
|
+
|
11
|
+
# check params
|
12
|
+
if params[:yes].present?
|
13
|
+
if params[:yes] == 'true' || params[:yes] == 't'
|
14
|
+
bookmark.yes = true # +1
|
15
|
+
bookmark.no = false
|
16
|
+
else
|
17
|
+
bookmark.yes = false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
if params[:no].present?
|
22
|
+
if params[:no] == 'true' || params[:no] == 't'
|
23
|
+
bookmark.no = true # -1
|
24
|
+
bookmark.yes = false
|
25
|
+
else
|
26
|
+
bookmark.no = false
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
if params[:wish].present?
|
31
|
+
if params[:wish] == 'true' || params[:wish] == 't'
|
32
|
+
bookmark.wish = true
|
33
|
+
bookmark.no = false # reset -1 flag if present
|
34
|
+
else
|
35
|
+
bookmark.wish = false
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
flash[:notice] = 'Bookmark erfolgreich gespeichert.'
|
40
|
+
bookmark.save!
|
41
|
+
|
42
|
+
redirect_to :back
|
43
|
+
end
|
44
|
+
|
45
|
+
end # class BookmarksController
|
46
|
+
|
47
|
+
end # module BeerDbAdmin
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BeerDbAdmin
|
4
|
+
|
5
|
+
class BrandsController < BeerDbAdminController
|
6
|
+
|
7
|
+
def index
|
8
|
+
@brands = Brand.all
|
9
|
+
end
|
10
|
+
|
11
|
+
=begin
|
12
|
+
# GET /brands/:id e.g. /brands/1
|
13
|
+
def show
|
14
|
+
@brand = Brand.find( params[:id] )
|
15
|
+
end
|
16
|
+
=end
|
17
|
+
|
18
|
+
end # class BrandsController
|
19
|
+
|
20
|
+
end # module BeerDbAdmin
|
21
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BeerDbAdmin
|
4
|
+
|
5
|
+
class BreweriesController < BeerDbAdminController
|
6
|
+
|
7
|
+
def index
|
8
|
+
order = params[:order] || 'title'
|
9
|
+
|
10
|
+
if order == 'key'
|
11
|
+
order_clause = 'key'
|
12
|
+
elsif order == 'hl'
|
13
|
+
order_clause = 'prod desc, title'
|
14
|
+
else # by_title
|
15
|
+
order_clause = 'title'
|
16
|
+
end
|
17
|
+
|
18
|
+
# note: show 25 per page for now
|
19
|
+
|
20
|
+
@breweries = Brewery.limit(25).order( order_clause )
|
21
|
+
end
|
22
|
+
|
23
|
+
# GET /breweries/:id e.g. /breweries/1
|
24
|
+
def show
|
25
|
+
@brewery = Brewery.find( params[:id] )
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
end # class BreweriesController
|
30
|
+
|
31
|
+
end # module BeerDbAdmin
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BeerDbAdmin
|
4
|
+
|
5
|
+
class CountriesController < BeerDbAdminController
|
6
|
+
|
7
|
+
def index
|
8
|
+
@countries = Country.all
|
9
|
+
end
|
10
|
+
|
11
|
+
# GET /:key e.g /at or /us etc.
|
12
|
+
def shortcut
|
13
|
+
|
14
|
+
order = params[:order] || 'title'
|
15
|
+
|
16
|
+
if order == 'key'
|
17
|
+
@order_clause = 'key'
|
18
|
+
elsif order == 'hl'
|
19
|
+
@order_clause = 'prod desc, title'
|
20
|
+
elsif order == 'adr'
|
21
|
+
@order_clause = 'address, title'
|
22
|
+
else # by_title
|
23
|
+
@order_clause = 'title'
|
24
|
+
end
|
25
|
+
|
26
|
+
@country = Country.find_by_key!( params[:key] )
|
27
|
+
|
28
|
+
style = params[:style] || 'std'
|
29
|
+
|
30
|
+
if style == 'pocket'
|
31
|
+
render :show_pocket
|
32
|
+
else
|
33
|
+
render :show
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# GET /countries/:id e.g. /countries/1
|
38
|
+
def show
|
39
|
+
@country = Country.find( params[:id] )
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
end # class CountriesController
|
44
|
+
|
45
|
+
end # module BeerDbAdmin
|
46
|
+
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BeerDbAdmin
|
4
|
+
|
5
|
+
class DrinksController < BeerDbAdminController
|
6
|
+
|
7
|
+
include ApplicationHelper # fix: move current_user to application controller too
|
8
|
+
|
9
|
+
# GET /drinks
|
10
|
+
def index
|
11
|
+
end
|
12
|
+
|
13
|
+
# GET /drinks/new
|
14
|
+
def new
|
15
|
+
# NB: beer_id n current_user (user_id) required
|
16
|
+
|
17
|
+
@drink = Drink.new
|
18
|
+
@beer = Beer.find( params[:beer_id] )
|
19
|
+
@user = current_user() # assert user_id == current_user_id
|
20
|
+
|
21
|
+
@drink.beer_id = @beer.id
|
22
|
+
@drink.user_id = @user.id
|
23
|
+
end
|
24
|
+
|
25
|
+
# POST /drinks
|
26
|
+
def create
|
27
|
+
@drink = Drink.new(params[:drink])
|
28
|
+
|
29
|
+
if @drink.save
|
30
|
+
flash[:notice] = 'Drink erfolgreich gespeichert.'
|
31
|
+
redirect_to frontpage_path()
|
32
|
+
else
|
33
|
+
@beer = @drink.beer
|
34
|
+
@user = current_user() # assert @drink.user_id == current_user_id
|
35
|
+
render action: 'new'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
# GET /drinks/1/edit
|
41
|
+
def edit
|
42
|
+
@drink = Drink.find( params[:id] )
|
43
|
+
@beer = @drink.beer
|
44
|
+
@user = current_user() # assert @drink.user_id == current_user_id
|
45
|
+
end
|
46
|
+
|
47
|
+
# PUT /drinks/1
|
48
|
+
def update
|
49
|
+
@drink = Drink.find( params[:id] )
|
50
|
+
|
51
|
+
if @drink.update_attributes( params[:drink] )
|
52
|
+
flash[:notice] = 'Drink erfolgreich gespeichert.'
|
53
|
+
redirect_to frontpage_path()
|
54
|
+
else
|
55
|
+
@beer = @drink.beer
|
56
|
+
@user = current_user() # assert @drink.user_id == current_user_id
|
57
|
+
render action: 'edit'
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
end # class DrinksController
|
62
|
+
|
63
|
+
end # module BeerDbAdmin
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BeerDbAdmin
|
4
|
+
|
5
|
+
class FrontpageController < BeerDbAdminController
|
6
|
+
|
7
|
+
include ApplicationHelper
|
8
|
+
|
9
|
+
def index
|
10
|
+
redirect_to user_path( current_user_id() )
|
11
|
+
end
|
12
|
+
|
13
|
+
end # class FrontpageController
|
14
|
+
|
15
|
+
end # module BeerDbAdmin
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module BeerDbAdmin
|
4
|
+
|
5
|
+
class SessionsController < BeerDbAdminController
|
6
|
+
|
7
|
+
# GET /session/new
|
8
|
+
def new
|
9
|
+
@user = User.new
|
10
|
+
end
|
11
|
+
|
12
|
+
# POST /session
|
13
|
+
def create
|
14
|
+
|
15
|
+
## remove whitespace and (.-+_) and downcase
|
16
|
+
email = params[:user][:email]
|
17
|
+
if email.blank?
|
18
|
+
key = 'xxx'
|
19
|
+
else
|
20
|
+
key = email.gsub( /[\s\.\-+_]/, '' ).downcase
|
21
|
+
end
|
22
|
+
|
23
|
+
@user = User.find_by_key( key )
|
24
|
+
|
25
|
+
if @user.present? && @user.active?
|
26
|
+
|
27
|
+
session[:user_id] = @user.id
|
28
|
+
flash[:notice] = 'Anmeldung erfolgreich.'
|
29
|
+
|
30
|
+
redirect_to frontpage_path()
|
31
|
+
else
|
32
|
+
if @user.present?
|
33
|
+
if @user.active == false
|
34
|
+
flash.now[:error] = 'Konto gesperrt. Tut leid.'
|
35
|
+
end
|
36
|
+
else
|
37
|
+
flash.now[:error] = 'Unbekannte Email. Tut leid.'
|
38
|
+
end
|
39
|
+
@user = User.new( params[:user] )
|
40
|
+
render :action => 'new'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
# DELETE /session
|
46
|
+
def destroy
|
47
|
+
session[:user_id] = nil
|
48
|
+
flash[:notice] = 'Tschüss.'
|
49
|
+
redirect_to signin_path()
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end # module BeerDbAdmin
|