_this = this\r
@item = new Pettanr.Panel({id: @item.get('id')}, {with_elements: true}) # retake panel for 'with_elements' mode\r
@item.fetch().done ->\r
- i = new Pettanr.RelationPanel(_this.item.attributes)\r
- view = new Pettanr.Views.Panel.Body({\r
+ view = new Pettanr.Views.Panel.Show({\r
el: "#pettanr",\r
panel: _this.item,\r
operators: _this.operators,\r
@filer_list()\r
\r
show_html: () -> \r
+ view = new Pettanr.Views.Scroll.Show({\r
+ el: "#pettanr",\r
+ item: @item,\r
+ operators: @operators\r
+ })\r
+ view.render()\r
\r
show: () ->\r
@set_show()\r
\r
child_model_manifests: () ->\r
r = []\r
- _.each Manifest.items, (peta_manifest, peta_name) ->\r
- next if not peta_manifest.is_element\r
- next if not peta_manifest.parent_model_name == @name\r
- r.push Manifest.models[peta_name]\r
+ _this = this\r
+ _.each Manifest.manifest().items, (peta_manifest, peta_name) ->\r
+ return if not peta_manifest.is_element()\r
+ return if peta_manifest.parent_model_name != _this.name\r
+ r.push Manifest.manifest().models[peta_name]\r
r\r
\r
child_models: () ->\r
- _.map @child_model_manifests, (child_model_manifest) ->\r
- child_model_manifest.classify\r
+ _.map @child_model_manifests(), (child_model_manifest) ->\r
+ child_model_manifest.classify()\r
\r
child_element_names: () ->\r
- _.map @child_models, (child_model) ->\r
+ _.map @child_models(), (child_model) ->\r
@associations.child_element_name(child_model)\r
\r
child_element_name: (item_name) ->\r
- @associations.child_element_name(child_model_manifest)\r
+ @associations.child_element_name(@child_model_manifest())\r
\r
class Manifest.ModelModule\r
#yield belongs_to_manifest.model\r
\r
child_element_name: (child_model) -> \r
- if is_has_one child_model\r
- child_model.item_name\r
+ if @is_has_one(child_model)\r
+ child_model.item_name()\r
else\r
- child_model.table_name\r
+ child_model.table_name()\r
\r
is_has_one: (child_model) ->\r
- if @has_one[child_model.item_name]\r
+ if @has_one[child_model.item_name()]\r
true\r
else\r
false\r
speech_balloon: () ->\r
new Pettanr.SpeechBalloon({id: @get('speech_balloon_id')})\r
\r
+ system_picture: () ->\r
+ new Pettanr.SystemPicture({id: @get('system_picture_id')})\r
+ \r
r_url: () ->\r
'/system_pictures/' + @system_picture().filename()\r
\r
class Pettanr.Panel extends Peta.Root\r
url: '/panels/'\r
- relations: [\r
- {\r
- type: Backbone.HasMany,\r
- key: 'panel_pictures',\r
- relatedModel: 'Pettanr.PanelPicture',\r
- collectionType: 'Pettanr.PanelPictures',\r
- reverseRelation: {\r
- key: 'panel',\r
- includeInJSON: 'id'\r
- }\r
- },\r
- ]\r
\r
@singular: () ->\r
'Panel'\r
class Pettanr.Panels extends Backbone.Collection\r
model: Pettanr.Panel\r
url: '/panels/'\r
-class Pettanr.RelationPanel extends Pettanr.Panel\r
- relations: [\r
- {\r
- type: Backbone.HasMany,\r
- key: 'panel_pictures',\r
- relatedModel: 'Pettanr.PanelPicture',\r
- collectionType: 'Pettanr.PanelPictures',\r
- reverseRelation: {\r
- key: 'panel',\r
- includeInJSON: 'id'\r
- }\r
- },\r
- ]\r
- \r
# res += '/' unless res.empty? # format of /v/1.png\r
res\r
\r
- filename: () ->\r
- @picture().filename() + '?subdir=' + @flip()\r
+ filename: (picture) ->\r
+ picture.filename() + '?subdir=' + @flip()\r
\r
- r_url: () ->\r
- '/pictures/' + @filename()\r
+ r_url: (picture) ->\r
+ '/pictures/' + @filename(picture)\r
\r
tmb_opt_img_tag: (picture) ->\r
new Pettanr.Image.SymbolPicture({\r
\r
scenario: () ->\r
@boosts('read')\r
- @render()\r
+ #@render() using wf renderer\r
+ @get('content')\r
\r
initialize: () ->\r
if @id\r
class Peta.ElementNestableContent extends Peta.Content\r
element_items: (element_model) ->\r
n = @my_class().my_manifest().associations.child_element_name(element_model)\r
- @my_class()[n]()\r
+ attrs = @get(n)\r
+ if attrs\r
+ if @my_class().my_manifest().associations.is_has_one(element_model)\r
+ new element_model(attrs)\r
+ else\r
+ _.map attrs, (attr) ->\r
+ new element_model(attr)\r
\r
elements_items: () ->\r
_this = this\r
_this = this\r
c = @my_class().my_peta().boost\r
_.each c, (boost_manifest, boost_name) ->\r
- next if level == 'read' and boost_manifest.level == 'post'\r
+ return if level == 'read' and boost_manifest.level == 'post'\r
_this.boost boost_manifest\r
\r
boost: (boost_manifest) ->\r
\r
parts_element: () ->\r
r = []\r
- _.each @my_class.child_models, () ->\r
- r += (@element_items(k) || [])\r
+ _this = this\r
+ _.each @my_class().child_models(), (k) ->\r
+ l = _this.element_items(k)\r
+ r = r.concat(l)\r
r\r
\r
zorderd_elements: () ->\r
\r
scenario_elements: () ->\r
res = []\r
- _.each @parts_element, (e) ->\r
+ _.each @parts_element(), (e) ->\r
res[e.get('t')] = e\r
res\r
\r
@spot = options.spot\r
\r
render: () ->\r
- attr = {\r
- src: @element.system_picture.url(), \r
- alt: @element.get('caption')\r
- }\r
- this.$el.attr(attr)\r
+ _this = this\r
+ system_picture = @element.system_picture()\r
+ system_picture.fetch().done ->\r
+ attr = {\r
+ src: system_picture.r_url(), \r
+ alt: _this.element.get('caption')\r
+ }\r
+ _this.$el.attr(attr)\r
this\r
\r
left: Pettanr.to_s(@div_x()) + '%', \r
width: Pettanr.to_s(@div_width()) + '%', \r
height: Pettanr.to_s(@div_height()) + '%', \r
- 'background-color': '#' + ('000000' + Pettanr.to_s(@element.get('code'))).slice(-6)\r
+ 'background-color': '#' + ('000000' + @element.get('code').toString(16)).slice(-6)\r
}\r
@merge_opacity(r, opacity) if spot and spot != @element\r
r\r
render: () ->\r
@attr = {style: Pettanr.to_style(@opt_div_style())}\r
this.$el.attr(@attr)\r
- @img = new Tag.Img({\r
- attr: @opt_img_tag(@spot)\r
- })\r
- this.$el.html(@img.render().el)\r
+ @picture = @element.picture()\r
+ _this = this\r
+ @picture.fetch().done ->\r
+ _this.img = new Tag.Img({\r
+ attr: _this.opt_img_tag(_this.spot)\r
+ })\r
+ _this.$el.html(_this.img.render().el)\r
this\r
\r
opt_div_style: () ->\r
@merge_opacity(style, opacity)\r
{\r
vPicture: @element.get('id'), \r
- src: @element.r_url(), \r
+ src: @element.r_url(@picture), \r
width: Pettanr.to_s(Math.abs(@element.get('width'))) + 'px', \r
height: Pettanr.to_s(Math.abs(@element.get('height'))) + 'px', \r
alt: @element.get('caption'), \r
if @panel.is_visible(@operators)\r
this.$el.html('')\r
_this = this\r
- _.each @panel.scenario_elements(), (element) ->\r
- c = Pettanr[element.singular()].Element\r
+ l = @panel.scenario_elements()\r
+ _.each l, (element) ->\r
+ c = Pettanr.Views[element.singular()].Element\r
tag = new c({element: element, root: _this.panel, spot: _this.spot})\r
_this.$el.append(tag.render().el)\r
else\r
--- /dev/null
+# panel: panel item\r
+# operators: operators\r
+# spot: no opacity element\r
+class Pettanr.Views.Panel.Show extends Backbone.View\r
+ tagName: 'div'\r
+ \r
+ initialize: (options) ->\r
+ @panel = options.panel\r
+ @operators = options.operators\r
+ @spot = options.spot\r
+ @body = new Pettanr.Views.Panel.Body({\r
+ panel: @panel,\r
+ operators: @operators,\r
+ spot: @spot\r
+ })\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ this.$el.append(@body.render().el)\r
+ this\r
+ \r
--- /dev/null
+class Pettanr.Views.Scroll.Show extends Backbone.View\r
+ tagName: 'div'\r
+ \r
+ initialize: (options) ->\r
+ @operators = options.operators\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ this\r
+ \r
@element = options.element\r
@root = options.root\r
@spot = options.spot\r
+ @balloon = new Pettanr.Balloon(@element.get('balloon'))\r
+ @speech = new Pettanr.Speech(@element.get('speech'))\r
\r
render: () ->\r
- attr = {style: @style()}\r
- @balloon = new Pettanr.Views.Balloon.Element({\r
- element: @element, \r
+ @attr = {style: Pettanr.to_style(@style())}\r
+ @b = new Pettanr.Views.Balloon.Element({\r
+ element: @balloon, \r
root: @root,\r
spot: @spot\r
})\r
- @speech = new Pettanr.Views.Speech.Element({\r
- element: @element, \r
+ @s = new Pettanr.Views.Speech.Element({\r
+ element: @speech, \r
root: @root,\r
spot: @spot\r
})\r
this.$el.attr(@attr)\r
- this.$el.html(@img.render().el)\r
+ this.$el.html('')\r
+ this.$el.append(@b.render().el)\r
+ this.$el.append(@s.render().el)\r
this\r
\r
style: () ->\r
@spot = options.spot\r
\r
render: () ->\r
- attr = {style: Pettanr.to_style(@outer_style())}\r
+ @outer_attr = {style: Pettanr.to_style(@outer_style())}\r
@div = new Tag.Div({\r
attr: {\r
style: Pettanr.to_style(@inner_style())\r
content: @element.scenario(),\r
class_name: 'pettanr-comic-speech-inner'\r
})\r
- this.$el.attr(@attr)\r
+ this.$el.attr(@outer_attr)\r
this.$el.html(@div.render().el)\r
this\r
\r
def items
if self.source_by_model?
- ::Manifest.manifest.system_resources.select_items[self.select_item_name]
- else
resource_model_name = self.model_attribute_manifest.source.resource_model_name
resource_list_name = self.model_attribute_manifest.source.resource_list_name
filter_column_name = self.model_attribute_manifest.source.filter_column_name
list.items(nil, {:id => filter_id},
0, -1 # no limit
).map {|i| [i.caption, i.id] }
+ else
+ ::Manifest.manifest.system_resources.select_items[self.select_item_name]
end
end
def source_by_model?
case self.model_attribute_manifest.source.type
- when 'model', 'filter'
+ when 'filter'
true
- when 'magic_number'
+ when 'model', 'magic_number'
false
else
nil