new_item = new @target_model(item.attributes)\r
new_item.unset('id', {silent: true})\r
new_item.set({panel_id: @editor().item.get('id')}, {silent: true})\r
- balloon.unset('id', {silent: true})\r
- balloon.unset('speech_balloon_id', {silent: true})\r
- speech.unset('id', {silent: true})\r
- speech.unset('speech_balloon_id', {silent: true})\r
+ new_balloon = balloon.clone()\r
+ new_balloon.unset('id', {silent: true})\r
+ new_balloon.unset('speech_balloon_id', {silent: true})\r
+ new_speech = speech.clone()\r
+ new_speech.unset('id', {silent: true})\r
+ new_speech.unset('speech_balloon_id', {silent: true})\r
new_item.boosts 'post'\r
- balloon.boosts 'post'\r
- speech.boosts 'post'\r
- new_item.set({balloon: balloon, speech: speech}, {silent: true})\r
+ new_balloon.boosts 'post'\r
+ new_speech.boosts 'post'\r
+ new_item.set({balloon: new_balloon, speech: new_speech}, {silent: true})\r
@trigger('ready', new_item)\r
})\r
})\r
if has_alias_action
return self.alias_action.find options
end
- self.finder(options).order(
+ arel = self.finder(options).order(
self.order_sql(options[:order], options[:direction])
- ).page(options[:page]).per(options[:page_size])
+ )
+ if (ps = self.page_size(options[:page_size])) or options[:page]
+ arel = arel.page(self.page(options[:page])).per(ps)
+ end
+ arel
end
def finder options = {}
end
def page page
- page.to_i
- page = 1 if page < 1
- page
+ pg = page.to_i
+ pg = 1 if pg < 1
+ pg
end
def page_size page_size
- page_size ||= self.default_page_size
- page_size = -1 if page_size < 0
- page_size = self.max_page_size if page_size > self.max_page_size
- page_size
+ ps = (page_size || self.default_page_size).to_i
+ return nil if ps < 0
+ ps = self.max_page_size if ps > self.max_page_size
+ ps
end
def limited?
resource_action_name = source_manifest.resource_action_name
caption = source_manifest.caption_name
resource_controller_name = ::Manifest.manifest.pluralize(resource_item_name)
- begin
- list = Locmare::ListGroup.list(
- resource_controller_name,
- resource_action_name,
- nil,
- {:page_size => -1} # set no limit options
- )
- @select_items[source_manifest.select_item_name] =
- list.items.map {|item| [item.attributes[caption], item.id]}
- rescue
- puts 'skip store select_items:' + resource_item_name + '.' + resource_action_name
- end
+ my_controller = Manifest.manifest.controllers[resource_controller_name]
+ my_action = my_controller.actions[resource_action_name]
+ list = my_action.find page_size: -1
+ @select_items[source_manifest.select_item_name] =
+ list.map {|item| [item.attributes[caption], item.id]}
}
}
end