OSDN Git Service

fix ap
authoryasushiito <yas@pen-chan.jp>
Fri, 27 Jun 2014 02:45:08 +0000 (11:45 +0900)
committeryasushiito <yas@pen-chan.jp>
Fri, 27 Jun 2014 02:45:08 +0000 (11:45 +0900)
41 files changed:
app/assets/javascripts/admin.js
app/assets/javascripts/ap.js
app/assets/javascripts/local_manifest/local_manifest.js.coffee [new file with mode: 0644]
app/assets/javascripts/main.js.coffee
app/assets/javascripts/manifest/controller.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/filer.js.coffee [deleted file]
app/assets/javascripts/manifest/item.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/item/base.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/item/binder.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/item/boost.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/item/content.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/item/element.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/item/item.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/item/leaf.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/item/owner.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/item/root.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/item/system_resource.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/item/template.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/manifest.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/model.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/system_resource.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest/system_resource/template.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest_base/base.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest_base/factory.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest_base/manifest_base.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest_base/name_values.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest_base/names.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest_base/type_args.js.coffee [new file with mode: 0644]
app/assets/javascripts/manifest_base/type_name_args.coffee [new file with mode: 0644]
app/assets/javascripts/manifest_base/values.js.coffee [new file with mode: 0644]
app/assets/javascripts/work/buckets.js.coffee.erb [moved from app/assets/javascripts/manifest/work/buckets.js.coffee.erb with 100% similarity]
app/assets/javascripts/work/controllers.js.coffee.erb [moved from app/assets/javascripts/manifest/work/controllers.js.coffee.erb with 100% similarity]
app/assets/javascripts/work/filers.js.coffee.erb [moved from app/assets/javascripts/manifest/work/filers.js.coffee.erb with 100% similarity]
app/assets/javascripts/work/forms.js.coffee.erb [moved from app/assets/javascripts/manifest/work/forms.js.coffee.erb with 100% similarity]
app/assets/javascripts/work/items.js.coffee.erb [moved from app/assets/javascripts/manifest/work/items.js.coffee.erb with 100% similarity]
app/assets/javascripts/work/list_groups.js.coffee.erb [moved from app/assets/javascripts/manifest/work/list_groups.js.coffee.erb with 100% similarity]
app/assets/javascripts/work/magic_numbers.js.coffee.erb [moved from app/assets/javascripts/manifest/work/magic_numbers.js.coffee.erb with 100% similarity]
app/assets/javascripts/work/models.js.coffee.erb [moved from app/assets/javascripts/manifest/work/models.js.coffee.erb with 100% similarity]
app/assets/javascripts/work/profilers.js.coffee.erb [moved from app/assets/javascripts/manifest/work/profilers.js.coffee.erb with 100% similarity]
app/assets/javascripts/work/system_resources.js.coffee.erb [moved from app/assets/javascripts/manifest/work/system_resources.js.coffee.erb with 100% similarity]
app/views/layouts/ap.html.erb

index f9a696c..e379484 100644 (file)
@@ -6,5 +6,5 @@
 //
 //= require jquery
 //= require jquery_ujs
-//= require_directory ./manifest/work
+//= require_directory ./work
 //= require system
index 6c5ef45..04006a0 100644 (file)
 //= require textchange
 //= require underscore
 //= require backbone
-//= require_directory ./manifest
+//= require ./manifest_base/manifest_base
+//= require ./manifest_base/base
+//= require ./manifest_base/factory
+//= require ./manifest_base/values
+//= require ./manifest_base/name_values
+//= require ./manifest_base/type_args
+//= require ./manifest_base/type_name_args
+//= require ./manifest_base/names
+//= require ./manifest/manifest
+//= require ./manifest/item
+//= require ./manifest/item/boost
+//= require ./manifest/item/base
+//= require ./manifest/item/item
+//= require ./manifest/item/owner
+//= require ./manifest/item/system_resource
+//= require ./manifest/item/template
+//= require ./manifest/item/content
+//= require ./manifest/item/root
+//= require ./manifest/item/element
+//= require ./manifest/item/binder
+//= require ./manifest/item/leaf
+//= require ./manifest/system_resource
+//= require ./manifest/system_resource/template
 //= require_directory ./views
-//= require pettanr_editor
-//= require writing_formats
-//= require_directory ./helpers
-//= require speech_balloon_templates
-//= require panels
 //= require main
