overlook 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +4 -0
  3. data/Rakefile +1 -0
  4. data/app/assets/images/.DS_Store +0 -0
  5. data/app/assets/images/admin/glyphicons-halflings-white.png +0 -0
  6. data/app/assets/images/admin/glyphicons-halflings.png +0 -0
  7. data/app/assets/javascripts/.DS_Store +0 -0
  8. data/app/assets/javascripts/admin/bootstrap.js +7 -0
  9. data/app/assets/javascripts/admin.js.coffee +3 -0
  10. data/app/assets/stylesheets/.DS_Store +0 -0
  11. data/app/assets/stylesheets/admin/.DS_Store +0 -0
  12. data/app/assets/stylesheets/admin/bootstrap.css +706 -0
  13. data/app/assets/stylesheets/admin.css +12 -0
  14. data/app/controllers/.DS_Store +0 -0
  15. data/app/controllers/admin/application_controller.rb +3 -0
  16. data/app/controllers/admin/articles_controller.rb +82 -0
  17. data/app/controllers/admin/users_controller.rb +76 -0
  18. data/app/helpers/.DS_Store +0 -0
  19. data/app/helpers/admin/application_helper.rb +26 -0
  20. data/app/views/.DS_Store +0 -0
  21. data/app/views/kaminari/admin/_gap.html.erb +8 -0
  22. data/app/views/kaminari/admin/_next_page.html.erb +11 -0
  23. data/app/views/kaminari/admin/_page.html.erb +12 -0
  24. data/app/views/kaminari/admin/_paginator.html.erb +23 -0
  25. data/app/views/kaminari/admin/_prev_page.html.erb +11 -0
  26. data/app/views/layouts/.DS_Store +0 -0
  27. data/app/views/layouts/admin.html.erb +30 -0
  28. data/lib/generators/overlook/.DS_Store +0 -0
  29. data/lib/generators/overlook/admin/admin_generator.rb +60 -0
  30. data/lib/generators/overlook/admin/templates/breadcrumb.html.erb +14 -0
  31. data/lib/generators/overlook/admin/templates/controller.rb +82 -0
  32. data/lib/generators/overlook/admin/templates/destroy.js.erb +1 -0
  33. data/lib/generators/overlook/admin/templates/edit.html.erb +12 -0
  34. data/lib/generators/overlook/admin/templates/form.html.erb +21 -0
  35. data/lib/generators/overlook/admin/templates/index.html.erb +44 -0
  36. data/lib/generators/overlook/admin/templates/new.html.erb +12 -0
  37. data/lib/generators/overlook/admin/templates/partial.html.erb +30 -0
  38. data/lib/generators/overlook/admin/templates/show.html.erb +17 -0
  39. data/lib/generators/overlook/admin/templates/sidebar.html.erb +30 -0
  40. data/lib/generators/overlook/install/USAGE +5 -0
  41. data/lib/generators/overlook/install/install_generator.rb +15 -0
  42. data/lib/generators/overlook/install/templates/assets/images/.DS_Store +0 -0
  43. data/lib/generators/overlook/install/templates/assets/images/admin/glyphicons-halflings-white.png +0 -0
  44. data/lib/generators/overlook/install/templates/assets/images/admin/glyphicons-halflings.png +0 -0
  45. data/lib/generators/overlook/install/templates/assets/javascripts/.DS_Store +0 -0
  46. data/lib/generators/overlook/install/templates/assets/javascripts/admin/bootstrap.js +7 -0
  47. data/lib/generators/overlook/install/templates/assets/javascripts/admin.js.coffee +3 -0
  48. data/lib/generators/overlook/install/templates/assets/stylesheets/.DS_Store +0 -0
  49. data/lib/generators/overlook/install/templates/assets/stylesheets/admin/.DS_Store +0 -0
  50. data/lib/generators/overlook/install/templates/assets/stylesheets/admin/bootstrap.css +706 -0
  51. data/lib/generators/overlook/install/templates/assets/stylesheets/admin.css +12 -0
  52. data/lib/generators/overlook/install/templates/controllers/.DS_Store +0 -0
  53. data/lib/generators/overlook/install/templates/controllers/admin/application_controller.rb +3 -0
  54. data/lib/generators/overlook/install/templates/controllers/admin/articles_controller.rb +82 -0
  55. data/lib/generators/overlook/install/templates/controllers/admin/users_controller.rb +76 -0
  56. data/lib/generators/overlook/install/templates/helpers/.DS_Store +0 -0
  57. data/lib/generators/overlook/install/templates/helpers/admin/application_helper.rb +26 -0
  58. data/lib/generators/overlook/install/templates/views/.DS_Store +0 -0
  59. data/lib/generators/overlook/install/templates/views/kaminari/admin/_gap.html.erb +8 -0
  60. data/lib/generators/overlook/install/templates/views/kaminari/admin/_next_page.html.erb +11 -0
  61. data/lib/generators/overlook/install/templates/views/kaminari/admin/_page.html.erb +12 -0
  62. data/lib/generators/overlook/install/templates/views/kaminari/admin/_paginator.html.erb +23 -0
  63. data/lib/generators/overlook/install/templates/views/kaminari/admin/_prev_page.html.erb +11 -0
  64. data/lib/generators/overlook/install/templates/views/layouts/.DS_Store +0 -0
  65. data/lib/generators/overlook/install/templates/views/layouts/admin.html.erb +30 -0
  66. data/lib/overlook/version.rb +3 -0
  67. data/lib/overlook.rb +5 -0
  68. data/overlook.gemspec +25 -0
  69. metadata +157 -0
