beerdb-admin 0.0.1
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.
- 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
|