effective_pages 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a79dbb57c52dbba7a942dc5ab61f99dea6c2a425
4
- data.tar.gz: 2ff4f3480deba1e9393b951263f49cbd400cdfd6
3
+ metadata.gz: 0aef3abe04536ada75d9414bc51eccb62465ce35
4
+ data.tar.gz: bea3191fc4af0367e9e85d29612c2d724abe4505
5
5
  SHA512:
6
- metadata.gz: 5a9d35738f11252819d50d853d94b310295e54baea224b899d061e8d248a181b8cbe5c213343990b38f5e0505ac82d0725d9f0f9120af59397e3ec412a0678a3
7
- data.tar.gz: 19e5d44b424479ade5d01d74fdfd60ee93b0ea9423cc96d31bf13a310130d24e941511ec20cf79676be38f24bd586f8f3a1a5e70bc477564fd73032717087a0d
6
+ metadata.gz: db5bb110ec6c88ad6476042479f425afb20ad64c80d7f75d0a323a086fdc620080dc7b572401bfeb53c7672d2958545e6cd464dc5eadeb9601da29a9e46f166d
7
+ data.tar.gz: a7c417401d64a59fdafd7ecd8b41e99f643b816d25043e84b456ef7d174a0beb533789e3d4d737fcce3e37f5ddba09ce0654c4c045383eb227b716f1e2c9d151
@@ -2,6 +2,8 @@ module Admin
2
2
  class MenusController < ApplicationController
3
3
  before_filter :authenticate_user! # This is devise, ensure we're logged in.
4
4
 
5
+ helper EffectiveMenusAdminHelper
6
+
5
7
  layout (EffectivePages.layout.kind_of?(Hash) ? EffectivePages.layout[:admin] : EffectivePages.layout)
6
8
 
7
9
  def index
@@ -5,10 +5,7 @@ module Effective
5
5
  @pages = @pages.published if params[:edit].to_s != 'true'
6
6
 
7
7
  @page = @pages.find(params[:id])
8
-
9
- if defined?(EffectiveRoles)
10
- raise Effective::AccessDenied unless @page.roles_permit?(current_user)
11
- end
8
+ raise Effective::AccessDenied unless @page.roles_permit?(current_user)
12
9
 
13
10
  EffectivePages.authorized?(self, :show, @page)
14
11
 
@@ -0,0 +1,8 @@
1
+ module EffectiveMenusAdminHelper
2
+
3
+ def visible_badge(menu_item, stack, comparator)
4
+ visible = comparator.call(menu_item) && stack.all? { |parent_menu_item| parent_menu_item.lft == 1 || comparator.call(parent_menu_item) }
5
+ content_tag(:span, (visible ? 'YES'.freeze : 'NO'.freeze), :class => "label label-#{(visible ? 'primary' : 'warning')}")
6
+ end
7
+
8
+ end
@@ -8,7 +8,7 @@ module Effective
8
8
  self.table_name = EffectivePages.menu_items_table_name.to_s
9
9
  attr_protected() if Rails::VERSION::MAJOR == 3
10
10
 
11
- acts_as_role_restricted if defined?(EffectiveRoles)
11
+ acts_as_role_restricted
12
12
 
13
13
  structure do
14
14
  title :string, :validates => [:presence]
@@ -42,7 +42,7 @@ module Effective
42
42
  # This will work with effective_roles one day...
43
43
  def visible_for?(user)
44
44
  can_view_page = (
45
- if menuable.kind_of?(Effective::Page) && defined?(EffectiveRoles)
45
+ if menuable.kind_of?(Effective::Page)
46
46
  menuable.roles_permit?(user)
47
47
  else
48
48
  true
@@ -56,10 +56,8 @@ module Effective
56
56
  user.blank?
57
57
  elsif roles_mask == 0 # Am I logged in?
58
58
  user.present?
59
- elsif defined?(EffectiveRoles)
60
- roles_permit?(user)
61
59
  else
62
- false
60
+ roles_permit?(user)
63
61
  end
64
62
  )
65
63
 
@@ -1,8 +1,8 @@
1
1
  module Effective
2
2
  class Page < ActiveRecord::Base
3
3
  acts_as_sluggable
4
- acts_as_role_restricted if defined?(EffectiveRoles)
5
- acts_as_regionable if defined?(EffectiveRegions)
4
+ acts_as_role_restricted
5
+ acts_as_regionable
6
6
 
7
7
  has_many :menu_items, :as => :menuable, :dependent => :destroy
8
8
 
@@ -1,6 +1,31 @@
1
1
  = simple_form_for(menu, (EffectivePages.simple_form_options || {}).merge(:url => (menu.persisted? ? effective_pages.admin_menu_path(menu) : effective_pages.admin_menus_path))) do |f|
2
2
  = f.input :title, :hint => "Give this menu a title"
3
3
 
4
+ %h3 Menu Item Visibility
5
+
6
+ %table.table
7
+ %thead
8
+ %th Menu Item
9
+ %th.text-center Public
10
+ %th.text-center Signed In
11
+ - EffectiveRoles.roles.each do |role|
12
+ %th.text-center= ":#{role}"
13
+
14
+ %tbody
15
+ - stack = [menu.menu_items.first]
16
+ - menu.menu_items.each_with_index do |menu_item, index|
17
+ - next if index == 0
18
+ - stack.pop while menu_item.rgt > stack.last.rgt if stack.size > 1
19
+ %tr
20
+ %td
21
+ = ("&nbsp;&nbsp;" * (stack.size-1)).html_safe
22
+ = (menu_item.divider? ? ':divider' : menu_item.title)
23
+ %td.text-center= visible_badge(menu_item, stack, Proc.new { |item| item.roles_mask == nil || item.roles_mask == -1 })
24
+ %td.text-center= visible_badge(menu_item, stack, Proc.new { |item| item.roles_mask == nil || item.roles_mask == 0 })
25
+ - EffectiveRoles.roles.each do |role|
26
+ %td.text-center= visible_badge(menu_item, stack, Proc.new { |item| item.visible_for?(role) })
27
+ - stack.push(menu_item)
28
+
4
29
  .form-group
5
30
  .col-xs-12
6
31
  .form-group
@@ -18,7 +18,7 @@
18
18
  - else
19
19
  = f.input :layout, :as => :select, :collection => EffectivePages.layouts, :include_blank => false
20
20
 
21
- - if defined?(EffectiveRoles) and f.object.respond_to?(:roles)
21
+ - if f.object.respond_to?(:roles)
22
22
  = f.input :roles, :collection => EffectiveRoles.roles_collection(f.object), :as => :check_boxes, :hint => '* leave blank for a regular public page that anyone can view'
23
23
 
24
24
  .form-group
@@ -1,3 +1,3 @@
1
1
  module EffectivePages
2
- VERSION = '0.9.2'.freeze
2
+ VERSION = '0.9.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_pages
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-27 00:00:00.000000000 Z
11
+ date: 2015-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: 1.2.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: effective_roles
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 1.2.1
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 1.2.1
125
139
  description: Content pages, bootstrap3 menu builder and page-specific header tag helpers
126
140
  for your Rails app.
127
141
  email:
@@ -139,6 +153,7 @@ files:
139
153
  - app/controllers/admin/menus_controller.rb
140
154
  - app/controllers/admin/pages_controller.rb
141
155
  - app/controllers/effective/pages_controller.rb
156
+ - app/helpers/effective_menus_admin_helper.rb
142
157
  - app/helpers/effective_menus_helper.rb
143
158
  - app/helpers/effective_pages_helper.rb
144
159
  - app/models/effective/access_denied.rb