ckpages 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +37 -0
- data/app/assets/javascripts/ckpages/application.coffee +9 -0
- data/app/assets/javascripts/ckpages/ckeditor_basepath.js +1 -0
- data/app/assets/javascripts/ckpages/ckeditor_init.js.erb +1 -0
- data/app/assets/javascripts/ckpages/ckeditor_replace.js.erb +16 -0
- data/app/assets/javascripts/ckpages/pages.js.coffee +39 -0
- data/app/assets/javascripts/ckpages/plugin_uploads.js.coffee +5 -0
- data/app/assets/stylesheets/ckpages/application.scss +34 -0
- data/app/controllers/ckpages/application_controller.rb +4 -0
- data/app/controllers/ckpages/ascendant404_controller.rb +13 -0
- data/app/controllers/ckpages/ascendant_controller.rb +19 -0
- data/app/controllers/ckpages/pages_controller.rb +66 -0
- data/app/controllers/ckpages/parts_controller.rb +63 -0
- data/app/controllers/ckpages/plugin_uploads_controller.rb +24 -0
- data/app/controllers/ckpages/uploads_controller.rb +41 -0
- data/app/helpers/ckpages/application_helper.rb +27 -0
- data/app/models/ckpages/page.rb +17 -0
- data/app/models/ckpages/part.rb +4 -0
- data/app/models/ckpages/upload.rb +5 -0
- data/app/uploaders/ckpages/application_uploader.rb +51 -0
- data/app/views/application/_ckpart.html.erb +1 -0
- data/app/views/ckpages/pages/_form.html.erb +35 -0
- data/app/views/ckpages/pages/edit.html.erb +5 -0
- data/app/views/ckpages/pages/index.html.erb +52 -0
- data/app/views/ckpages/pages/new.html.erb +5 -0
- data/app/views/ckpages/pages/show.html.erb +96 -0
- data/app/views/ckpages/parts/_form.html.erb +14 -0
- data/app/views/ckpages/parts/edit.html.erb +6 -0
- data/app/views/ckpages/parts/index.html.erb +44 -0
- data/app/views/ckpages/parts/new.html.erb +6 -0
- data/app/views/ckpages/parts/show.html.erb +21 -0
- data/app/views/ckpages/plugin_uploads/index.html.erb +23 -0
- data/app/views/ckpages/public/show.html.erb +19 -0
- data/app/views/ckpages/public404/show.html.erb +19 -0
- data/app/views/ckpages/uploads/index.html.erb +35 -0
- data/app/views/ckpages/uploads/show.html.erb +13 -0
- data/app/views/layouts/ckpages/application.html.erb +24 -0
- data/config/initializers/carrierwave.rb +1 -0
- data/config/initializers/simple_form.rb +166 -0
- data/config/initializers/simple_form_bootstrap.rb +136 -0
- data/config/locales/ru.yml +42 -0
- data/config/locales/simple_form.en.yml +31 -0
- data/config/routes.rb +29 -0
- data/db/migrate/20150424201308_create_ckpages_pages.rb +15 -0
- data/db/migrate/20150425115824_create_ckpages_uploads.rb +9 -0
- data/db/migrate/20150425152740_add_breadcrumb_to_ckpages_pages.rb +14 -0
- data/db/migrate/20150511111424_create_ckpages_parts.rb +10 -0
- data/db/migrate/20150819230152_add_columns_to_ckpages_uploads.rb +7 -0
- data/lib/ckpages.rb +12 -0
- data/lib/ckpages/engine.rb +8 -0
- data/lib/ckpages/version.rb +3 -0
- data/lib/tasks/ckpages_tasks.rake +4 -0
- data/lib/templates/erb/scaffold/_form.html.erb +13 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/controllers/ckpages/public404_controller.rb +3 -0
- data/test/dummy/app/controllers/ckpages/public_controller.rb +2 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/ckpages/public/show.html.erb +1 -0
- data/test/dummy/app/views/layouts/application.html.erb +35 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +29 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +26 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +41 -0
- data/test/dummy/config/environments/production.rb +79 -0
- data/test/dummy/config/environments/test.rb +42 -0
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/ckpages.rb +1 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/locales/ru.yml +257 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/db/schema.rb +61 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/assets/application-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.js +0 -0
- data/test/dummy/public/assets/application-e80e8f2318043e8af94dddc2adad5a4f09739a8ebb323b3ab31cd71d45fd9113.css +16 -0
- data/test/dummy/public/assets/bootstrap/glyphicons-halflings-regular-13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407.eot +0 -0
- data/test/dummy/public/assets/bootstrap/glyphicons-halflings-regular-42f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5.svg +288 -0
- data/test/dummy/public/assets/bootstrap/glyphicons-halflings-regular-a26394f7ede100ca118eff2eda08596275a9839b959c226e15439557a5a80742.woff +0 -0
- data/test/dummy/public/assets/bootstrap/glyphicons-halflings-regular-e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456.ttf +0 -0
- data/test/dummy/public/assets/bootstrap/glyphicons-halflings-regular-fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c.woff2 +0 -0
- data/test/dummy/public/assets/ckpages/application-7743f5f42fc250d6d26375695a35e216ffb9f55bc3b9136f2ab0397aed2e91aa.css +5659 -0
- data/test/dummy/public/assets/ckpages/application-7a1ae892892ee8f88dc20d562ed46adc99be442a63038ba9be56d42c27dea964.js +121 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/fixtures/ckpages/pages.yml +21 -0
- data/test/integration/ckpages/public_test.rb +37 -0
- data/test/models/ckpages/page_test.rb +34 -0
- data/test/models/ckpages/upload_test.rb +9 -0
- data/test/test_helper.rb +20 -0
- metadata +334 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
module Ckpages
|
2
|
+
class Page < ActiveRecord::Base
|
3
|
+
before_validation :normalize
|
4
|
+
validates :path, uniqueness: {case_sensitive: false}
|
5
|
+
validates :redirect_url, format: { with: /\A\/|http:\/\/|https:\/\// }, allow_nil: true, allow_blank: true
|
6
|
+
|
7
|
+
def normalize
|
8
|
+
self.path = self.path.gsub(/\A\/+/, '')
|
9
|
+
self.path = self.path.gsub(/\/+\z/, '')
|
10
|
+
self.path = self.path.gsub(/\A\s+/, '')
|
11
|
+
self.path = self.path.gsub(/\s+\z/, '')
|
12
|
+
self.path = '/' + self.path
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Ckpages
|
2
|
+
class ApplicationUploader < ::CarrierWave::Uploader::Base
|
3
|
+
|
4
|
+
# Include RMagick or MiniMagick support:
|
5
|
+
# include CarrierWave::RMagick
|
6
|
+
# include CarrierWave::MiniMagick
|
7
|
+
|
8
|
+
# Choose what kind of storage to use for this uploader:
|
9
|
+
storage :file
|
10
|
+
# storage :fog
|
11
|
+
|
12
|
+
# Override the directory where uploaded files will be stored.
|
13
|
+
# This is a sensible default for uploaders that are meant to be mounted:
|
14
|
+
def store_dir
|
15
|
+
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
16
|
+
end
|
17
|
+
|
18
|
+
# Provide a default URL as a default if there hasn't been a file uploaded:
|
19
|
+
# def default_url
|
20
|
+
# # For Rails 3.1+ asset pipeline compatibility:
|
21
|
+
# # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
|
22
|
+
#
|
23
|
+
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
|
24
|
+
# end
|
25
|
+
|
26
|
+
# Process files as they are uploaded:
|
27
|
+
# process :scale => [200, 300]
|
28
|
+
#
|
29
|
+
# def scale(width, height)
|
30
|
+
# # do something
|
31
|
+
# end
|
32
|
+
|
33
|
+
# Create different versions of your uploaded files:
|
34
|
+
# version :thumb do
|
35
|
+
# process :resize_to_fit => [50, 50]
|
36
|
+
# end
|
37
|
+
|
38
|
+
# Add a white list of extensions which are allowed to be uploaded.
|
39
|
+
# For images you might use something like this:
|
40
|
+
# def extension_white_list
|
41
|
+
# %w(jpg jpeg gif png)
|
42
|
+
# end
|
43
|
+
|
44
|
+
# Override the filename of the uploaded files:
|
45
|
+
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
46
|
+
# def filename
|
47
|
+
# "something.jpg" if original_filename
|
48
|
+
# end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<%== @part.text %>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<%= simple_form_for(@page) do |f| %>
|
2
|
+
|
3
|
+
<%= f.error_notification %>
|
4
|
+
|
5
|
+
<%= f.input :title, as: :string %>
|
6
|
+
<%= f.input :path, as: :string %>
|
7
|
+
<%= f.input :redirect_url, as: :string %>
|
8
|
+
<%= f.input :keywords, as: :string %>
|
9
|
+
<%= f.input :description, as: :string %>
|
10
|
+
<%= f.input :robots, as: :string %>
|
11
|
+
|
12
|
+
<%= f.input :title1, as: :string %>
|
13
|
+
<%= f.input :url1, as: :string %>
|
14
|
+
|
15
|
+
<%= f.input :title2, as: :string %>
|
16
|
+
<%= f.input :url2, as: :string %>
|
17
|
+
|
18
|
+
<%= f.input :title3, as: :string %>
|
19
|
+
<%= f.input :url3, as: :string %>
|
20
|
+
|
21
|
+
<%= f.input :title4, as: :string %>
|
22
|
+
<%= f.input :url4, as: :string %>
|
23
|
+
|
24
|
+
<%= f.input :title5, as: :string %>
|
25
|
+
<%= f.input :url5, as: :string %>
|
26
|
+
|
27
|
+
<%= f.input :content %>
|
28
|
+
|
29
|
+
<%= f.button :submit, class: 'btn btn-warning btn-lg' %>
|
30
|
+
<%= link_to 'Просмотр', @page.path, class: 'btn btn-primary btn-lg', data: { confirm: 'Не сохраненные данные будут утеряны. Действительно перейти?' } if @page.persisted? %>
|
31
|
+
<%= link_to 'Служебный просмотр', @page, class: 'btn btn-primary btn-lg', data: { confirm: 'Не сохраненные данные будут утеряны. Действительно перейти?' } if @page.persisted? %>
|
32
|
+
<%= link_to 'К списку страниц', pages_path, class: 'btn btn-default btn-lg', data: { confirm: 'Не сохраненные данные будут утеряны. Действительно перейти?' } %>
|
33
|
+
<%= link_to 'Удалить', @page, method: :delete, data: { confirm: 'Действительно хотите удалить страницу?' }, class: 'btn btn-danger btn-lg' %>
|
34
|
+
|
35
|
+
<% end %>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
<div class="page-header">
|
2
|
+
<h1>Список страниц</h1>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<div class="alert alert-info" role="alert"><%= notice %></div>
|
6
|
+
|
7
|
+
<%= paginate @pages %>
|
8
|
+
|
9
|
+
<div style="margin-top:20px"></div>
|
10
|
+
|
11
|
+
<div class="row">
|
12
|
+
<div class="col-md-9">
|
13
|
+
<% @pages.each do |page| %>
|
14
|
+
<div class="well">
|
15
|
+
<div>
|
16
|
+
<dl class="dl-horizontal">
|
17
|
+
<%= dt_dd(page, "id") %>
|
18
|
+
<%= dt_dd(page, "path") %>
|
19
|
+
<%= dt_dd(page, "title") %>
|
20
|
+
<%= dt_dd(page, "redirect_url") %>
|
21
|
+
<%= dt_dd(page, "content", lambda{|val| excerpt(val, '', radius: 100)}) %>
|
22
|
+
<% 1.upto(5) do |n| %>
|
23
|
+
<%= dt_dd(page, "title#{n}") %>
|
24
|
+
<%= dt_dd(page, "url#{n}") %>
|
25
|
+
<% end %>
|
26
|
+
<%= dt_dd(page, "robots") %>
|
27
|
+
<%= dt_dd(page, "keywords") %>
|
28
|
+
<%= dt_dd(page, "description") %>
|
29
|
+
<%= dt_dd(page, "created_at", lambda{|val| l(val)}) %>
|
30
|
+
<%= dt_dd(page, "updated_at", lambda{|val| l(val)}) %>
|
31
|
+
</dl>
|
32
|
+
<div class="text-center">
|
33
|
+
<%= link_to 'Просмотр', page.path, class: 'btn btn-primary' %>
|
34
|
+
<%= link_to 'Служебный просмотр', page, class: 'btn btn-primary' %>
|
35
|
+
<%= link_to 'Редактировать', edit_page_path(page), class: 'btn btn-primary' %>
|
36
|
+
<%= link_to 'Удалить', page, method: :delete, data: { confirm: 'Действительно хотите удалить страницу?' }, class: 'btn btn-danger' %>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
<% end %>
|
41
|
+
<%= paginate @pages %>
|
42
|
+
</div>
|
43
|
+
<div class="col-md-3">
|
44
|
+
<div class="well">
|
45
|
+
Тут будут фильтры
|
46
|
+
</div>
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
|
50
|
+
<br>
|
51
|
+
|
52
|
+
<%= link_to 'Новая страница', new_page_path, class: 'btn btn-primary btn-lg' %>
|
@@ -0,0 +1,96 @@
|
|
1
|
+
<div class="page-header">
|
2
|
+
<h1>Служебный просмотр</h1>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
|
6
|
+
<div class="alert alert-info" role="alert"><%= notice %></div>
|
7
|
+
|
8
|
+
<p>
|
9
|
+
<strong>Path:</strong>
|
10
|
+
<%= @page.path %>
|
11
|
+
</p>
|
12
|
+
|
13
|
+
<p>
|
14
|
+
<strong>Content:</strong>
|
15
|
+
<%= @page.content %>
|
16
|
+
</p>
|
17
|
+
|
18
|
+
<p>
|
19
|
+
<strong>Keywords:</strong>
|
20
|
+
<%= @page.keywords %>
|
21
|
+
</p>
|
22
|
+
|
23
|
+
<p>
|
24
|
+
<strong>Description:</strong>
|
25
|
+
<%= @page.description %>
|
26
|
+
</p>
|
27
|
+
|
28
|
+
<p>
|
29
|
+
<strong>Title:</strong>
|
30
|
+
<%= @page.title %>
|
31
|
+
</p>
|
32
|
+
|
33
|
+
<p>
|
34
|
+
<strong>Robots:</strong>
|
35
|
+
<%= @page.robots %>
|
36
|
+
</p>
|
37
|
+
|
38
|
+
<p>
|
39
|
+
<strong>Redirect url:</strong>
|
40
|
+
<%= @page.redirect_url %>
|
41
|
+
</p>
|
42
|
+
|
43
|
+
<p>
|
44
|
+
<strong>Title1:</strong>
|
45
|
+
<%= @page.title1 %>
|
46
|
+
</p>
|
47
|
+
|
48
|
+
<p>
|
49
|
+
<strong>Url1:</strong>
|
50
|
+
<%= @page.url1 %>
|
51
|
+
</p>
|
52
|
+
|
53
|
+
<p>
|
54
|
+
<strong>Title2:</strong>
|
55
|
+
<%= @page.title2 %>
|
56
|
+
</p>
|
57
|
+
|
58
|
+
<p>
|
59
|
+
<strong>Url2:</strong>
|
60
|
+
<%= @page.url2 %>
|
61
|
+
</p>
|
62
|
+
|
63
|
+
<p>
|
64
|
+
<strong>Title3:</strong>
|
65
|
+
<%= @page.title3 %>
|
66
|
+
</p>
|
67
|
+
|
68
|
+
<p>
|
69
|
+
<strong>Url3:</strong>
|
70
|
+
<%= @page.url3 %>
|
71
|
+
</p>
|
72
|
+
|
73
|
+
<p>
|
74
|
+
<strong>Title4:</strong>
|
75
|
+
<%= @page.title4 %>
|
76
|
+
</p>
|
77
|
+
|
78
|
+
<p>
|
79
|
+
<strong>Url4:</strong>
|
80
|
+
<%= @page.url4 %>
|
81
|
+
</p>
|
82
|
+
|
83
|
+
<p>
|
84
|
+
<strong>Title5:</strong>
|
85
|
+
<%= @page.title5 %>
|
86
|
+
</p>
|
87
|
+
|
88
|
+
<p>
|
89
|
+
<strong>Url5:</strong>
|
90
|
+
<%= @page.url5 %>
|
91
|
+
</p>
|
92
|
+
|
93
|
+
<%= link_to 'Просмотр', @page.path, class: 'btn btn-primary btn-lg' %>
|
94
|
+
<%= link_to 'Редактировать', edit_page_path(@page), class: 'btn btn-primary btn-lg' %>
|
95
|
+
<%= link_to 'К списку страниц', pages_path, class: 'btn btn-default btn-lg' %>
|
96
|
+
<%= link_to 'Удалить', @page, method: :delete, data: { confirm: 'Действительно хотите удалить страницу?' }, class: 'btn btn-danger btn-lg' %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%= simple_form_for(@part) do |f| %>
|
2
|
+
|
3
|
+
<%= f.error_notification %>
|
4
|
+
|
5
|
+
<%= f.input :title %>
|
6
|
+
<%= f.input :text, input_html: { rows: 10 } %>
|
7
|
+
|
8
|
+
<%= f.button :submit, class: 'btn btn-warning btn-lg' %>
|
9
|
+
<%= link_to 'Служебный просмотр', @part, class: 'btn btn-primary btn-lg', data: { confirm: 'Не сохраненные данные будут утеряны. Действительно перейти?' } if @part.persisted? %>
|
10
|
+
<%= link_to 'К списку страниц', parts_path, class: 'btn btn-default btn-lg', data: { confirm: 'Не сохраненные данные будут утеряны. Действительно перейти?' } %>
|
11
|
+
<%= link_to 'Удалить', @part, method: :delete, data: { confirm: 'Действительно хотите удалить страницу?' }, class: 'btn btn-danger btn-lg' %>
|
12
|
+
|
13
|
+
<% end %>
|
14
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<div class="page-header">
|
2
|
+
<h1>Список частей</h1>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<div class="alert alert-info" role="alert"><%= notice %></div>
|
6
|
+
|
7
|
+
<%= paginate @parts %>
|
8
|
+
|
9
|
+
<div style="margin-top:20px"></div>
|
10
|
+
|
11
|
+
<div class="row">
|
12
|
+
<div class="col-md-9">
|
13
|
+
<% @parts.each do |part| %>
|
14
|
+
<div class="well">
|
15
|
+
<div>
|
16
|
+
<dl class="dl-horizontal">
|
17
|
+
<%= dt_dd(part, "id") %>
|
18
|
+
<%= dt_dd(part, "title") %>
|
19
|
+
<%= dt_dd(part, "text") %>
|
20
|
+
<%= dt_dd(part, "created_at", lambda{|val| l(val)}) %>
|
21
|
+
<%= dt_dd(part, "updated_at", lambda{|val| l(val)}) %>
|
22
|
+
</dl>
|
23
|
+
<div class="text-center">
|
24
|
+
<%= link_to 'Служебный просмотр', part, class: 'btn btn-primary' %>
|
25
|
+
<%= link_to 'Редактировать', edit_part_path(part), class: 'btn btn-primary' %>
|
26
|
+
<%= link_to 'Удалить', part, method: :delete, data: { confirm: 'Действительно хотите удалить страницу?' }, class: 'btn btn-danger' %>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
<% end %>
|
31
|
+
<%= paginate @parts %>
|
32
|
+
</div>
|
33
|
+
<div class="col-md-3">
|
34
|
+
<div class="well">
|
35
|
+
Тут будут фильтры
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
|
40
|
+
<br>
|
41
|
+
|
42
|
+
<%= link_to 'Новая часть', new_part_path, class: 'btn btn-primary btn-lg' %>
|
43
|
+
|
44
|
+
<%= paginate @parts %>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<div class="page-header">
|
2
|
+
<h1>Служебный просмотр</h1>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
|
6
|
+
<div class="alert alert-info" role="alert"><%= notice %></div>
|
7
|
+
|
8
|
+
<p>
|
9
|
+
<strong>Title:</strong>
|
10
|
+
<%= @part.title %>
|
11
|
+
</p>
|
12
|
+
|
13
|
+
<p>
|
14
|
+
<strong>Text:</strong>
|
15
|
+
<%== @part.text %>
|
16
|
+
</p>
|
17
|
+
|
18
|
+
<%= link_to 'Редактировать', edit_part_path(@part), class: 'btn btn-primary btn-lg' %>
|
19
|
+
<%= link_to 'К списку частей', parts_path, class: 'btn btn-default btn-lg' %>
|
20
|
+
<%= link_to 'Удалить', @part, method: :delete, data: { confirm: 'Действительно хотите удалить страницу?' }, class: 'btn btn-danger btn-lg' %>
|
21
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<div style="margin-top: 20px">
|
2
|
+
<% if @plugin_upload.persisted? %>
|
3
|
+
<a id="insert_files_into_ckeditor" class="btn btn-primary" style="margin-bottom: 20px">Вставить</a>
|
4
|
+
|
5
|
+
<% if @plugin_upload.file.content_type.starts_with? 'image' %>
|
6
|
+
<div id="file" class="img-responsive">
|
7
|
+
<%= image_tag @plugin_upload.file.url %>
|
8
|
+
</div>
|
9
|
+
<% else %>
|
10
|
+
<div id="file">
|
11
|
+
<%= link_to @plugin_upload.file.filename, @plugin_upload.file.url %>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<div id="ckeditor-name" class="hide"><%= params['CKEditor'] %></div>
|
16
|
+
<% else %>
|
17
|
+
<%= simple_form_for(@plugin_upload, url: main_app.plugin_uploads_path(@plugin_upload, 'CKEditor' => params['CKEditor'])) do |f| %>
|
18
|
+
<%= f.input :file, label: 'Выберите файл' %>
|
19
|
+
<%= f.input :remote_file_url, label: 'Или укажите ссылку на файл' %>
|
20
|
+
<%= f.button :submit, 'Загрузить', class: 'btn btn-primary' %>
|
21
|
+
<% end %>
|
22
|
+
<% end %>
|
23
|
+
</div>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<br>
|
2
|
+
|
3
|
+
<pre>
|
4
|
+
Create app/views/ckpages/public/show.html.erb in your application.
|
5
|
+
</pre>
|
6
|
+
|
7
|
+
<hr>
|
8
|
+
|
9
|
+
<h4> Content of @page </h4>
|
10
|
+
|
11
|
+
<%= debug @page %>
|
12
|
+
|
13
|
+
<hr>
|
14
|
+
|
15
|
+
<pre>
|
16
|
+
link_to 'edit page', edit_page_path(@page)
|
17
|
+
</pre>
|
18
|
+
|
19
|
+
<%= link_to 'edit page', edit_page_path(@page) %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<br>
|
2
|
+
|
3
|
+
<pre>
|
4
|
+
Create app/views/ckpages/public404/show.html.erb in your application.
|
5
|
+
</pre>
|
6
|
+
|
7
|
+
<hr>
|
8
|
+
|
9
|
+
<h4> Content of params </h4>
|
10
|
+
|
11
|
+
<%= debug params %>
|
12
|
+
|
13
|
+
<hr>
|
14
|
+
|
15
|
+
<pre>
|
16
|
+
link_to 'new page', ckpages.new_page_path(path: "/#{params[:path]}")
|
17
|
+
</pre>
|
18
|
+
|
19
|
+
<%= link_to 'new page', new_page_path(path: "/#{params[:path]}") %>
|