beerdb-admin 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/History.md +3 -0
  2. data/Manifest.txt +55 -0
  3. data/README.md +29 -0
  4. data/Rakefile +26 -0
  5. data/app/assets/javascripts/beer_db_admin/application.js +15 -0
  6. data/app/assets/stylesheets/beer_db_admin/application.css.scss +3 -0
  7. data/app/controllers/beer_db_admin/beer_db_admin_controller.rb +6 -0
  8. data/app/controllers/beer_db_admin/beers_controller.rb +19 -0
  9. data/app/controllers/beer_db_admin/bookmarks_controller.rb +47 -0
  10. data/app/controllers/beer_db_admin/brands_controller.rb +21 -0
  11. data/app/controllers/beer_db_admin/breweries_controller.rb +31 -0
  12. data/app/controllers/beer_db_admin/countries_controller.rb +46 -0
  13. data/app/controllers/beer_db_admin/drinks_controller.rb +63 -0
  14. data/app/controllers/beer_db_admin/frontpage_controller.rb +15 -0
  15. data/app/controllers/beer_db_admin/pages_controller.rb +14 -0
  16. data/app/controllers/beer_db_admin/regions_controller.rb +13 -0
  17. data/app/controllers/beer_db_admin/sessions_controller.rb +53 -0
  18. data/app/controllers/beer_db_admin/tags_controller.rb +15 -0
  19. data/app/controllers/beer_db_admin/time_controller.rb +12 -0
  20. data/app/controllers/beer_db_admin/users_controller.rb +66 -0
  21. data/app/helpers/beer_db_admin/application_helper.rb +52 -0
  22. data/app/helpers/beer_db_admin/part_helper.rb +37 -0
  23. data/app/helpers/beer_db_admin/routes_helper.rb +21 -0
  24. data/app/views/beer_db_admin/beers/index.html.erb +70 -0
  25. data/app/views/beer_db_admin/beers/show.html.erb +132 -0
  26. data/app/views/beer_db_admin/brands/index.html.erb +41 -0
  27. data/app/views/beer_db_admin/breweries/index.html.erb +61 -0
  28. data/app/views/beer_db_admin/breweries/show.html.erb +111 -0
  29. data/app/views/beer_db_admin/countries/index.html.erb +49 -0
  30. data/app/views/beer_db_admin/countries/show.html.erb +133 -0
  31. data/app/views/beer_db_admin/countries/show_pocket.html.erb +111 -0
  32. data/app/views/beer_db_admin/drinks/_form.html.erb +29 -0
  33. data/app/views/beer_db_admin/drinks/edit.html.erb +4 -0
  34. data/app/views/beer_db_admin/drinks/new.html.erb +4 -0
  35. data/app/views/beer_db_admin/pages/about.html.erb +2 -0
  36. data/app/views/beer_db_admin/pages/index.html.erb +2 -0
  37. data/app/views/beer_db_admin/regions/index.html.erb +50 -0
  38. data/app/views/beer_db_admin/sessions/new.html.erb +54 -0
  39. data/app/views/beer_db_admin/shared/_beers.html.erb +16 -0
  40. data/app/views/beer_db_admin/shared/_bookmarks.html.erb +80 -0
  41. data/app/views/beer_db_admin/shared/_breweries_for_country.html.erb +22 -0
  42. data/app/views/beer_db_admin/shared/_breweries_for_region.html.erb +24 -0
  43. data/app/views/beer_db_admin/shared/_brewery_tags.html.erb +16 -0
  44. data/app/views/beer_db_admin/shared/_tags.html.erb +13 -0
  45. data/app/views/beer_db_admin/tags/index.html.erb +24 -0
  46. data/app/views/beer_db_admin/time/index.html.erb +40 -0
  47. data/app/views/beer_db_admin/users/edit.html.erb +40 -0
  48. data/app/views/beer_db_admin/users/show.html.erb +39 -0
  49. data/app/views/layouts/beer_db_admin/_flash.html.erb +6 -0
  50. data/app/views/layouts/beer_db_admin/_header.html.erb +16 -0
  51. data/app/views/layouts/beer_db_admin/beer_db_admin.html.erb +80 -0
  52. data/config/routes.rb +46 -0
  53. data/lib/beerdb/admin/engine.rb +6 -0
  54. data/lib/beerdb/admin/version.rb +5 -0
  55. data/lib/beerdb/admin.rb +20 -0
  56. metadata +127 -0
data/History.md ADDED
@@ -0,0 +1,3 @@
1
+ ### 0.0.1 / 2014-01-24
2
+
3
+ * Everything is new. First release
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,3 @@
1
+
2
+ // add some css here
3
+
@@ -0,0 +1,6 @@
1
+ module BeerDbAdmin
2
+
3
+ class BeerDbAdminController < ActionController::Base
4
+ end
5
+
6
+ end # module BeerDbAdmin
@@ -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,14 @@
1
+ # encoding: utf-8
2
+
3
+ module BeerDbAdmin
4
+
5
+ class PagesController < BeerDbAdminController
6
+ def index
7
+ end
8
+
9
+ def about
10
+ end
11
+ end
12
+
13
+
14
+ end # module BeerDbAdmin
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+
3
+ module BeerDbAdmin
4
+
5
+ class RegionsController < BeerDbAdminController
6
+
7
+ def index
8
+ @regions = Region.all
9
+ end
10
+
11
+ end # class RegionsController
12
+
13
+ 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