cms-fortress 1.2.2 → 1.3.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +66 -0
- data/Gemfile +2 -17
- data/Gemfile.lock +80 -90
- data/README.rdoc +11 -0
- data/Rakefile +9 -39
- data/app/controllers/cms/fortress/admin_controller.rb +5 -0
- data/app/controllers/cms/fortress/roles_controller.rb +11 -21
- data/app/controllers/cms/fortress/users_controller.rb +48 -31
- data/app/helpers/cms/fortress/application_helper.rb +37 -5
- data/app/helpers/comfy/admin/cms/pages_helper.rb +22 -0
- data/app/models/cms/fortress/error.rb +17 -0
- data/app/models/cms/fortress/role.rb +2 -1
- data/app/models/cms/fortress/settings.rb +17 -0
- data/app/models/cms/fortress/user.rb +17 -0
- data/app/models/cms_ability.rb +29 -22
- data/app/views/cms/fortress/admin/dashboard.html.haml +12 -0
- data/app/views/cms/fortress/shared/_dashboard_widget.html.haml +29 -0
- data/app/views/cms/fortress/shared/_menu.html.haml +26 -26
- data/app/views/cms/fortress/shared/_navbar.html.haml +1 -1
- data/app/views/cms/fortress/shared/_page_extend.html.haml +3 -5
- data/app/views/cms/fortress/shared/_page_extend_js.html.haml +2 -14
- data/app/views/cms/fortress/themes/wide/_body.html.haml +9 -8
- data/app/views/cms/fortress/themes/wide/_menu.html.haml +70 -37
- data/app/views/cms/fortress/users/_form.html.haml +6 -1
- data/app/views/cms/fortress/users/edit.html.haml +1 -2
- data/app/views/cms/fortress/users/index.html.haml +14 -5
- data/app/views/cms/fortress/users/new.html.haml +1 -2
- data/app/views/comfy/admin/cms/pages/_form.html.haml +10 -4
- data/app/views/comfy/admin/cms/pages/edit.html.haml +25 -0
- data/app/views/layouts/comfy/admin/cms/_head.html.haml +1 -1
- data/app/views/layouts/comfy/admin/cms/_left.html.haml +15 -12
- data/bin/bundle +3 -0
- data/bin/rails +4 -0
- data/bin/rake +4 -0
- data/cms-fortress.gemspec +32 -171
- data/config.ru +4 -0
- data/config/application.rb +34 -0
- data/config/boot.rb +5 -0
- data/config/cms/fortress/global_settings.yml +12 -0
- data/config/cms_routes.rb +7 -0
- data/config/database.yml +11 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +29 -0
- data/config/environments/test.rb +36 -0
- data/config/initializers/devise.rb +256 -0
- data/config/initializers/secret_token.rb +14 -0
- data/config/locales/de.yml +28 -1
- data/config/locales/devise.en.yml +59 -0
- data/config/locales/en.yml +37 -1
- data/config/roles.yml +1 -0
- data/config/secrets.yml +14 -0
- data/db/migrate/06_add_type_to_users.rb +11 -0
- data/db/migrate/07_integrate_workflow_into_cms_pages.rb +37 -0
- data/db/schema.rb +182 -0
- data/lib/assets/.keep +0 -0
- data/lib/cms-fortress.rb +10 -1
- data/lib/cms/fortress/application_controller_methods.rb +5 -2
- data/lib/cms/fortress/page_methods.rb +52 -2
- data/lib/cms/fortress/pages_controller_methods.rb +17 -0
- data/lib/cms/fortress/rails/engine.rb +12 -3
- data/lib/cms/fortress/routes/admin.rb +9 -1
- data/lib/cms/fortress/site_methods.rb +29 -0
- data/lib/cms/fortress/sites_controller_methods.rb +22 -0
- data/lib/generators/cms/comfy/comfy_generator.rb +18 -0
- data/lib/generators/cms/fortress/fortress_generator.rb +30 -6
- data/lib/generators/cms/fortress/upgrade/USAGE +8 -0
- data/lib/generators/cms/fortress/upgrade/upgrade_generator.rb +24 -0
- data/lib/tasks/.keep +0 -0
- data/test/{functional → controllers}/cms/fortress/roles_controller_test.rb +9 -4
- data/test/{functional → controllers}/cms/fortress/users_controller_test.rb +10 -11
- data/test/controllers/comfy/admin/cms/pages_controller_test.rb +115 -0
- data/test/fixtures/cms/fortress/role_details.yml +89 -8
- data/test/fixtures/cms/fortress/roles.yml +17 -0
- data/test/fixtures/cms/fortress/users.yml +14 -0
- data/test/fixtures/comfy/cms/blocks.yml +12 -0
- data/test/fixtures/comfy/cms/categories.yml +4 -0
- data/test/fixtures/comfy/cms/categorizations.yml +3 -0
- data/test/fixtures/comfy/cms/files.yml +9 -0
- data/test/fixtures/comfy/cms/layouts.yml +40 -0
- data/test/fixtures/comfy/cms/pages.yml +105 -0
- data/test/fixtures/comfy/cms/revisions.yml +21 -0
- data/test/fixtures/comfy/cms/sites.yml +6 -0
- data/test/fixtures/comfy/cms/snippets.yml +6 -0
- data/test/integration/cms/fortress/users_controller_test.rb +16 -0
- data/test/models/comfy/cms/page_test.rb +84 -0
- data/test/models/comfy/cms/settings_test.rb +16 -0
- data/test/test_helper.rb +25 -0
- metadata +157 -23
- data/app/models/cms/page_workflow.rb +0 -44
- data/app/models/error/missing_role_configuration_file.rb +0 -12
- data/lib/generators/comfy/cms/cms_generator.rb +0 -60
- data/test/fixtures/cms/page_workflows.yml +0 -11
- data/test/helper.rb +0 -18
- data/test/test_cms-fortress.rb +0 -7
- data/test/unit/cms/fortress/role_detail_test.rb +0 -7
- data/test/unit/cms/fortress/role_test.rb +0 -7
- data/test/unit/cms/fortress/role_user_test.rb +0 -7
- data/test/unit/helpers/cms/fortress/roles_helper_test.rb +0 -4
- data/test/unit/helpers/cms/fortress/users_helper_test.rb +0 -4
@@ -1,57 +1,60 @@
|
|
1
1
|
class Cms::Fortress::UsersController < Comfy::Admin::Cms::BaseController
|
2
|
-
|
2
|
+
before_action do
|
3
3
|
authorize! :manage, Cms::Fortress::User
|
4
4
|
end
|
5
|
+
before_action :set_user, :valid_super, only: [:show, :edit, :update, :destroy]
|
6
|
+
before_action :check_super, only: [:super, :new_super]
|
5
7
|
|
6
8
|
# GET /cms/fortress/users
|
7
9
|
# GET /cms/fortress/users.json
|
8
10
|
def index
|
9
|
-
@
|
11
|
+
@super_user = false
|
12
|
+
@cms_fortress_users = @site.users
|
13
|
+
end
|
10
14
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
+
def super
|
16
|
+
@super_user = true
|
17
|
+
@cms_fortress_users = Cms::Fortress::User.all_super
|
18
|
+
render action: :index
|
15
19
|
end
|
16
20
|
|
17
21
|
# GET /cms/fortress/users/1
|
18
22
|
# GET /cms/fortress/users/1.json
|
19
23
|
def show
|
20
|
-
@cms_fortress_user = Cms::Fortress::User.find(params[:id])
|
21
|
-
|
22
|
-
respond_to do |format|
|
23
|
-
format.html # show.html.erb
|
24
|
-
format.json { render json: @cms_fortress_user }
|
25
|
-
end
|
26
24
|
end
|
27
25
|
|
28
26
|
# GET /cms/fortress/users/new
|
29
27
|
# GET /cms/fortress/users/new.json
|
30
28
|
def new
|
31
|
-
@
|
29
|
+
@super_user = false
|
30
|
+
@cms_fortress_user = @site.users.build(type_id: 2)
|
31
|
+
end
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
def new_super
|
34
|
+
@super_user = true
|
35
|
+
@cms_fortress_user = Cms::Fortress::User.new(type_id: 1)
|
36
|
+
render action: :new
|
37
37
|
end
|
38
38
|
|
39
39
|
# GET /cms/fortress/users/1/edit
|
40
40
|
def edit
|
41
|
-
@cms_fortress_user = Cms::Fortress::User.find(params[:id])
|
42
41
|
end
|
43
42
|
|
44
43
|
# POST /cms/fortress/users
|
45
44
|
# POST /cms/fortress/users.json
|
46
45
|
def create
|
47
|
-
@cms_fortress_user =
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
46
|
+
@cms_fortress_user = @site.users.build(user_params)
|
47
|
+
raise CanCan::AccessDenied.new("Your are not allowed to create a super user.") if @cms_fortress_user.type.eql?(:super_user) && !current_cms_fortress_user.type.eql?(:super_user)
|
48
|
+
@cms_fortress_user.site_id = nil if @cms_fortress_user.type.eql?(:super_user)
|
49
|
+
|
50
|
+
if @cms_fortress_user.save
|
51
|
+
flash[:success] = "User was successfully created."
|
52
|
+
respond_to do |format|
|
53
|
+
format.html { redirect_to @cms_fortress_user.type.eql?(:super_user) ? super_cms_fortress_users_path : cms_fortress_users_path }
|
53
54
|
format.json { render json: @cms_fortress_user, status: :created, location: @cms_fortress_user }
|
54
|
-
|
55
|
+
end
|
56
|
+
else
|
57
|
+
respond_to do |format|
|
55
58
|
format.html { render action: "new" }
|
56
59
|
format.json { render json: @cms_fortress_user.errors, status: :unprocessable_entity }
|
57
60
|
end
|
@@ -61,9 +64,10 @@ class Cms::Fortress::UsersController < Comfy::Admin::Cms::BaseController
|
|
61
64
|
# PUT /cms/fortress/users/1
|
62
65
|
# PUT /cms/fortress/users/1.json
|
63
66
|
def update
|
64
|
-
@cms_fortress_user = Cms::Fortress::User.find(params[:id])
|
65
|
-
|
66
67
|
user = user_params
|
68
|
+
|
69
|
+
raise CanCan::AccessDenied.new("Your are not allowed to create a super user.") if user[:type_id].eql?(1) && !current_cms_fortress_user.type.eql?(:super_user)
|
70
|
+
|
67
71
|
if user[:password].blank?
|
68
72
|
user.delete(:password)
|
69
73
|
user.delete(:password_confirmation) if user[:password_confirmation].blank?
|
@@ -72,7 +76,7 @@ class Cms::Fortress::UsersController < Comfy::Admin::Cms::BaseController
|
|
72
76
|
respond_to do |format|
|
73
77
|
if @cms_fortress_user.update_attributes(user)
|
74
78
|
flash[:success] = "User was successfully updated."
|
75
|
-
format.html { redirect_to cms_fortress_users_path }
|
79
|
+
format.html { redirect_to @cms_fortress_user.type.eql?(:super_user) ? super_cms_fortress_users_path : cms_fortress_users_path }
|
76
80
|
format.json { head :no_content }
|
77
81
|
else
|
78
82
|
format.html { render action: "edit" }
|
@@ -84,18 +88,31 @@ class Cms::Fortress::UsersController < Comfy::Admin::Cms::BaseController
|
|
84
88
|
# DELETE /cms/fortress/users/1
|
85
89
|
# DELETE /cms/fortress/users/1.json
|
86
90
|
def destroy
|
87
|
-
@cms_fortress_user = Cms::Fortress::User.find(params[:id])
|
88
91
|
@cms_fortress_user.destroy
|
89
92
|
|
90
93
|
respond_to do |format|
|
91
|
-
format.html { redirect_to
|
94
|
+
format.html { redirect_to @cms_fortress_user.type.eql?(:super_user) ? super_cms_fortress_users_path : cms_fortress_users_path }
|
92
95
|
format.json { head :no_content }
|
93
96
|
end
|
94
97
|
end
|
95
98
|
|
96
99
|
private
|
97
100
|
|
101
|
+
def valid_super
|
102
|
+
raise CanCan::AccessDenied.new("Your are not authorised to execute this process.") if @cms_fortress_user.type.eql?(:super_user) && !current_cms_fortress_user.type.eql?(:super_user)
|
103
|
+
@super_user = @cms_fortress_user.type.eql?(:super_user)
|
104
|
+
end
|
105
|
+
|
106
|
+
def check_super
|
107
|
+
raise CanCan::AccessDenied.new("Your are not authorised to execute this process.") unless current_cms_fortress_user.type.eql?(:super_user)
|
108
|
+
# @super_user = current_cms_fortress_user.type.eql?(:super_user)
|
109
|
+
end
|
110
|
+
|
111
|
+
def set_user
|
112
|
+
@cms_fortress_user = Cms::Fortress::User.find(params[:id]) # @site.users.where(id: params[:id]).first
|
113
|
+
end
|
114
|
+
|
98
115
|
def user_params
|
99
|
-
params.require(:cms_fortress_user).permit(:last_name, :first_name, :email, :role_id, :password, :password_confirmation)
|
116
|
+
params.require(:cms_fortress_user).permit(:last_name, :first_name, :email, :type_id, :role_id, :password, :password_confirmation)
|
100
117
|
end
|
101
118
|
end
|
@@ -1,4 +1,12 @@
|
|
1
|
+
require 'cms/fortress/settings'
|
2
|
+
require 'cms/fortress/error'
|
3
|
+
|
1
4
|
module Cms::Fortress::ApplicationHelper
|
5
|
+
|
6
|
+
def dashboard_widget(title, collection)
|
7
|
+
render partial: "cms/fortress/shared/dashboard_widget", locals: {title: title, collection: collection}
|
8
|
+
end
|
9
|
+
|
2
10
|
def role_display(command)
|
3
11
|
res = command.split(".")
|
4
12
|
raw "#{content_tag(:strong, t("cms.fortress.roles.#{res.first}")) } / #{ res[1..-1].map {|r| t("cms.fortress.roles.#{r}")}.join(" - ") }"
|
@@ -19,18 +27,38 @@ module Cms::Fortress::ApplicationHelper
|
|
19
27
|
def back_path
|
20
28
|
case controller_name
|
21
29
|
when "pages"
|
22
|
-
comfy_admin_cms_site_pages_path
|
30
|
+
comfy_admin_cms_site_pages_path(@site)
|
23
31
|
when "files"
|
24
|
-
comfy_admin_cms_site_files_path
|
32
|
+
comfy_admin_cms_site_files_path(@site)
|
25
33
|
when "layouts"
|
26
|
-
comfy_admin_cms_site_layouts_path
|
34
|
+
comfy_admin_cms_site_layouts_path(@site)
|
27
35
|
when "snippets"
|
28
|
-
comfy_admin_cms_site_snippets_path
|
36
|
+
comfy_admin_cms_site_snippets_path(@site)
|
29
37
|
else
|
30
38
|
""
|
31
39
|
end
|
32
40
|
end
|
33
41
|
|
42
|
+
def topnav_resource_item(key, resource)
|
43
|
+
if ["divider", "dropdown-header"].include?(resource[:name])
|
44
|
+
title = resource[:title].nil? ? "" : t(resource[:title], site_name: @site.label)
|
45
|
+
content_tag(:li, title, class: resource[:name], role: "presentation")
|
46
|
+
else
|
47
|
+
if can? :view, "#{ key }.#{ resource[:name] }"
|
48
|
+
if path = resource_path(resource[:path])
|
49
|
+
topnav_item t(resource[:title]), path, current_page?(path)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def resource_path(path)
|
56
|
+
begin
|
57
|
+
eval(path)
|
58
|
+
rescue
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
34
62
|
def media_files_path(type)
|
35
63
|
if params[:site_id]
|
36
64
|
if type.eql?(:image)
|
@@ -59,7 +87,7 @@ module Cms::Fortress::ApplicationHelper
|
|
59
87
|
|
60
88
|
def topnav_item(title, path, is_current = false)
|
61
89
|
css_class = is_current ? "active" : ""
|
62
|
-
content_tag(:li, link_to(title, path), class: css_class)
|
90
|
+
content_tag(:li, link_to(title, path), class: css_class, role: "presentation")
|
63
91
|
end
|
64
92
|
|
65
93
|
def leftnav_item(title, path, options = {})
|
@@ -85,5 +113,9 @@ module Cms::Fortress::ApplicationHelper
|
|
85
113
|
map { |resource| resource[:name] }.
|
86
114
|
include?(controller_name)
|
87
115
|
end
|
116
|
+
|
117
|
+
def settings
|
118
|
+
Cms::Fortress::Settings.new(:global_settings)
|
119
|
+
end
|
88
120
|
end
|
89
121
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Comfy::Admin::Cms::PagesHelper
|
2
|
+
def page_actions(page)
|
3
|
+
states = page.aasm.permissible_events
|
4
|
+
states.select! do |state|
|
5
|
+
can?(:manage, 'contents.page.'+state.to_s)
|
6
|
+
end
|
7
|
+
states
|
8
|
+
end
|
9
|
+
|
10
|
+
def cached_timeout_for_select
|
11
|
+
{
|
12
|
+
"Uncached" => 0,
|
13
|
+
"15 minutes" => 15.minutes,
|
14
|
+
"30 minutes" => 30.minutes,
|
15
|
+
"1 hour" => 1.hour,
|
16
|
+
"3 hours" => 3.hours,
|
17
|
+
"24 hours" => 1.day,
|
18
|
+
"15 days" => 15.days,
|
19
|
+
"30 days" => 30.days
|
20
|
+
}.map {|k,v| [k, v.to_i] }
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Cms::Fortress::Error
|
2
|
+
def self.log_error(name, message)
|
3
|
+
Rails.logger.fatal("[ERROR:] in #{name} with message: #{message}\n\n")
|
4
|
+
end
|
5
|
+
|
6
|
+
class MissingRoleConfigFile < StandardError
|
7
|
+
def initialize
|
8
|
+
Cms::Fortress::Error.log_error(self, "missing the roles.yml file in config/roles.yml")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class MissingSettingsFile < StandardError
|
13
|
+
def initialize
|
14
|
+
Cms::Fortress::Error.log_error(self, "missing cms-fortress settings file")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -4,6 +4,7 @@ class Cms::Fortress::Role < ActiveRecord::Base
|
|
4
4
|
# attr_accessible :description, :name
|
5
5
|
has_many :users
|
6
6
|
has_many :role_details
|
7
|
+
belongs_to :site, class_name: "Comfy::Cms::Site", foreign_key: :site_id
|
7
8
|
accepts_nested_attributes_for :role_details, allow_destroy: true
|
8
9
|
|
9
10
|
def load_defaults
|
@@ -12,7 +13,7 @@ class Cms::Fortress::Role < ActiveRecord::Base
|
|
12
13
|
load_from_file(file)
|
13
14
|
else
|
14
15
|
errors[:base] << I18n.t('cms.fortress.admin.errors.missing_roles_yaml_file')
|
15
|
-
raise Error::MissingRoleConfigurationFile
|
16
|
+
raise Cms::Fortress::Error::MissingRoleConfigurationFile
|
16
17
|
end
|
17
18
|
end
|
18
19
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class Cms::Fortress::Settings < OpenStruct
|
2
|
+
def initialize(config_file_base_name)
|
3
|
+
@config_file_base_name = config_file_base_name
|
4
|
+
super(load_settings)
|
5
|
+
end
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def load_settings
|
10
|
+
raise Cms::Fortress::Error::MissingSettingsFile unless config_file_exists?
|
11
|
+
YAML.load(ERB.new(File.read(Rails.root.join("config/cms/fortress", "#{@config_file_base_name}.yml"))).result)[Rails.env]
|
12
|
+
end
|
13
|
+
|
14
|
+
def config_file_exists?
|
15
|
+
File.exist?(File.join(Rails.root, "config/cms/fortress", "#{@config_file_base_name}.yml"))
|
16
|
+
end
|
17
|
+
end
|
@@ -9,5 +9,22 @@ class Cms::Fortress::User < ActiveRecord::Base
|
|
9
9
|
:recoverable, :rememberable, :trackable, :validatable, :timeoutable
|
10
10
|
|
11
11
|
belongs_to :role
|
12
|
+
belongs_to :site, class_name: "Comfy::Cms::Site", foreign_key: :site_id
|
12
13
|
|
14
|
+
scope :all_super, -> { where(type_id: 1) }
|
15
|
+
|
16
|
+
def self.types
|
17
|
+
{
|
18
|
+
1 => :super_user,
|
19
|
+
2 => :site_user
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
def type
|
24
|
+
self.class.types[type_id]
|
25
|
+
end
|
26
|
+
|
27
|
+
def display_name
|
28
|
+
"#{ email } (#{ type.to_s.titleize })"
|
29
|
+
end
|
13
30
|
end
|
data/app/models/cms_ability.rb
CHANGED
@@ -16,32 +16,39 @@ class CmsAbility
|
|
16
16
|
|
17
17
|
def initialize(user)
|
18
18
|
|
19
|
-
if user
|
20
|
-
user.
|
21
|
-
can :
|
22
|
-
|
19
|
+
if user
|
20
|
+
if user.type.eql?(:super_user)
|
21
|
+
can :manage, :all
|
22
|
+
else
|
23
|
+
if user.role && user.role.role_details
|
24
|
+
user.role.role_details.each do |role_detail|
|
25
|
+
can :view, role_detail.command if role_detail.can_view?
|
26
|
+
can :manage, role_detail.command if role_detail.can_manage?
|
23
27
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
28
|
+
if role_detail.can_manage?
|
29
|
+
case role_detail.command
|
30
|
+
when 'settings.roles'
|
31
|
+
can :manage, Cms::Fortress::Role, site_id: user.site_id
|
32
|
+
when 'settings.sites'
|
33
|
+
can :update, Comfy::Cms::Site, site_id: user.site_id
|
34
|
+
when 'settings.users'
|
35
|
+
can :manage, Cms::Fortress::User, site_id: user.site_id
|
36
|
+
when 'contents.pages'
|
37
|
+
can :manage, Comfy::Cms::Page, site_id: user.site_id
|
38
|
+
when 'contents.files'
|
39
|
+
can :manage, Comfy::Cms::File, site_id: user.site_id
|
40
|
+
when 'designs.layouts'
|
41
|
+
can :manage, Comfy::Cms::Layout, site_id: user.site_id
|
42
|
+
when 'designs.snippets'
|
43
|
+
can :manage, Comfy::Cms::Snippet, site_id: user.site_id
|
44
|
+
else
|
45
|
+
setup_role(role_detail, user) if defined?(setup_role)
|
46
|
+
end
|
47
|
+
end
|
42
48
|
end
|
43
49
|
end
|
44
50
|
end
|
51
|
+
|
45
52
|
end
|
46
53
|
|
47
54
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
.page-header
|
2
|
+
%h2
|
3
|
+
= "#{ t(".title") } /"
|
4
|
+
= @site.label
|
5
|
+
|
6
|
+
.container-fluid
|
7
|
+
.row
|
8
|
+
.col-sm-6
|
9
|
+
= dashboard_widget t(".draft_widget"), @site.pages.drafted.order(updated_at: :desc).limit(5)
|
10
|
+
= dashboard_widget t(".updated_pages"), @site.pages.order(updated_at: :desc).limit(5)
|
11
|
+
.col-sm-6
|
12
|
+
= dashboard_widget t(".reviewed_widget"), @site.pages.reviewed.order(updated_at: :desc).limit(5)
|
@@ -0,0 +1,29 @@
|
|
1
|
+
.panel-group(id="accordion-#{ title.parameterize }")
|
2
|
+
.panel.panel-default
|
3
|
+
.panel-heading
|
4
|
+
= title
|
5
|
+
%a.btn.btn-xs.btn-default.pull-right(data-toggle="collapse" href="#cl-#{ title.parameterize }" data-parent="#accordion-#{ title.parameterize }")
|
6
|
+
%span.glyphicon.glyphicon-minus
|
7
|
+
|
8
|
+
.panel-collapse.collapse.in(id="cl-#{ title.parameterize }")
|
9
|
+
.panel-body
|
10
|
+
%ul.list-group
|
11
|
+
- collection.each do |c|
|
12
|
+
%li.list-group-item
|
13
|
+
.row
|
14
|
+
.col-xs-6
|
15
|
+
= c.label
|
16
|
+
%br
|
17
|
+
%small
|
18
|
+
(
|
19
|
+
= c.full_path
|
20
|
+
)
|
21
|
+
.col-xs-6
|
22
|
+
= link_to edit_comfy_admin_cms_site_page_path(@site, c), class: "btn btn-xs btn-default" do
|
23
|
+
%span.glyphicon.glyphicon-edit
|
24
|
+
Edit
|
25
|
+
|
26
|
+
= link_to comfy_admin_cms_site_page_path(@site, c, preview: true), target: "_blank", method: :put, class: "btn btn-xs btn-default" do
|
27
|
+
%span.glyphicon.glyphicon-search
|
28
|
+
Preview
|
29
|
+
|
@@ -1,17 +1,19 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
.
|
4
|
-
|
5
|
-
%
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
-
|
1
|
+
- if default_theme?
|
2
|
+
%nav.navbar.navbar-default(role="navigation")
|
3
|
+
.container-fluid
|
4
|
+
.navbar-header
|
5
|
+
%button.navbar-toggle(type="button" data-toggle="collapse" data-target="#main-nav")
|
6
|
+
%span.sr-only= t('cms.fortress.toggle_navigation')
|
7
|
+
%span.icon-bar
|
8
|
+
%span.icon-bar
|
9
|
+
%span.icon-bar
|
10
|
+
= link_to settings.title, settings.title_link, class: 'navbar-brand'
|
11
|
+
|
12
|
+
.collapse.navbar-collapse#main-nav
|
13
|
+
%ul.nav.navbar-nav
|
14
14
|
- if @site && !@site.new_record?
|
15
|
+
%li= topnav_item "Dashboard", dashboard_site_path, current_page?(dashboard_site_path)
|
16
|
+
|
15
17
|
- if Cms::Fortress.configuration.content_resources.any? {|resource| can? :view, "contents.#{resource[:name]}" }
|
16
18
|
= topnav_item t("cms.fortress.contents"), |
|
17
19
|
@site && !@site.new_record? ? comfy_admin_cms_site_pages_path(@site) : comfy_admin_cms_sites_pages_path, |
|
@@ -25,19 +27,17 @@
|
|
25
27
|
- if Cms::Fortress.configuration.settings_resources.any? {|resource| can? :view, "settings.#{resource[:name]}" }
|
26
28
|
= topnav_item t("cms.fortress.settings"), comfy_admin_cms_sites_path, admin_page?
|
27
29
|
|
28
|
-
|
29
|
-
= themed_partial('menu')
|
30
|
-
|
31
|
-
= render 'cms/fortress/admin/topnav'
|
32
|
-
|
33
|
-
- if current_cms_fortress_user
|
34
|
-
.btn-group.pull-right(style="margin-top: 8px;")
|
35
|
-
%button.btn.btn-default.dropdown-toggle(type="button" data-toggle="dropdown")
|
36
|
-
= current_cms_fortress_user.email
|
37
|
-
%span.caret
|
38
|
-
%ul.dropdown-menu(role="menu")
|
39
|
-
%li
|
40
|
-
= link_to t('cms.fortress.logout'), destroy_cms_fortress_user_session_path, :method => 'delete'
|
30
|
+
= render 'cms/fortress/admin/topnav'
|
41
31
|
|
32
|
+
- if current_cms_fortress_user
|
33
|
+
.btn-group.pull-right(style="margin-top: 8px;")
|
34
|
+
%button.btn.btn-default.dropdown-toggle(type="button" data-toggle="dropdown")
|
35
|
+
= current_cms_fortress_user.display_name
|
36
|
+
%span.caret
|
37
|
+
%ul.dropdown-menu(role="menu")
|
38
|
+
%li
|
39
|
+
= link_to t('cms.fortress.logout'), destroy_cms_fortress_user_session_path, :method => 'delete'
|
42
40
|
|
41
|
+
- else
|
42
|
+
= themed_partial('menu')
|
43
43
|
|