OSDN Git Service

fix boost template
authoryasushiito <yas@pen-chan.jp>
Mon, 16 Jun 2014 02:08:34 +0000 (11:08 +0900)
committeryasushiito <yas@pen-chan.jp>
Mon, 16 Jun 2014 02:08:34 +0000 (11:08 +0900)
27 files changed:
app/assets/javascripts/admin.js
app/assets/javascripts/ap.js [new file with mode: 0644]
app/assets/javascripts/application.js
app/assets/javascripts/main.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/work/items.js.coffee.erb
app/assets/javascripts/manifest/work/models.js.coffee.erb
app/assets/javascripts/panels.js.coffee
app/controllers/original_picture_license_groups_controller.rb
app/controllers/top_controller.rb
app/helpers/application_helper.rb
app/models/speech.rb
app/models/writing_format.rb
app/views/layouts/ap.html.erb [new file with mode: 0644]
app/views/layouts/application.html.erb
app/views/speech_balloons/_element.html.erb
app/views/templates/r/panel_editor/panel_editor.html.erb
app/views/top/ap.html.erb [new file with mode: 0644]
app/views/top/metro.html.erb [deleted file]
lib/locmare/booster.rb
lib/locmare/form.rb
lib/locmare/profiler/column/extend.rb
lib/manifest/item/base.rb
lib/manifest/item/boost.rb
lib/manifest/manifest.rb
lib/peta/item.rb
lib/peta/template.rb
public/manifest.json

index a5c5d0c..f9a696c 100644 (file)
@@ -4,4 +4,7 @@
 // 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
diff --git a/app/assets/javascripts/ap.js b/app/assets/javascripts/ap.js
new file mode 100644 (file)
index 0000000..6c5ef45
--- /dev/null
@@ -0,0 +1,23 @@
+// 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
index 78a6ead..bce28be 100644 (file)
@@ -4,22 +4,4 @@
 // 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 .
diff --git a/app/assets/javascripts/main.js.coffee b/app/assets/javascripts/main.js.coffee
new file mode 100644 (file)
index 0000000..51b13b9
--- /dev/null
@@ -0,0 +1,18 @@
+$ ->\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
index a54b8a6..52ca45f 100644 (file)
       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
index 44b751a..2dede08 100644 (file)
       },\r
     },\r
   },\r
+  original_picture_license_group: {\r
+    attributes: {\r
+    },\r
+  },\r
   speech_balloon_template: {\r
     associations: {\r
       belongs_to: {\r
index 698bff6..b837ae9 100644 (file)
@@ -1,31 +1,9 @@
 $ ->\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
index eebd199..44ccd1b 100644 (file)
@@ -17,7 +17,7 @@ class OriginalPictureLicenseGroupsController < ApplicationController
     @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
 
index eca273e..554d839 100644 (file)
@@ -3,7 +3,7 @@ class TopController < ApplicationController
     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
@@ -14,10 +14,9 @@ class TopController < ApplicationController
     end
   end
   
-  def metro
+  def ap
     respond_to do |format|
-      format.html 
-      #format.html { render layout: 'metro' }
+      format.html { render layout: 'ap' }
     end
   end
   
index d83d256..08b0b5d 100644 (file)
@@ -81,13 +81,13 @@ module ApplicationHelper
   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
   
index 4c80fd5..12cd5b0 100644 (file)
@@ -74,12 +74,9 @@ class Speech < Peta::Element
     {'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
index 2d3cd15..a0bbb0b 100644 (file)
@@ -57,9 +57,11 @@ end
     @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)}
diff --git a/app/views/layouts/ap.html.erb b/app/views/layouts/ap.html.erb
new file mode 100644 (file)
index 0000000..0b222c9
--- /dev/null
@@ -0,0 +1,74 @@
+<!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
index 765f381..6afe8c2 100644 (file)
@@ -46,6 +46,8 @@
       <% 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
index 41d6091..127cd47 100644 (file)
@@ -2,7 +2,8 @@
   <%= 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 %>
index e2bf1b4..6ed8528 100644 (file)
@@ -4,7 +4,7 @@
   <%= 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>
diff --git a/app/views/top/ap.html.erb b/app/views/top/ap.html.erb
new file mode 100644 (file)
index 0000000..440e23b
--- /dev/null
@@ -0,0 +1,6 @@
+<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
diff --git a/app/views/top/metro.html.erb b/app/views/top/metro.html.erb
deleted file mode 100644 (file)
index e6076d3..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<h1><%= t '.title' -%></h1>\r
\r
-        <%= link_to t('top.return'), root_path %>\r
index 1edcdda..6dda2ab 100644 (file)
@@ -9,7 +9,7 @@ module Locmare
       # 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
     
@@ -32,7 +32,7 @@ module Locmare
     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
@@ -57,24 +57,36 @@ module Locmare
       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
@@ -89,6 +101,14 @@ module Locmare
       @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
 
index f7b473a..9c13327 100644 (file)
@@ -73,7 +73,13 @@ module Locmare
     
     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
index 431fa12..c86927f 100644 (file)
@@ -24,15 +24,15 @@ module Locmare
         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
index 27e10b3..d92cfd6 100644 (file)
@@ -18,12 +18,6 @@ module Manifest
         @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
index d677a1a..b75adc5 100644 (file)
@@ -23,11 +23,7 @@ module Manifest
         @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'
@@ -35,17 +31,14 @@ module Manifest
         @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
index 035a6e2..1108921 100644 (file)
@@ -23,10 +23,6 @@ module Manifest
     
     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
index 9243922..829c15b 100644 (file)
@@ -183,7 +183,7 @@ module Peta
     end
     
     def boosters
-      @boosters
+      @boosters ||= {}
     end
     
     def extend_column? column_name
@@ -191,11 +191,15 @@ module Peta
     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
index c804a53..097b306 100644 (file)
@@ -12,21 +12,22 @@ module Peta
       }
     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
index 153be94..d3943fd 100644 (file)
       "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