Class: LinkedRails::Actions::Item
- Inherits:
-
Object
- Object
- LinkedRails::Actions::Item
show all
- Includes:
- ActiveModel::Model, Model
- Defined in:
- app/models/linked_rails/actions/item.rb
Overview
rubocop:disable Metrics/ClassLength
Constant Summary
Model::Collections::COLLECTION_CUSTOMIZABLE_OPTIONS, Model::Collections::COLLECTION_OPTIONS, Model::Collections::COLLECTION_STATIC_OPTIONS
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Model
#build_child
#singular_iri, #singular_iri?, #singular_iri_opts, #singular_iri_template
#preview_includes, #show_includes
#menu, #menu_list, #menus
Methods included from Model::IRI
#anonymous_iri, #anonymous_iri?, #iri, #iri_elements, #reload, #route_fragment
#enhanced_with?
#previously_changed_relations
#collection_for, #collection_iri, #collection_options_for, #collection_root_relative_iri, #parent_collections
#action, #action_list, #action_triples, #actions, #collection_actions, #favorite_actions
Instance Attribute Details
Returns the value of attribute inherit.
11
12
13
|
# File 'app/models/linked_rails/actions/item.rb', line 11
def inherit
@inherit
end
|
Returns the value of attribute list.
11
12
13
|
# File 'app/models/linked_rails/actions/item.rb', line 11
def list
@list
end
|
63
64
65
66
67
|
# File 'app/models/linked_rails/actions/item.rb', line 63
def object
@object = list.instance_exec(&@object) if @object.respond_to?(:call)
@object || resource
end
|
#one_click ⇒ Object
Returns the value of attribute one_click.
11
12
13
|
# File 'app/models/linked_rails/actions/item.rb', line 11
def one_click
@one_click
end
|
73
74
75
76
77
78
79
80
81
|
# File 'app/models/linked_rails/actions/item.rb', line 73
def parent
return @parent if instance_variable_defined?(:@parent)
if resource.is_a?(LinkedRails.collection_class)
resource.parent
else
resource
end
end
|
#policy_arguments ⇒ Object
Returns the value of attribute policy_arguments.
11
12
13
|
# File 'app/models/linked_rails/actions/item.rb', line 11
def policy_arguments
@policy_arguments
end
|
#resource=(value) ⇒ Object
Sets the attribute resource
12
13
14
|
# File 'app/models/linked_rails/actions/item.rb', line 12
def resource=(value)
@resource = value
end
|
#root_relative_iri(**_opts) ⇒ Object
87
88
89
90
91
92
93
|
# File 'app/models/linked_rails/actions/item.rb', line 87
def root_relative_iri(**_opts)
value = root_relative_iri_from_var
value = RDF::URI(value) unless value.blank? || value.is_a?(RDF::URI)
return @root_relative_iri = value if value
super
end
|
#submit_label ⇒ Object
Returns the value of attribute submit_label.
11
12
13
|
# File 'app/models/linked_rails/actions/item.rb', line 11
def submit_label
@submit_label
end
|
131
132
133
|
# File 'app/models/linked_rails/actions/item.rb', line 131
def target
@target ||= LinkedRails.entry_point_class.new(parent: self)
end
|
#target_path ⇒ Object
Returns the value of attribute target_path.
11
12
13
|
# File 'app/models/linked_rails/actions/item.rb', line 11
def target_path
@target_path
end
|
#target_query ⇒ Object
Returns the value of attribute target_query.
11
12
13
|
# File 'app/models/linked_rails/actions/item.rb', line 11
def target_query
@target_query
end
|
#user_context ⇒ Object
135
136
137
|
# File 'app/models/linked_rails/actions/item.rb', line 135
def user_context
@user_context || list.user_context
end
|
Class Method Details
.app_action_list(user_context) ⇒ Object
206
207
208
209
210
211
|
# File 'app/models/linked_rails/actions/item.rb', line 206
def app_action_list(user_context)
app_action_list_class&.new(
resource: nil,
user_context: user_context
)
end
|
.app_action_list_class ⇒ Object
200
201
202
203
204
|
# File 'app/models/linked_rails/actions/item.rb', line 200
def app_action_list_class
return @app_action_list_class if instance_variables.include?(:@app_action_list_class)
@app_action_list_class = 'AppActionList'.safe_constantize
end
|
.get_action_list(parent, user_context) ⇒ Object
213
214
215
216
217
|
# File 'app/models/linked_rails/actions/item.rb', line 213
def get_action_list(parent, user_context)
return parent.action_list(user_context) if parent.respond_to?(:action_list)
app_action_list(user_context)
end
|
.requested_index_resource(params, user_context) ⇒ Object
219
220
221
222
223
224
225
226
|
# File 'app/models/linked_rails/actions/item.rb', line 219
def requested_index_resource(params, user_context)
parent = parent_from_params!(params, user_context) if params.key?(:parent_iri)
default_collection_option(:collection_class).collection_or_view(
default_collection_options.merge(parent: parent),
index_collection_params(params, user_context)
)
end
|
.requested_single_resource(params, user_context) ⇒ Object
228
229
230
231
232
233
234
235
|
# File 'app/models/linked_rails/actions/item.rb', line 228
def requested_single_resource(params, user_context)
return nil if params[:id].blank?
parent = parent_from_params!(params, user_context) if params.key?(:parent_iri)
action_list = get_action_list(parent, user_context)
action_list&.action(params[:id].to_sym)
end
|
.route_key ⇒ Object
237
238
239
|
# File 'app/models/linked_rails/actions/item.rb', line 237
def route_key
:actions
end
|
Instance Method Details
#action_status ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'app/models/linked_rails/actions/item.rb', line 37
def action_status
@action_status ||=
if policy_valid?
Vocab.schema.PotentialActionStatus
elsif policy_status
policy_status
elsif policy_expired?
Vocab.ontola[:ExpiredActionStatus]
else
Vocab.ontola[:DisabledActionStatus]
end
end
|
#as_json(**_opts) ⇒ Object
50
51
52
|
# File 'app/models/linked_rails/actions/item.rb', line 50
def as_json(**_opts)
{}
end
|
#available? ⇒ Boolean
54
55
56
|
# File 'app/models/linked_rails/actions/item.rb', line 54
def available?
@condition.nil? || condition
end
|
58
59
60
61
|
# File 'app/models/linked_rails/actions/item.rb', line 58
def error
policy_message ||
I18n.t("actions.status.#{action_status.to_s.split('#').last}", default: nil)
end
|
109
110
111
112
113
|
# File 'app/models/linked_rails/actions/item.rb', line 109
def iri_opts
return {} if resource.blank?
resource.try(:singular_resource?) ? resource.singular_iri_opts : resource.iri_opts
end
|
#iri_template ⇒ Object
115
116
117
118
119
120
121
122
123
124
125
|
# File 'app/models/linked_rails/actions/item.rb', line 115
def iri_template
path_suffix = "/#{action_path || tag}"
return @iri_template ||= LinkedRails::URITemplate.new(path_suffix) if resource.blank?
base_template = resource.send(resource.try(:singular_resource?) ? :singular_iri_template : :iri_template)
@iri_template ||= iri_template_expand_path(
base_template.to_s.sub('display,', '').sub('sort%5B%5D*,', ''),
path_suffix
)
end
|
#object_iri ⇒ Object
69
70
71
|
# File 'app/models/linked_rails/actions/item.rb', line 69
def object_iri
object&.iri&.anonymous? ? anonymous_object_iri : object&.iri
end
|
#policy_message ⇒ Object
83
84
85
|
# File 'app/models/linked_rails/actions/item.rb', line 83
def policy_message
resource_policy.try(:message) unless policy_valid?
end
|
#policy_status ⇒ Object
105
106
107
|
# File 'app/models/linked_rails/actions/item.rb', line 105
def policy_status
resource_policy.try(:action_status)
end
|
127
128
129
|
# File 'app/models/linked_rails/actions/item.rb', line 127
def rdf_type
type
end
|
#root_relative_singular_iri ⇒ Object
95
96
97
98
99
|
# File 'app/models/linked_rails/actions/item.rb', line 95
def root_relative_singular_iri
value = root_relative_iri.to_s.sub(resource.root_relative_iri, resource.root_relative_singular_iri)
RDF::URI(value)
end
|
#singular_resource? ⇒ Boolean
101
102
103
|
# File 'app/models/linked_rails/actions/item.rb', line 101
def singular_resource?
resource.try(:singular_resource?)
end
|