@@ -0,0 +1,12 @@
1
+ /*
2
+ *= require admin/bootstrap
3
+ *= require_self
4
+ */
5
+
6
+ body { padding-top: 60px; }
7
+ div.sidebar { padding: 8px 0; }
8
+ td.options div.btn-group { width: 110px; }
9
+ table.table td { vertical-align: middle; }
10
+ td.center { text-align: center; }
11
+ td.right { text-align: right; }
12
+
@@ -0,0 +1,3 @@
1
+ class Admin::ApplicationController < ApplicationController
2
+ layout 'admin'
3
+ end
@@ -0,0 +1,82 @@
1
+ require 'csv'
2
+
3
+ class Admin::ArticlesController < Admin::ApplicationController
4
+ # filters
5
+ before_filter :load_article, only: [:show, :edit, :update, :destroy]
6
+
7
+ # index
8
+ def index
9
+ @articles = Article.search(params[:q]).sorty(params)
10
+
11
+ respond_to do |format|
12
+ format.html do
13
+ @articles = @articles.page(params[:page])
14
+ end
15
+
16
+ format.csv do
17
+ data = CSV.generate do |csv|
18
+ columns = Article.columns.map(&:name)
19
+ csv << columns.map(&:titleize)
20
+
21
+ @articles.map do |article|
22
+ csv << columns.map{|c| article.send(c)}
23
+ end
24
+ end
25
+
26
+ filename = "articles-#{Time.now.strftime('%d-%m-%Y')}.csv"
27
+ send_data(data, filename: filename, type: 'text/csv')
28
+ end
29
+ end
30
+ end
31
+
32
+ # show
33
+ def show
34
+
35
+ end
36
+
37
+ # new
38
+ def new
39
+ @article = Article.new
40
+ end
41
+
42
+ # create
43
+ def create
44
+ @article = Article.new(params[:article])
45
+
46
+ if @article.save
47
+ redirect_to admin_articles_url, notice: "Article has been created"
48
+ else
49
+ render :new
50
+ end
51
+ end
52
+
53
+ # edit
54
+ def edit
55
+
56
+ end
57
+
58
+ # update
59
+ def update
60
+ if @article.update_attributes(params[:article])
61
+ redirect_to admin_articles_url, notice: "Article has been updated"
62
+ else
63
+ render :edit
64
+ end
65
+ end
66
+
67
+ # destroy
68
+ def destroy
69
+ @article.destroy
70
+
71
+ respond_to do |format|
72
+ format.html { redirect_to :back, notice: "Article has been deleted" }
73
+ format.js
74
+ end
75
+ end
76
+
77
+ protected
78
+
79
+ def load_article
80
+ @article = Article.find(params[:id])
81
+ end
82
+ end
@@ -0,0 +1,76 @@
1
+ require 'csv'
2
+
3
+ class Admin::UsersController < Admin::ApplicationController
4
+ # filters
5
+ before_filter :load_user, only: [:edit, :update, :destroy]
6
+
7
+ # index
8
+ def index
9
+ @users = User.search(params[:q]).sorty(params)
10
+
11
+ respond_to do |format|
12
+ format.html do
13
+ @users = @users.page(params[:page])
14
+ end
15
+ format.csv do
16
+ data = CSV.generate do |csv|
17
+ columns = User.columns.map(&:name)
18
+ csv << columns.map(&:titleize)
19
+
20
+ @users.map do |user|
21
+ csv << columns.map{|c| user.send(c)}
22
+ end
23
+ end
24
+
25
+ filename = "users-#{Time.now.strftime('%d-%m-%Y')}.csv"
26
+ send_data(data, filename: filename, type: 'text/csv')
27
+ end
28
+ end
29
+ end
30
+
31
+ # new
32
+ def new
33
+ @user = User.new
34
+ end
35
+
36
+ # create
37
+ def create
38
+ @user = User.new(params[:user])
39
+
40
+ if @user.save
41
+ redirect_to admin_users_url, notice: "User has been created"
42
+ else
43
+ render :new
44
+ end
45
+ end
46
+
47
+ # edit
48
+ def edit
49
+
50
+ end
51
+
52
+ # update
53
+ def update
54
+ if @user.update_attributes(params[:user])
55
+ redirect_to admin_users_url, notice: "User has been updated"
56
+ else
57
+ render :edit
58
+ end
59
+ end
60
+
61
+ # destroy
62
+ def destroy
63
+ @user.destroy
64
+
65
+ respond_to do |format|
66
+ format.html { redirect_to :back, notice: "User has been deleted" }
67
+ format.js
68
+ end
69
+ end
70
+
71
+ protected
72
+
73
+ def load_user
74
+ @user = User.find(params[:id])
75
+ end
76
+ end
@@ -0,0 +1,26 @@
1
+ module Admin::ApplicationHelper
2
+ def flash_messages
3
+ classes = { notice: 'success', warning: 'warning', error: 'error' }
4
+
5
+ output = flash.map do |name, message|
6
+ if message.present?
7
+ class_name = ['alert', "alert-#{classes[name]}"].join(' ')
8
+ message << '<a class="close" data-dismiss="alert">&times;</a>'
9
+
10
+ content_tag(:div, class: 'span12') do
11
+ content_tag(:div, raw(message), class: class_name)
12
+ end
13
+ end
14
+ end
15
+
16
+ raw(output.join)
17
+ end
18
+
19
+ def nav(name)
20
+ class_name = params[:controller].eql?("admin/#{name}") ? 'active' : nil
21
+
22
+ content_tag(:li, class: class_name) do
23
+ link_to(name.to_s.titleize, "/admin/#{name}")
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,8 @@
1
+ <%# Non-link tag that stands for skipped pages...
2
+ - available local variables
3
+ current_page: a page object for the currently displayed page
4
+ num_pages: total number of pages
5
+ per_page: number of items to fetch per page
6
+ remote: data-remote
7
+ -%>
8
+ <li class="disabled"><a href="#"><%= raw(t 'views.pagination.truncate') %></a></li>
@@ -0,0 +1,11 @@
1
+ <%# Link to the "Next" page
2
+ - available local variables
3
+ url: url to the next page
4
+ current_page: a page object for the currently displayed page
5
+ num_pages: total number of pages
6
+ per_page: number of items to fetch per page
7
+ remote: data-remote
8
+ -%>
9
+ <li class="<%= 'disabled' if current_page.last? %>">
10
+ <%= link_to raw("&raquo;"), url, :rel => 'next', :remote => remote %>
11
+ </li>
@@ -0,0 +1,12 @@
1
+ <%# Link showing page number
2
+ - available local variables
3
+ page: a page object for "this" page
4
+ url: url to this page
5
+ current_page: a page object for the currently displayed page
6
+ num_pages: total number of pages
7
+ per_page: number of items to fetch per page
8
+ remote: data-remote
9
+ -%>
10
+ <li class="<%= 'active' if page.current? %>">
11
+ <%= link_to page, url, opts = { :remote => remote, :rel => page.next? ? 'next' : page.prev? ? 'prev' : nil} %>
12
+ </li>
@@ -0,0 +1,23 @@
1
+ <%# The container tag
2
+ - available local variables
3
+ current_page: a page object for the currently displayed page
4
+ num_pages: total number of pages
5
+ per_page: number of items to fetch per page
6
+ remote: data-remote
7
+ paginator: the paginator that renders the pagination tags inside
8
+ -%>
9
+ <%= paginator.render do -%>
10
+ <div class="pagination pagination-centered">
11
+ <ul>
12
+ <%= prev_page_tag unless current_page.first? %>
13
+ <% each_page do |page| -%>
14
+ <% if page.left_outer? || page.right_outer? || page.inside_window? -%>
15
+ <%= page_tag page %>
16
+ <% elsif !page.was_truncated? -%>
17
+ <%= gap_tag %>
18
+ <% end -%>
19
+ <% end -%>
20
+ <%= next_page_tag unless current_page.last? %>
21
+ </ul>
22
+ </div>
23
+ <% end -%>
@@ -0,0 +1,11 @@
1
+ <%# Link to the "Previous" page
2
+ - available local variables
3
+ url: url to the previous page
4
+ current_page: a page object for the currently displayed page
5
+ num_pages: total number of pages
6
+ per_page: number of items to fetch per page
7
+ remote: data-remote
8
+ -%>
9
+ <li class="<%= 'disabled' if current_page.first? %>">
10
+ <%= link_to raw("&laquo;"), url, :rel => 'prev', :remote => remote %>
11
+ </li>
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title><%= @page_title || 'Admin' %></title>
6
+ <%= stylesheet_link_tag "admin", media: "all" %>
7
+ <%= csrf_meta_tags %>
8
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
9
+ </head>
10
+ <body>
11
+ <div class="navbar navbar-fixed-top">
12
+ <div class="navbar-inner">
13
+ <div class="container">
14
+ <a class="brand" href="/admin">Admin</a>
15
+ <ul class="nav">
16
+ <%= nav(:users) %>
17
+ <%= nav(:articles) %>
18
+ </ul>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ <div class="container">
23
+ <div class="row">
24
+ <%= flash_messages %>
25
+ <%= yield %>
26
+ </div>
27
+ </div>
28
+ <%= javascript_include_tag "admin" %>
29
+ </body>
30
+ </html>
@@ -0,0 +1,3 @@
1
+ module Overlook
2
+ VERSION = "0.0.1"
3
+ end
data/lib/overlook.rb ADDED
@@ -0,0 +1,5 @@
1
+ require "overlook/version"
2
+
3
+ module Overlook
4
+
5
+ end
data/overlook.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "overlook/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "overlook"
7
+ s.version = Overlook::VERSION
8
+ s.authors = ["Jim Neath"]
9
+ s.email = ["jimneath@googlemail.com"]
10
+ s.homepage = ""
11
+ s.summary = "Generators"
12
+ s.description = "Generators"
13
+
14
+ s.rubyforge_project = "overlook"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_dependency 'simple_form'
22
+ s.add_dependency 'kaminari'
23
+ s.add_dependency 'searchy'
24
+ s.add_dependency 'sorty'
25
+ end
metadata ADDED
@@ -0,0 +1,157 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: overlook
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jim Neath
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-03-25 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: simple_form
16
+ requirement: &70325086162140 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70325086162140
25
+ - !ruby/object:Gem::Dependency
26
+ name: kaminari
27
+ requirement: &70325086161060 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70325086161060
36
+ - !ruby/object:Gem::Dependency
37
+ name: searchy
38
+ requirement: &70325086176860 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70325086176860
47
+ - !ruby/object:Gem::Dependency
48
+ name: sorty
49
+ requirement: &70325086176340 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *70325086176340
58
+ description: Generators
59
+ email:
60
+ - jimneath@googlemail.com
61
+ executables: []
62
+ extensions: []
63
+ extra_rdoc_files: []
64
+ files:
65
+ - .gitignore
66
+ - Gemfile
67
+ - Rakefile
68
+ - app/assets/images/.DS_Store
69
+ - app/assets/images/admin/glyphicons-halflings-white.png
70
+ - app/assets/images/admin/glyphicons-halflings.png
71
+ - app/assets/javascripts/.DS_Store
72
+ - app/assets/javascripts/admin.js.coffee
73
+ - app/assets/javascripts/admin/bootstrap.js
74
+ - app/assets/stylesheets/.DS_Store
75
+ - app/assets/stylesheets/admin.css
76
+ - app/assets/stylesheets/admin/.DS_Store
77
+ - app/assets/stylesheets/admin/bootstrap.css
78
+ - app/controllers/.DS_Store
79
+ - app/controllers/admin/application_controller.rb
80
+ - app/controllers/admin/articles_controller.rb
81
+ - app/controllers/admin/users_controller.rb
82
+ - app/helpers/.DS_Store
83
+ - app/helpers/admin/application_helper.rb
84
+ - app/views/.DS_Store
85
+ - app/views/kaminari/admin/_gap.html.erb
86
+ - app/views/kaminari/admin/_next_page.html.erb
87
+ - app/views/kaminari/admin/_page.html.erb
88
+ - app/views/kaminari/admin/_paginator.html.erb
89
+ - app/views/kaminari/admin/_prev_page.html.erb
90
+ - app/views/layouts/.DS_Store
91
+ - app/views/layouts/admin.html.erb
92
+ - lib/generators/overlook/.DS_Store
93
+ - lib/generators/overlook/admin/admin_generator.rb
94
+ - lib/generators/overlook/admin/templates/breadcrumb.html.erb
95
+ - lib/generators/overlook/admin/templates/controller.rb
96
+ - lib/generators/overlook/admin/templates/destroy.js.erb
97
+ - lib/generators/overlook/admin/templates/edit.html.erb
98
+ - lib/generators/overlook/admin/templates/form.html.erb
99
+ - lib/generators/overlook/admin/templates/index.html.erb
100
+ - lib/generators/overlook/admin/templates/new.html.erb
101
+ - lib/generators/overlook/admin/templates/partial.html.erb
102
+ - lib/generators/overlook/admin/templates/show.html.erb
103
+ - lib/generators/overlook/admin/templates/sidebar.html.erb
104
+ - lib/generators/overlook/install/USAGE
105
+ - lib/generators/overlook/install/install_generator.rb
106
+ - lib/generators/overlook/install/templates/assets/images/.DS_Store
107
+ - lib/generators/overlook/install/templates/assets/images/admin/glyphicons-halflings-white.png
108
+ - lib/generators/overlook/install/templates/assets/images/admin/glyphicons-halflings.png
109
+ - lib/generators/overlook/install/templates/assets/javascripts/.DS_Store
110
+ - lib/generators/overlook/install/templates/assets/javascripts/admin.js.coffee
111
+ - lib/generators/overlook/install/templates/assets/javascripts/admin/bootstrap.js
112
+ - lib/generators/overlook/install/templates/assets/stylesheets/.DS_Store
113
+ - lib/generators/overlook/install/templates/assets/stylesheets/admin.css
114
+ - lib/generators/overlook/install/templates/assets/stylesheets/admin/.DS_Store
115
+ - lib/generators/overlook/install/templates/assets/stylesheets/admin/bootstrap.css
116
+ - lib/generators/overlook/install/templates/controllers/.DS_Store
117
+ - lib/generators/overlook/install/templates/controllers/admin/application_controller.rb
118
+ - lib/generators/overlook/install/templates/controllers/admin/articles_controller.rb
119
+ - lib/generators/overlook/install/templates/controllers/admin/users_controller.rb
120
+ - lib/generators/overlook/install/templates/helpers/.DS_Store
121
+ - lib/generators/overlook/install/templates/helpers/admin/application_helper.rb
122
+ - lib/generators/overlook/install/templates/views/.DS_Store
123
+ - lib/generators/overlook/install/templates/views/kaminari/admin/_gap.html.erb
124
+ - lib/generators/overlook/install/templates/views/kaminari/admin/_next_page.html.erb
125
+ - lib/generators/overlook/install/templates/views/kaminari/admin/_page.html.erb
126
+ - lib/generators/overlook/install/templates/views/kaminari/admin/_paginator.html.erb
127
+ - lib/generators/overlook/install/templates/views/kaminari/admin/_prev_page.html.erb
128
+ - lib/generators/overlook/install/templates/views/layouts/.DS_Store
129
+ - lib/generators/overlook/install/templates/views/layouts/admin.html.erb
130
+ - lib/overlook.rb
131
+ - lib/overlook/version.rb
132
+ - overlook.gemspec
133
+ homepage: ''
134
+ licenses: []
135
+ post_install_message:
136
+ rdoc_options: []
137
+ require_paths:
138
+ - lib
139
+ required_ruby_version: !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ! '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ required_rubygems_version: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ requirements: []
152
+ rubyforge_project: overlook
153
+ rubygems_version: 1.8.16
154
+ signing_key:
155
+ specification_version: 3
156
+ summary: Generators
157
+ test_files: []