overlook 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.
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: []