flexible_admin 0.0.4 → 0.1.0

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/README.textile CHANGED
@@ -51,6 +51,12 @@ h2. Adding models
51
51
 
52
52
  run <code>rails generate flexible_admin Post</code> to generate a admin/posts controller, /admin/posts route, and add Posts to the admin navigation
53
53
 
54
+ h2. Adding WYSIWYG editor
55
+
56
+ run <code>rails generate flexible_admin:ckeditor</code> to install and generate ckeditor. That will turn all fields named Body and Description into a text editor. It also supports pictures and file attachments in the body and configures ckeditor to use amazon_s3 to store the pic/uploads.
57
+
58
+ The pics/attachment uploads for ckeditor depend on paperclip for file uploads. If you use another file attachment handler, install ckeditor yourself from the gem: https://github.com/galetahub/ckeditor
59
+
54
60
  h2. Editing views and controllers
55
61
 
56
62
  Edit views directly in the app/views/admin, app/views/layouts/admin and app/views/controllers/admin
@@ -1,3 +1,3 @@
1
1
  module FlexibleAdmin
2
- VERSION = "0.0.4"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,42 @@
1
+ require 'rails/generators'
2
+
3
+ # http://guides.rubyonrails.org/generators.html
4
+ # http://rdoc.info/github/wycats/thor/master/Thor/Actions.html
5
+ # keep generator idempotent, thanks
6
+
7
+ module FlexibleAdmin
8
+ class CkeditorGenerator < Rails::Generators::Base
9
+ source_root File.expand_path("../templates", __FILE__)
10
+
11
+ desc "flexible_admin ckeditor generator"
12
+
13
+ def install_gem
14
+ append_file "Gemfile", "\n", :force => true
15
+ gem "ckeditor", "~> 3.6.3"
16
+ gem "paperclip"
17
+ gem 'aws-s3', :require => 'aws/s3'
18
+
19
+ inside Rails.root do
20
+ run "bundle install"
21
+ end
22
+ end
23
+
24
+ def run_generator
25
+ generate "ckeditor:install"
26
+ generate "ckeditor:models --orm=active_record --backend=paperclip"
27
+ end
28
+
29
+ def set_paperclip_settings_for_s3
30
+ remove_file 'app/models/ckeditor/picture.rb'
31
+ remove_file 'app/models/ckeditor/attachment_file.rb'
32
+ template "ckeditor/picture.rb", "app/models/ckeditor/picture.rb"
33
+ template "ckeditor/attachment_file.rb", "app/models/ckeditor/attachment_file.rb"
34
+ end
35
+
36
+ def instructions
37
+ say "you now need to run 'rake db:migrate' to create the ckeditor tables", :blue
38
+ say "the pictures/attachments for ckeditor assume an amazon_s3 config file at config/amazon_s3.yml. Add that file OR change the settings at app/models/ckeditor/picture.rb & app/models/ckeditor/attachment_file.rb", :blue
39
+ end
40
+
41
+ end
42
+ end
@@ -158,7 +158,11 @@ module FlexibleAdmin
158
158
  elsif column.type == :boolean
159
159
  "<%= render 'admin/shared/checkbox_field', :f => f, :what => :#{column.name} %>"
160
160
  elsif column.type == :text
161
- "<%= render 'admin/shared/text_area_field', :f => f, :what => :#{column.name} %>"
161
+ if column.name =~ /(body|description)/
162
+ "<%= render 'admin/shared/cktext_area_field', :f => f, :what => :#{column.name} %>"
163
+ else
164
+ "<%= render 'admin/shared/text_area_field', :f => f, :what => :#{column.name} %>"
165
+ end
162
166
  else
163
167
  "<%= render 'admin/shared/text_field', :f => f, :what => :#{column.name} %>"
164
168
  end
@@ -8,6 +8,10 @@
8
8
  <title>Flexible Admin</title>
9
9
  <%%= stylesheet_link_tag 'admin/application' %>
10
10
  <%%= javascript_include_tag 'admin/application' %>
11
+
12
+ <%%= yield :stylesheets -%>
13
+ <%%= yield :javascripts -%>
14
+
11
15
  <%%= csrf_meta_tag %>
12
16
  </head>
13
17
 
@@ -0,0 +1,16 @@
1
+ class Ckeditor::AttachmentFile < Ckeditor::Asset
2
+ has_attached_file :data,
3
+ :storage => :s3,
4
+ :s3_credentials => "#{Rails.root}/config/amazon_s3.yml",
5
+ :path => ":class/:id/:basename.:extension"
6
+
7
+ validates_attachment_size :data, :less_than => 100.megabytes
8
+ validates_attachment_presence :data
9
+
10
+ def url_thumb
11
+ @url_thumb ||= begin
12
+ extname = File.extname(filename).gsub(/^\./, '')
13
+ "/javascripts/ckeditor/filebrowser/images/thumbs/#{extname}.gif"
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ class Ckeditor::Picture < Ckeditor::Asset
2
+ has_attached_file :data,
3
+ :storage => :s3,
4
+ :s3_credentials => "#{Rails.root}/config/amazon_s3.yml",
5
+ :path => ":class/:id/:basename.:extension",
6
+ :styles => { :content => '800>', :thumb => '118x100#' }
7
+
8
+ validates_attachment_size :data, :less_than => 2.megabytes
9
+ validates_attachment_presence :data
10
+
11
+ def url_content
12
+ url(:content)
13
+ end
14
+ end
@@ -6,4 +6,10 @@
6
6
  <%%= f.cktext_area what, :toolbar => 'Easy', :width => 800, :height => 400 %>
