trusty-cms 3.1.8 → 3.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -1
- data/Gemfile.lock +13 -9
- data/app/assets/images/admin/move_higher.png +0 -0
- data/app/assets/images/admin/move_lower.png +0 -0
- data/app/assets/images/admin/move_to_bottom.png +0 -0
- data/app/assets/images/admin/move_to_top.png +0 -0
- data/app/assets/images/admin/remove.png +0 -0
- data/app/assets/stylesheets/admin/_multi_site_main.scss +85 -0
- data/app/assets/stylesheets/admin/_site_chooser.scss +76 -0
- data/app/assets/stylesheets/admin/main.scss +3 -0
- data/app/controllers/admin/sites_controller.rb +14 -0
- data/app/helpers/scoped_helper.rb +19 -0
- data/app/helpers/sites_helper.rb +10 -0
- data/app/models/site.rb +86 -0
- data/app/models/snippet.rb +23 -0
- data/app/models/snippet_finder.rb +24 -0
- data/app/models/snippet_tags.rb +80 -0
- data/app/users/_choose_site.html.haml +8 -0
- data/app/views/admin/layouts/_choose_site.html.haml +8 -0
- data/app/views/admin/layouts/_site_chooser.html.haml +11 -0
- data/app/views/admin/sites/_form.haml +50 -0
- data/app/views/admin/sites/edit.haml +7 -0
- data/app/views/admin/sites/index.haml +43 -0
- data/app/views/admin/sites/new.haml +7 -0
- data/app/views/admin/snippets/_choose_site.html.haml +6 -0
- data/app/views/{snippets → admin/snippets}/_form.html.haml +0 -0
- data/app/views/{snippets → admin/snippets}/_popups.html.haml +0 -0
- data/app/views/{snippets → admin/snippets}/edit.html.haml +0 -0
- data/app/views/{snippets → admin/snippets}/index.html.haml +0 -0
- data/app/views/{snippets → admin/snippets}/new.html.haml +0 -0
- data/app/views/{snippets → admin/snippets}/remove.html.haml +0 -0
- data/app/views/admin/users/_choose_site.html.haml +8 -0
- data/config/application.rb +0 -2
- data/config/initializers/trusty_cms_config.rb +6 -0
- data/config/routes.rb +8 -0
- data/coverage/index.html +3837 -2759
- data/db/migrate/006_remove_user_login_index.rb +8 -0
- data/db/migrate/010_create_sites.rb +13 -0
- data/db/migrate/011_add_order_to_sites.rb +9 -0
- data/db/migrate/022_add_admin_fields_to_sites.rb +17 -0
- data/db/migrate/023_add_sites.rb +13 -0
- data/db/migrate/024_site_abbreviation.rb +9 -0
- data/db/migrate/025_recreate_non_unique_index_on_snippets_name.rb +11 -0
- data/db/migrate/026_add_site_id_to_pages.rb +24 -0
- data/db/migrate/027_add_base_domain_to_sites.rb +9 -0
- data/lib/trusty_cms.rb +1 -1
- data/spec/dummy/db/schema.rb +20 -2
- data/spec/dummy/log/test.log +44621 -0
- data/spec/dummy/node_modules/jquery/AUTHORS.txt +301 -0
- data/spec/dummy/node_modules/jquery/LICENSE.txt +36 -0
- data/spec/dummy/node_modules/jquery/README.md +67 -0
- data/spec/dummy/node_modules/jquery/bower.json +14 -0
- data/spec/dummy/node_modules/jquery/dist/core.js +476 -0
- data/spec/dummy/node_modules/jquery/dist/jquery.js +10253 -0
- data/spec/dummy/node_modules/jquery/dist/jquery.min.js +4 -0
- data/spec/dummy/node_modules/jquery/dist/jquery.min.map +1 -0
- data/spec/dummy/node_modules/jquery/dist/jquery.slim.js +8160 -0
- data/spec/dummy/node_modules/jquery/dist/jquery.slim.min.js +4 -0
- data/spec/dummy/node_modules/jquery/dist/jquery.slim.min.map +1 -0
- data/spec/dummy/node_modules/jquery/external/sizzle/LICENSE.txt +36 -0
- data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.js +2272 -0
- data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.min.js +3 -0
- data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.min.map +1 -0
- data/spec/dummy/node_modules/jquery/package.json +97 -0
- data/spec/dummy/node_modules/jquery/src/ajax/jsonp.js +102 -0
- data/spec/dummy/node_modules/jquery/src/ajax/load.js +76 -0
- data/spec/dummy/node_modules/jquery/src/ajax/parseXML.js +30 -0
- data/spec/dummy/node_modules/jquery/src/ajax/script.js +77 -0
- data/spec/dummy/node_modules/jquery/src/ajax/var/location.js +5 -0
- data/spec/dummy/node_modules/jquery/src/ajax/var/nonce.js +7 -0
- data/spec/dummy/node_modules/jquery/src/ajax/var/rquery.js +5 -0
- data/spec/dummy/node_modules/jquery/src/ajax/xhr.js +169 -0
- data/spec/dummy/node_modules/jquery/src/ajax.js +855 -0
- data/spec/dummy/node_modules/jquery/src/attributes/attr.js +141 -0
- data/spec/dummy/node_modules/jquery/src/attributes/classes.js +174 -0
- data/spec/dummy/node_modules/jquery/src/attributes/prop.js +143 -0
- data/spec/dummy/node_modules/jquery/src/attributes/support.js +33 -0
- data/spec/dummy/node_modules/jquery/src/attributes/val.js +190 -0
- data/spec/dummy/node_modules/jquery/src/attributes.js +13 -0
- data/spec/dummy/node_modules/jquery/src/callbacks.js +234 -0
- data/spec/dummy/node_modules/jquery/src/core/DOMEval.js +16 -0
- data/spec/dummy/node_modules/jquery/src/core/access.js +70 -0
- data/spec/dummy/node_modules/jquery/src/core/init.js +128 -0
- data/spec/dummy/node_modules/jquery/src/core/nodeName.js +13 -0
- data/spec/dummy/node_modules/jquery/src/core/parseHTML.js +65 -0
- data/spec/dummy/node_modules/jquery/src/core/ready-no-deferred.js +96 -0
- data/spec/dummy/node_modules/jquery/src/core/ready.js +86 -0
- data/spec/dummy/node_modules/jquery/src/core/readyException.js +13 -0
- data/spec/dummy/node_modules/jquery/src/core/stripAndCollapse.js +14 -0
- data/spec/dummy/node_modules/jquery/src/core/support.js +20 -0
- data/spec/dummy/node_modules/jquery/src/core/var/rsingleTag.js +6 -0
- data/spec/dummy/node_modules/jquery/src/core.js +476 -0
- data/spec/dummy/node_modules/jquery/src/css/addGetHookIf.js +26 -0
- data/spec/dummy/node_modules/jquery/src/css/adjustCSS.js +71 -0
- data/spec/dummy/node_modules/jquery/src/css/curCSS.js +65 -0
- data/spec/dummy/node_modules/jquery/src/css/hiddenVisibleSelectors.js +15 -0
- data/spec/dummy/node_modules/jquery/src/css/showHide.js +105 -0
- data/spec/dummy/node_modules/jquery/src/css/support.js +89 -0
- data/spec/dummy/node_modules/jquery/src/css/var/cssExpand.js +5 -0
- data/spec/dummy/node_modules/jquery/src/css/var/getStyles.js +17 -0
- data/spec/dummy/node_modules/jquery/src/css/var/isHiddenWithinTree.js +34 -0
- data/spec/dummy/node_modules/jquery/src/css/var/rmargin.js +5 -0
- data/spec/dummy/node_modules/jquery/src/css/var/rnumnonpx.js +7 -0
- data/spec/dummy/node_modules/jquery/src/css/var/swap.js +26 -0
- data/spec/dummy/node_modules/jquery/src/css.js +438 -0
- data/spec/dummy/node_modules/jquery/src/data/Data.js +161 -0
- data/spec/dummy/node_modules/jquery/src/data/var/acceptData.js +19 -0
- data/spec/dummy/node_modules/jquery/src/data/var/dataPriv.js +7 -0
- data/spec/dummy/node_modules/jquery/src/data/var/dataUser.js +7 -0
- data/spec/dummy/node_modules/jquery/src/data.js +179 -0
- data/spec/dummy/node_modules/jquery/src/deferred/exceptionHook.js +21 -0
- data/spec/dummy/node_modules/jquery/src/deferred.js +391 -0
- data/spec/dummy/node_modules/jquery/src/deprecated.js +40 -0
- data/spec/dummy/node_modules/jquery/src/dimensions.js +56 -0
- data/spec/dummy/node_modules/jquery/src/effects/Tween.js +123 -0
- data/spec/dummy/node_modules/jquery/src/effects/animatedSelector.js +15 -0
- data/spec/dummy/node_modules/jquery/src/effects.js +699 -0
- data/spec/dummy/node_modules/jquery/src/event/ajax.js +22 -0
- data/spec/dummy/node_modules/jquery/src/event/alias.js +29 -0
- data/spec/dummy/node_modules/jquery/src/event/focusin.js +55 -0
- data/spec/dummy/node_modules/jquery/src/event/support.js +11 -0
- data/spec/dummy/node_modules/jquery/src/event/trigger.js +185 -0
- data/spec/dummy/node_modules/jquery/src/event.js +746 -0
- data/spec/dummy/node_modules/jquery/src/exports/amd.js +26 -0
- data/spec/dummy/node_modules/jquery/src/exports/global.js +34 -0
- data/spec/dummy/node_modules/jquery/src/jquery.js +41 -0
- data/spec/dummy/node_modules/jquery/src/manipulation/_evalUrl.js +23 -0
- data/spec/dummy/node_modules/jquery/src/manipulation/buildFragment.js +104 -0
- data/spec/dummy/node_modules/jquery/src/manipulation/getAll.js +32 -0
- data/spec/dummy/node_modules/jquery/src/manipulation/setGlobalEval.js +22 -0
- data/spec/dummy/node_modules/jquery/src/manipulation/support.js +35 -0
- data/spec/dummy/node_modules/jquery/src/manipulation/var/rcheckableType.js +5 -0
- data/spec/dummy/node_modules/jquery/src/manipulation/var/rscriptType.js +5 -0
- data/spec/dummy/node_modules/jquery/src/manipulation/var/rtagName.js +5 -0
- data/spec/dummy/node_modules/jquery/src/manipulation/wrapMap.js +29 -0
- data/spec/dummy/node_modules/jquery/src/manipulation.js +488 -0
- data/spec/dummy/node_modules/jquery/src/offset.js +229 -0
- data/spec/dummy/node_modules/jquery/src/queue/delay.js +24 -0
- data/spec/dummy/node_modules/jquery/src/queue.js +145 -0
- data/spec/dummy/node_modules/jquery/src/selector-native.js +237 -0
- data/spec/dummy/node_modules/jquery/src/selector-sizzle.js +19 -0
- data/spec/dummy/node_modules/jquery/src/selector.js +3 -0
- data/spec/dummy/node_modules/jquery/src/serialize.js +130 -0
- data/spec/dummy/node_modules/jquery/src/traversing/findFilter.js +106 -0
- data/spec/dummy/node_modules/jquery/src/traversing/var/dir.js +22 -0
- data/spec/dummy/node_modules/jquery/src/traversing/var/rneedsContext.js +8 -0
- data/spec/dummy/node_modules/jquery/src/traversing/var/siblings.js +17 -0
- data/spec/dummy/node_modules/jquery/src/traversing.js +191 -0
- data/spec/dummy/node_modules/jquery/src/var/ObjectFunctionString.js +7 -0
- data/spec/dummy/node_modules/jquery/src/var/arr.js +5 -0
- data/spec/dummy/node_modules/jquery/src/var/class2type.js +6 -0
- data/spec/dummy/node_modules/jquery/src/var/concat.js +7 -0
- data/spec/dummy/node_modules/jquery/src/var/document.js +5 -0
- data/spec/dummy/node_modules/jquery/src/var/documentElement.js +7 -0
- data/spec/dummy/node_modules/jquery/src/var/fnToString.js +7 -0
- data/spec/dummy/node_modules/jquery/src/var/getProto.js +5 -0
- data/spec/dummy/node_modules/jquery/src/var/hasOwn.js +7 -0
- data/spec/dummy/node_modules/jquery/src/var/indexOf.js +7 -0
- data/spec/dummy/node_modules/jquery/src/var/pnum.js +5 -0
- data/spec/dummy/node_modules/jquery/src/var/push.js +7 -0
- data/spec/dummy/node_modules/jquery/src/var/rcssNum.js +9 -0
- data/spec/dummy/node_modules/jquery/src/var/rnothtmlwhite.js +8 -0
- data/spec/dummy/node_modules/jquery/src/var/slice.js +7 -0
- data/spec/dummy/node_modules/jquery/src/var/support.js +6 -0
- data/spec/dummy/node_modules/jquery/src/var/toString.js +7 -0
- data/spec/dummy/node_modules/jquery/src/wrap.js +77 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/AUTHORS.txt +333 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/LICENSE.txt +43 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/external/jquery/jquery.js +11008 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_444444_256x240.png +0 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_555555_256x240.png +0 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_777620_256x240.png +0 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_777777_256x240.png +0 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_cc0000_256x240.png +0 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_ffffff_256x240.png +0 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/index.html +559 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.css +1312 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.js +18706 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.min.css +7 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.min.js +13 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.structure.css +886 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.structure.min.css +5 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.theme.css +443 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.theme.min.css +5 -0
- data/spec/dummy/node_modules/jquery-ui-bundle/package.json +33 -0
- data/spec/dummy/node_modules/jquery-ujs/CONTRIBUTING.md +109 -0
- data/spec/dummy/node_modules/jquery-ujs/MIT-LICENSE +20 -0
- data/spec/dummy/node_modules/jquery-ujs/README.md +86 -0
- data/spec/dummy/node_modules/jquery-ujs/RELEASE.md +23 -0
- data/spec/dummy/node_modules/jquery-ujs/bower.json +19 -0
- data/spec/dummy/node_modules/jquery-ujs/package.json +26 -0
- data/spec/dummy/node_modules/jquery-ujs/src/rails.js +555 -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/vendor/extensions/multi-site-extension/lib/multi_site/admin_ui.rb +45 -0
- data/vendor/extensions/multi-site-extension/lib/multi_site/application_controller_extensions.rb +40 -0
- data/vendor/extensions/multi-site-extension/lib/multi_site/application_controller_filter_extensions.rb +22 -0
- data/vendor/extensions/multi-site-extension/lib/multi_site/engine.rb +10 -0
- data/vendor/extensions/multi-site-extension/lib/multi_site/page_extensions.rb +81 -0
- data/vendor/extensions/multi-site-extension/lib/multi_site/pages_controller_extensions.rb +55 -0
- data/vendor/extensions/multi-site-extension/lib/multi_site/resource_controller_extensions.rb +42 -0
- data/vendor/extensions/multi-site-extension/lib/multi_site/route_extensions.rb +22 -0
- data/vendor/extensions/multi-site-extension/lib/multi_site/route_set_extensions.rb +17 -0
- data/vendor/extensions/multi-site-extension/lib/multi_site/scoped_model.rb +133 -0
- data/vendor/extensions/multi-site-extension/lib/multi_site/scoped_validation.rb +33 -0
- data/vendor/extensions/multi-site-extension/lib/multi_site/site_chooser_helper.rb +14 -0
- data/vendor/extensions/multi-site-extension/lib/multi_site/site_controller_extensions.rb +30 -0
- data/vendor/extensions/multi-site-extension/lib/tasks/multi_site_extension_tasks.rake +28 -0
- data/vendor/extensions/multi-site-extension/lib/tasks/scoped_admin_extension_tasks.rake +28 -0
- data/vendor/extensions/multi-site-extension/lib/trusty-multi-site-extension.rb +1 -0
- data/vendor/extensions/multi-site-extension/multi_site_extension.rb +61 -0
- data/vendor/extensions/snippets-extension/lib/trusty-snippets-extension.rb +0 -0
- data/vendor/extensions/snippets-extension/snippets_extension.rb +46 -0
- metadata +347 -8
@@ -0,0 +1,43 @@
|
|
1
|
+
= stylesheet_link_tag 'admin/multi_site'
|
2
|
+
= render_region :top
|
3
|
+
|
4
|
+
%h1 Sites
|
5
|
+
|
6
|
+
%table{:class => "index", :cellspacing => "0"}
|
7
|
+
%thead
|
8
|
+
%tr
|
9
|
+
- render_region :thead do |thead|
|
10
|
+
- thead.title_header do
|
11
|
+
%th.site Name
|
12
|
+
- thead.domain_header do
|
13
|
+
%th.domain Domain match
|
14
|
+
- thead.basedomain_header do
|
15
|
+
%th.basedomain Base domain
|
16
|
+
- thead.modify_header do
|
17
|
+
%th.remove Delete
|
18
|
+
- thead.order_header do
|
19
|
+
%th.order Order
|
20
|
+
%tbody
|
21
|
+
- @sites.each do |site|
|
22
|
+
%tr.node.level-1
|
23
|
+
- render_region :tbody do |tbody|
|
24
|
+
- tbody.title_cell do
|
25
|
+
%td.site
|
26
|
+
= link_to site.name, edit_admin_site_path(site)
|
27
|
+
- tbody.domain_cell do
|
28
|
+
%td.domain
|
29
|
+
= h(site.domain)
|
30
|
+
- tbody.basedomain_cell do
|
31
|
+
%td.basedomain
|
32
|
+
= h(site.base_domain)
|
33
|
+
- tbody.modify_cell do
|
34
|
+
%td.remove
|
35
|
+
= link_to image("remove.png", :alt => "Remove"), admin_site_path(site), :method => :delete, :confirm => "Are you sure you want to permanently remove #{site.name}?"
|
36
|
+
- tbody.order_cell do
|
37
|
+
%td.order
|
38
|
+
= order_links(site).html_safe
|
39
|
+
|
40
|
+
- render_region :bottom do |bottom|
|
41
|
+
- bottom.new_button do
|
42
|
+
%p
|
43
|
+
= link_to "New Site", new_admin_site_path
|
@@ -0,0 +1,6 @@
|
|
1
|
+
- unless current_user.site
|
2
|
+
%p{:style => 'float: left; margin-right: 32px'}
|
3
|
+
%label{:for=>"snippet_site_id", :Class => "admin_only"}
|
4
|
+
Site
|
5
|
+
- sites = Site.all.map { |s| [s.name, s.id] }
|
6
|
+
= select :snippet, :site_id, sites, :include_blank => Snippet.is_shareable?, :selected => @snippet.site_id || current_site.id
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,8 @@
|
|
1
|
+
- unless current_user.site
|
2
|
+
%tr
|
3
|
+
%th.label
|
4
|
+
%label{:for=>"user_admin"} Can edit site
|
5
|
+
%td.field{:style => 'text-align: left;'}
|
6
|
+
= select :user, :site_id, [['<any>', '']] + Site.all.map { |s| [s.name, s.id] }
|
7
|
+
%td.help
|
8
|
+
A user with no site is able to act (to whatever extent their status allows) on any site.
|
data/config/application.rb
CHANGED
@@ -92,8 +92,6 @@ module TrustyCms
|
|
92
92
|
# TODO: Workaround from: https://github.com/rtomayko/rack-cache/issues/80
|
93
93
|
config.middleware.insert_before(Rack::ConditionalGet, Rack::Cache)
|
94
94
|
config.assets.enabled = true
|
95
|
-
config.assets.paths << Rails.root.join('vendor', 'assets', 'bower_components')
|
96
|
-
|
97
95
|
|
98
96
|
config.filter_parameters += [:password, :password_confirmation]
|
99
97
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'multi_site/engine'
|
2
|
+
|
1
3
|
TrustyCms.config do |config|
|
2
4
|
config.define 'admin.title', :default => "TrustyCms CMS"
|
3
5
|
config.define 'dev.host'
|
@@ -14,8 +16,12 @@ TrustyCms.config do |config|
|
|
14
16
|
config.define 'site.host', :default => "www.example.com", :allow_blank => false
|
15
17
|
config.define 'user.allow_password_reset?', :default => true
|
16
18
|
config.define 'session_timeout', :default => 2.weeks
|
19
|
+
require 'multi_site/scoped_validation'
|
17
20
|
end
|
18
21
|
|
19
22
|
if TrustyCms.config_definitions['defaults.snippet.filter'].nil?
|
20
23
|
TrustyCms.config.define 'defaults.snippet.filter', :select_from => lambda { TextFilter.descendants.map { |s| s.filter_name }.sort }, :allow_blank => true
|
21
24
|
end
|
25
|
+
|
26
|
+
Admin::LayoutsController.send :helper, MultiSite::SiteChooserHelper
|
27
|
+
Admin::SnippetsController.send :helper, MultiSite::SiteChooserHelper
|
data/config/routes.rb
CHANGED
@@ -33,6 +33,14 @@ TrustyCms::Application.routes.draw do
|
|
33
33
|
resources :page_parts
|
34
34
|
resources :page_fields
|
35
35
|
match '/reference/:type(.:format)' => 'references#show', :as => :reference, :via => :get
|
36
|
+
|
37
|
+
resources :sites do
|
38
|
+
get :remove, on: :member
|
39
|
+
post :move_higher, on: :member
|
40
|
+
post :move_lower, on: :member
|
41
|
+
put :move_to_top, on: :member
|
42
|
+
put :move_to_bottom, on: :member
|
43
|
+
end
|
36
44
|
end
|
37
45
|
|
38
46
|
get 'admin' => 'admin/welcome#index', :as => :admin
|