trusty-cms 3.1.11 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +9 -14
- data/Gemfile.lock +84 -70
- data/README.md +4 -0
- data/app/assets/images/admin/add.png +0 -0
- data/app/assets/images/admin/archive_icon.png +0 -0
- data/app/assets/images/admin/audio_icon.png +0 -0
- data/app/assets/images/admin/audio_thumbnail.png +0 -0
- data/app/assets/images/admin/c_icon.png +0 -0
- data/app/assets/images/admin/copy.png +0 -0
- data/app/assets/images/admin/css_icon.png +0 -0
- data/app/assets/images/admin/database_icon.png +0 -0
- data/app/assets/images/admin/delete.png +0 -0
- data/app/assets/images/admin/document_icon.png +0 -0
- data/app/assets/images/admin/document_thumbnail.png +0 -0
- data/app/assets/images/admin/flash_icon.png +0 -0
- data/app/assets/images/admin/flash_thumbnail.png +0 -0
- data/app/assets/images/admin/font_icon.png +0 -0
- data/app/assets/images/admin/gzip_icon.png +0 -0
- data/app/assets/images/admin/html_icon.png +0 -0
- data/app/assets/images/admin/image_icon.png +0 -0
- data/app/assets/images/admin/image_thumbnail.png +0 -0
- data/app/assets/images/admin/java_icon.png +0 -0
- data/app/assets/images/admin/page_edit.png +0 -0
- data/app/assets/images/admin/pdf_icon.png +0 -0
- data/app/assets/images/admin/pdf_thumbnail.png +0 -0
- data/app/assets/images/admin/perl_icon.png +0 -0
- data/app/assets/images/admin/php_icon.png +0 -0
- data/app/assets/images/admin/presentation_icon.png +0 -0
- data/app/assets/images/admin/python_icon.png +0 -0
- data/app/assets/images/admin/reorder_assets.png +0 -0
- data/app/assets/images/admin/ruby_icon.png +0 -0
- data/app/assets/images/admin/script_icon.png +0 -0
- data/app/assets/images/admin/spinner.gif +0 -0
- data/app/assets/images/admin/spreadsheet_icon.png +0 -0
- data/app/assets/images/admin/tar_icon.png +0 -0
- data/app/assets/images/admin/unknown_icon.png +0 -0
- data/app/assets/images/admin/unknown_thumbnail.png +0 -0
- data/app/assets/images/admin/video_icon.png +0 -0
- data/app/assets/images/admin/video_thumbnail.png +0 -0
- data/app/assets/images/admin/xml_icon.png +0 -0
- data/app/assets/images/admin/zip_icon.png +0 -0
- data/app/assets/javascripts/admin/assets.js +268 -0
- data/app/assets/javascripts/admin/assets_admin.js +16 -0
- data/app/assets/javascripts/admin/jquery.fileupload.js +1457 -0
- data/app/assets/javascripts/admin/jquery.iframe-transport.js +214 -0
- data/app/assets/javascripts/admin/jquery.ui.widget.js +558 -0
- data/app/assets/stylesheets/admin/assets.scss +283 -0
- data/app/controllers/admin/assets_controller.rb +88 -0
- data/app/controllers/admin/page_attachments_controller.rb +23 -0
- data/app/helpers/admin/assets_helper.rb +16 -0
- data/app/helpers/admin/page_attachments_helper.rb +2 -0
- data/app/models/asset.rb +251 -0
- data/app/models/asset_type.rb +239 -0
- data/app/models/old_page_attachment.rb +26 -0
- data/app/models/page_attachment.rb +20 -0
- data/app/views/admin/assets/_asset.html.haml +12 -0
- data/app/views/admin/assets/_asset_table.html.haml +30 -0
- data/app/views/admin/assets/_errors.html.haml +3 -0
- data/app/views/admin/assets/_form.html.haml +18 -0
- data/app/views/admin/assets/_page_assets.html.haml +12 -0
- data/app/views/admin/assets/_search.html.haml +17 -0
- data/app/views/admin/assets/_search_results.html.haml +17 -0
- data/app/views/admin/assets/edit.html.haml +40 -0
- data/app/views/admin/assets/index.html.haml +15 -0
- data/app/views/admin/assets/new.html.haml +24 -0
- data/app/views/admin/assets/refresh.html.haml +14 -0
- data/app/views/admin/assets/remove.html.haml +16 -0
- data/app/views/admin/configuration/_clipped_edit.html.haml +8 -0
- data/app/views/admin/configuration/_clipped_show.html.haml +12 -0
- data/app/views/admin/page_attachments/_attachment.html.haml +25 -0
- data/app/views/admin/pages/_asset_popups.html.haml +37 -0
- data/app/views/admin/pages/_assets.html.haml +13 -0
- data/app/views/admin/removed/_assets_bucket.html.haml +8 -0
- data/app/views/admin/removed/_assets_container.html.haml +54 -0
- data/app/views/admin/removed/_bucket.html.haml +11 -0
- data/app/views/admin/removed/_bucket_asset.html.haml +9 -0
- data/app/views/admin/removed/_show_bucket_link.html.haml +4 -0
- data/app/views/admin/removed/_upload_to_page.html.haml +12 -0
- data/app/views/admin/removed/bucket/_iframe.html.haml +1 -0
- data/config/application.rb +0 -37
- data/config/initializers/assets.rb +1 -0
- data/config/initializers/interpolation.rb +6 -0
- data/config/initializers/kraken.rb +7 -0
- data/config/initializers/trusty_cms_config.rb +67 -0
- data/config/locales/en.yml +101 -0
- data/config/routes.rb +14 -3
- data/coverage/index.html +26 -26
- data/db/migrate/028_create_assets.rb +12 -0
- data/db/migrate/029_create_paperclip_attributes.rb +13 -0
- data/db/migrate/030_create_user_observer.rb +13 -0
- data/db/migrate/031_create_page_attachments.rb +19 -0
- data/db/migrate/032_rename_users.rb +13 -0
- data/db/migrate/20110513205050_asset_uuid.rb +11 -0
- data/db/migrate/20110606111250_update_configuration.rb +34 -0
- data/db/migrate/20110609101438_dimensions.rb +13 -0
- data/lib/trusty_cms.rb +1 -1
- data/spec/dummy/db/schema.rb +22 -0
- data/spec/dummy/log/test.log +95620 -0
- data/spec/dummy/tmp/cache/747/A70/TrustyCms%3A%3AConfig +0 -0
- data/spec/dummy/tmp/cache/85C/FA0/TrustyCms.cache_mtime +0 -0
- data/spec/dummy/tmp/capybara/capybara-20180312152412265881245.html +262 -0
- data/spec/dummy/tmp/capybara/capybara-201803121526139973682798.html +149 -0
- data/spec/factories/layout.rb +1 -1
- data/spec/factories/page.rb +3 -3
- data/spec/factories/page_part.rb +1 -1
- data/spec/factories/user.rb +1 -1
- data/spec/models/layout_spec.rb +6 -6
- data/spec/spec_helper.rb +4 -4
- data/trusty_cms.gemspec +27 -22
- data/vendor/extensions/clipped-extension/clipped_extension.rb +40 -0
- data/vendor/extensions/clipped-extension/lib/asset_tags.rb +346 -0
- data/vendor/extensions/clipped-extension/lib/clipped/engine.rb +11 -0
- data/vendor/extensions/clipped-extension/lib/clipped_admin_ui.rb +28 -0
- data/vendor/extensions/clipped-extension/lib/generators/templates/clipped_config.rb +53 -0
- data/vendor/extensions/clipped-extension/lib/page_asset_associations.rb +13 -0
- data/vendor/extensions/clipped-extension/lib/paperclip/frame_grab.rb +73 -0
- data/vendor/extensions/clipped-extension/lib/paperclip/geometry_transformation.rb +80 -0
- data/vendor/extensions/clipped-extension/lib/tasks/clipped_extension_tasks.rake +124 -0
- data/vendor/extensions/clipped-extension/lib/tasks/paperclip_tasks.rake +79 -0
- data/vendor/extensions/clipped-extension/lib/trusty-clipped-extension.rb +2 -0
- data/vendor/extensions/clipped-extension/lib/trusty_cms_clipped_extension/cloud.rb +41 -0
- metadata +219 -67
- data/config/initializers/ckeditor.rb +0 -3
- data/config/initializers/haml.rb +0 -2
- data/config/initializers/rails_patch.rb +0 -2
- data/config/initializers/string_extensions.rb +0 -1
- data/config/initializers/symbol_extensions.rb +0 -1
@@ -0,0 +1,54 @@
|
|
1
|
+
- @stylesheets << 'admin/assets'
|
2
|
+
= javascript_include_tag 'admin/assets_admin'
|
3
|
+
|
4
|
+
#assets-container
|
5
|
+
#asset-tabs
|
6
|
+
- render_region :asset_tabs do |asset_tabs|
|
7
|
+
- if @page && !@page.new_record?
|
8
|
+
- asset_tabs.attachment_tab do
|
9
|
+
%a.asset-tab{ :href => "#page-attachments", :id => "tab_page-attachments" }
|
10
|
+
= t("clipped_extension.attached_assets")
|
11
|
+
- asset_tabs.upload_tab do
|
12
|
+
%a.asset-tab{ :href => "#upload_assets", :id => "tab_upload_assets" }
|
13
|
+
= t("clipped_extension.upload")
|
14
|
+
- asset_tabs.bucket_tab do
|
15
|
+
%a.asset-tab{ :href => "#bucket", :id => "tab_bucket" }
|
16
|
+
= t("clipped_extension.bucket")
|
17
|
+
- asset_tabs.search_tab do
|
18
|
+
%a.asset-tab{ :href => "#search-assets" }
|
19
|
+
= t("clipped_extension.search")
|
20
|
+
- else
|
21
|
+
- asset_tabs.bucket_tab do
|
22
|
+
%a.asset-tab.here{ :href => "#" }
|
23
|
+
= t("clipped_extension.bucket")
|
24
|
+
- if @page && !@page.new_record?
|
25
|
+
- render_region :asset_panes do |asset_panes|
|
26
|
+
|
27
|
+
- asset_panes.page_attachments do
|
28
|
+
#page-attachments.pane
|
29
|
+
%p
|
30
|
+
%span.note
|
31
|
+
!= t("clipped_extension.asset_note")
|
32
|
+
%ul#attachments
|
33
|
+
= render :partial => "admin/assets/page_assets"
|
34
|
+
.clear
|
35
|
+
|
36
|
+
- asset_panes.upload do
|
37
|
+
#upload_assets.pane
|
38
|
+
%p
|
39
|
+
%span.note
|
40
|
+
!= t("clipped_extension.asset_page_upload_note")
|
41
|
+
= render :partial => "admin/assets/upload_to_page"
|
42
|
+
.clear
|
43
|
+
- asset_panes.search do
|
44
|
+
#search-assets.pane
|
45
|
+
- form_tag do
|
46
|
+
%p
|
47
|
+
%label.note{ :for => 'search' }
|
48
|
+
= t("clipped_extension.search_assets")
|
49
|
+
%input{ :type => "hidden", :name => "search", :value => @page.id }
|
50
|
+
%input{ :type => "search", :id => "search", :name => "search" }
|
51
|
+
= submit_tag t("clipped_extension.search")
|
52
|
+
#search-results
|
53
|
+
.clear
|
54
|
+
= observe_field 'search', :frequency => 1, :update => 'search-results', :url => admin_assets_path(:asset_page => @page), :method => 'get', :with => "'search=' + escape(value)"
|
@@ -0,0 +1,11 @@
|
|
1
|
+
%ul#bucket_list
|
2
|
+
- if session[:bucket]
|
3
|
+
- session[:bucket].each do |url, info|
|
4
|
+
= render :partial => 'admin/assets/bucket_asset', :locals => { :asset_url => url, :asset_id => info[:id], :asset_type => info[:type], :asset_title => info[:title], :asset_thumbnail =>info[:thumbnail], :page => @page }
|
5
|
+
- else
|
6
|
+
%li
|
7
|
+
%p.note
|
8
|
+
= t("clipped_extension.empty_bucket")
|
9
|
+
|
10
|
+
|
11
|
+
|
@@ -0,0 +1,9 @@
|
|
1
|
+
%li
|
2
|
+
|
3
|
+
%div{ :class => "#{asset_type} asset", :id => "bucket_#{asset_id}" }
|
4
|
+
= link_to image_tag(asset_thumbnail), asset_url, :title => asset_title, :class => "bucket_link"
|
5
|
+
|
6
|
+
.info{ :id => "#{asset_id}_info" }
|
7
|
+
= link_to image('assets/edit'), edit_admin_asset_url(asset_id), :class => "edit_asset", :title => t("clipped_extension.edit_asset", :asset => asset_title)
|
8
|
+
- if page && !page.new_record?
|
9
|
+
= link_to image('assets/add'), attach_page_asset_url(:asset => asset_id, :page => page.id), :class => "add_asset", :title => t("clipped_extension.attach_to_page")
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#upload-form
|
2
|
+
- form_for :asset, :url => admin_assets_path(:page => @page, :format => 'js'), :html => { :id => 'asset-upload', :method => "post", :multipart => true, :target => 'ulframe' } do |form|
|
3
|
+
%div.file
|
4
|
+
%label.upload
|
5
|
+
= t("clipped_extension.choose_upload")
|
6
|
+
= form.file_field :asset, :class => "", :style => "width: 100%"
|
7
|
+
|
8
|
+
.upload-buttons
|
9
|
+
= form.submit t("clipped_extension.save_and_upload"), :class => "button"
|
10
|
+
%div.spinner
|
11
|
+
|
12
|
+
%iframe{:id => 'ulframe', :name => "ulframe", :src => "about:blank"}
|
@@ -0,0 +1 @@
|
|
1
|
+
= render :partial => 'admin/assets/asset', :object => asset, :locals => {:dom_id => "attachment_#{asset.id}" }
|
data/config/application.rb
CHANGED
@@ -12,10 +12,7 @@ require 'trustygems'
|
|
12
12
|
|
13
13
|
|
14
14
|
if defined?(Bundler)
|
15
|
-
# If you precompile assets before deploying to production, use this line
|
16
15
|
Bundler.require(*Rails.groups(:assets => %w(development test)))
|
17
|
-
# If you want your assets lazily compiled in production, use this line
|
18
|
-
# Bundler.require(:default, :assets, Rails.env)
|
19
16
|
end
|
20
17
|
|
21
18
|
module TrustyCms
|
@@ -47,40 +44,6 @@ module TrustyCms
|
|
47
44
|
|
48
45
|
config.encoding = 'utf-8'
|
49
46
|
|
50
|
-
# Skip frameworks you're not going to use (only works if using vendor/rails).
|
51
|
-
# To use Rails without a database, you must remove the Active Record framework
|
52
|
-
# config.frameworks -= [ :action_mailer ]
|
53
|
-
|
54
|
-
# Only load the extensions named here, in the order given. By default all
|
55
|
-
# extensions in vendor/extensions are loaded, in alphabetical order. :all
|
56
|
-
# can be used as a placeholder for all extensions not explicitly named.
|
57
|
-
# config.extensions = [ :all ]
|
58
|
-
|
59
|
-
# By default, only English translations are loaded. Remove any of these from
|
60
|
-
# the list below if you'd like to provide any of the additional options
|
61
|
-
# config.ignore_extensions []
|
62
|
-
|
63
|
-
# Comment out this line if you want to turn off all caching, or
|
64
|
-
# add options to modify the behavior. In the majority of deployment
|
65
|
-
# scenarios it is desirable to leave TrustyCms's cache enabled and in
|
66
|
-
# the default configuration.
|
67
|
-
#
|
68
|
-
# Additional options:
|
69
|
-
# :use_x_sendfile => true
|
70
|
-
# Turns on X-Sendfile support for Apache with mod_xsendfile or lighttpd.
|
71
|
-
# :use_x_accel_redirect => '/some/virtual/path'
|
72
|
-
# Turns on X-Accel-Redirect support for nginx. You have to provide
|
73
|
-
# a path that corresponds to a virtual location in your webserver
|
74
|
-
# configuration.
|
75
|
-
# :entitystore => "radiant:tmp/cache/entity"
|
76
|
-
# Sets the entity store type (preceding the colon) and storage
|
77
|
-
# location (following the colon, relative to Rails.root).
|
78
|
-
# We recommend you use radiant: since this will enable manual expiration.
|
79
|
-
# :metastore => "radiant:tmp/cache/meta"
|
80
|
-
# Sets the meta store type and storage location. We recommend you use
|
81
|
-
# radiant: since this will enable manual expiration and acceleration headers.
|
82
|
-
|
83
|
-
|
84
47
|
config.middleware.use Rack::Cache,
|
85
48
|
:private_headers => ['Authorization'],
|
86
49
|
:entitystore => "radiant:tmp/cache/entity",
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'multi_site/engine'
|
2
|
+
require 'clipped/engine'
|
2
3
|
|
3
4
|
TrustyCms.config do |config|
|
4
5
|
config.define 'admin.title', :default => "TrustyCms CMS"
|
@@ -19,6 +20,72 @@ TrustyCms.config do |config|
|
|
19
20
|
require 'multi_site/scoped_validation'
|
20
21
|
end
|
21
22
|
|
23
|
+
TrustyCms.config do |config|
|
24
|
+
config.namespace 'paperclip' do |pc|
|
25
|
+
pc.define 'url', :default => '/system/:attachment/:id/:style/:basename:no_original_style.:extension', :allow_change => true
|
26
|
+
pc.define 'path', :default => ':rails_root/public/system/:attachment/:id/:style/:basename:no_original_style.:extension', :allow_change => true
|
27
|
+
pc.define 'skip_filetype_validation', :default => true, :type => :boolean
|
28
|
+
pc.define 'storage', :default => 'filesystem',
|
29
|
+
:select_from => {
|
30
|
+
'File System' => 'filesystem',
|
31
|
+
'Amazon S3' => 'fog',
|
32
|
+
'Google Storage' => 'fog',
|
33
|
+
'Rackspace Cloud Files' => 'fog'
|
34
|
+
},
|
35
|
+
:allow_blank => false,
|
36
|
+
:allow_display => false
|
37
|
+
|
38
|
+
pc.namespace 'fog' do |fog|
|
39
|
+
fog.define 'provider', :select_from => {
|
40
|
+
'Amazon S3' => 'AWS',
|
41
|
+
'Google Storage' => 'Google',
|
42
|
+
'Rackspace Cloud Files' => 'Rackspace'
|
43
|
+
}
|
44
|
+
fog.define 'directory'
|
45
|
+
fog.define 'public?', :default => true
|
46
|
+
fog.define 'host'
|
47
|
+
end
|
48
|
+
|
49
|
+
pc.namespace 'google_storage' do |gs|
|
50
|
+
gs.define 'access_key_id'
|
51
|
+
gs.define 'secret_access_key'
|
52
|
+
end
|
53
|
+
|
54
|
+
pc.namespace 'rackspace' do |rs|
|
55
|
+
rs.define 'username'
|
56
|
+
rs.define 'api_key'
|
57
|
+
end
|
58
|
+
|
59
|
+
pc.namespace 's3' do |s3|
|
60
|
+
s3.define 'key'
|
61
|
+
s3.define 'secret'
|
62
|
+
s3.define 'region', :select_from => {
|
63
|
+
'Asia North East' => 'ap-northeast-1',
|
64
|
+
'Asia South East' => 'ap-southeast-1',
|
65
|
+
'EU West' => 'eu-west-1',
|
66
|
+
'US East' => 'us-east-1',
|
67
|
+
'US West' => 'us-west-1'
|
68
|
+
}
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
config.namespace 'assets', :allow_display => false do |assets|
|
73
|
+
assets.define 'create_image_thumbnails?', :default => 'true'
|
74
|
+
assets.define 'create_video_thumbnails?', :default => 'true'
|
75
|
+
assets.define 'create_pdf_thumbnails?', :default => 'true'
|
76
|
+
|
77
|
+
assets.namespace 'thumbnails' do |thumbs| # NB :icon and :thumbnail are already defined as fixed formats for use in the admin interface and can't be changed
|
78
|
+
thumbs.define 'image', :default => 'normal:size=640x640>|small:size=320x320>'
|
79
|
+
thumbs.define 'video', :default => 'normal:size=640x640>,format=jpg|small:size=320x320>,format=jpg'
|
80
|
+
thumbs.define 'pdf', :default => 'normal:size=640x640>,format=jpg|small:size=320x320>,format=jpg'
|
81
|
+
end
|
82
|
+
|
83
|
+
assets.define 'max_asset_size', :default => 5, :type => :integer, :units => 'MB'
|
84
|
+
assets.define 'display_size', :default => 'normal', :allow_blank => true
|
85
|
+
assets.define 'insertion_size', :default => 'normal', :allow_blank => true
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
22
89
|
if TrustyCms.config_definitions['defaults.snippet.filter'].nil?
|
23
90
|
TrustyCms.config.define 'defaults.snippet.filter', :select_from => lambda { TextFilter.descendants.map { |s| s.filter_name }.sort }, :allow_blank => true
|
24
91
|
end
|
data/config/locales/en.yml
CHANGED
@@ -13,6 +13,10 @@ en:
|
|
13
13
|
too_long: 'this must not be longer than %{count} characters' # character_limit
|
14
14
|
too_short: 'this must be at least %{count} characters long' # character_minimum
|
15
15
|
models:
|
16
|
+
asset:
|
17
|
+
attributes:
|
18
|
+
asset:
|
19
|
+
blank: 'You must choose a file to upload!'
|
16
20
|
page:
|
17
21
|
attributes:
|
18
22
|
slug:
|
@@ -30,6 +34,19 @@ en:
|
|
30
34
|
add_part: 'Add Part'
|
31
35
|
add_tab: 'Add Tab'
|
32
36
|
admin: 'Administrator'
|
37
|
+
assets: 'Assets'
|
38
|
+
asset_types:
|
39
|
+
all: 'All'
|
40
|
+
documents: 'Documents'
|
41
|
+
fonts: 'Fonts'
|
42
|
+
images: 'Images'
|
43
|
+
others: 'Others'
|
44
|
+
audios: 'Audio'
|
45
|
+
flashes: 'Flash'
|
46
|
+
fonts: 'Fonts'
|
47
|
+
videos: 'Video'
|
48
|
+
pdfs: 'PDFs'
|
49
|
+
swfs: 'Flash'
|
33
50
|
available_tags: 'Available Tags'
|
34
51
|
available_tags_for: 'Available Tags for %{name}'
|
35
52
|
body: 'Body'
|
@@ -40,10 +57,94 @@ en:
|
|
40
57
|
save_changes: 'Save Changes'
|
41
58
|
cancel: 'Cancel'
|
42
59
|
change: 'Change'
|
60
|
+
clipped_extension:
|
61
|
+
actions: Actions
|
62
|
+
all: 'All'
|
63
|
+
all_thumbnails_refreshed: 'All asset thumbnails refreshed.'
|
64
|
+
alt_text_or_title: 'Set Asset Title <span class="hint">(optional)</span>'
|
65
|
+
asset: 'Asset'
|
66
|
+
asset_edit_title: 'Edit Asset'
|
67
|
+
asset_errors: 'Sorry. {{errors}}'
|
68
|
+
asset_page_attachment_note: 'Attached assets. These can be inserted with drag and drop or shown with the <code><r:assets:each /></code> tag.'
|
69
|
+
asset_note: 'Attached assets. '
|
70
|
+
assets: 'Assets'
|
71
|
+
assets_explanation: 'Assets and images can be uploaded and then attached or inserted into pages, snippets and layouts. Click on a asset name above to edit it or click <code>Remove</code> to delete it.'
|
72
|
+
assets_title: 'Assets'
|
73
|
+
asset_page_upload_note: 'Assets uploaded here will be automatically associated with this page.'
|
74
|
+
asset_upload_note: 'Choose an asset to upload here. If the <code>Title</code> field is left blank, the filename (without the file type) will be automatically added. By clicking on <code>More</code>, you can add a caption as well.'
|
75
|
+
attached_assets: 'Attached Assets'
|
76
|
+
attach: 'Attach'
|
77
|
+
attach_asset: 'attach asset'
|
78
|
+
attach_assets: 'Attach assets'
|
79
|
+
attach_existing: 'Attach Existing Assets'
|
80
|
+
attach_to_page: 'Attach to page'
|
81
|
+
audio: 'Audio'
|
82
|
+
cancel_attachment: 'Unattach'
|
83
|
+
copy: 'Copy'
|
84
|
+
copy_alt: 'copy radius tag to clipboard'
|
85
|
+
choose_file: 'Choose File'
|
86
|
+
documents: 'Documents'
|
87
|
+
caption: 'Caption'
|
88
|
+
confirm_refresh_assets: 'Are you sure you want to regenerate every asset thumbnail? This is likely to take a long time and use a lot of server resources: <strong class="warning">the performance of your site is very likely to be affected</strong> and your browser may time out before the operation is complete. This is only recommended if your asset collection is small!'
|
89
|
+
confirm_remove_asset: 'Are you sure you want to permanently remove the following asset?'
|
90
|
+
confirm_remove_from_page: 'Are you sure you want to remove this assets from the page?'
|
91
|
+
delete_asset: 'Delete Asset'
|
92
|
+
detach: 'Detach'
|
93
|
+
edit: 'Edit'
|
94
|
+
edit_asset: 'Edit {{asset}}'
|
95
|
+
filename: 'Filename'
|
96
|
+
find_assets: 'Find Assets'
|
97
|
+
images: 'Images'
|
98
|
+
images_automatically_created: 'images are automatically created'
|
99
|
+
insert: 'Insert'
|
100
|
+
modify: 'Modify'
|
101
|
+
movies: 'Movies'
|
102
|
+
need_to_upload: 'Need to upload?'
|
103
|
+
new_asset: 'New Asset'
|
104
|
+
no_assets_found: 'There were no assets found'
|
105
|
+
no_assets: 'No Assets'
|
106
|
+
no_attached_assets: 'No assets attached.'
|
107
|
+
others: 'Others'
|
108
|
+
refresh_assets: 'Regenerate all thumbnails'
|
109
|
+
regenerate: 'Regenerate'
|
110
|
+
regenerate_thumbnails: 'Regenerate Thumbnails'
|
111
|
+
remove_asset: 'Remove Asset'
|
112
|
+
remove_from_page: 'Remove from page'
|
113
|
+
reorder: 'Reorder'
|
114
|
+
remove: 'Remove'
|
115
|
+
refresh_assets_rake_task: 'For better results please log into your server and run <code>rake paperclip:refresh class=Asset</code>.'
|
116
|
+
replace_file: 'Replace File'
|
117
|
+
save_and_upload: 'Save and Upload'
|
118
|
+
search_assets: 'Search for assets'
|
119
|
+
search: 'Search'
|
120
|
+
select: 'Select'
|
121
|
+
thumbnails_refreshed: "Thumbnails refreshed."
|
122
|
+
title: 'Title'
|
123
|
+
type: 'Type'
|
124
|
+
types_to_find: 'Types to find'
|
125
|
+
upload: 'Upload'
|
126
|
+
upload_asset: 'Upload Asset'
|
43
127
|
close: 'Close'
|
44
128
|
trusty_config:
|
45
129
|
admin:
|
46
130
|
title: 'admin header title'
|
131
|
+
assets:
|
132
|
+
additional_thumbnails: 'Additional Thumbnails'
|
133
|
+
content_types: 'Content Types'
|
134
|
+
create_image_thumbnails?: 'Image thumbnails'
|
135
|
+
create_pdf_thumbnails?: 'PDF thumbnails'
|
136
|
+
create_video_thumbnails?: 'Video thumbnails'
|
137
|
+
display_size: 'Display Size'
|
138
|
+
insertion_size: 'Insertion Size'
|
139
|
+
max_asset_size: 'Max Asset Size'
|
140
|
+
path: 'Path'
|
141
|
+
s3:
|
142
|
+
bucket: 'Bucket'
|
143
|
+
key: 'Key'
|
144
|
+
secret: 'Secret'
|
145
|
+
skip_filetype_validation: 'Skip Filetype Validation'
|
146
|
+
storage: 'Storage'
|
147
|
+
url: 'Url'
|
47
148
|
defaults:
|
48
149
|
locale: 'default language'
|
49
150
|
page:
|
data/config/routes.rb
CHANGED
@@ -4,12 +4,10 @@ TrustyCms::Application.routes.draw do
|
|
4
4
|
get '/rad_social/mail' => 'social_mailer#social_mail_form', as: :rad_social_mail_form
|
5
5
|
post '/rad_social/mail' => 'social_mailer#create_social_mail', as: :rad_create_social_mail
|
6
6
|
TrustyCms::Application.config.enabled_extensions.each { |ext|
|
7
|
-
#load File.join(TrustyCms::ExtensionPath.find(ext).to_s, "config", "routes.rb")
|
8
7
|
}
|
9
8
|
namespace :admin do
|
10
9
|
resources :pages do
|
11
10
|
resources :children, :controller => 'pages'
|
12
|
-
#TODO: put back the remove on children possibly
|
13
11
|
get 'remove', on: :member
|
14
12
|
end
|
15
13
|
resources :layouts do
|
@@ -23,6 +21,20 @@ TrustyCms::Application.routes.draw do
|
|
23
21
|
end
|
24
22
|
resources :password_resets
|
25
23
|
post 'save-table-position' => "pages#save_table_position", as: "save_tables_position"
|
24
|
+
|
25
|
+
resources :assets do
|
26
|
+
get :remove, on: :member
|
27
|
+
get :refresh, on: :collection
|
28
|
+
post :regenerate, on: :collection
|
29
|
+
put :refresh, on: :member
|
30
|
+
end
|
31
|
+
resources :page_attachments, :only => [:new] do
|
32
|
+
get :remove, on: :member
|
33
|
+
end
|
34
|
+
resources :pages do
|
35
|
+
get :remove, on: :member
|
36
|
+
resources :page_attachments
|
37
|
+
end
|
26
38
|
end
|
27
39
|
|
28
40
|
match 'admin/preview' => 'admin/pages#preview', :as => :preview, :via => [:post, :put]
|
@@ -47,7 +59,6 @@ TrustyCms::Application.routes.draw do
|
|
47
59
|
get 'admin/welcome' => 'admin/welcome#index', :as => :welcome
|
48
60
|
match 'admin/login' => 'admin/welcome#login', :as => :login, :via => [:get, :post]
|
49
61
|
get 'admin/logout' => 'admin/welcome#logout', :as => :logout
|
50
|
-
# match '/' => 'site#show_page', :url => '/' # set root to this so root_path works
|
51
62
|
get 'error/404' => 'site#not_found', :as => :not_found
|
52
63
|
get 'error/500' => 'site#error', :as => :error
|
53
64
|
get '*url' => 'site#show_page'
|
data/coverage/index.html
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
<img src="./assets/0.10.2/loading.gif" alt="loading"/>
|
15
15
|
</div>
|
16
16
|
<div id="wrapper" style="display:none;">
|
17
|
-
<div class="timestamp">Generated <abbr class="timeago" title="2018-
|
17
|
+
<div class="timestamp">Generated <abbr class="timeago" title="2018-03-30T11:37:29-04:00">2018-03-30T11:37:29-04:00</abbr></div>
|
18
18
|
<ul class="group_tabs"></ul>
|
19
19
|
|
20
20
|
<div id="content">
|
@@ -287,7 +287,7 @@
|
|
287
287
|
<td>14</td>
|
288
288
|
<td>14</td>
|
289
289
|
<td>0</td>
|
290
|
-
<td>21.
|
290
|
+
<td>21.9</td>
|
291
291
|
</tr>
|
292
292
|
|
293
293
|
<tr>
|
@@ -6414,8 +6414,8 @@
|
|
6414
6414
|
<code class="ruby"> # Default Order</code>
|
6415
6415
|
</li>
|
6416
6416
|
|
6417
|
-
<li class="covered" data-hits="
|
6418
|
-
<span class="hits">
|
6417
|
+
<li class="covered" data-hits="27" data-linenumber="7">
|
6418
|
+
<span class="hits">27</span>
|
6419
6419
|
|
6420
6420
|
<code class="ruby"> default_scope {order("name")}</code>
|
6421
6421
|
</li>
|
@@ -6888,14 +6888,14 @@
|
|
6888
6888
|
<code class="ruby"> def encrypt_password_unless_empty_or_unchanged</code>
|
6889
6889
|
</li>
|
6890
6890
|
|
6891
|
-
<li class="covered" data-hits="
|
6892
|
-
<span class="hits">
|
6891
|
+
<li class="covered" data-hits="2" data-linenumber="86">
|
6892
|
+
<span class="hits">2</span>
|
6893
6893
|
|
6894
6894
|
<code class="ruby"> user = self.class.find(self.id)</code>
|
6895
6895
|
</li>
|
6896
6896
|
|
6897
|
-
<li class="covered" data-hits="
|
6898
|
-
<span class="hits">
|
6897
|
+
<li class="covered" data-hits="2" data-linenumber="87">
|
6898
|
+
<span class="hits">2</span>
|
6899
6899
|
|
6900
6900
|
<code class="ruby"> case password</code>
|
6901
6901
|
</li>
|
@@ -7039,8 +7039,8 @@
|
|
7039
7039
|
<code class="ruby"> def current_user</code>
|
7040
7040
|
</li>
|
7041
7041
|
|
7042
|
-
<li class="covered" data-hits="
|
7043
|
-
<span class="hits">
|
7042
|
+
<li class="covered" data-hits="9" data-linenumber="12">
|
7043
|
+
<span class="hits">9</span>
|
7044
7044
|
|
7045
7045
|
<code class="ruby"> self.class.current_user</code>
|
7046
7046
|
</li>
|
@@ -7057,8 +7057,8 @@
|
|
7057
7057
|
<code class="ruby"> def self.current_user</code>
|
7058
7058
|
</li>
|
7059
7059
|
|
7060
|
-
<li class="covered" data-hits="
|
7061
|
-
<span class="hits">
|
7060
|
+
<li class="covered" data-hits="9" data-linenumber="15">
|
7061
|
+
<span class="hits">9</span>
|
7062
7062
|
|
7063
7063
|
<code class="ruby"> Thread.current[:current_user]</code>
|
7064
7064
|
</li>
|
@@ -7105,8 +7105,8 @@
|
|
7105
7105
|
<code class="ruby"> def before_update(model)</code>
|
7106
7106
|
</li>
|
7107
7107
|
|
7108
|
-
<li class="covered" data-hits="
|
7109
|
-
<span class="hits">
|
7108
|
+
<li class="covered" data-hits="2" data-linenumber="23">
|
7109
|
+
<span class="hits">2</span>
|
7110
7110
|
|
7111
7111
|
<code class="ruby"> model.updated_by = self.current_user</code>
|
7112
7112
|
</li>
|
@@ -8189,7 +8189,7 @@
|
|
8189
8189
|
<li class="covered" data-hits="1" data-linenumber="1">
|
8190
8190
|
<span class="hits">1</span>
|
8191
8191
|
|
8192
|
-
<code class="ruby">
|
8192
|
+
<code class="ruby">FactoryBot.define do</code>
|
8193
8193
|
</li>
|
8194
8194
|
|
8195
8195
|
<li class="never" data-hits="" data-linenumber="2">
|
@@ -8310,7 +8310,7 @@
|
|
8310
8310
|
<li class="covered" data-hits="1" data-linenumber="1">
|
8311
8311
|
<span class="hits">1</span>
|
8312
8312
|
|
8313
|
-
<code class="ruby">
|
8313
|
+
<code class="ruby">FactoryBot.define do</code>
|
8314
8314
|
</li>
|
8315
8315
|
|
8316
8316
|
<li class="covered" data-hits="1" data-linenumber="2">
|
@@ -8352,7 +8352,7 @@
|
|
8352
8352
|
<li class="covered" data-hits="1" data-linenumber="8">
|
8353
8353
|
<span class="hits">1</span>
|
8354
8354
|
|
8355
|
-
<code class="ruby"> page_parts { [
|
8355
|
+
<code class="ruby"> page_parts { [FactoryBot.create(:page_part, name: 'body')] }</code>
|
8356
8356
|
</li>
|
8357
8357
|
|
8358
8358
|
<li class="never" data-hits="" data-linenumber="9">
|
@@ -8376,7 +8376,7 @@
|
|
8376
8376
|
<li class="covered" data-hits="1" data-linenumber="12">
|
8377
8377
|
<span class="hits">1</span>
|
8378
8378
|
|
8379
|
-
<code class="ruby"> children { [
|
8379
|
+
<code class="ruby"> children { [FactoryBot.create(:page, :with_parts)] }</code>
|
8380
8380
|
</li>
|
8381
8381
|
|
8382
8382
|
<li class="never" data-hits="" data-linenumber="13">
|
@@ -8707,7 +8707,7 @@
|
|
8707
8707
|
<li class="covered" data-hits="1" data-linenumber="1">
|
8708
8708
|
<span class="hits">1</span>
|
8709
8709
|
|
8710
|
-
<code class="ruby">
|
8710
|
+
<code class="ruby">FactoryBot.define do</code>
|
8711
8711
|
</li>
|
8712
8712
|
|
8713
8713
|
<li class="never" data-hits="" data-linenumber="2">
|
@@ -8774,7 +8774,7 @@
|
|
8774
8774
|
<li class="covered" data-hits="1" data-linenumber="1">
|
8775
8775
|
<span class="hits">1</span>
|
8776
8776
|
|
8777
|
-
<code class="ruby">
|
8777
|
+
<code class="ruby">FactoryBot.define do</code>
|
8778
8778
|
</li>
|
8779
8779
|
|
8780
8780
|
<li class="covered" data-hits="1" data-linenumber="2">
|
@@ -10483,7 +10483,7 @@
|
|
10483
10483
|
<li class="covered" data-hits="1" data-linenumber="5">
|
10484
10484
|
<span class="hits">1</span>
|
10485
10485
|
|
10486
|
-
<code class="ruby"> let(:layout){
|
10486
|
+
<code class="ruby"> let(:layout){ FactoryBot.build(:layout) }</code>
|
10487
10487
|
</li>
|
10488
10488
|
|
10489
10489
|
<li class="never" data-hits="" data-linenumber="6">
|
@@ -10507,7 +10507,7 @@
|
|
10507
10507
|
<li class="covered" data-hits="1" data-linenumber="9">
|
10508
10508
|
<span class="hits">1</span>
|
10509
10509
|
|
10510
|
-
<code class="ruby"> layout =
|
10510
|
+
<code class="ruby"> layout = FactoryBot.build(:layout, name: '')</code>
|
10511
10511
|
</li>
|
10512
10512
|
|
10513
10513
|
<li class="covered" data-hits="1" data-linenumber="10">
|
@@ -10543,7 +10543,7 @@
|
|
10543
10543
|
<li class="covered" data-hits="1" data-linenumber="15">
|
10544
10544
|
<span class="hits">1</span>
|
10545
10545
|
|
10546
|
-
<code class="ruby"> layout =
|
10546
|
+
<code class="ruby"> layout = FactoryBot.build(:layout, name: 'Normal', content: "Content!")</code>
|
10547
10547
|
</li>
|
10548
10548
|
|
10549
10549
|
<li class="covered" data-hits="1" data-linenumber="16">
|
@@ -10555,7 +10555,7 @@
|
|
10555
10555
|
<li class="covered" data-hits="1" data-linenumber="17">
|
10556
10556
|
<span class="hits">1</span>
|
10557
10557
|
|
10558
|
-
<code class="ruby"> other =
|
10558
|
+
<code class="ruby"> other = FactoryBot.build(:layout, name: 'Normal', content: "Content!")</code>
|
10559
10559
|
</li>
|
10560
10560
|
|
10561
10561
|
<li class="covered" data-hits="2" data-linenumber="18">
|
@@ -10585,7 +10585,7 @@
|
|
10585
10585
|
<li class="covered" data-hits="1" data-linenumber="22">
|
10586
10586
|
<span class="hits">1</span>
|
10587
10587
|
|
10588
|
-
<code class="ruby"> layout =
|
10588
|
+
<code class="ruby"> layout = FactoryBot.build(:layout, name: 'x' * 100)</code>
|
10589
10589
|
</li>
|
10590
10590
|
|
10591
10591
|
<li class="covered" data-hits="1" data-linenumber="23">
|
@@ -10597,7 +10597,7 @@
|
|
10597
10597
|
<li class="covered" data-hits="1" data-linenumber="24">
|
10598
10598
|
<span class="hits">1</span>
|
10599
10599
|
|
10600
|
-
<code class="ruby"> layout =
|
10600
|
+
<code class="ruby"> layout = FactoryBot.build(:layout, name: 'x' * 101)</code>
|
10601
10601
|
</li>
|
10602
10602
|
|
10603
10603
|
<li class="covered" data-hits="2" data-linenumber="25">
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreatePaperclipAttributes < ActiveRecord::Migration[5.1]
|
2
|
+
def self.up
|
3
|
+
add_column :assets, :asset_file_name, :string
|
4
|
+
add_column :assets, :asset_content_type, :string
|
5
|
+
add_column :assets, :asset_file_size, :integer
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.down
|
9
|
+
remove_column :assets, :asset_file_name
|
10
|
+
remove_column :assets, :asset_content_type
|
11
|
+
remove_column :assets, :asset_file_size
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreateUserObserver < ActiveRecord::Migration[5.1]
|
2
|
+
def self.up
|
3
|
+
add_column :assets, :created_by, :integer
|
4
|
+
add_column :assets, :updated_by, :integer
|
5
|
+
add_column :assets, :created_at, :datetime
|
6
|
+
add_column :assets, :updated_at, :datetime
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.down
|
10
|
+
remove_column :assets, :created_by
|
11
|
+
remove_column :assets, :updated_by
|
12
|
+
end
|
13
|
+
end
|