7
7
  <%%= content_tag(:span, help, :class => 'help-block') if help_text_present?(local_variables) %>
8
8
  </div>
9
- </div><!-- /clearfix -->
9
+ </div><!-- /clearfix -->
10
+
11
+
12
+ <%% content_for :javascripts do %>
13
+ <%%= javascript_include_tag "/javascripts/ckeditor/ckeditor.js" %>
14
+ <%%= stylesheet_link_tag "/javascripts/ckeditor/contents.css" %>
15
+ <%% end %>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flexible_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-16 00:00:00.000000000Z
12
+ date: 2012-01-19 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70250395871320 !ruby/object:Gem::Requirement
16
+ requirement: &70258698571740 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,43 @@ dependencies:
21
21
  version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70250395871320
24
+ version_requirements: *70258698571740
25
+ - !ruby/object:Gem::Dependency
26
+ name: devise
27
+ requirement: &70258698567380 !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: *70258698567380
36
+ - !ruby/object:Gem::Dependency
37
+ name: inherited_resources
38
+ requirement: &70258698564980 !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: *70258698564980
47
+ - !ruby/object:Gem::Dependency
48
+ name: ckeditor
49
+ requirement: &70258698534720 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 3.6.3
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *70258698534720
25
58
  - !ruby/object:Gem::Dependency
26
59
  name: sqlite3
27
- requirement: &70250395870860 !ruby/object:Gem::Requirement
60
+ requirement: &70258698514560 !ruby/object:Gem::Requirement
28
61
  none: false
29
62
  requirements:
30
63
  - - ! '>='
@@ -32,10 +65,10 @@ dependencies:
32
65
  version: '0'
33
66
  type: :development
34
67
  prerelease: false
35
- version_requirements: *70250395870860
68
+ version_requirements: *70258698514560
36
69
  - !ruby/object:Gem::Dependency
37
70
  name: rspec
38
- requirement: &70250395870400 !ruby/object:Gem::Requirement
71
+ requirement: &70258698512440 !ruby/object:Gem::Requirement
39
72
  none: false
40
73
  requirements:
41
74
  - - ! '>='
@@ -43,10 +76,10 @@ dependencies:
43
76
  version: '0'
44
77
  type: :development
45
78
  prerelease: false
46
- version_requirements: *70250395870400
79
+ version_requirements: *70258698512440
47
80
  - !ruby/object:Gem::Dependency
48
81
  name: generator_spec
49
- requirement: &70250395869980 !ruby/object:Gem::Requirement
82
+ requirement: &70258698509320 !ruby/object:Gem::Requirement
50
83
  none: false
51
84
  requirements:
52
85
  - - ! '>='
@@ -54,10 +87,10 @@ dependencies:
54
87
  version: '0'
55
88
  type: :development
56
89
  prerelease: false
57
- version_requirements: *70250395869980
90
+ version_requirements: *70258698509320
58
91
  - !ruby/object:Gem::Dependency
59
92
  name: pry
60
- requirement: &70250395869540 !ruby/object:Gem::Requirement
93
+ requirement: &70258698505880 !ruby/object:Gem::Requirement
61
94
  none: false
62
95
  requirements:
63
96
  - - ! '>='
@@ -65,7 +98,7 @@ dependencies:
65
98
  version: '0'
66
99
  type: :development
67
100
  prerelease: false
68
- version_requirements: *70250395869540
101
+ version_requirements: *70258698505880
69
102
  description: Rails 3.1 admin generator
70
103
  email:
71
104
  - josh@joshcrews.com
@@ -75,6 +108,7 @@ extra_rdoc_files: []
75
108
  files:
76
109
  - lib/flexible_admin/version.rb
77
110
  - lib/flexible_admin.rb
111
+ - lib/generators/flexible_admin/ckeditor_generator.rb
78
112
  - lib/generators/flexible_admin/flexible_admin_generator.rb
79
113
  - lib/generators/flexible_admin/install_generator.rb
80
114
  - lib/generators/flexible_admin/templates/admin_controller.rb
@@ -83,6 +117,8 @@ files:
83
117
  - lib/generators/flexible_admin/templates/admin_layout.html.erb
84
118
  - lib/generators/flexible_admin/templates/admin_resources_controller.rb
85
119
  - lib/generators/flexible_admin/templates/admin_user_sessions_controller.rb
120
+ - lib/generators/flexible_admin/templates/ckeditor/attachment_file.rb
121
+ - lib/generators/flexible_admin/templates/ckeditor/picture.rb
86
122
  - lib/generators/flexible_admin/templates/flash.html.erb
87
123
  - lib/generators/flexible_admin/templates/forms/checkbox_field.html.erb
88
124
  - lib/generators/flexible_admin/templates/forms/cktext_area_field.html.erb
@@ -135,7 +171,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
135
171
  version: '0'
136
172
  segments:
137
173
  - 0
138
- hash: 4582513282580412729
174
+ hash: 1094665881318821711
139
175
  required_rubygems_version: !ruby/object:Gem::Requirement
140
176
  none: false
141
177
  requirements:
@@ -144,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
180
  version: '0'
145
181
  segments:
146
182
  - 0
147
- hash: 4582513282580412729
183
+ hash: 1094665881318821711
148
184
  requirements: []
149
185
  rubyforge_project:
150
186
  rubygems_version: 1.8.11