lib/engine2/meta/infra_meta.rb in engine2-1.0.3 vs lib/engine2/meta/infra_meta.rb in engine2-1.0.4
- old
+ new
@@ -16,11 +16,11 @@
option :login_form, icon: :"log-in", disabled: 'action.action_pending()' # , show: "!action.logged_on"
end
@meta_type = :infra
- def invoke handler
+ define_invoke do |handler|
user = handler.user
{user: user ? user.to_hash : nil}
end
end
@@ -39,44 +39,39 @@
# access!{|h|h.user[:name] == 'admin'}
self.* do
extend MetaPanelSupport, MetaMenuSupport
modal_action
panel_template 'infra/inspect'
- panel_title "Inspect"
+ panel_title "#{:wrench.icon} Inspect"
panel_class "modal-huge"
+ panel[:backdrop] = true
menu(:panel_menu).option :cancel, icon: "remove"
-
- # def invoke handler;{};end
end
define_action :inspect do
self.* do
@meta_type = :inspect
end
- define_action :models do
- def (self.*).invoke handler
- {models: Sequel::DATABASES.map{|db| {name: db.uri, models: db.models.keys} }}
- end
+ define_action_invoke :models do |handler|
+ {models: Sequel::DATABASES.map{|db| {name: db.uri, models: db.models.keys} }}
end
- define_action :model_info do
- def (self.*).invoke handler
- db_name = handler.params[:db]
- handler.permit db = Sequel::DATABASES.find{|d|d.uri == db_name || (d.uri && d.uri.start_with?(db_name))}
- handler.permit model = db.models[handler.params[:model].to_sym]
- {
- model!: {
- info: {
- name: model.to_s,
- table: model.table_name
- },
- assoc: model.association_reflections,
- schema: model.db_schema,
- type_info: model.type_info
- }
+ define_action_invoke :model_info do |handler|
+ db_name = handler.params[:db]
+ handler.permit db = Sequel::DATABASES.find{|d|d.uri == db_name || (d.uri && d.uri.start_with?(db_name))}
+ handler.permit model = db.models[handler.params[:model].to_sym]
+ {
+ model!: {
+ info: {
+ name: model.to_s,
+ table: model.table_name
+ },
+ assoc: model.association_reflections,
+ schema: model.db_schema,
+ type_info: model.type_info
}
- end
+ }
end
end
end
end
end
@@ -187,11 +182,11 @@
def invoke handler
handler.permit id = handler.params[:owner]
inf = model.type_info[field]
assoc = model.association_reflections[inf[:assoc_name]]
- blob_model = Object.const_get(assoc[:class_name])
+ blob_model = assoc.associated_class
rec = model.naked.select(assoc[:key]).where(model.primary_keys_hash(split_keys(id))).first
handler.permit rec
result = blob_model.naked.select(inf[:name_field], Sequel.char_length(inf[:bytes_field]).as(:length)).where(blob_model.primary_key => rec[assoc[:key]]).first
@@ -206,10 +201,10 @@
def invoke handler
model = action.parent.*.model
inf = model.type_info[action.parent.*.field]
assoc = model.association_reflections[inf[:assoc_name]]
- blob_model = Object.const_get(assoc[:class_name])
+ blob_model = assoc.associated_class
handler.permit id = handler.params[:id]
rec = model.naked.select(assoc[:key]).where(model.primary_keys_hash(split_keys(id))).first
handler.permit rec
entry = blob_model.naked.select(inf[:bytes_field], inf[:name_field], inf[:mime_field]).where(blob_model.primary_key => rec[assoc[:key]]).first