diff --git a/app/assets/javascripts/local_manifest/local_manifest.js.coffee b/app/assets/javascripts/local_manifest/local_manifest.js.coffee
new file mode 100644 (file)
index 0000000..69f6c46
--- /dev/null
@@ -0,0 +1,13 @@
+class LocalManifest\r
+  constructor: (local_json) ->\r
+    @module_names = []\r
+    @local_json = local_json || {}\r
+  \r
+  init: () ->\r
+    @list_groups = ListGroup.load(self, @local_json, 'list_groups')\r
+    @filers = Filer.load(self, @local_json, 'filers')\r
+    @profilers = Profiler.load(self, @local_json, 'profilers')\r
+    @forms = Form.load(self, @local_json, 'forms')\r
+    @buckets = Bucket.load(self, @local_json, 'buckets')\r
+\r
+@LocalManifest = LocalManifest\r
index 51b13b9..2e2c816 100644 (file)
@@ -3,10 +3,17 @@ $ ->
     interpolate: /\<\&\=(.+?)\&\>/g,\r
     evaluate: /\<\&(.+?)\&\>/g\r
   }\r
+  loaded_manifest = null\r
+  $.ajaxSetup({async: false})\r
   $.getJSON('/manifest.json', null, (data) =>\r
-    window.manifest = data )\r
+    loaded_manifest = new Manifest(data) )\r
   $.getJSON('/local_manifest.json', null, (data) =>\r
-    window.local_manifest = data )\r
+    window.loaded_local_manifest = new LocalManifest(data)\r
+  )\r
+  $.ajaxSetup({async: true})\r
+  loaded_manifest.init()\r
+  t = new ManifestBase.Base('manifest', 'name', 'json', 'module_name')\r
+  t.set_default()\r
   class Pettanr extends Backbone.View \r
     el: '#pettanr'\r
     initialize: ->\r
