diff options
| author | Zog | 2018-01-17 09:43:37 +0100 |
|---|---|---|
| committer | Zog | 2018-01-25 17:17:59 +0100 |
| commit | b802b16973bbf760aa8af720856c4127656c2e07 (patch) | |
| tree | 7e42ad87b056fbe88b62189cc2023b200127599d /lib | |
| parent | 377ddcd306fb9e61e734aaf3762e05f448938af0 (diff) | |
| download | chouette-core-b802b16973bbf760aa8af720856c4127656c2e07.tar.bz2 | |
Refs #5586; Add a `feature` option on the `action_links`
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/af83/decorator.rb | 5 | ||||
| -rw-r--r-- | lib/af83/enhanced_decorator.rb | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/af83/decorator.rb b/lib/af83/decorator.rb index 80958fa02..d2e049857 100644 --- a/lib/af83/decorator.rb +++ b/lib/af83/decorator.rb @@ -196,6 +196,7 @@ class AF83::Decorator < ModelDecorator end enabled = enabled && check_policy(@options[:_policy]) if @options[:_policy].present? + enabled = enabled && check_feature(@options[:_feature]) if @options[:_feature].present? enabled end @@ -204,6 +205,10 @@ class AF83::Decorator < ModelDecorator @context.check_policy policy end + def check_feature(feature) + @context.check_feature feature + end + def errors "Missing attributes: #{@missing_attributes.to_sentence}" end diff --git a/lib/af83/enhanced_decorator.rb b/lib/af83/enhanced_decorator.rb index 91a377f8c..4ade0980b 100644 --- a/lib/af83/enhanced_decorator.rb +++ b/lib/af83/enhanced_decorator.rb @@ -28,7 +28,7 @@ module AF83::EnhancedDecorator def parse_options args options = {} - %i(weight primary secondary footer on action actions policy if groups group).each do |k| + %i(weight primary secondary footer on action actions policy feature if groups group).each do |k| options[k] = args.delete(k) if args.has_key?(k) end link_options = args.dup @@ -54,6 +54,7 @@ module AF83::EnhancedDecorator link_options[:_if] = options.delete(:if) link_options[:_policy] = options.delete(:policy) + link_options[:_feature] = options.delete(:feature) [options, link_options] end end @@ -79,4 +80,8 @@ module AF83::EnhancedDecorator method = "#{policy}?" h.policy(_object).send(method) end + + def check_feature feature + h.has_feature? feature + end end |
