'caption',\r
'system_picture_id',\r
'url',\r
- 'icense_group_settings',\r
+ 'license_group_settings',\r
'credit_picture_settings',\r
]\r
}\r
picture: {\r
args: {\r
boost: {\r
+ license_group: {\r
+ },\r
license: {\r
extend_item_name: 'attribute',\r
},\r
+ credit_picture: {\r
+ level: 'read',\r
+ extend_model_class_name: 'CreditPicture',\r
+ extend_item_name: 'credit_picture',\r
+ extend_column_name: 'license_group_classname',\r
+ },\r
},\r
},\r
},\r
resource_picture: {\r
args: {\r
boost: {\r
+ license_group: {\r
+ },\r
license: {\r
extend_item_name: 'attribute',\r
},\r
+ credit_picture: {\r
+ level: 'read',\r
+ extend_model_class_name: 'CreditPicture',\r
+ extend_item_name: 'credit_picture',\r
+ extend_column_name: 'license_group_classname',\r
+ },\r
},\r
},\r
},\r
license_group: {\r
},\r
credit_picture: {\r
+ level: 'read',\r
+ extend_model_class_name: 'CreditPicture',\r
extend_item_name: 'credit_picture',\r
extend_column_name: 'license_group_classname',\r
},\r
required: true,\r
}\r
},\r
- credit: {\r
+ license_group_settings: {\r
+ type: 'text',\r
+ rules : {\r
+ }\r
+ },\r
+ credit_picture_settings: {\r
type: 'text',\r
rules : {\r
}\r
required: true,\r
}\r
},\r
- credit: {\r
+ license_group_settings: {\r
+ type: 'text',\r
+ rules : {\r
+ }\r
+ },\r
+ credit_picture_settings: {\r
type: 'text',\r
rules : {\r
}\r
},\r
},\r
},\r
+ pettanr_pettan_commons_v01_licenses_credit_picture: {\r
+ attributes: {\r
+ source_url_btn_id: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ source_url_off_btn_id: {\r
+ type: 'number',\r
+ rules : {\r
+ required: true,\r
+ number: true,\r
+ }\r
+ },\r
+ },\r
+ },\r
pettanr_pettan_commons_v01_licenses_attribute: {\r
attributes: {\r
license_id: {\r
#マニフェスト\r
@profilers = {\r
scroll: {\r
+ columns: {\r
+ visible: {\r
+ type: 'source',\r
+ }, \r
+ },\r
column_names: [\r
'title', \r
'description', \r
'url', \r
],\r
extend_settings: {\r
- pettanr_pettan_commons_v01_licenses: {\r
+ pettanr_pettan_commons_v01_licenses_license: {\r
columns: {\r
open: {\r
},\r
'overlap', \r
],\r
},\r
+ pettanr_pettan_commons_v01_licenses_credit_picture: {\r
+ columns: {\r
+ },\r
+ column_names: [\r
+ 'source_url_btn_id', \r
+ 'source_url_off_btn_id', \r
+ ],\r
+ },\r
},\r
associations: {\r
has_many: [\r
},\r
license_group_settings: {\r
type: 'extend',\r
+ args: {\r
+ boost_name: 'license_group',\r
+ },\r
+ }, \r
+ credit_picture_settings: {\r
+ type: 'extend',\r
+ args: {\r
+ boost_name: 'credit_picture',\r
+ },\r
}, \r
},\r
column_names: [\r
'system_picture_id', \r
'url', \r
'license_group_settings', \r
- 'credit_pictures', \r
+ 'credit_picture_settings', \r
],\r
associations: {\r
belongs_to: [\r
writing_formats: {\r
has_route: 0,\r
resource_items: {\r
- SimpleFormat: 'pettanr_simple_format',\r
+ PettanrSimpleFormat: 'pettanr_simple_format',\r
},\r
},\r
},\r
authenticate_user! unless @operators.user?
end
- def authenticate_user
- authenticate_user! unless @operators.user?
+ def authenticate_resource_reader
+ authenticate_user! unless @operators.resource_reader?
end
def authenticate_admin
validates :license_group_classname, :presence => true, :length => {:maximum => 50}
validates :name, :presence => true, :length => {:maximum => 50}
validates :caption, :presence => true, :length => {:maximum => 30}
- validates :url, :presence => true, :length => {:maximum => 200}, :uniqueness => true, :url => {:message => I18n.t('errors.messages.url')} #{:allow_blank => true}
+ validates :url, :presence => true, :length => {:maximum => 200}, :uniqueness => {:scope => :name}, :url => {:message => I18n.t('errors.messages.url')} #{:allow_blank => true}
validates :system_picture_id, :presence => true, :numericality => true, :existence => {:both => false}
def supply_default
def self.store name, attr
r = License.replace_system_picture attr
- attr['credit_pictures'] = attr['credit_pictures'].to_json
+ attr['credit_picture_settings'] = attr['credit_picture_settings'].to_json
+ attr['license_group_settings'] = attr['license_group_settings'].to_json
l = License.modify_object name, attr
if r == false
l.errors.add :base, SystemPicture.model_name.human + I18n.t('errors.not_create')
<div class="columns">
- <% profiler.columns.each do |column| %>
+ <% profiler.each_column do |column| %>
<%= render column.template_name, :column => column %>
<% end %>
</div>
--- /dev/null
+<div class="column">
+ <%= column.label %>
+ <%= render column.value_template_name, :column => column %>
+</div>
--- /dev/null
+<div class="column">
+ <%= column.label %>
+ <%= render column.value_template_name, :column => column %>
+</div>
url: URL
system_picture_id: マーク
license_group_settings: ライセンス拡張データ
- credit_pictures: クレジット内画像
+ credit_picture_settings: クレジット内画像
created_at: 作成
updated_at: 更新
author:
add_column :speeches, :writing_format_settings, :text
add_column :licenses, :license_group_classname, :string, :null => false, :limit => 50, :default => 'noname'
rename_column :licenses, :settings, :license_group_settings
+ rename_column :licenses, :credit_pictures, :credit_picture_settings
end
def down
if balloon.speech_balloon_template_classname == 'noname'
balloon.speech_balloon_template_id = sbt.id
balloon.speech_balloon_template_classname = sbt.classname
- balloon.save!
+ balloon.boosts 'post'
end
+ balloon.save!
end
Speech.find(:all).each do |speech|
sbt = speech.speech_balloon.speech_balloon_template
if speech.speech_balloon_template_classname == 'noname'
speech.speech_balloon_template_id = sbt.id
speech.speech_balloon_template_classname = sbt.classname
- speech.save!
end
wf = speech.writing_format
if speech.writing_format_classname == 'noname'
speech.writing_format_classname = wf.classname
- speech.save!
end
+ speech.boosts 'post'
+ speech.save!
end
License.find(:all).each do |license|
lg = license.license_group
if license.license_group_classname == 'noname'
license.license_group_classname = lg.classname
- license.save!
end
+ license.boosts 'post'
+ license.save!
end
end
--- /dev/null
+class CreatePettanrPettanCommonsV01LicensesCreditPictures < ActiveRecord::Migration
+ def change
+ create_table :pettanr_pettan_commons_v01_licenses_credit_pictures do |t|
+ t.column :source_url_btn_id, :integer, :null => false, :default => 0
+ t.column :source_url_off_btn_id, :integer, :null => false, :default => 0
+
+ t.timestamps
+ end
+ end
+end
ManifestBase.require_modules "local_manifest/profiler/",
- %w|list association|
+ %w|column extend_setting list association|
module LocalManifest
class Profiler < ManifestBase::Base
include ProfilerModule
- attr :column_names, :lists, :associations
+ attr :columns, :column_names, :extend_settings, :lists, :associations
def set_default
super
+ @json['columns'] ||= {}
@json['column_names'] ||= []
+ @json['extend_settings'] ||= {}
@json['lists'] ||= {}
@json['associations'] ||= {}
+ # supply column configures
+ @json['column_names'] = ['id'] + @json['column_names'] + ['created_at', 'updated_at']
+ @json['columns']['created_at'] = {'type' => 'date'}
+ @json['columns']['updated_at'] = {'type' => 'date'}
+ @json['column_names'].each do |column_name|
+ @json['columns'][column_name] = {} unless @json['columns'][column_name]
+ end
end
def init
super
- @column_names = ['id'] + @json['column_names'] + ['created_at', 'updated_at']
- @lists = ManifestBase.load_type_name_args self, @json, 'lists', List
+ @columns = ManifestBase.load_type_name_args self, @json, 'columns', ColumnFactory
+ @column_names = @json['column_names']
+ @extend_settings = ManifestBase.load_name_values self, @json, 'extend_settings', ExtendSetting
+ @lists = ManifestBase.load_name_values self, @json, 'lists', List
@associations = ManifestBase.load_value self, @json, 'associations', Association
end
--- /dev/null
+ManifestBase.require_modules "local_manifest/profiler/column/",
+ %w|base default date source extend|
+
+module LocalManifest
+ module ProfilerModule
+ class ColumnFactory < ManifestBase::Factory
+ include ColumnModule
+
+ def self.types
+ {
+ 'default' => DefaultColumn, 'date' => DateColumn,
+ 'source' => SourceColumn, 'extend' => ExtendColumn
+ }
+ end
+
+ def self.default_type
+ 'default'
+ end
+
+ end
+ end
+
+end
+
--- /dev/null
+module LocalManifest
+ module ProfilerModule
+ module ColumnModule
+ class Base < ManifestBase::TypeNameArgs
+
+ def set_default
+ super
+ end
+
+ def init
+ super
+ end
+
+ def item_name
+ @parent.item_name
+ end
+
+ def profiler
+ @parent
+ end
+
+ end
+ end
+ end
+end
--- /dev/null
+module LocalManifest
+ module ProfilerModule
+ module ColumnModule
+ class DateColumn < Base
+
+ def set_default
+ super
+ end
+
+ def init
+ super
+ end
+
+ end
+
+ end
+ end
+end
--- /dev/null
+module LocalManifest
+ module ProfilerModule
+ module ColumnModule
+ class DefaultColumn < Base
+
+ def set_default
+ super
+ end
+
+ def init
+ super
+ end
+
+ end
+
+ end
+ end
+end
--- /dev/null
+module LocalManifest
+ module ProfilerModule
+ module ColumnModule
+ class ExtendColumn < Base
+ attr :boost_name
+
+ def set_default
+ super
+ @args['boost_name'] ||= @name.gsub(/_settings/, '')
+ end
+
+ def init
+ super
+ @boost_name = @args['boost_name']
+ end
+
+ def item_manifest
+ Manifest.manifest.items[self.profiler.name]
+ end
+
+ def boost_manifest
+ self.item_manifest.boost[@boost_name]
+ end
+
+ end
+ end
+ end
+end
--- /dev/null
+module LocalManifest
+ module ProfilerModule
+ module ColumnModule
+ class SourceColumn < Base
+
+ def set_default
+ super
+ end
+
+ def init
+ super
+ end
+
+ end
+
+ end
+ end
+end
--- /dev/null
+ManifestBase.require_modules "local_manifest/profiler/extend_setting/",
+ %w|column|
+
+module LocalManifest
+ module ProfilerModule
+ class ExtendSetting < ManifestBase::NameValues
+ include ExtendSettingModule
+ attr :columns, :column_names
+
+ def set_default
+ super
+ @values['columns'] ||= {}
+ @values['column_names'] ||= []
+ end
+
+ def init
+ super
+ @columns = ManifestBase.load_type_name_args self, @values, 'columns', ColumnFactory
+ @column_names = @values['column_names']
+ end
+
+ end
+ end
+end
--- /dev/null
+ManifestBase.require_modules "local_manifest/profiler/column/",
+ %w|base default|
+
+module LocalManifest
+ module ProfilerModule
+ module ExtendSettingModule
+ class ColumnFactory < ManifestBase::Factory
+ include ColumnModule
+
+ def self.types
+ {
+ 'default' => DefaultColumn
+ }
+ end
+
+ def self.default_type
+ 'default'
+ end
+
+ end
+ end
+ end
+end
+
--- /dev/null
+module LocalManifest
+ module ProfilerModule
+ module ExtendSettingModule
+ module ColumnModule
+ class Base < ManifestBase::TypeNameArgs
+
+ def set_default
+ super
+ end
+
+ def init
+ super
+ end
+
+ def item_name
+ @parent.item_name
+ end
+
+ def profiler
+ @parent
+ end
+
+ end
+ end
+ end
+ end
+end
--- /dev/null
+module LocalManifest
+ module ProfilerModule
+ module ExtendSettingModule
+ module ColumnModule
+ class DefaultColumn < Base
+
+ def set_default
+ super
+ end
+
+ def init
+ super
+ end
+
+ end
+
+ end
+ end
+ end
+end
module LocalManifest
module ProfilerModule
- class List
- attr :profiler, :my_name, :list_manifest,
- :model_name, :list_name
-
- def initialize profiler, my_name, list_manifest
- @profiler = profiler
- @my_name = my_name
- @list_manifest = list_manifest
- self.set_default
- self.init
- end
+ class List < ManifestBase::NameValues
+ attr :model_name, :list_name
def set_default
- raise "undefined model_name for profilers > #{self.profiler_name} > lists > #{@my_name}\n" unless @list_manifest['model_name']
- raise "undefined list_name for profilers > #{self.profiler_name} > lists > #{@my_name}\n" unless @list_manifest['list_name']
+ ManifestBase::alert_undefined_message "model_name", self.module_message unless @json['model_name']
+ ManifestBase::alert_undefined_message "list_name", self.module_message unless @json['list_name']
end
def init
- @model_name = list_manifest['model_name']
- @list_name = list_manifest['list_name']
+ @model_name = @json['model_name']
+ @list_name = @json['list_name']
end
def profiler_name
- @profiler.item_name
+ @parent.item_name
end
def profiler_manifest
- @profiler.profiler_manifest
+ @parent.manifest
end
end
def initialize manifest, item
@manifest = manifest
@item = item
- raise 'blank foreign_key' + @manifest.name unless self.check_resource
# no check
# return false unless self.resource.enable?
- if extendable?
+ if self.extendable?
@item.extend self.engine_extend_module
@item.__send__ @manifest.setter_method_name, self.parsed_settings
end
- @boosted = true
- end
-
- def boosted?
- @boosted
end
# get engine resource from system resource manifest
end
def extendable?
- self.engine_module.constants.include? @manifest.extend_module_name
+ self.engine_module.constants.include? @manifest.extend_module_name.to_sym
end
# extend module in engine
# get system resource instance
def resource
+ raise 'blank foreign_key ' + @manifest.name unless self.check_resource
r = @item.__send__ @manifest.resource_name
raise 'resource not found' + @manifest.resource_name unless r
r
end
+ # get extend instance
+ def extend_item
+ @item.__send__ @manifest.getter_method_name
+ end
+
def parsed_settings
if self.settings.blank?
{}
Kaminari.paginate_array(Array.new(c, nil)).page(offset).per(page_size)
end
+ def boost_manifests
+ @model.my_peta.boost.select do |boost_name, boost_manifest|
+ boost_manifest.level == 'show'
+ end
+ end
+
+ def boost items
+ manifests = self.boost_manifests
+ items.each do |item|
+ manifests.each do |boost_manifest|
+ item.boost_manifest
+ end
+ end
+ end
+
def open operators, options
page = self.page_number(options[:page])
page_size = self.page_size options[:page_size]
items = self.items operators, options, offset, page_size
count = self.count operators, options
pg = self.paginate count, offset, page_size
+ self.boost items
ListResult.new items, pg
end
@item = item
@operators = operators
# feasible show parsed extend data
- @item.boost 'post'
+ @item.boosts 'post'
@profiler_manifest = LocalManifest.manifest.profilers[@item_name]
@template_dir = 'templates/r/profiler/'
@header = Header.new self
- @columns = @profiler_manifest.column_names.map {|column_name|
- Column.new self, column_name
+ @columns = {}
+ @profiler_manifest.columns.each {|name, column|
+ @columns[name] = Column.factory self, column
}
@associations = Association.new self, @profiler_manifest.associations
end
+ def each_column
+ @profiler_manifest.column_names.each {|column_name|
+ yield @columns[column_name]
+ }
+ end
+
+ def peta
+ Manifest.manifest.items[@item_name]
+ end
+
def model
::Manifest::item_name_to_model @item_name
end
+require_dependency "locmare/profiler/column/base"
+require_dependency "locmare/profiler/column/default"
+require_dependency "locmare/profiler/column/date"
+require_dependency "locmare/profiler/column/source"
+require_dependency "locmare/profiler/column/extend"
module Locmare
module ProfilerModule
class Column
- attr :profiler, :column_name
- def initialize profiler, column_name
- @profiler = profiler
- @column_name = column_name
- end
-
- def label
- self.item.class.human_attribute_name(@column_name)
- end
-
- def value
- if self.item.extend_column?(@column_name)
-
- else
- self.item.attributes[@column_name]
- end
- end
-
- def note
- end
-
- def date?
- case model_attribute_manifest.type
- when 'datetime'
- if self.value
- true
- else
- false
- end
- else
- false
- end
- end
-
- def note?
- if self.model_attribute_source_manifest
- case self.model_attribute_source_manifest.type
- when 'magic_number'
- true
- when 'model'
- false
- else
- false
- end
- else
- false
- end
- end
-
- def select_item_name
- self.model_attribute_source_manifest.select_item_name
- end
-
- def item
- @profiler.item
- end
-
- def model_manifest
- ::Manifest.manifest.models[@profiler.item_name]
- end
-
- def model_attribute_manifest
- self.model_manifest.attributes[@column_name]
- end
-
- def model_attribute_source_manifest
- self.model_attribute_manifest.source
- end
-
- def template_dir
- @profiler.template_dir
- end
-
- def template_file_name
- "column"
- end
-
- def template_name
- self.template_dir + self.template_file_name
- end
-
- def value_template_dir
- @profiler.template_dir + "column_value/"
- end
-
- def value_template_file_name
- if self.date?
- 'date'
- else
- 'default'
- end
- end
-
- def value_template_name
- self.value_template_dir + self.value_template_file_name
- end
-
- def note_template_dir
- @profiler.template_dir + "column_note/"
- end
-
- def note_template_file_name
- if self.note?
- 'default'
- else
- 'none'
- end
- end
-
- def note_template_name
- self.note_template_dir + self.note_template_file_name
+ include ColumnModule
+ @@types = {
+ 'default' => Default, 'date' => Date, 'source' => Source, 'extend' => Extend
+ }
+ def self.factory profiler, my_manifest
+ type = my_manifest.type
+ raise "undefined type for local view filers > #{profiler.item_name} > edit\n" unless type
+ my_class = @@types[type]
+ raise "undefined class for local view filers > #{profiler.item_name} > edit > #{type}\n" unless my_class
+ my_class.new(profiler, my_manifest)
end
end
--- /dev/null
+module Locmare
+ module ProfilerModule
+ module ColumnModule
+ class Base
+ attr :profiler, :column_name
+ def initialize profiler, column
+ @profiler = profiler
+ @column = column
+ @column_name = @column.name
+ end
+
+ def label
+ self.item.class.human_attribute_name(@column_name)
+ end
+
+ def value
+ self.item.attributes[@column_name]
+ end
+
+ def item
+ @profiler.item
+ end
+
+ def template_dir
+ @profiler.template_dir + "column/"
+ end
+
+ def template_file_name
+ "default"
+ end
+
+ def template_name
+ self.template_dir + self.template_file_name
+ end
+
+ def value_template_dir
+ @profiler.template_dir + "column_value/"
+ end
+
+ def value_template_file_name
+ 'default'
+ end
+
+ def value_template_name
+ self.value_template_dir + self.value_template_file_name
+ end
+
+ end
+ end
+ end
+end
--- /dev/null
+module Locmare
+ module ProfilerModule
+ module ColumnModule
+ class Date < Base
+
+ def template_file_name
+ "date"
+ end
+
+ def value_template_file_name
+ if self.value
+ 'date'
+ else
+ # nil value can't localize for datetime
+ 'default'
+ end
+ end
+
+ end
+ end
+ end
+end
--- /dev/null
+module Locmare
+ module ProfilerModule
+ module ColumnModule
+ class Default < Base
+
+ end
+ end
+ end
+end
--- /dev/null
+module Locmare
+ module ProfilerModule
+ module ColumnModule
+ class Extend < Base
+
+ def value
+ self.extend_model_name
+ end
+
+ def extend_model_name
+ self.item.boosters[@column.boost_name].model_name
+ end
+
+ def extend_item
+ self.item.boosters[@column.boost_name].extend_item
+ end
+
+ end
+ end
+ end
+end
--- /dev/null
+module Locmare
+ module ProfilerModule
+ module ColumnModule
+ class Source < Base
+
+ def select_item_name
+ self.model_attribute_source_manifest.select_item_name
+ end
+
+ def model_manifest
+ ::Manifest.manifest.models[@profiler.item_name]
+ end
+
+ def model_attribute_manifest
+ self.model_manifest.attributes[@column_name]
+ end
+
+ def model_attribute_source_manifest
+ self.model_attribute_manifest.source
+ end
+
+ def template_file_name
+ "source"
+ end
+
+ def note_template_dir
+ @profiler.template_dir + "column_note/"
+ end
+
+ def note_template_file_name
+ 'default'
+ end
+
+ def note_template_name
+ self.note_template_dir + self.note_template_file_name
+ end
+
+ end
+ end
+ end
+end
module_message = ManifestBase.module_message(parent.module_names, [module_name, name])
json['type'] ||= self.default_type
type = json['type']
- alert_undefined_message 'type', module_message unless type
+ ManifestBase.alert_undefined_message 'type', module_message unless type
my_class = self.types[type]
- alert_undefined_message 'class', module_message unless my_class
+ ManifestBase.alert_undefined_message 'class', module_message unless my_class
my_class.new(parent, name, json, module_name)
end
module_message = ManifestBase.module_message(parent.module_names, [module_name])
json['type'] ||= self.default_type
type = json['type']
- alert_undefined_message 'type', module_message unless type
+ ManifestBase.alert_undefined_message 'type', module_message unless type
my_class = self.types[type]
- alert_undefined_message 'class', module_message unless my_class
+ ManifestBase.alert_undefined_message 'class', module_message unless my_class
my_class.new(parent, json, module_name)
end
module Peta
class Item < ActiveRecord::Base
self.abstract_class = true
+ attr :boosters
# Dynamic ClassMethods
self.plural.underscore
end
+ def self.extend_column? column_name
+ self.my_peta.extend_column? column_name
+ end
+
def self.visible_count_options
nil
end
opt = {}
opt.merge!(self.show_opt)
item = self.find(item_id, opt)
- item.boost 'show'
+ item.boosts 'read'
raise ActiveRecord::Forbidden unless item.visible?(operators)
item
end
end
end
- def boost level
+ def boosts level
self.class.my_peta.boost.each do |boost_name, boost_manifest|
next unless boost_manifest.level == level
- Locmare::Booster.new(boost_manifest, self)
+ self.boost boost_manifest
end
end
+ def boost boost_manifest
+ @boosters ||= {}
+ @boosters[boost_manifest.name] = Locmare::Booster.new(boost_manifest, self)
+ end
+
def extend_column? column_name
- self.class.my_peta.extend_column? column_name
+ self.class.extend_column? column_name
end
def supply_default
class BoostValidator < ActiveModel::EachValidator\r
def validate_each(record, attribute, value)\r
- resource = record.boosters[options[:resource_name].to_s].resource\r
+ rec = record.boosters[options[:resource_name].to_s].extend_item\r
msg = options[:message] || I18n.t('activerecord.errors.messages.extend_settings')\r
- record.errors[attribute] << msg unless resource.valid?\r
+ record.errors[attribute] << msg unless rec.valid?\r
end\r
end\r
\r
},\r
"profilers": {\r
"scroll": {\r
+ "columns": {\r
+ "visible": {\r
+ "type": "source"\r
+ }\r
+ },\r
"column_names": [\r
"title",\r
"description",\r
"url"\r
],\r
"extend_settings": {\r
- "pettanr_pettan_commons_v01_licenses": {\r
+ "pettanr_pettan_commons_v01_licenses_license": {\r
"columns": {\r
"open": {},\r
"commercial": {},\r
"sync_vh",\r
"overlap"\r
]\r
+ },\r
+ "pettanr_pettan_commons_v01_licenses_credit_picture": {\r
+ "columns": {},\r
+ "column_names": [\r
+ "source_url_btn_id",\r
+ "source_url_off_btn_id"\r
+ ]\r
}\r
},\r
"associations": {\r
"system_picture_id": {},\r
"url": {},\r
"license_group_settings": {\r
- "type": "extend"\r
+ "type": "extend",\r
+ "args": {\r
+ "parent_model_name": "panel"\r
+ }\r
+ },\r
+ "credit_picture_settings": {\r
+ "type": "extend",\r
+ "args": {\r
+ "boost_name": "credit_picture"\r
+ }\r
}\r
},\r
"column_names": [\r
"system_picture_id",\r
"url",\r
"license_group_settings",\r
- "credit_pictures"\r
+ "credit_picture_settings"\r
],\r
"associations": {\r
"belongs_to": [\r
"caption",\r
"system_picture_id",\r
"url",\r
- "icense_group_settings",\r
+ "license_group_settings",\r
"credit_picture_settings"\r
]\r
},\r
"picture": {\r
"args": {\r
"boost": {\r
+ "license_group": {},\r
"license": {\r
"extend_item_name": "attribute"\r
+ },\r
+ "credit_picture": {\r
+ "level": "read",\r
+ "extend_model_class_name": "CreditPicture",\r
+ "extend_item_name": "credit_picture",\r
+ "extend_column_name": "license_group_classname"\r
}\r
}\r
}\r
"resource_picture": {\r
"args": {\r
"boost": {\r
+ "license_group": {},\r
"license": {\r
"extend_item_name": "attribute"\r
+ },\r
+ "credit_picture": {\r
+ "level": "read",\r
+ "extend_model_class_name": "CreditPicture",\r
+ "extend_item_name": "credit_picture",\r
+ "extend_column_name": "license_group_classname"\r
}\r
}\r
}\r
"boost": {\r
"license_group": {},\r
"credit_picture": {\r
+ "level": "read",\r
+ "extend_model_class_name": "CreditPicture",\r
"extend_item_name": "credit_picture",\r
"extend_column_name": "license_group_classname"\r
}\r
"required": true\r
}\r
},\r
- "credit": {\r
+ "license_group_settings": {\r
+ "type": "text",\r
+ "rules": {}\r
+ },\r
+ "credit_picture_settings": {\r
"type": "text",\r
"rules": {}\r
},\r
"required": true\r
}\r
},\r
- "credit": {\r
+ "license_group_settings": {\r
+ "type": "text",\r
+ "rules": {}\r
+ },\r
+ "credit_picture_settings": {\r
"type": "text",\r
"rules": {}\r
},\r
"type": "text",\r
"rules": {}\r
},\r
- "credit_pictures": {\r
+ "credit_picture_settings": {\r
"type": "text",\r
"rules": {}\r
}\r
}\r
}\r
},\r
+ "pettanr_pettan_commons_v01_licenses_credit_picture": {\r
+ "attributes": {\r
+ "source_url_btn_id": {\r
+ "type": "number",\r
+ "rules": {\r
+ "required": true,\r
+ "number": true\r
+ }\r
+ },\r
+ "source_url_off_btn_id": {\r
+ "type": "number",\r
+ "rules": {\r
+ "required": true,\r
+ "number": true\r
+ }\r
+ }\r
+ }\r
+ },\r
"pettanr_pettan_commons_v01_licenses_attribute": {\r
"attributes": {\r
"license_id": {\r
l['license_group_classname'] = g['classname']\r
if l['license_group_settings']\r
puts 'license_group_settings to json'\r
- l['license_group_settings'] = l['license_group_settings'].to_json.to_s\r
end\r
if l['system_picture_file']\r
fn = File.expand_path(wd + '/' + l['system_picture_file'])\r
l['system_picture_id'] = {"text" => b}\r
l.delete 'system_picture_file'\r
end\r
- if l['credit_pictures']\r
- credit_pictures = {}\r
- l['credit_pictures'].each do |n, v|\r
+ if l['credit_picture_settings']\r
+ credit_picture_settings = {}\r
+ l['credit_picture_settings'].each do |n, v|\r
fn = File.expand_path(wd + '/' + v)\r
puts 'open system picture file ' + fn\r
d = File.open(fn, 'rb').read\r
b = Base64.encode64(d).gsub(/\r/, '').gsub(/\n/, '')\r
- credit_pictures[n] = {"text" => b}\r
+ credit_picture_settings[n] = {"text" => b}\r
end\r
- l['credit_pictures'] = credit_pictures\r
+ l['credit_picture_settings'] = credit_picture_settings\r
end\r
end\r
end\r