diff --git a/app/assets/javascripts/manifest/controller.js.coffee b/app/assets/javascripts/manifest/controller.js.coffee
new file mode 100644 (file)
index 0000000..4e9f905
--- /dev/null
@@ -0,0 +1,8 @@
+class Manifest.Controller\r
+  constructor: (item_name) ->\r
+    @item_name = item_name\r
+  \r
+  model_name: () ->\r
+  header: () ->\r
+  paginate: () ->\r
+\r
diff --git a/app/assets/javascripts/manifest/filer.js.coffee b/app/assets/javascripts/manifest/filer.js.coffee
deleted file mode 100644 (file)
index f7cbc71..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-class Filer\r
-  class Symbol\r
-    constructor: (conf) ->\r
-      @conf = conf\r
-    visible: () ->\r
-      true\r
-  class FileItem\r
-    constructor: (item) ->\r
-      @item = item\r
-    symbol: () ->\r
-      @item\r
-    caption: () ->\r
-    summary: () ->\r
-    icon: () ->\r
-    date: () ->\r
-    edit: () ->\r
-  \r
-  constructor: (item_name, items) ->\r
-    @item_name = item_name\r
-    @items = items\r
-    @symbol = new Symbol({   })\r
-    @caption = new Symbol({   })\r
-    @summary = new Symbol({   })\r
-    @icon = new Symbol({   })\r
-    @date = new Symbol({   })\r
-    @edit = new Symbol({   })\r
-    @file_items = _.map @items, (item) -> \r
-      new FileItem(item)\r
-  \r
-  model_name: () ->\r
-  header: () ->\r
-  paginate: () ->\r
-\r
-@Filer = Filer\r
diff --git a/app/assets/javascripts/manifest/item.js.coffee b/app/assets/javascripts/manifest/item.js.coffee
new file mode 100644 (file)
index 0000000..809aa47
--- /dev/null
@@ -0,0 +1,20 @@
+class Manifest.ItemFactory extends ManifestBase.Factory\r
+  \r
+  @types: () ->\r
+    {\r
+      'item': Manifest.ItemModule.ItemPeta, \r
+      'owner': Manifest.ItemModule.OwnerPeta, \r
+      'system_resource': Manifest.ItemModule.SystemResourcePeta, \r
+      'template': Manifest.ItemModule.TemplatePeta, \r
+      'content': Manifest.ItemModule.ContentPeta, \r
+      'root': Manifest.ItemModule.RootPeta, \r
+      'element': Manifest.ItemModule.ElementPeta, \r
+      'binder': Manifest.ItemModule.BinderPeta, \r
+      'leaf': LeafPeta\r
+    }\r
+  \r
+  @default_type: () ->\r
+    'item'\r
+    \r
+class Manifest.ItemModule\r
+\r
diff --git a/app/assets/javascripts/manifest/item/base.js.coffee b/app/assets/javascripts/manifest/item/base.js.coffee
new file mode 100644 (file)
index 0000000..c86ee17
--- /dev/null
@@ -0,0 +1,35 @@
+class Manifest.ItemModule.BasePeta extends ManifestBase.TypeNameArgs\r
+  \r
+  set_default: () ->\r
+    super()\r
+    @args['boost'] ||= {}\r
+    \r
+  init: () ->\r
+    super()\r
+    @parent_model_name = null  # init at leaf, element\r
+    @boost = ManifestBase.load_name_values(this, @args, 'boost', Boost)\r
+  \r
+  is_element: () ->\r
+    @parent_model_name != null\r
+  \r
+  find_boost_name: (column_name) -> \r
+    _.each @boost, (boost_name, boost_manifest) ->\r
+      return boost_name if boost_manifest.settings_column_name == column_name\r
+    null\r
+  \r
+  is_extend_column: (column_name) ->\r
+    _.each @boost, (boost_name, boost_manifest) ->\r
+      return true if boost_manifest.extend_column_name == column_name\r
+    false\r
+  \r
+  supply_defaults: (item) ->\r
+    _.each @boost, (name, manifest) ->\r
+      manifest.supply_default item\r
+  \r
+  overwrites: (item) ->\r
+    _.each @boost, (name, manifest) ->\r
+      manifest.overwrite item\r
+  \r
+  model: () ->\r
+    Manifest.item_name_to_model @name\r
+\r
diff --git a/app/assets/javascripts/manifest/item/binder.js.coffee b/app/assets/javascripts/manifest/item/binder.js.coffee
new file mode 100644 (file)
index 0000000..2eb5998
--- /dev/null
@@ -0,0 +1,8 @@
+class Manifest.ItemModule.BinderPeta extends Manifest.ItemModule.BasePeta\r
+  \r
+  set_default: () ->\r
+    super()\r
+    \r
+  init: () ->\r
+    super()\r
+  \r
diff --git a/app/assets/javascripts/manifest/item/boost.js.coffee b/app/assets/javascripts/manifest/item/boost.js.coffee
new file mode 100644 (file)
index 0000000..dce621f
--- /dev/null
@@ -0,0 +1,8 @@
+class Manifest.ItemModule.Boost extends ManifestBase.NameValues\r
+  \r
+  set_default: () ->\r
+    super()\r
+    \r
+  init: () ->\r
+    super()\r
+  \r
diff --git a/app/assets/javascripts/manifest/item/content.js.coffee b/app/assets/javascripts/manifest/item/content.js.coffee
new file mode 100644 (file)
index 0000000..3ef9001
--- /dev/null
@@ -0,0 +1,8 @@
+class Manifest.ItemModule.ContentPeta extends Manifest.ItemModule.BasePeta\r
+  \r
+  set_default: () ->\r
+    super()\r
+    \r
+  init: () ->\r
+    super()\r
+  \r
diff --git a/app/assets/javascripts/manifest/item/element.js.coffee b/app/assets/javascripts/manifest/item/element.js.coffee
new file mode 100644 (file)
index 0000000..0288b9b
--- /dev/null
@@ -0,0 +1,10 @@
+class Manifest.ItemModule.ElementPeta extends Manifest.ItemModule.BasePeta\r
+  \r
+  set_default: () ->\r
+    super()\r
+    ManifestBase.alert_undefined_message('parent_model_name', @module_message()) if not @args['parent_model_name']\r
+    \r
+  init: () ->\r
+    super()\r
+    @parent_model_name = @args['parent_model_name']\r
+  \r
diff --git a/app/assets/javascripts/manifest/item/item.js.coffee b/app/assets/javascripts/manifest/item/item.js.coffee
new file mode 100644 (file)
index 0000000..5f5c25d
--- /dev/null
@@ -0,0 +1,8 @@
+class Manifest.ItemModule.ItemPeta extends Manifest.ItemModule.BasePeta\r
+  \r
+  set_default: () ->\r
+    super()\r
+    \r
+  init: () ->\r
+    super()\r
+  \r
diff --git a/app/assets/javascripts/manifest/item/leaf.js.coffee b/app/assets/javascripts/manifest/item/leaf.js.coffee
new file mode 100644 (file)
index 0000000..360b7bb
--- /dev/null
@@ -0,0 +1,11 @@
+class Manifest.ItemModule.LeafPeta extends Manifest.ItemModule.BasePeta\r
+  \r
+  set_default: () ->\r
+    super()\r
+    ManifestBase.alert_undefined_message('parent_model_name', @module_message()) if not @args['parent_model_name']\r
+    \r
+  init: () ->\r
+    super()\r
+    @parent_model_name = @args['parent_model_name']\r
+    @destination_model_name = @args['destination_model_name']\r
+  \r
diff --git a/app/assets/javascripts/manifest/item/owner.js.coffee b/app/assets/javascripts/manifest/item/owner.js.coffee
new file mode 100644 (file)
index 0000000..f9b7176
--- /dev/null
@@ -0,0 +1,8 @@
+class Manifest.ItemModule.OwnerPeta extends Manifest.ItemModule.BasePeta\r
+  \r
+  set_default: () ->\r
+    super()\r
+    \r
+  init: () ->\r
+    super()\r
+  \r
diff --git a/app/assets/javascripts/manifest/item/root.js.coffee b/app/assets/javascripts/manifest/item/root.js.coffee
new file mode 100644 (file)
index 0000000..d7e8bf0
--- /dev/null
@@ -0,0 +1,8 @@
+class Manifest.ItemModule.RootPeta extends Manifest.ItemModule.BasePeta\r
+  \r
+  set_default: () ->\r
+    super()\r
+    \r
+  init: () ->\r
+    super()\r
+  \r
diff --git a/app/assets/javascripts/manifest/item/system_resource.js.coffee b/app/assets/javascripts/manifest/item/system_resource.js.coffee
new file mode 100644 (file)
index 0000000..7f69018
--- /dev/null
@@ -0,0 +1,8 @@
+class Manifest.ItemModule.SystemResourcePeta extends Manifest.ItemModule.BasePeta\r
+  \r
+  set_default: () ->\r
+    super()\r
+    \r
+  init: () ->\r
+    super()\r
+  \r
diff --git a/app/assets/javascripts/manifest/item/template.js.coffee b/app/assets/javascripts/manifest/item/template.js.coffee
new file mode 100644 (file)
index 0000000..745c2ca
--- /dev/null
@@ -0,0 +1,8 @@
+class Manifest.ItemModule.TemplatePeta extends Manifest.ItemModule.BasePeta\r
+  \r
+  set_default: () ->\r
+    super()\r
+    \r
+  init: () ->\r
+    super()\r
+  \r
diff --git a/app/assets/javascripts/manifest/manifest.js.coffee b/app/assets/javascripts/manifest/manifest.js.coffee
new file mode 100644 (file)
index 0000000..28014cf
--- /dev/null
@@ -0,0 +1,16 @@
+class Manifest\r
+  constructor: (global_json) ->\r
+    @module_names = []\r
+    @global_json = global_json || {}\r
+    @system_resources = new Manifest.SystemResource(\r
+      this, Manifest.SystemResource.set_default(@global_json['system_resources'])\r
+    )\r
+    @magic_numbers = @global_json['magic_numbers']\r
+  \r
+  init: () ->\r
+    # managers can't initialize before load  application.rb\r
+    @items = ManifestBase.load_type_name_args(this, @global_json, 'items', Manifest.ItemFactory)\r
+    @controllers = Manifest.Controller.load(this, @global_json, 'controllers')\r
+    @models = Manifest.Model.load(this, @global_json, 'models')\r
+    \r
+@Manifest = Manifest\r
diff --git a/app/assets/javascripts/manifest/model.js.coffee b/app/assets/javascripts/manifest/model.js.coffee
new file mode 100644 (file)
index 0000000..d855c80
--- /dev/null
@@ -0,0 +1,8 @@
+class Manifest.Model\r
+  constructor: (item_name) ->\r
+    @item_name = item_name\r
+  \r
+  model_name: () ->\r
+  header: () ->\r
+  paginate: () ->\r
+\r
diff --git a/app/assets/javascripts/manifest/system_resource.js.coffee b/app/assets/javascripts/manifest/system_resource.js.coffee
new file mode 100644 (file)
index 0000000..ba80476
--- /dev/null
@@ -0,0 +1,41 @@
+class Manifest.SystemResource\r
+  \r
+  @set_default: (system_resource_manifest) ->\r
+    system_resource_manifest['templates'] ||= {}\r
+    system_resource_manifest['select_items'] ||= {}\r
+    #oh my ...\r
+    #JSON.stringify couldn't print 1.0 \r
+    # 1 == 1.0 ?\r
+    #change class\r
+    system_resource_manifest['select_items']['speech_font_size_items'] ||= {}\r
+    _.each system_resource_manifest['select_items']['speech_font_size_items'], (conf) ->\r
+      #conf[1] = parseFloat((conf[1]))\r
+    system_resource_manifest\r
+    \r
+  init: () ->\r
+    @select_items_loader\r
+  \r
+  select_items_loader: () ->\r
+    _.each @manifest.models, (model_name, model_manifest) ->\r
+      _.each model_manifest.attributes, (attribute_name, attribute_manifest) ->\r
+        source_manifest = attribute_manifest.source\r
+        next if not source_manifest\r
+        next if not source_manifest.type == 'model'\r
+        resource_model_name = source_manifest.resource_model_name\r
+        resource_list_name = source_manifest.resource_list_name\r
+        caption = source_manifest.caption_name\r
+        #begin\r
+        #  list = Locmare::ListGroup.list resource_model_name, resource_list_name\r
+        #  r = list.open nil, {}\r
+        #  @select_items[source_manifest.select_item_name] = \r
+        #    r.items.map {|item| [item.attributes[caption], item.id]}\r
+        #rescue\r
+        #  puts 'skip store select_items:' + resource_model_name + '.' + resource_list_name\r
+        #end\r
+  \r
+  constructor: (manifest, system_resource_manifest) ->\r
+    @manifest = manifest\r
+    @system_resource_manifest = system_resource_manifest\r
+    @templates = Manifest.SystemResource.Template.manager(this, @system_resource_manifest['templates'])\r
+    @select_items = system_resource_manifest['select_items']\r
+\r
diff --git a/app/assets/javascripts/manifest/system_resource/template.js.coffee b/app/assets/javascripts/manifest/system_resource/template.js.coffee
new file mode 100644 (file)
index 0000000..2c90a14
--- /dev/null
@@ -0,0 +1,26 @@
+class Manifest.SystemResource.Template\r
+  \r
+  @manager: (system_resource, my_manifests) ->\r
+    templates = {}\r
+    _.each my_manifests, (template_name, my_manifest) ->\r
+      templates[template_name] = new Manifest.SystemResource.Template(system_resource, template_name, my_manifest)\r
+    templates\r
+  \r
+  set_default: () ->\r
+    @my_manifest['template_items'] ||= {}\r
+    @my_manifest['has_route'] ||= 1\r
+  \r
+  init: () ->\r
+    @has_route = @my_manifest['has_route']\r
+    @template_items = @my_manifest['template_items']\r
+  \r
+  is_add_route: () ->\r
+    @has_route > 0\r
+  \r
+  constructor: (system_resource, template_name, my_manifest) ->\r
+    @system_resource = system_resource\r
+    @template_name = template_name\r
+    @my_manifest = my_manifest\r
+    @set_default()\r
+    @init()\r
+  \r
diff --git a/app/assets/javascripts/manifest_base/base.js.coffee b/app/assets/javascripts/manifest_base/base.js.coffee
new file mode 100644 (file)
index 0000000..4aac350
--- /dev/null
@@ -0,0 +1,28 @@
+class ManifestBase.Base
+  @load: (manifest, jsons, module_name) -> 
+    r = {}
+    _.each @jsons[module_name], (name, json) -> 
+      r[name] = new ManifestBase.Base(manifest, name, json, module_name)
+    r
+  
+  set_default: () ->
+    @json['args'] ||= {}
+    @type = @json['type']
+    @args = @json['args']
+  
+  init: () ->
+  
+  module_names: () ->
+    @parent.module_names + [@module_name, @name]
+  
+  module_message: () ->
+    ManifestBase.module_message(@module_names)
+  
+  constructor: (manifest, name, json, module_name) ->
+    @manifest = manifest
+    @name = name
+    @json = json
+    @module_name = module_name
+    @set_default()
+    @init()
+  
diff --git a/app/assets/javascripts/manifest_base/factory.js.coffee b/app/assets/javascripts/manifest_base/factory.js.coffee
new file mode 100644 (file)
index 0000000..8bc2627
--- /dev/null
@@ -0,0 +1,25 @@
+class ManifestBase.Factory\r
+  @types: () ->\r
+    {}\r
+  \r
+  @default_type: () ->\r
+    null\r
+  \r
+  @factory: (parent, name, json, module_name) -> \r
+    module_message = ManifestBase.module_message(parent.module_names(), [module_name, name])\r
+    json['type'] ||= @default_type()\r
+    type = json['type']\r
+    ManifestBase.alert_undefined_message('type', module_message) if not type\r
+    my_class = @types()[type]\r
+    ManifestBase.alert_undefined_message('class', module_message) if not my_class\r
+    new my_class(parent, name, json, module_name)\r
+  \r
+  @factory_type_args: (parent, json, module_name) ->\r
+    module_message = ManifestBase.module_message(parent.module_names(), [module_name])\r
+    json['type'] ||= @default_type()\r
+    type = json['type']\r
+    ManifestBase.alert_undefined_message('type', module_message) if not type\r
+    my_class = @types()[type]\r
+    ManifestBase.alert_undefined_message('class', module_message) if not my_class\r
+    new my_class(parent, json, module_name)\r
+\r
diff --git a/app/assets/javascripts/manifest_base/manifest_base.js.coffee b/app/assets/javascripts/manifest_base/manifest_base.js.coffee
new file mode 100644 (file)
index 0000000..68505c7
--- /dev/null
@@ -0,0 +1,38 @@
+class ManifestBase\r
+  \r
+  @require_modules: (path, names) ->\r
+    _.each names, (name) ->\r
+      require_dependency path + name.to_s\r
+  \r
+  @module_message: (module_names, my_module_names = []) ->\r
+    (module_names + my_module_names).join(' > ')\r
+  \r
+  @alert_message: (message, location) ->\r
+    confirm('invalid manifest?:' + message + " for " + message)\r
+  \r
+  @alert_undefined_message: (name, location) ->\r
+    alert_message('undefined ' + name, location)\r
+  \r
+  @load_value: (_self, json, module_name, klass) ->\r
+    new klass(_self, json[module_name], module_name)\r
+  \r
+  @load_name_values: (_self, jsons, module_name, klass) ->\r
+    hash = {}\r
+    _.each jsons[module_name], (_name, _json) ->\r
+      hash[_name] = new klass(_self, _name, _json, module_name)\r
+    hash\r
+  \r
+  @load_type_args: (_self, jsons, module_name, klass) ->\r
+    klass.factory_type_args(_self, jsons[module_name], module_name)\r
+  \r
+  @load_type_name_args: (_self, jsons, module_name, klass) ->\r
+    hash = {}\r
+    _.each jsons[module_name], (_name, _json) ->\r
+      hash[_name] = new klass.factory(_self, _name, _json, module_name)\r
+    hash\r
+  \r
+  @load_names: (_self, json, module_name, klass) ->\r
+    _.map json[module_name], (_name) ->\r
+      new klass(_self, _name, module_name)\r
+\r
+@ManifestBase = ManifestBase\r
diff --git a/app/assets/javascripts/manifest_base/name_values.js.coffee b/app/assets/javascripts/manifest_base/name_values.js.coffee
new file mode 100644 (file)
index 0000000..af8e0a3
--- /dev/null
@@ -0,0 +1,27 @@
+class ManifestBase.NameValues\r
+  \r
+  set_default: () ->\r
+    @values = @json\r
+  \r
+  init: () ->\r
+  \r
+  module_names: () ->\r
+    @parent.module_names + [@module_name, @name]\r
+  \r
+  module_message: () ->\r
+    ManifestBase.module_message(@module_names)\r
+  \r
+  parent_name: () ->\r
+    @parent.name\r
+  \r
+  parent_json: () ->\r
+    @parent.json\r
+  \r
+  constructor: (parent, name, json, module_name) ->\r
+    @parent = parent\r
+    @name = name\r
+    @json = json\r
+    @module_name = module_name\r
+    @set_default()\r
+    @init()\r
+    \r
diff --git a/app/assets/javascripts/manifest_base/names.js.coffee b/app/assets/javascripts/manifest_base/names.js.coffee
new file mode 100644 (file)
index 0000000..6bb00f9
--- /dev/null
@@ -0,0 +1,25 @@
+class ManifestBase.Names\r
+  \r
+  set_default: () ->\r
+  \r
+  init: () ->\r
+  \r
+  module_names: () ->\r
+    @manifest.module_names + [@module_name, @name]\r
+  \r
+  module_message: () ->\r
+    ManifestBase.module_message(@module_names)\r
+  \r
+  parent_name: () ->\r
+    @parent.name\r
+  \r
+  parent_json: () ->\r
+    @parent.json\r
+  \r
+  constructor: (parent, name, module_name) ->\r
+    @parent = parent\r
+    @name = name\r
+    @module_name = module_name\r
+    @set_default()\r
+    @init()\r
+  \r
diff --git a/app/assets/javascripts/manifest_base/type_args.js.coffee b/app/assets/javascripts/manifest_base/type_args.js.coffee
new file mode 100644 (file)
index 0000000..4e5777e
--- /dev/null
@@ -0,0 +1,28 @@
+class ManifestBase.TypeArgs\r
+  \r
+  set_default: () ->\r
+    @json['args'] ||= {}\r
+    @type = @json['type']\r
+    @args = @json['args']\r
+  \r
+  init: () ->\r
+  \r
+  module_names: () ->\r
+    @parent.module_names + [@module_name]\r
+  \r
+  module_message: () ->\r
+    ManifestBase.module_message(@module_names)\r
+  \r
+  parent_name: () ->\r
+    @parent.name\r
+  \r
+  parent_json: () ->\r
+    @parent.json\r
+  \r
+  constructor: (parent, json, module_name) ->\r
+    @parent = parent\r
+    @json = json\r
+    @module_name = module_name\r
+    @set_default()\r
+    @init()\r
+    \r
diff --git a/app/assets/javascripts/manifest_base/type_name_args.coffee b/app/assets/javascripts/manifest_base/type_name_args.coffee
new file mode 100644 (file)
index 0000000..a579f4f
--- /dev/null
@@ -0,0 +1,29 @@
+class ManifestBase.TypeNameArgs\r
+  \r
+  set_default: () ->\r
+    @json['args'] ||= {}\r
+    @type = @json['type']\r
+    @args = @json['args']\r
+  \r
+  init: () ->\r
+  \r
+  module_names: () ->\r
+    @parent.module_names + [@module_name, @name]\r
+  \r
+  module_message: () ->\r
+    ManifestBase.module_message(@module_names)\r
+  \r
+  parent_name: () ->\r
+    @parent.name\r
+  \r
+  parent_json: () ->\r
+    @parent.json\r
+  \r
+  constructor: (parent, name, json, module_name) ->\r
+    @parent = parent\r
+    @name = name\r
+    @json = json\r
+    @module_name = module_name\r
+    @set_default()\r
+    @init()\r
+  \r
diff --git a/app/assets/javascripts/manifest_base/values.js.coffee b/app/assets/javascripts/manifest_base/values.js.coffee
new file mode 100644 (file)
index 0000000..d2a7e37
--- /dev/null
@@ -0,0 +1,26 @@
+class ManifestBase.Values\r
+  \r
+  set_default: () ->\r
+    @values = @json\r
+  \r
+  init: () ->\r
+  \r
+  module_names: () ->\r
+    @parent.module_names + [@module_name]\r
+  \r
+  module_message: () ->\r
+    ManifestBase.module_message(@module_names)\r
+  \r
+  parent_name: () ->\r
+    @parent.name\r
+  \r
+  parent_json: () ->\r
+    @parent.json\r
+  \r
+  constructor: (parent, json, module_name) ->\r
+    @parent = parent\r
+    @json = json\r
+    @module_name = module_name\r
+    @set_default()\r
+    @init()\r
+    \r
index 0b222c9..91ebec4 100644 (file)
@@ -4,10 +4,10 @@
   <title>\r
     ap - <%= h(manifest.magic_numbers['profile']['users']['caption']) %>\r
   </title>\r
-  <%= stylesheet_link_tag "application" %>\r
+  <%# stylesheet_link_tag "application" %>\r
   <%= javascript_include_tag "application" %>\r
   <%= javascript_include_tag "ap" %>\r
-  <%= raw panel_editor_javascript_include_tags %>\r
+  <%# raw panel_editor_javascript_include_tags %>\r
   <%= csrf_meta_tags %>\r
 </head>\r
 <body>\r