flexible_admin 0.0.4 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.textile +6 -0
- data/lib/flexible_admin/version.rb +1 -1
- data/lib/generators/flexible_admin/ckeditor_generator.rb +42 -0
- data/lib/generators/flexible_admin/flexible_admin_generator.rb +5 -1
- data/lib/generators/flexible_admin/templates/admin_layout.html.erb +4 -0
- data/lib/generators/flexible_admin/templates/ckeditor/attachment_file.rb +16 -0
- data/lib/generators/flexible_admin/templates/ckeditor/picture.rb +14 -0
- data/lib/generators/flexible_admin/templates/forms/cktext_area_field.html.erb +7 -1
- metadata +50 -14
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
|
@@ -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
|
-
|
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
|
@@ -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
|
+
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-
|
12
|
+
date: 2012-01-19 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
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: *
|
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: &
|
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: *
|
68
|
+
version_requirements: *70258698514560
|
36
69
|
- !ruby/object:Gem::Dependency
|
37
70
|
name: rspec
|
38
|
-
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: *
|
79
|
+
version_requirements: *70258698512440
|
47
80
|
- !ruby/object:Gem::Dependency
|
48
81
|
name: generator_spec
|
49
|
-
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: *
|
90
|
+
version_requirements: *70258698509320
|
58
91
|
- !ruby/object:Gem::Dependency
|
59
92
|
name: pry
|
60
|
-
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: *
|
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:
|
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:
|
183
|
+
hash: 1094665881318821711
|
148
184
|
requirements: []
|
149
185
|
rubyforge_project:
|
150
186
|
rubygems_version: 1.8.11
|