// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
+//= require jquery
+//= require jquery_ujs
//= require_directory ./manifest/work
+//= require system
--- /dev/null
+// This is a manifest file that'll be compiled into including all the files listed below.
+// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
+// be included in the compiled file accessible from http://example.com/assets/application.js
+// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
+// the compiled file.
+//
+//= require jquery
+//= require jquery_ujs
+//= require jquery.ui.all
+//= require jquery.validate
+//= require additional-methods
+//= require jquery.validate.localization/messages_ja
+//= require textchange
+//= require underscore
+//= require backbone
+//= require_directory ./manifest
+//= require_directory ./views
+//= require pettanr_editor
+//= require writing_formats
+//= require_directory ./helpers
+//= require speech_balloon_templates
+//= require panels
+//= require main
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
-//= require jquery
-//= require jquery_ujs
-//= require jquery.ui.all
-//= require jquery.validate
-//= require additional-methods
-//= require jquery.validate.localization/messages_ja
-//= require textchange
-//= require underscore
-//= require backbone
-//= require_directory ./manifest
-//= require_directory ./views
-//= require pettanr_editor
-//= require pettanr_sheeter
-//= require writing_formats
-//= require_directory ./helpers
-//= require speech_balloon_templates
-//= require panels
-//= require sheets
-// require_tree .
+// // require_tree .
--- /dev/null
+$ ->\r
+ _.templateSettings = {\r
+ interpolate: /\<\&\=(.+?)\&\>/g,\r
+ evaluate: /\<\&(.+?)\&\>/g\r
+ }\r
+ $.getJSON('/manifest.json', null, (data) =>\r
+ window.manifest = data )\r
+ $.getJSON('/local_manifest.json', null, (data) =>\r
+ window.local_manifest = data )\r
+ class Pettanr extends Backbone.View \r
+ el: '#pettanr'\r
+ initialize: ->\r
+ render: () ->\r
+ $(@el).append(@template())\r
+ template: () ->\r
+ 'asd'\r
+ pettanr = new Pettanr()\r
+ pettanr.render()\r
parent_model_name: 'speech_balloon',\r
boost: {\r
writing_format: {\r
+ level: 'read',\r
+ #extend_model_class_name: '', modelless\r
+ item_name_for_extend_model: 'renderer',\r
+ extend_module_name: 'RendererModule',\r
},\r
speech_balloon_template: {\r
extend_model_class_name: 'Speech',\r
},\r
},\r
},\r
+ original_picture_license_group: {\r
+ args: {\r
+ boost: {\r
+ # expand license_group_settings\r
+ license_group: {\r
+ extend_model_class_name: 'Attribute',\r
+ item_name_for_extend_model: 'attribute',\r
+ },\r
+ credit_picture: {\r
+ template_name: 'license_group',\r
+ extend_model_class_name: 'CreditPicture',\r
+ item_name_for_extend_model: 'credit_picture',\r
+ },\r
+ },\r
+ },\r
+ },\r
speech_balloon_template: {\r
type: 'template',\r
},\r
},\r
},\r
},\r
+ original_picture_license_group: {\r
+ attributes: {\r
+ },\r
+ },\r
speech_balloon_template: {\r
associations: {\r
belongs_to: {\r
$ ->\r
- _.templateSettings = {\r
- interpolate: /\<\&\=(.+?)\&\>/g,\r
- evaluate: /\<\&(.+?)\&\>/g\r
- }\r
#filer = new Filer('tt', ['ea','eb','ec'])\r
#view = new FilerView( { filer: filer } )\r
confirm_confirm_confirm = () ->\r
confirm( )\r
editor = window.PettanrEditor\r
- manifest = {\r
- items: window.items,\r
- controllers: window.controllers,\r
- models: window.models,\r
- system_resources: window.system_resources,\r
- magic_numbers: window.magic_numbers,\r
- }\r
- local_manifest = {\r
- list_groups: window.list_groups,\r
- profilers: window.profilers,\r
- filers: window.filers,\r
- forms: window.forms,\r
- buckets: window.buckets,\r
- }\r
- j = JSON.stringify(manifest, undefined, 2)\r
- $('#pettanr-manifest').val(j)\r
- j = JSON.stringify(local_manifest, undefined, 2)\r
- $('#pettanr-local_manifest').val(j)\r
WritingFormat = window.PettanrWritingFormat\r
WritingFormat.load($('#writing_formats'))\r
SpeechBalloonTemplate = window.PettanrSpeechBalloonTemplate\r
@original_picture = OriginalPicture.show params[:original_picture_id], @operators
@original_picture_license_group = OriginalPictureLicenseGroup.new params[:original_picture_license_group]
@license_group = LicenseGroup.show @original_picture_license_group.license_group_id, @operators
- @ctl = @license_group.my_engine_name
+ @ctl = @license_group.template_path_name
@attr = @license_group.my_engine.new_attribute {}
@attr.supply_default @operators
before_filter :authenticate_user, :only => []
before_filter :authenticate_author, :only => []
else
- before_filter :authenticate_reader, :only => [:index, :metro]
+ before_filter :authenticate_reader, :only => [:index, :ap]
before_filter :authenticate_user, :only => []
before_filter :authenticate_author, :only => []
end
end
end
- def metro
+ def ap
respond_to do |format|
- format.html
- #format.html { render layout: 'metro' }
+ format.html { render layout: 'ap' }
end
end
def panel_editor_javascript_include_tags
WritingFormat.enable_list().map {|wf|
# javascript_include_tag wf.engine_name
- javascript_include_tag wf.my_engine_name + "/application"
+ javascript_include_tag wf.template_path_name + "/application"
}.join("\n") +
SpeechBalloonTemplate.enable_list().map {|sbt|
- stylesheet_link_tag sbt.my_engine_name + "/application"
+ stylesheet_link_tag sbt.template_path_name + "/application"
}.join("\n") +
SpeechBalloonTemplate.enable_list().map {|sbt|
- javascript_include_tag sbt.my_engine_name + "/application"
+ javascript_include_tag sbt.template_path_name + "/application"
}.join("\n")
end
{'speech_attributes' => speech_attributes}
end
- def writing_format_engine_model
- self.writing_format.engine_model
- end
-
def scenario
- self.writing_format_engine_model.render self.content
+ self.boosts 'read'
+ self.render
end
def plain_scenario
@parsed_settings ||= JSON.parse(self.settings)
end
- def engine_model
- my_engine.const_get 'Renderer'
- end
+ # get template model ex) PettanrSimpleFormat::Renderer
+ # render method written in template model
+ #def extend_model
+ # self.template_module.const_get 'Renderer'
+ #end
def self.import filename
WritingFormat.import_file(filename) {|name, attr| WritingFormat.store(name, attr)}
--- /dev/null
+<!DOCTYPE html>\r
+<html>\r
+<head>\r
+ <title>\r
+ ap - <%= h(manifest.magic_numbers['profile']['users']['caption']) %>\r
+ </title>\r
+ <%= stylesheet_link_tag "application" %>\r
+ <%= javascript_include_tag "application" %>\r
+ <%= javascript_include_tag "ap" %>\r
+ <%= raw panel_editor_javascript_include_tags %>\r
+ <%= csrf_meta_tags %>\r
+</head>\r
+<body>\r
+\r
+<div width="100%">\r
+<table class="no-border">\r
+ <tr>\r
+ <td width="50%">\r
+ <h3><%= link_to manifest.magic_numbers['profile']['users']['caption'], main_app.root_path %></h3>\r
+ </td>\r
+ <td width="30%">\r
+ <% if user_signed_in? %>\r
+ <%# link_to t('top.metro.title'), '/top/metro' %>\r
+ <% end %>\r
+ </td>\r
+ <td>\r
+ <div>\r
+ <% if @operators.author %>\r
+ <%= link_to h(truncate(@operators.author.name, :length => 12)), main_app.author_path(@operators.author) %>\r
+ <% end %>\r
+ </div>\r
+ <div>\r
+ <% if @operators.artist %>\r
+ <%= link_to h(truncate(@operators.artist.name, :length => 12)), main_app.artist_path(@operators.artist) %>\r
+ <% end %>\r
+ </div>\r
+ </td>\r
+ <td>\r
+ <% if user_signed_in? %>\r
+ <%= link_to t('home.configure.title'), '/home/configure' %>\r
+ <%= link_to t('home.sign_out.title'), main_app.destroy_user_session_path, :method => :delete %>\r
+ <% else %>\r
+ <%= link_to "sign in", main_app.new_user_session_path %>\r
+ <% end %>\r
+ </td>\r
+ </tr>\r
+</table>\r
+</div>\r
+<%= yield %>\r
+<div width="100%" style="background-color: #faddfa; padding: 5px;">\r
+ <%= link_to t('tab.demander.title'), main_app.demanders_path %>\r
+ <% if demand_user_signed_in? %>\r
+ <%= link_to t_m('Demander'), main_app.demanders_path %>\r
+ <%= link_to t('home.sign_out.title'), main_app.destroy_demand_user_session_path, :method => :delete %>\r
+ <% else %>\r
+ <%= link_to t('home.sign_in.title'), main_app.new_demand_user_session_path %>\r
+ <% end %>\r
+</div>\r
+<div width="100%" style="background-color: #ddddfa; padding: 5px;">\r
+ <%= link_to t('tab.system.title'), '/system' %>\r
+ <% if admin_signed_in? %>\r
+ <%= link_to t('tab.system.browse'), '/system/browse' %>\r
+ <%= link_to t('tab.system.approve'), '/system/waiting_list' %>\r
+ <%= link_to t('tab.system.port'), '/system/import' %>\r
+ <%= link_to t('tab.system.token'), '/system/auth_token' %>\r
+ <%= link_to t('home.sign_out.title'), main_app.destroy_admin_session_path, :method => :delete %>\r
+ <% else %>\r
+ <%= link_to t('home.sign_in.title'), main_app.new_admin_session_path %>\r
+ <% end %>\r
+</div>\r
+<%= javascript_tag 'var server_result=' + @server_result.to_json + ';' %>\r
+\r
+</body>\r
+</html>\r
<% else %>\r
<%= link_to "sign in", main_app.new_user_session_path %>\r
<% end %>\r
+ <br>\r
+ <%= link_to 'try ap', '/top/ap' %>\r
</td>\r
</tr>\r
</table>\r
<%= tag :img, element.balloon.tag_attributes(nil, {'class' => "pettanr-balloon", 'src' => element.balloon.system_picture.url, 'alt' => element.caption}) %>
<%= content_tag :div, {'class' => "pettanr-comic-speech", 'style' => raw(element.speech.outer_style.to_style)} do %>
<%= content_tag :div, element.speech.tag_attributes(nil, {'class' => "pettanr-comic-speech-inner", 'style' => raw(element.speech.inner_style.to_style)}) do %>
- <%= raw element.speech.writing_format.engine_model.render(element.speech.content) -%>
+ <%# element.speech.boosts 'post' %>
+ <%= raw element.speech.scenario -%>
<% end %>
<% end %>
<% end %>
<%= render editor.generator.template_name, :generator => editor.generator %>
<div id="writing_formats">
<% WritingFormat.enable_list().each do |wf| %>
- <div id="writing_format-<%= wf.id -%>" writing_format_id="<%= wf.id -%>" writing_format_engine_name="<%= wf.my_engine_name -%>">
+ <div id="writing_format-<%= wf.id -%>" writing_format_id="<%= wf.id -%>" writing_format_engine_name="<%= wf.template_path_name -%>">
</div>
<% end %>
</div>
--- /dev/null
+<div id="pettanr">\r
+</div>\r
+<script type="text/javascript" id="manifest">\r
+</script>\r
+<script type="text/javascript" id="local-manifest">\r
+</script>\r
+++ /dev/null
-<h1><%= t '.title' -%></h1>\r
- \r
- <%= link_to t('top.return'), root_path %>\r
# return false unless self.resource.enable?
if self.extendable?
@item.extend self.extend_module
- @item.__send__ @manifest.setter_method_name, self.parsed_settings
+ @item.__send__ @manifest.setter_method_name, self.parsed_settings if self.has_extend_model?
end
end
end
# get template module name
- # ex) attributes[hoge__module_name] -> 'Hoge'
+ # ex) attributes[hoge_module_name] -> 'Hoge'
def template_module_name
@item.attributes[@manifest.column_name_for_template_module]
end
self.template_module.const_get @manifest.extend_module_name
end
+ def has_extend_model?
+ !@manifest.extend_model_class_name.blank?
+ end
+
# extend settings data model in engine
# ex) CircleSpeechBalloon::SpeechBalloon
def extend_model
- self.template_module.const_get @manifest.extend_model_class_name
+ if self.has_extend_model?
+ self.template_module.const_get @manifest.extend_model_class_name
+ else
+ nil
+ end
end
def check_template
@item.attributes[@manifest.foreign_key].blank? == false
end
- # get system resource instance
- def resource
+ # get template model
+ def template_model
Manifest.manifest.models[@manifest.template_name].classify
end
# get extend instance
def extend_item
- @item.__send__ @manifest.getter_method_name
+ if self.extend_model
+ @item.__send__ @manifest.getter_method_name
+ else
+ nil
+ end
end
def parsed_settings
@item.__send__ @manifest.setter_method_name, new_settings
end
+ def supply_default
+ self.extend_item.supply_default @item
+ end
+
+ def overwrite
+ self.extend_item.overwrite @item
+ end
+
end
end
def init_fields
@manifest.each_field do |field_name, field_manifest|
- if boost_name = @item.class.find_boost_name(field_name)
+ boost_name = @item.class.find_boost_name(field_name)
+ extend_model = if boost_name
+ @item.boosters[boost_name].extend_model
+ else
+ nil
+ end
+ if boost_name and extend_model # field is extend setting AND template has a extend model
extend_form_name = @item.boosters[boost_name].model_name
extend_item = @item.boosters[boost_name].extend_item
@fields[field_name] = ExtendForm.new self, extend_form_name, extend_item, @mounted, @operators, field_name
end
def extend_settings
- self.resource_profiler.extend_settings[self.booster.model_name]
+ self.template_model_profiler.extend_settings[self.booster.model_name]
end
- def resource_profiler
- LocalManifest.manifest.profilers[self.resource.item_name]
+ def template_model_profiler
+ LocalManifest.manifest.profilers[self.template_model.item_name]
end
- def resource
- self.booster.resource
+ def template_model
+ self.booster.template_model
end
def extend_item
@boost = ManifestBase.load_name_values self, @args, 'boost', Boost
end
- def init_after_load_manifest
- @boost.each do |boost_name, boost_manifest|
- boost_manifest.init_after_load_manifest
- end
- end
-
def element?
@parent_model_name != nil
end
@column_name_for_template_module = @values['column_name_for_template_module']
@settings_column_name = @values['settings_column_name']
@foreign_key = @values['foreign_key']
- end
-
- def init_after_load_manifest
- # string name can't change before load manifest
- @values['extend_model_class_name'] ||= @parent.model.singular
+
@values['item_name_for_extend_model'] ||= @template_name
@values['setter_method_name'] ||= @values['item_name_for_extend_model'] + '_extend='
@values['getter_method_name'] ||= @values['item_name_for_extend_model'] + '_extend'
@item_name_for_extend_model = @values['item_name_for_extend_model']
@setter_method_name = @values['setter_method_name']
@getter_method_name = @values['getter_method_name']
- @extend_module_name = @extend_model_class_name + 'Module'
- end
-
- # speech.rb writing_format.rb
- def supply_default item
- self.engine_model(item).engine_extend_module.supply_default item, self
- end
-
- # speech.rb writing_format.rb
- def overwrite item
- self.engine_model(item).engine_extend_module.overwrite item, self
+ @extend_module_name = @values['extend_module_name']
+ unless @extend_module_name
+ if @extend_model_class_name
+ @extend_module_name = @extend_model_class_name + 'Module'
+ else
+ ManifestBase.alert_undefined_message 'extend_module_name', self.module_message
+ end
+ end
end
end
def init_after_load_manifest
@system_resources.init
- #
- @items.each do |name, peta_manifest|
- peta_manifest.init_after_load_manifest
- end
end
def load_models_manifest
end
def boosters
- @boosters
+ @boosters ||= {}
end
def extend_column? column_name
end
def supply_default
- self.class.my_peta.supply_defaults self
+ self.boosters.each do |boost_name, booster|
+ booster.supply_default
+ end
end
def overwrite
- self.class.my_peta.overwrites self
+ self.boosters.each do |boost_name, booster|
+ booster.overwrite
+ end
end
def user_visible? operators
}
end
- def my_template
- Manifest.manifest.system_resources.templates[self.table_name]
+ def self.template_manifest
+ Manifest.manifest.system_resources.templates[self.item_name]
end
def enable?
- return false unless tpl = self.my_template
- tpl.template_items.include? self.classname
+ return false unless tpl = self.class.template_manifest
+ tpl.template_items.include? self.module_name
end
- def my_engine_name
- self.my_template.template_items[self.classname]
+ def template_module
+ Object.const_get self.module_name
end
- def my_engine
- Object.const_get self.classname
+ def template_path_name
+ self.class.template_manifest.template_items[self.module_name]
end
+
end
end
"args": {\r
"parent_model_name": "speech_balloon",\r
"boost": {\r
- "writing_format": {},\r
+ "writing_format": {\r
+ "level": "read",\r
+ "item_name_for_extend_model": "renderer",\r
+ "extend_module_name": "RendererModule"\r
+ },\r
"speech_balloon_template": {\r
"extend_model_class_name": "Speech",\r
"item_name_for_extend_model": "speech"\r