OSDN Git Service

fix summary
authoryasushiito <yas@pen-chan.jp>
Mon, 29 Sep 2014 02:02:55 +0000 (11:02 +0900)
committeryasushiito <yas@pen-chan.jp>
Mon, 29 Sep 2014 02:02:55 +0000 (11:02 +0900)
65 files changed:
app/assets/javascripts/controllers/balloons.js.coffee
app/assets/javascripts/controllers/comics.js.coffee
app/assets/javascripts/controllers/ground_colors.js.coffee
app/assets/javascripts/controllers/ground_pictures.js.coffee
app/assets/javascripts/controllers/panel_pictures.js.coffee
app/assets/javascripts/controllers/scrolls.js.coffee
app/assets/javascripts/controllers/sheets.js.coffee
app/assets/javascripts/controllers/speech_balloons.js.coffee
app/assets/javascripts/controllers/speeches.js.coffee
app/assets/javascripts/controllers/stories.js.coffee
app/assets/javascripts/local_manifest/profiler.js.coffee
app/assets/javascripts/locmare/bucket/form_field_name.js.coffee [deleted file]
app/assets/javascripts/locmare/bucket/member.js.coffee [deleted file]
app/assets/javascripts/locmare/filer.js.coffee
app/assets/javascripts/locmare/filer/body.js.coffee
app/assets/javascripts/locmare/filer/body/file_body/file_item/date/default.js.coffee
app/assets/javascripts/locmare/filer/body/file_body/file_item/summary/template.js.coffee
app/assets/javascripts/locmare/filer/body/file_header.js.coffee
app/assets/javascripts/locmare/filer/body/file_header/base.js.coffee
app/assets/javascripts/locmare/filer/body/file_header/none.js.coffee
app/assets/javascripts/locmare/filer/body/file_header/show.js.coffee
app/assets/javascripts/locmare/profiler.js.coffee
app/assets/javascripts/locmare/profiler/column/base.js.coffee
app/assets/javascripts/locmare/profiler/column/extend/extend_column.js.coffee
app/assets/javascripts/locmare/profiler/header.js.coffee
app/assets/javascripts/models/author.js.coffee
app/assets/javascripts/models/comic.js.coffee
app/assets/javascripts/models/ground_color.js.coffee
app/assets/javascripts/models/ground_picture.js.coffee
app/assets/javascripts/models/panel.js.coffee
app/assets/javascripts/models/panel_picture.js.coffee
app/assets/javascripts/models/scroll.js.coffee
app/assets/javascripts/models/scroll_panel.js.coffee
app/assets/javascripts/models/sheet.js.coffee
app/assets/javascripts/models/speech_balloon.js.coffee
app/assets/javascripts/models/story.js.coffee
app/assets/javascripts/peta/item.js.coffee
app/assets/javascripts/pettanr.js.coffee
app/assets/javascripts/tags.js.coffee
app/assets/javascripts/views/authors/icon.js.coffee [new file with mode: 0644]
app/assets/javascripts/views/authors/name.js.coffee [new file with mode: 0644]
app/assets/javascripts/views/balloons/show.js.coffee [new file with mode: 0644]
app/assets/javascripts/views/comics/show.js.coffee
app/assets/javascripts/views/common.js.coffee [new file with mode: 0644]
app/assets/javascripts/views/ground_colors/show.js.coffee
app/assets/javascripts/views/ground_pictures/show.js.coffee
app/assets/javascripts/views/panel_pictures/show.js.coffee
app/assets/javascripts/views/panels/icon.js.coffee [new file with mode: 0644]
app/assets/javascripts/views/scroll_panels/icon.js.coffee [new file with mode: 0644]
app/assets/javascripts/views/scroll_panels/summary.js.coffee
app/assets/javascripts/views/scrolls/icon.js.coffee [new file with mode: 0644]
app/assets/javascripts/views/scrolls/show.js.coffee
app/assets/javascripts/views/scrolls/summary.js.coffee
app/assets/javascripts/views/sheets/show.js.coffee
app/assets/javascripts/views/show.js.coffee [new file with mode: 0644]
app/assets/javascripts/views/speech_balloons/show.js.coffee
app/assets/javascripts/views/speeches/show.js.coffee [new file with mode: 0644]
app/assets/javascripts/views/stories/show.js.coffee
app/views/authors/_summary.html.erb
app/views/scroll_panels/_footer.html.erb
app/views/story_sheets/_summary.html.erb
app/views/top/index.html.erb
lib/locmare/bucket.rb
lib/locmare/bucket/form_field_name.rb [deleted file]
lib/locmare/bucket/member.rb [deleted file]

index 84152ea..b9b35e5 100644 (file)
@@ -10,6 +10,14 @@ class Pettanr.BalloonsController extends Pettanr.AppController
     @filer_list()\r
   \r
   show_html: () -> \r
+    _this = this\r
+    @item.fetch().done ->\r
+      view = new Pettanr.Views.Balloon.Show({\r
+        el: "#pettanr",\r
+        item: _this.item,\r
+        operators: _this.operators\r
+      })\r
+      view.render()\r
   \r
   show: () ->\r
     @set_show()\r
index d717f62..61b3f22 100644 (file)
@@ -10,12 +10,14 @@ class Pettanr.ComicsController extends Pettanr.AppController
     @filer_list()\r
   \r
   show_html: () -> \r
-    view = new Pettanr.Views.Comic.Show({\r
-      el: "#pettanr",\r
-      item: @item,\r
-      operators: @operators\r
-    })\r
-    view.render()\r
+    _this = this\r
+    @item.fetch().done ->\r
+      view = new Pettanr.Views.Comic.Show({\r
+        el: "#pettanr",\r
+        item: _this.item,\r
+        operators: _this.operators\r
+      })\r
+      view.render()\r
   \r
   show: () ->\r
     @set_show()\r
index ecac27c..2cdf253 100644 (file)
@@ -10,12 +10,14 @@ class Pettanr.GroundColorsController extends Pettanr.AppController
     @filer_list()\r
   \r
   show_html: () -> \r
-    view = new Pettanr.Views.GroundColor.Show({\r
-      el: "#pettanr",\r
-      item: @item,\r
-      operators: @operators\r
-    })\r
-    view.render()\r
+    _this = this\r
+    @item.fetch().done ->\r
+      view = new Pettanr.Views.GroundColor.Show({\r
+        el: "#pettanr",\r
+        item: _this.item,\r
+        operators: _this.operators\r
+      })\r
+      #view.render()\r
   \r
   show: () ->\r
     @set_show()\r
index 1816798..6059883 100644 (file)
@@ -10,12 +10,14 @@ class Pettanr.GroundPicturesController extends Pettanr.AppController
     @filer_list()\r
   \r
   show_html: () -> \r
-    view = new Pettanr.Views.GroundPicture.Show({\r
-      el: "#pettanr",\r
-      item: @item,\r
-      operators: @operators\r
-    })\r
-    view.render()\r
+    _this = this\r
+    @item.fetch().done ->\r
+      view = new Pettanr.Views.GroundPicture.Show({\r
+        el: "#pettanr",\r
+        item: _this.item,\r
+        operators: _this.operators\r
+      })\r
+      #view.render()\r
   \r
   show: () ->\r
     @set_show()\r
index be94c43..ecc7710 100644 (file)
@@ -10,12 +10,14 @@ class Pettanr.PanelPicturesController extends Pettanr.AppController
     @filer_list()\r
   \r
   show_html: () -> \r
-    view = new Pettanr.Views.PanelPicture.Show({\r
-      el: "#pettanr",\r
-      item: @item,\r
-      operators: @operators\r
-    })\r
-    view.render()\r
+    _this = this\r
+    @item.fetch().done ->\r
+      view = new Pettanr.Views.PanelPicture.Show({\r
+        el: "#pettanr",\r
+        item: _this.item,\r
+        operators: _this.operators\r
+      })\r
+      #view.render()\r
   \r
   show: () ->\r
     @set_show()\r
index 3a62f1e..97f1eb8 100644 (file)
@@ -10,12 +10,14 @@ class Pettanr.ScrollsController extends Pettanr.AppController
     @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
+    _this = this\r
+    @item.fetch().done ->\r
+      view = new Pettanr.Views.Scroll.Show({\r
+        el: "#pettanr",\r
+        item: _this.item,\r
+        operators: _this.operators\r
+      })\r
+      view.render()\r
   \r
   show: () ->\r
     @set_show()\r
index 8b5a3e0..3fa33f3 100644 (file)
@@ -13,12 +13,14 @@ class Pettanr.SheetsController extends Pettanr.AppController
     @filer_list()\r
   \r
   show_html: () -> \r
-    view = new Pettanr.Views.Sheet.Show({\r
-      el: "#pettanr",\r
-      item: @item,\r
-      operators: @operators\r
-    })\r
-    view.render()\r
+    _this = this\r
+    @item.fetch().done ->\r
+      view = new Pettanr.Views.Sheet.Show({\r
+        el: "#pettanr",\r
+        item: _this.item,\r
+        operators: _this.operators\r
+      })\r
+      view.render()\r
   \r
   show: () ->\r
     @set_show()\r
index 18d3b0c..0ec2565 100644 (file)
@@ -13,12 +13,14 @@ class Pettanr.SpeechBalloonsController extends Pettanr.AppController
     @filer_list()\r
   \r
   show_html: () -> \r
-    view = new Pettanr.Views.SpeechBalloon.Show({\r
-      el: "#pettanr",\r
-      item: @item,\r
-      operators: @operators\r
-    })\r
-    view.render()\r
+    _this = this\r
+    @item.fetch().done ->\r
+      view = new Pettanr.Views.SpeechBalloon.Show({\r
+        el: "#pettanr",\r
+        item: _this.item,\r
+        operators: _this.operators\r
+      })\r
+      #view.render()\r
   \r
   show: () ->\r
     @set_show()\r
index bab87b9..339ccc7 100644 (file)
@@ -10,6 +10,14 @@ class Pettanr.SpeechesController extends Pettanr.AppController
     @filer_list()\r
   \r
   show_html: () -> \r
+    _this = this\r
+    @item.fetch().done ->\r
+      view = new Pettanr.Views.Speech.Show({\r
+        el: "#pettanr",\r
+        item: _this.item,\r
+        operators: _this.operators\r
+      })\r
+      view.render()\r
   \r
   show: () ->\r
     @set_show()\r
index c8b50ad..02e620d 100644 (file)
@@ -13,12 +13,14 @@ class Pettanr.StoriesController extends Pettanr.AppController
     @filer_list()\r
   \r
   show_html: () -> \r
-    view = new Pettanr.Views.Story.Show({\r
-      el: "#pettanr",\r
-      item: @item,\r
-      operators: @operators\r
-    })\r
-    view.render()\r
+    _this = this\r
+    @item.fetch().done ->\r
+      view = new Pettanr.Views.Story.Show({\r
+        el: "#pettanr",\r
+        item: _this.item,\r
+        operators: _this.operators\r
+      })\r
+      view.render()\r
   \r
   show: () ->\r
     @set_show()\r
index e4b7138..82b2779 100644 (file)
@@ -9,8 +9,8 @@ class LocalManifest.Profiler extends ManifestBase.Base
     @json['associations'] ||= {}\r
     # supply column configures\r
     @json['column_names'].unshift('id') if not @json['column_names'] in 'id'\r
-    @json['column_names'].push('created_at') if not @json['column_names'] in 'created_at'\r
-    @json['column_names'].push('updated_at') if not @json['column_names'] in 'updated_at'\r
+    @json['column_names'].push('created_at') if not (@json['column_names'] in 'created_at')\r
+    @json['column_names'].push('updated_at') if not (@json['column_names'] in 'updated_at')\r
     @json['columns']['created_at'] = {'type': 'date'}\r
     @json['columns']['updated_at'] = {'type': 'date'}\r
     c = @json['columns']\r
diff --git a/app/assets/javascripts/locmare/bucket/form_field_name.js.coffee b/app/assets/javascripts/locmare/bucket/form_field_name.js.coffee
deleted file mode 100644 (file)
index 8630e8e..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-class Locmare.FormModule.Field extends Backbone.View\r
-  tagName: 'div'\r
-  className: 'field'\r
-  \r
-  initialize: (options) ->\r
-    @form = options.form\r
-    @field_name = options.field_name\r
-    @field_manifest = options.field_manifest\r
-    @label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label\r
-    @tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag\r
-    @helpers = {}\r
-    _this = this\r
-    _.each @field_manifest.helpers, (helper_manifest, helper_name) ->\r
-      _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this, helper_manifest)\r
-    @rb = @row_break()\r
-    @options = {'data-model': @field_manifest.form_name}\r
-  \r
-  render: () ->\r
-    this.$el.html('')\r
-    this.$el.append(@label.render().el) if not @label.hidden()\r
-    this.$el.append(@tag.render().el)\r
-    _this = this\r
-    _.each @helpers, (helper) ->\r
-      _this.$el.append(helper.render().el)\r
-    this.$el.append(@rb.render().el) if @rb\r
-    this\r
-  \r
-  mounted: () ->\r
-    if @form.mounted\r
-      0\r
-    else\r
-      1\r
-  \r
-  mount_option: () ->\r
-    {'mount': @mounted()}\r
-  \r
-  item: () ->\r
-    @form.item\r
-  \r
-  value: () ->\r
-    @item().get(@field_manifest.column_name)\r
-  \r
-  options: (tag_options = {}) ->\r
-    tag_options\r
-  \r
-  form_field_name: () ->\r
-    @form.form_field_name @field_name\r
-  \r
-  form_name: () ->\r
-    @form.form_name\r
-  \r
-  row_break: () ->\r
-    if @field_manifest.row_break\r
-      new Tag.Div({\r
-        content: null,\r
-        class_name: 'row_break'\r
-      })\r
-    else\r
-      null\r
-  \r
-class Locmare.FormModule.FieldModule\r
-module Locmare\r
-  module BucketModule\r
-    class FieldName\r
-      attr :bucket, :field_name, :field_manifest, \r
-        :label, :tag, :helpers, :options\r
-  def initialize bucket, field_name, field_manifest\r
-    @bucket = bucket\r
-    @field_name = field_name\r
-    @field_manifest = field_manifest\r
-    @label = LabelFactory.factory self, @field_manifest.label\r
-    @tag = TagFactory.factory self, @field_manifest.tag\r
-    @helpers = {}\r
-    @field_manifest.helpers.each {|helper_name, helper_manifest|\r
-      @helpers[helper_name] = HelperFactory.factory self, helper_manifest\r
-    }\r
-    @options = {'data-model' => @field_manifest.form_name}\r
-  end\r
-  \r
-  def item\r
-    @form.item\r
-  end\r
-  \r
-  def form_field_name\r
-    self.form_name + '[' + @field_name + ']'\r
-  end\r
-  \r
-  def form_name\r
-    @form.form_name\r
-  end\r
-  \r
-  def template_dir\r
-    @form.template_dir + 'field/'\r
-  end\r
-  \r
-  def template_file_name\r
-    'default'\r
-  end\r
-  \r
-  def template_name\r
-    self.template_dir + self.template_file_name\r
-  end\r
-  \r
-  def template_option\r
-    {:field => self}\r
-  end\r
-  \r
-  def row_break_template_dir\r
-    @form.template_dir + 'row_break/'\r
-  end\r
-  \r
-  def row_break_template_file_name\r
-    if @field_manifest.row_break\r
-      'br'\r
-    else\r
-      'no_break'\r
-    end\r
-  end\r
-  \r
-  def row_break_template_name\r
-    self.row_break_template_dir + self.row_break_template_file_name\r
-  end\r
-  \r
-end\r
-end\r
-end\r
diff --git a/app/assets/javascripts/locmare/bucket/member.js.coffee b/app/assets/javascripts/locmare/bucket/member.js.coffee
deleted file mode 100644 (file)
index d95da6b..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-class Locmare.BucketModule.Member\r
-  tagName: 'div'\r
-  className: 'field'\r
-  \r
-  initialize: (options) ->\r
-    @form = options.form\r
-    @field_name = options.field_name\r
-    @field_manifest = options.field_manifest\r
-    @label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label\r
-    @tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag\r
-    @helpers = {}\r
-    _this = this\r
-    _.each @field_manifest.helpers, (helper_manifest, helper_name) ->\r
-      _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this, helper_manifest)\r
-    @rb = @row_break()\r
-    @options = {'data-model': @field_manifest.form_name}\r
-  \r
-  render: () ->\r
-    this.$el.html('')\r
-    this.$el.append(@label.render().el) if not @label.hidden()\r
-    this.$el.append(@tag.render().el)\r
-    _this = this\r
-    _.each @helpers, (helper) ->\r
-      _this.$el.append(helper.render().el)\r
-    this.$el.append(@rb.render().el) if @rb\r
-    this\r
-  \r
-  mounted: () ->\r
-    if @form.mounted\r
-      0\r
-    else\r
-      1\r
-  \r
-  mount_option: () ->\r
-    {'mount': @mounted()}\r
-  \r
-  item: () ->\r
-    @form.item\r
-  \r
-  value: () ->\r
-    @item().get(@field_manifest.column_name)\r
-  \r
-  options: (tag_options = {}) ->\r
-    tag_options\r
-  \r
-  form_field_name: () ->\r
-    @form.form_name + '[' + @field_name + ']'\r
-  \r
-  form_name: () ->\r
-    @form.form_name\r
-  \r
-  row_break: () ->\r
-    if @field_manifest.row_break\r
-      new Tag.Div({\r
-        content: null,\r
-        class_name: 'row_break'\r
-      })\r
-    else\r
-      null\r
-  \r
index 5a8a04c..c2e63e7 100644 (file)
@@ -6,7 +6,6 @@ class Locmare.Filer extends Backbone.View
     @pager = options.pager\r
     @operators = options.operators\r
     @manifest = LocalManifest.manifest().filers[@item_name]\r
-    @template_dir = 'templates-filer-'\r
     @header = new Locmare.FilerModule.Header({'filer': this})\r
     @body = new Locmare.FilerModule.Body({'filer': this})\r
     @render()\r
@@ -25,12 +24,6 @@ class Locmare.Filer extends Backbone.View
   mybody: () ->\r
     Locmare.FilerModule.Body\r
   \r
-  template_file_name: () ->\r
-    "filer"\r
-  \r
-  template_name: () ->\r
-    @template_dir + @template_file_name()\r
-  \r
   image_dir: () ->\r
     '/images/'\r
   \r
index 5266dd0..b31c8fb 100644 (file)
@@ -9,34 +9,27 @@ class Locmare.FilerModule.Body extends Backbone.View
   render: () ->\r
     this.$el.append(@file_header.render().el)\r
     this.$el.append(@file_body.render().el)\r
+    rb = new Tag.RowBreak()\r
+    this.$el.append(rb.render().el)\r
     this\r
   \r
   file_header_class: () ->\r
     Locmare.FilerModule.BodyModule.FileHeader\r
\r
+  \r
   file_body_class: () ->\r
     Locmare.FilerModule.BodyModule.FileBody\r
\r
+  \r
   manifest: () ->\r
     @filer.manifest\r
\r
+  \r
   item_name: () ->\r
     @filer.item_name\r
\r
+  \r
   model: () ->\r
     @filer.model()\r
\r
+  \r
   items: () ->\r
     @filer.items\r
\r
-  template_dir: () ->\r
-    @filer.template_dir\r
\r
-  template_file_name: () ->\r
-    "body"\r
\r
-  template_name: () ->\r
-    @template_dir() + @template_file_name()\r
   \r
 class Locmare.FilerModule.BodyModule\r
 \r
index 52c18f3..5e36562 100644 (file)
@@ -8,7 +8,10 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.DateItemColum
     this\r
   \r
   time_ago: () ->\r
-    $.timeago(@item.get('updated_at'))\r
+    if Pettanr.is_blank(@item.get('updated_at'))\r
+      ''\r
+    else\r
+      $.timeago(@item.get('updated_at'))\r
   \r
   is_visible: () ->\r
     true\r
index b4203c4..96a1e00 100644 (file)
@@ -5,7 +5,7 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SummaryItemCo
   \r
   render: () ->\r
     view = Pettanr.Views[@item.singular()]\r
-    summary = new view[view.summary()]()\r
+    summary = new view[view.summary()]({item: @item})\r
     this.$el.html(summary.render().el)\r
     this\r
  \r
index 722a7be..a1fc514 100644 (file)
@@ -1,45 +1,24 @@
 class Locmare.FilerModule.BodyModule.FileHeader extends Backbone.View\r
   tagName: 'li'\r
-  id: ''\r
   \r
   initialize: (options) ->\r
     @body = options.body\r
-    c = if @manifest().symbol.is_visible()\r
-      Locmare.FilerModule.BodyModule.FileHeaderModule.Show\r
-    else\r
-      Locmare.FilerModule.BodyModule.FileHeaderModule.None\r
-    @symbol = new c({'file_header': this, 'column_name': 'symbol'})\r
-    c = if @manifest().caption.is_visible()\r
-      Locmare.FilerModule.BodyModule.FileHeaderModule.Show\r
-    else\r
-      Locmare.FilerModule.BodyModule.FileHeaderModule.None\r
-    @caption = new c({'file_header': this, 'column_name': 'caption'})\r
-    c = if @manifest().summary.is_visible()\r
-      Locmare.FilerModule.BodyModule.FileHeaderModule.Show\r
-    else\r
-      Locmare.FilerModule.BodyModule.FileHeaderModule.None\r
-    @summary = new c({'file_header': this, 'column_name': 'summary'})\r
-    c = if @manifest().icon.is_visible()\r
-      Locmare.FilerModule.BodyModule.FileHeaderModule.Show\r
-    else\r
-      Locmare.FilerModule.BodyModule.FileHeaderModule.None\r
-    @icon = new c({'file_header': this, 'column_name': 'icon'})\r
-    c = if @manifest().date.is_visible()\r
-      Locmare.FilerModule.BodyModule.FileHeaderModule.Show\r
-    else\r
-      Locmare.FilerModule.BodyModule.FileHeaderModule.None\r
-    @date = new c({'file_header': this, 'column_name': 'date'})\r
-    c = if @manifest().edit.is_visible()\r
-      Locmare.FilerModule.BodyModule.FileHeaderModule.Show\r
-    else\r
-      Locmare.FilerModule.BodyModule.FileHeaderModule.None\r
-    @edit = new c({'file_header': this, 'column_name': 'edit'})\r
+    @symbol = new Locmare.FilerModule.BodyModule.FileHeaderModule.Show({'file_header': this, 'column_name': 'symbol'})\r
+    @caption = new Locmare.FilerModule.BodyModule.FileHeaderModule.Show({'file_header': this, 'column_name': 'caption'})\r
+    @summary = new Locmare.FilerModule.BodyModule.FileHeaderModule.Show({'file_header': this, 'column_name': 'summary'})\r
+    @icon = new Locmare.FilerModule.BodyModule.FileHeaderModule.Show({'file_header': this, 'column_name': 'icon'})\r
+    @date = new Locmare.FilerModule.BodyModule.FileHeaderModule.Show({'file_header': this, 'column_name': 'date'})\r
+    @edit = new Locmare.FilerModule.BodyModule.FileHeaderModule.Show({'file_header': this, 'column_name': 'edit'})\r
     @el.className = 'filer-head filer-head-' + @item_name()\r
   \r
   render: () ->\r
-    args = {'file_header': this}\r
-    template = _.template($("#" + @template_name()).html())\r
-    this.$el.html(template(args))\r
+    this.$el.html('')\r
+    this.$el.append(@symbol.render().el) if @manifest().symbol.is_visible()\r
+    this.$el.append(@caption.render().el) if @manifest().caption.is_visible()\r
+    this.$el.append(@summary.render().el) if @manifest().summary.is_visible()\r
+    this.$el.append(@icon.render().el) if @manifest().icon.is_visible()\r
+    this.$el.append(@date.render().el) if @manifest().date.is_visible()\r
+    this.$el.append(@edit.render().el) if @manifest().edit.is_visible()\r
     this\r
   \r
   filer: () ->\r
@@ -57,14 +36,5 @@ class Locmare.FilerModule.BodyModule.FileHeader extends Backbone.View
   items: () ->\r
     @filer.items\r
   \r
-  template_dir: () ->\r
-    @body.template_dir()\r
-  \r
-  template_file_name: () ->\r
-    "file_header"\r
-  \r
-  template_name: () ->\r
-    @template_dir() + @template_file_name()\r
-  \r
 class Locmare.FilerModule.BodyModule.FileHeaderModule\r
 \r
index d8cd7bc..9badf3d 100644 (file)
@@ -7,32 +7,9 @@ class Locmare.FilerModule.BodyModule.FileHeaderModule.Base extends Backbone.View
     @el.className = 'filer-head-' + @column_name\r
   \r
   render: () ->\r
-    args = {'header_column': this}\r
-    template = _.template($("#" + @template_name()).html())\r
-    this.$el.html(template(args))\r
+    this.$el.html(@text())\r
     this\r
   \r
-  filer: () ->\r
-    @file_header.filer()\r
-  \r
-  manifest: () ->\r
-    @filer().manifest\r
-  \r
-  item_name: () ->\r
-    @filer().item_name\r
-  \r
-  model: () ->\r
-    @filer().model()\r
-  \r
-  items: () ->\r
-    @filer().items\r
-  \r
-  template_dir: () ->\r
-    @filer().template_dir + 'header_column-'\r
-  \r
-  template_file_name: () ->\r
-    "show"\r
-  \r
-  template_name: () ->\r
-    @template_dir() + @template_file_name()\r
+  text: () ->\r
+    I18n.t('filer.header.' + @column_name)\r
   \r
index ce1c943..6c114ef 100644 (file)
@@ -2,7 +2,4 @@ class Locmare.FilerModule.BodyModule.FileHeaderModule.None extends Locmare.Filer
   \r
   render: () ->\r
     this\r
-  \r
-  template_file_name: () ->\r
-    "none"\r
-  \r
\r
index bf1fd63..e473746 100644 (file)
@@ -1,5 +1,3 @@
 class Locmare.FilerModule.BodyModule.FileHeaderModule.Show extends Locmare.FilerModule.BodyModule.FileHeaderModule.Base\r
   \r
-  template_file_name: () ->\r
-    "show"\r
 \r
index e638ede..e356c74 100644 (file)
@@ -1,5 +1,7 @@
 class Locmare.Profiler extends Backbone.View\r
   tagName: 'div'\r
+  className: 'profiler'\r
+  \r
   initialize: (options) ->\r
     @item_name = options.item_name\r
     @item = options.item\r
@@ -7,14 +9,9 @@ class Locmare.Profiler extends Backbone.View
     @operators = options.operators\r
       \r
     @profiler_manifest = LocalManifest.manifest().profilers[@item_name]\r
-    @template_dir = 'templates-profiler-'\r
-    _this = this\r
-    @item.fetch().done ->\r
-      _this.item.boosts 'post'\r
-      _this.header = new Locmare.ProfilerModule.Header({profiler: _this})\r
-      _this.columns = new Locmare.ProfilerModule.Column({profiler: _this})\r
-      _this.associations = new Locmare.ProfilerModule.Association({'profiler': _this, association_manifest: _this.profiler_manifest.associations})\r
-      _this.render()\r
+    @header = new Locmare.ProfilerModule.Header({profiler: this})\r
+    @columns = new Locmare.ProfilerModule.Column({profiler: this})\r
+    @associations = new Locmare.ProfilerModule.Association({'profiler': this, association_manifest: @profiler_manifest.associations})\r
   \r
   render: () ->\r
     this.$el.html('')\r
index dc6f550..f4083ce 100644 (file)
@@ -69,7 +69,8 @@ class Locmare.ProfilerModule.ColumnModule.DateValue extends Backbone.View
     this\r
   \r
   value: () ->\r
-    l(@column.item().get(@column.column_name))\r
+    @column.item().get(@column.column_name)\r
+    #Pettanr.format_date(@column.item().get(@column.column_name))\r
   \r
 class Locmare.ProfilerModule.ColumnModule.JsonValue extends Backbone.View\r
   tagName: 'pre'\r
index 664db59..4746873 100644 (file)
@@ -1,4 +1,7 @@
 class Locmare.ProfilerModule.ColumnModule.ExtendModule.ExtendColumn extends Backbone.View\r
+  tagName: 'div'\r
+  className: 'extend_column'\r
+  \r
   initialize: (options) ->\r
     @column = options.column  # extend_column\r
     @extend_column_name = options.extend_column_name\r
index 5e7bacd..2c3097f 100644 (file)
@@ -1,5 +1,6 @@
 class Locmare.ProfilerModule.Header extends Backbone.View\r
   tagName: 'div'\r
+  className: 'header'\r
   \r
   initialize: (options) ->\r
     @profiler = options.profiler\r
index 7c3e37f..500080c 100644 (file)
@@ -12,6 +12,9 @@ class Pettanr.Author extends Peta.Owner
     name: 'no name'\r
   } \r
   \r
+  name_view: (length = null) ->\r
+    new Pettanr.Views.Author.Name({item: this, length: length})\r
+  \r
   initialize: () ->\r
     if @id\r
       @url = @url + @id\r
index 469774c..8cb686a 100644 (file)
@@ -13,6 +13,9 @@ class Pettanr.Comic extends Peta.Binder
     author_id: null\r
   } \r
   \r
+  author: () ->\r
+    new Pettanr.Author({id: @get('author_id')})\r
+  \r
   is_visible: (operators) ->\r
     switch super(operators)\r
       when null\r
index 3f6ed03..7839866 100644 (file)
@@ -15,6 +15,9 @@ class Pettanr.GroundColor extends Peta.Element
   @has_picture: () ->\r
     false\r
   \r
+  panel: () ->\r
+    new Pettanr.Panel({id: @get('panel_id')})\r
+  \r
   initialize: () ->\r
     if @id\r
       @url = @url + @id\r
index 3b0d89f..a49d9f8 100644 (file)
@@ -17,6 +17,9 @@ class Pettanr.GroundPicture extends Peta.Element
   @repeat_texts: () -> \r
     ['repeat', 'repeat-x', 'repeat-y', 'no-repeat']\r
   \r
+  panel: () ->\r
+    new Pettanr.Panel({id: @get('panel_id')})\r
+  \r
   picture: () ->\r
     new Pettanr.Picture({id: @get('picture_id')})\r
   \r
index 30a380c..e751f11 100644 (file)
@@ -13,6 +13,9 @@ class Pettanr.Panel extends Peta.Root
     publish: 0\r
   } \r
   \r
+  author: () ->\r
+    new Pettanr.Author({id: @get('author_id')})\r
+  \r
   pp: () ->\r
     new Pettanr.PanelPicture({id: @get('pp_id')})\r
   \r
index 84aa33b..1a86e4a 100644 (file)
@@ -14,6 +14,9 @@ class Pettanr.PanelPicture extends Peta.Element
   picture: () ->\r
     new Pettanr.Picture({id: @get('picture_id')})\r
   \r
+  panel: () ->\r
+    new Pettanr.Panel({id: @get('panel_id')})\r
+  \r
   @has_picture: () ->\r
     true\r
   \r
index 5070dad..a40b2ba 100644 (file)
@@ -12,6 +12,9 @@ class Pettanr.Scroll extends Peta.Binder
     visible: 0\r
   } \r
   \r
+  author: () ->\r
+    new Pettanr.Author({id: @get('author_id')})\r
+  \r
   overwrite: (options) ->\r
     operators = options.operators\r
     return false if not operators.author\r
index 6224126..a4ed1fd 100644 (file)
@@ -14,6 +14,12 @@ class Pettanr.ScrollPanel extends Peta.Leaf
     t: null\r
   } \r
   \r
+  scroll: () ->\r
+    new Pettanr.Scroll({id: @get('scroll_id')})\r
+  \r
+  panel: () ->\r
+    new Pettanr.Panel({id: @get('panel_id')})\r
+  \r
   initialize: () ->\r
     if @id\r
       @url = @url + @id\r
index 58e66d6..6b1c72b 100644 (file)
@@ -13,6 +13,9 @@ class Pettanr.Sheet extends Peta.Root
     author_id: null\r
   } \r
   \r
+  author: () ->\r
+    new Pettanr.Author({id: @get('author_id')})\r
+  \r
   is_visible: (operators) ->\r
     switch super(operators)\r
       when null\r
index a934e9c..565f695 100644 (file)
@@ -13,6 +13,9 @@ class Pettanr.SpeechBalloon extends Peta.Element
     t: null\r
   } \r
   \r
+  panel: () ->\r
+    new Pettanr.Panel({id: @get('panel_id')})\r
+  \r
   speech_balloon_template: () ->\r
     new Pettanr.SpeechBalloonTemplate({id: @get('speech_balloon_template_id')})\r
   \r
index 4d17170..625cec7 100644 (file)
@@ -13,6 +13,9 @@ class Pettanr.Story extends Peta.Binder
     author_id: null\r
   } \r
   \r
+  author: () ->\r
+    new Pettanr.Author({id: @get('author_id')})\r
+  \r
   is_visible: (operators) ->\r
     switch super(operators)\r
       when null\r
index ef0922d..f6fcde4 100644 (file)
@@ -139,6 +139,9 @@ class Peta.Item extends Backbone.Model
       return false if not operators.is_resource_reader()\r
     true\r
   \r
+  icon_view: (half) ->\r
+    new Pettanr.Views[@my_class().singular()].Icon({item: this, half: half})\r
+  \r
   is_editize: () ->\r
     @editor\r
   \r
index 3aeeaa5..0dc52b3 100644 (file)
@@ -38,6 +38,24 @@ class Pettanr
       else\r
         ''\r
   \r
+  @truncate: (str, length = null) ->\r
+    s = Pettanr.to_s(str)\r
+    if length and s.length > 3    # 3 = '...'\r
+      r = s.substr(0, length - 4)\r
+      r = r.concat( '...') if s.length > length - 3\r
+      r\r
+    else\r
+      Pettanr.to_s(str)\r
+  \r
+  @format_date: (date) ->\r
+    y = ('000' + (date.getFullYear())).slice(-4)\r
+    m = ('0' + (date.getMonth() + 1)).slice(-2)\r
+    d = ('0' + date.getDate()).slice(-2)\r
+    h = ('0' + date.getHours()).slice(-2)\r
+    n = ('0' + date.getMinutes()).slice(-2)\r
+    s = ('0' + date.getSeconds()).slice(-2)\r
+    y + '/' + m + '/' + d + ' ' + h + ':' + n + ':' + s\r
+  \r
   @to_style: (hash) ->\r
     a = _.map hash, (n, k) ->\r
       Pettanr.to_s(k) + ': ' + Pettanr.to_s(n)\r
@@ -63,7 +81,7 @@ class Pettanr
         if l.length == 1\r
           I18n.t('activerecord.models.' + Pettanr[label].item_name())\r
         else\r
-          Pettanr.AppHelper.t_a(Pettanr[l.first].item_name(), l.last)\r
+          Pettanr.AppHelper.t_a(Pettanr[l[0]].item_name(), l[1])\r
     \r
     @t_a: (item_name, attr_name) ->\r
       I18n.t('activerecord.attributes.' + item_name + '.' + attr_name)\r
@@ -124,12 +142,15 @@ class Pettanr
       false\r
     \r
     show_prof: () ->\r
-      profiler = new Locmare.Profiler({\r
-        el: "#pettanr",\r
-        item_name: @item.item_name(), \r
-        item: @item, \r
-        operators: @operators\r
-      })\r
+      _this = this\r
+      @item.fetch().done ->\r
+        _this.item.boosts 'post'\r
+        profiler = new Locmare.Profiler({\r
+          item_name: _this.item.item_name(), \r
+          item: _this.item, \r
+          operators: _this.operators\r
+        })\r
+        $("#pettanr").html(profiler.render().el)\r
     \r
     set_new: () ->\r
       @set_model()\r
index c796895..c95a291 100644 (file)
@@ -56,4 +56,18 @@ class Tag.RowBreak extends Tag.Div
     @content = null\r
     @class_name = 'row_break'\r
   \r
+class Tag.H3 extends Backbone.View\r
+  tagName: 'h3'\r
+  \r
+  initialize: (options) ->\r
+    @attr = options.attr || {}\r
+    @content = options.content\r
+    @class_name = options.class_name\r
+  \r
+  render: () ->\r
+    this.$el.attr(@attr)\r
+    @el.className = @class_name if @class_name\r
+    this.$el.html(@content)\r
+    this\r
+  \r
 @Tag = Tag\r
diff --git a/app/assets/javascripts/views/authors/icon.js.coffee b/app/assets/javascripts/views/authors/icon.js.coffee
new file mode 100644 (file)
index 0000000..ff07fcc
--- /dev/null
@@ -0,0 +1,5 @@
+class Pettanr.Views.Author.Icon extends Pettanr.Views.Common.Icon\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
diff --git a/app/assets/javascripts/views/authors/name.js.coffee b/app/assets/javascripts/views/authors/name.js.coffee
new file mode 100644 (file)
index 0000000..e461e68
--- /dev/null
@@ -0,0 +1,18 @@
+class Pettanr.Views.Author.Name extends Backbone.View\r
+  tagName: 'span'\r
+  \r
+  initialize: (options) ->\r
+    @item = options.item\r
+    @length = options.length\r
+    @name = Pettanr.truncate(@item.get('name'), 12)\r
+    @url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
+    @linked_name = new Tag.A({\r
+      attr: {href: '/' + @url}, \r
+      handler_name: @url,\r
+      content: @name\r
+    })\r
+  \r
+  render: () ->\r
+    this.$el.html(@linked_name.render().el)\r
+    this\r
+  \r
diff --git a/app/assets/javascripts/views/balloons/show.js.coffee b/app/assets/javascripts/views/balloons/show.js.coffee
new file mode 100644 (file)
index 0000000..d68d10f
--- /dev/null
@@ -0,0 +1,30 @@
+class Pettanr.Views.Balloon.ShowModule\r
+class Pettanr.Views.Balloon.ShowModule.Header extends Pettanr.Views.Show.Header\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
+class Pettanr.Views.Balloon.Show extends Backbone.View\r
+  tagName: 'div'\r
+  className: 'show'\r
+  \r
+  initialize: (options) ->\r
+    @item = options.item\r
+    @operators = options.operators\r
+    icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
+    caption_url = icon_url\r
+    prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
+    @header = new Pettanr.Views.Balloon.ShowModule.Header({\r
+      item: @item, \r
+      operators: @operators,\r
+      caption: '', \r
+      icon_url: icon_url,\r
+      caption_url: caption_url,\r
+      prof_url: prof_url\r
+    })\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    this.$el.append(@header.render().el)\r
+    this\r
+  \r
index 3aa617a..e983de6 100644 (file)
@@ -1,10 +1,39 @@
+class Pettanr.Views.Comic.ShowModule\r
+class Pettanr.Views.Comic.ShowModule.Header extends Pettanr.Views.Show.Header\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
+class Pettanr.Views.Comic.ShowModule.Owner extends Pettanr.Views.Show.Owner\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
 class Pettanr.Views.Comic.Show extends Backbone.View\r
   tagName: 'div'\r
+  className: 'show'\r
   \r
   initialize: (options) ->\r
+    @item = options.item\r
     @operators = options.operators\r
+    icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
+    caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')})\r
+    prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
+    @header = new Pettanr.Views.Scroll.ShowModule.Header({\r
+      item: @item, \r
+      operators: @operators,\r
+      caption: @item.get('title'), \r
+      icon_url: icon_url,\r
+      caption_url: caption_url,\r
+      prof_url: prof_url\r
+    })\r
+    @author = new Pettanr.Views.Show.HeaderAuthor({item: @item})\r
+    @owner = new Pettanr.Views.Comic.ShowModule.Owner({item: @item, operators: @operators})\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    this.$el.append(@header.render().el)\r
+    this.$el.append(@author.render().el)\r
+    this.$el.append(@owner.render().el) if @item.is_own(@operators)\r
     this\r
   \r
diff --git a/app/assets/javascripts/views/common.js.coffee b/app/assets/javascripts/views/common.js.coffee
new file mode 100644 (file)
index 0000000..b2e384c
--- /dev/null
@@ -0,0 +1,20 @@
+class Pettanr.Views.Common\r
+class Pettanr.Views.Common.Icon extends Backbone.View\r
+  tagName: 'span'\r
+  \r
+  initialize: (options) ->\r
+    @item = options.item\r
+    @half = options.half\r
+    @icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
+    @icon = new Pettanr.Image.Icon({item: @item, half: @half})\r
+    @icon_button = new Tag.A({\r
+      attr: {href: '/' + @icon_url}, \r
+      handler_name: @icon_url,\r
+      class_name: 'icon',\r
+      content: @icon.render().el\r
+    })\r
+  \r
+  render: () ->\r
+    this.$el.html(@icon_button.render().el)\r
+    this\r
+  \r
index 3bebcfd..568717b 100644 (file)
@@ -1,10 +1,36 @@
+class Pettanr.Views.GroundColor.ShowModule\r
+class Pettanr.Views.GroundColor.ShowModule.Header extends Pettanr.Views.Show.Header\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
 class Pettanr.Views.GroundColor.Show extends Backbone.View\r
   tagName: 'div'\r
+  className: 'show'\r
   \r
   initialize: (options) ->\r
+    @item = options.item\r
     @operators = options.operators\r
+    icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
+    caption_url = icon_url\r
+    prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
+    @header = new Pettanr.Views.GroundColor.ShowModule.Header({\r
+      item: @item, \r
+      operators: @operators,\r
+      caption: @item.get('caption'), \r
+      icon_url: icon_url,\r
+      caption_url: caption_url,\r
+      prof_url: prof_url\r
+    })\r
+    _this = this\r
+    @panel = @item.panel()\r
+    @panel.fetch().done ->\r
+      _this.author = new Pettanr.Views.Show.HeaderAuthor({item: _this.panel})\r
+      _this.render()\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    this.$el.append(@header.render().el)\r
+    this.$el.append(@author.render().el)\r
     this\r
   \r
index 3fd9435..e043dc1 100644 (file)
@@ -1,10 +1,36 @@
+class Pettanr.Views.GroundPicture.ShowModule\r
+class Pettanr.Views.GroundPicture.ShowModule.Header extends Pettanr.Views.Show.Header\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
 class Pettanr.Views.GroundPicture.Show extends Backbone.View\r
   tagName: 'div'\r
+  className: 'show'\r
   \r
   initialize: (options) ->\r
+    @item = options.item\r
     @operators = options.operators\r
+    icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
+    caption_url = icon_url\r
+    prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
+    @header = new Pettanr.Views.GroundPicture.ShowModule.Header({\r
+      item: @item, \r
+      operators: @operators,\r
+      caption: @item.get('caption'), \r
+      icon_url: icon_url,\r
+      caption_url: caption_url,\r
+      prof_url: prof_url\r
+    })\r
+    _this = this\r
+    @panel = @item.panel()\r
+    @panel.fetch().done ->\r
+      _this.author = new Pettanr.Views.Show.HeaderAuthor({item: _this.panel})\r
+      _this.render()\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    this.$el.append(@header.render().el)\r
+    this.$el.append(@author.render().el)\r
     this\r
   \r
index 89ca570..b9bafd2 100644 (file)
@@ -1,10 +1,36 @@
+class Pettanr.Views.PanelPicture.ShowModule\r
+class Pettanr.Views.PanelPicture.ShowModule.Header extends Pettanr.Views.Show.Header\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
 class Pettanr.Views.PanelPicture.Show extends Backbone.View\r
   tagName: 'div'\r
+  className: 'show'\r
   \r
   initialize: (options) ->\r
+    @item = options.item\r
     @operators = options.operators\r
+    icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
+    caption_url = icon_url\r
+    prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
+    @header = new Pettanr.Views.PanelPicture.ShowModule.Header({\r
+      item: @item, \r
+      operators: @operators,\r
+      caption: @item.get('caption'), \r
+      icon_url: icon_url,\r
+      caption_url: caption_url,\r
+      prof_url: prof_url\r
+    })\r
+    _this = this\r
+    @panel = @item.panel()\r
+    @panel.fetch().done ->\r
+      _this.author = new Pettanr.Views.Show.HeaderAuthor({item: _this.panel})\r
+      _this.render()\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    this.$el.append(@header.render().el)\r
+    this.$el.append(@author.render().el)\r
     this\r
   \r
diff --git a/app/assets/javascripts/views/panels/icon.js.coffee b/app/assets/javascripts/views/panels/icon.js.coffee
new file mode 100644 (file)
index 0000000..121b752
--- /dev/null
@@ -0,0 +1,5 @@
+class Pettanr.Views.Panel.Icon extends Pettanr.Views.Common.Icon\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
diff --git a/app/assets/javascripts/views/scroll_panels/icon.js.coffee b/app/assets/javascripts/views/scroll_panels/icon.js.coffee
new file mode 100644 (file)
index 0000000..977407e
--- /dev/null
@@ -0,0 +1,5 @@
+class Pettanr.Views.ScrollPanel.Icon extends Pettanr.Views.Common.Icon\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
index 30d5a6d..aefd1e4 100644 (file)
@@ -1,10 +1,24 @@
 class Pettanr.Views.ScrollPanel.Summary extends Backbone.View\r
   \r
   initialize: (options) ->\r
-    super(options)\r
+    @item = options.item\r
+    _this = this\r
+    @scroll = @item.scroll()\r
+    @scroll.fetch().done ->\r
+      _this.scroll_icon = _this.scroll.icon_view(true)\r
+      _this.panel = _this.item.panel()\r
+      _this.panel.fetch().done ->\r
+        _this.panel_icon = _this.panel.icon_view(true)\r
+        _this.author = _this.scroll.author()\r
+        _this.author.fetch().done ->\r
+          _this.author_name = _this.author.name_view(12)\r
+          _this.render()\r
   \r
   render: () ->\r
     this.$el.html('')\r
-    this.$el.append('-')\r
+    if @author_name\r
+      this.$el.append(@scroll_icon.render().el)\r
+      this.$el.append(@panel_icon.render().el)\r
+      this.$el.append(@author_name.render().el)\r
     this\r
   \r
diff --git a/app/assets/javascripts/views/scrolls/icon.js.coffee b/app/assets/javascripts/views/scrolls/icon.js.coffee
new file mode 100644 (file)
index 0000000..c899532
--- /dev/null
@@ -0,0 +1,5 @@
+class Pettanr.Views.Scroll.Icon extends Pettanr.Views.Common.Icon\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
index 7649606..baa530f 100644 (file)
@@ -1,10 +1,39 @@
+class Pettanr.Views.Scroll.ShowModule\r
+class Pettanr.Views.Scroll.ShowModule.Header extends Pettanr.Views.Show.Header\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
+class Pettanr.Views.Scroll.ShowModule.Owner extends Pettanr.Views.Show.Owner\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
 class Pettanr.Views.Scroll.Show extends Backbone.View\r
   tagName: 'div'\r
+  className: 'show'\r
   \r
   initialize: (options) ->\r
+    @item = options.item\r
     @operators = options.operators\r
+    icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
+    caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')})\r
+    prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
+    @header = new Pettanr.Views.Scroll.ShowModule.Header({\r
+      item: @item, \r
+      operators: @operators,\r
+      caption: @item.get('title'), \r
+      icon_url: icon_url,\r
+      caption_url: caption_url,\r
+      prof_url: prof_url\r
+    })\r
+    @author = new Pettanr.Views.Show.HeaderAuthor({item: @item})\r
+    @owner = new Pettanr.Views.Scroll.ShowModule.Owner({item: @item, operators: @operators})\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    this.$el.append(@header.render().el)\r
+    this.$el.append(@author.render().el)\r
+    this.$el.append(@owner.render().el) if @item.is_own(@operators)\r
     this\r
   \r
index 01843f4..3f531c0 100644 (file)
@@ -1,10 +1,22 @@
 class Pettanr.Views.Scroll.Summary extends Backbone.View\r
   \r
   initialize: (options) ->\r
-    super(options)\r
+    @item = options.item\r
+    @visible = new Tag.Div({\r
+      content: Pettanr.AppHelper.t_selected_item('scroll_visible_items', @item.get('visible'))\r
+    })\r
+    _this = this\r
+    @author = @item.author()\r
+    @author.fetch().done ->\r
+      _this.author_icon = _this.author.icon_view(true)\r
+      _this.author_name = _this.author.name_view(12)\r
+      _this.render()\r
   \r
   render: () ->\r
     this.$el.html('')\r
-    this.$el.append('-')\r
+    this.$el.append(@visible.render().el)\r
+    if @author_icon\r
+      this.$el.append(@author_icon.render().el)\r
+      this.$el.append(@author_name.render().el)\r
     this\r
   \r
index a2c8ddc..358e81c 100644 (file)
@@ -1,10 +1,39 @@
+class Pettanr.Views.Sheet.ShowModule\r
+class Pettanr.Views.Sheet.ShowModule.Header extends Pettanr.Views.Show.Header\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
+class Pettanr.Views.Sheet.ShowModule.Owner extends Pettanr.Views.Show.Owner\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
 class Pettanr.Views.Sheet.Show extends Backbone.View\r
   tagName: 'div'\r
+  className: 'show'\r
   \r
   initialize: (options) ->\r
+    @item = options.item\r
     @operators = options.operators\r
+    icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
+    caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')})\r
+    prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
+    @header = new Pettanr.Views.Sheet.ShowModule.Header({\r
+      item: @item, \r
+      caption: @item.get('caption'), \r
+      operators: @operators,\r
+      icon_url: icon_url,\r
+      caption_url: caption_url,\r
+      prof_url: prof_url\r
+    })\r
+    @author = new Pettanr.Views.Show.HeaderAuthor({item: @item})\r
+    @owner = new Pettanr.Views.Sheet.ShowModule.Owner({item: @item, operators: @operators})\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    this.$el.append(@header.render().el)\r
+    this.$el.append(@author.render().el)\r
+    this.$el.append(@owner.render().el) if @item.is_own(@operators)\r
     this\r
   \r
diff --git a/app/assets/javascripts/views/show.js.coffee b/app/assets/javascripts/views/show.js.coffee
new file mode 100644 (file)
index 0000000..5591408
--- /dev/null
@@ -0,0 +1,110 @@
+class Pettanr.Views.Show\r
+class Pettanr.Views.Show.Header extends Backbone.View\r
+  tagName: 'h1'\r
+  className: 'show-header'\r
+  \r
+  initialize: (options) ->\r
+    @item = options.item\r
+    @operators = options.operators\r
+    @title = options.caption\r
+    @icon_url = options.icon_url\r
+    @caption_url = options.caption_url\r
+    @prof_url = options.prof_url\r
+    \r
+    @icon = new Pettanr.Image.Icon({item: @item, half: true})\r
+    @icon_button = new Tag.A({\r
+      attr: {href: '/' + @icon_url}, \r
+      handler_name: @icon_url,\r
+      class_name: 'icon',\r
+      content: @icon.render().el\r
+    })\r
+    @caption = new Tag.A({\r
+      attr: {href: '/' + @caption_url},\r
+      handler_name: @caption_url,\r
+      class_name: 'caption',\r
+      content: @title\r
+    })\r
+    @prof = new Pettanr.Image.SymbolImg({attr: {src: '/images/prof.gif'}, half: true})\r
+    @prof_button = new Tag.A({\r
+      attr: {href: '/' + @prof_url}, \r
+      handler_name: @prof_url,\r
+      class_name: 'prof',\r
+      content: @prof.render().el\r
+    })\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    this.$el.append(@icon_button.render().el)\r
+    this.$el.append(@caption.render().el)\r
+    this.$el.append(@prof_button.render().el)\r
+    this\r
+  \r
+class Pettanr.Views.Show.HeaderAuthor extends Backbone.View\r
+  tagName: 'div'\r
+  \r
+  initialize: (options) ->\r
+    @item = options.item\r
+    _this = this\r
+    @author = @item.author()\r
+    @author.fetch().done ->\r
+      name = _this.author.get('name')\r
+      author_url = Pettanr.url(_this.author.table_name(), 'show', {id: _this.author.get('id')})\r
+      _this.linked_author =  new Tag.A({\r
+        attr: {href: '/' + author_url}, \r
+        handler_name: author_url,\r
+        content: name\r
+      })\r
+      _this.render()\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    this.$el.append(Pettanr.AppHelper.t_a(@item.item_name(), 'author_id'))\r
+    this.$el.append(@linked_author.render().el) if @linked_author\r
+    this\r
+  \r
+class Pettanr.Views.Show.OwnerFooter extends Backbone.View\r
+  tagName: 'div'\r
+  className: 'show-owner-footer'\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    @item = options.item\r
+    @operators = options.operators\r
+    @edit_url = Pettanr.url(@item.table_name(), 'edit', {id: @item.get('id')})\r
+    @edit =  new Tag.A({\r
+      attr: {href: '/' + @edit_url}, \r
+      handler_name: @edit_url,\r
+      content: I18n.t('link.edit')\r
+    })\r
+    @destroy_url = Pettanr.url(@item.table_name(), 'destroy', {id: @item.get('id')})\r
+    @destroy =  new Tag.A({\r
+      attr: {href: '/' + @destroy_url}, \r
+      handler_name: @destroy_url,\r
+      content: I18n.t('link.destroy')\r
+    })\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    this.$el.append(@edit.render().el)\r
+    this.$el.append(@destroy.render().el)\r
+    this\r
+  \r
+class Pettanr.Views.Show.Owner extends Backbone.View\r
+  tagName: 'div'\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    @item = options.item\r
+    @operators = options.operators\r
+    @header = new Tag.H3({\r
+      class_name: 'owner-header',\r
+      content: I18n.t('editor')\r
+    })\r
+    @footer = new Pettanr.Views.Show.OwnerFooter({item: @item, operators: @operators})\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    this.$el.append(@header.render().el)\r
+    this.$el.append(@footer.render().el)\r
+    this\r
+  \r
index e07b89f..ee2ebb4 100644 (file)
@@ -1,10 +1,36 @@
+class Pettanr.Views.SpeechBalloon.ShowModule\r
+class Pettanr.Views.SpeechBalloon.ShowModule.Header extends Pettanr.Views.Show.Header\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
 class Pettanr.Views.SpeechBalloon.Show extends Backbone.View\r
   tagName: 'div'\r
+  className: 'show'\r
   \r
   initialize: (options) ->\r
+    @item = options.item\r
     @operators = options.operators\r
+    icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
+    caption_url = icon_url\r
+    prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
+    @header = new Pettanr.Views.SpeechBalloon.ShowModule.Header({\r
+      item: @item, \r
+      operators: @operators,\r
+      caption: @item.get('caption'), \r
+      icon_url: icon_url,\r
+      caption_url: caption_url,\r
+      prof_url: prof_url\r
+    })\r
+    _this = this\r
+    @panel = @item.panel()\r
+    @panel.fetch().done ->\r
+      _this.author = new Pettanr.Views.Show.HeaderAuthor({item: _this.panel})\r
+      _this.render()\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    this.$el.append(@header.render().el)\r
+    this.$el.append(@author.render().el)\r
     this\r
   \r
diff --git a/app/assets/javascripts/views/speeches/show.js.coffee b/app/assets/javascripts/views/speeches/show.js.coffee
new file mode 100644 (file)
index 0000000..8784815
--- /dev/null
@@ -0,0 +1,30 @@
+class Pettanr.Views.Speech.ShowModule\r
+class Pettanr.Views.Speech.ShowModule.Header extends Pettanr.Views.Show.Header\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
+class Pettanr.Views.Speech.Show extends Backbone.View\r
+  tagName: 'div'\r
+  className: 'show'\r
+  \r
+  initialize: (options) ->\r
+    @item = options.item\r
+    @operators = options.operators\r
+    icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
+    caption_url = icon_url\r
+    prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
+    @header = new Pettanr.Views.Speech.ShowModule.Header({\r
+      item: @item, \r
+      operators: @operators,\r
+      caption: '', \r
+      icon_url: icon_url,\r
+      caption_url: caption_url,\r
+      prof_url: prof_url\r
+    })\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    this.$el.append(@header.render().el)\r
+    this\r
+  \r
index 8d6940e..55bd0c5 100644 (file)
@@ -1,10 +1,39 @@
+class Pettanr.Views.Story.ShowModule\r
+class Pettanr.Views.Story.ShowModule.Header extends Pettanr.Views.Show.Header\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
+class Pettanr.Views.Story.ShowModule.Owner extends Pettanr.Views.Show.Owner\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
 class Pettanr.Views.Story.Show extends Backbone.View\r
   tagName: 'div'\r
+  className: 'show'\r
   \r
   initialize: (options) ->\r
+    @item = options.item\r
     @operators = options.operators\r
+    icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})\r
+    caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')})\r
+    prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})\r
+    @header = new Pettanr.Views.Story.ShowModule.Header({\r
+      item: @item, \r
+      caption: @item.get('title'), \r
+      operators: @operators,\r
+      icon_url: icon_url,\r
+      caption_url: caption_url,\r
+      prof_url: prof_url\r
+    })\r
+    @author = new Pettanr.Views.Show.HeaderAuthor({item: @item})\r
+    @owner = new Pettanr.Views.Story.ShowModule.Owner({item: @item, operators: @operators})\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    this.$el.append(@header.render().el)\r
+    this.$el.append(@author.render().el)\r
+    this.$el.append(@owner.render().el) if @item.is_own(@operators)\r
     this\r
   \r
index 69c5438..02b3cf7 100644 (file)
@@ -9,7 +9,7 @@
     </td>
     <td>
       <%= link_to scroll_panel_icon(:object => scroll_panel, :size => 25), scroll_panel_path(scroll_panel) %>
-      <%= link_to author_icon(:object => scroll_panel.author, :size => 17), author_path(scroll_panel.author) %>
+      <%= link_to author_icon(:object => scroll_panel.scroll.author, :size => 17), author_path(scroll_panel.scroll.author) %>
       <%= l scroll_panel.updated_at %>
     </td>
     <td>
index c3c9cd7..368e2cb 100644 (file)
@@ -5,5 +5,5 @@
   <% end %>
 </div>
 <div>
-  <%= link_to h(truncate(item.author.name, :length => 12)), author_path(item.author) %>
+  <%= link_to h(truncate(item.story.author.name, :length => 12)), author_path(item.story.author) %>
 </div>
index c910ab4..bcc7e23 100644 (file)
@@ -8,94 +8,3 @@
   artist_id = <%= @operators.artist.id -%>;\r
   <% end -%>;\r
 </script>\r
-<script type="text/javascript" id="manifest">\r
-</script>\r
-<script type="text/javascript" id="local-manifest">\r
-</script>\r
-<script type="text/template" id="templates-filer-filer">\r
-  <&= filer.header.render().el.innerHTML &>\r
-  <&= filer.body.render().el.innerHTML &>\r
-</script>\r
-<script type="text/template" id="templates-filer-body">\r
-  <ul class="filer-body">\r
-    <&= body.file_header.render().el.outerHTML &>\r
-    <&= body.file_body.render().el.outerHTML &>\r
-  </ul>\r
-  <div class="row_break">\r
-  </div>\r
-</script>\r
-<script type="text/template" id="templates-filer-file_header">\r
-  <&= file_header.symbol.render().el.outerHTML &>\r
-  <&= file_header.caption.render().el.outerHTML &>\r
-  <&= file_header.summary.render().el.outerHTML &>\r
-  <&= file_header.icon.render().el.outerHTML &>\r
-  <&= file_header.date.render().el.outerHTML &>\r
-  <&= file_header.edit.render().el.outerHTML &>\r
-</script>\r
-<script type="text/template" id="templates-filer-file_body">\r
-  <&= file_body.file_item.render().el.outerHTML &>\r
-</script>\r
-<script type="text/template" id="templates-filer-header_column-show">\r
-  <&= I18n.t('filer.header.' + header_column.column_name) &>\r
-</script>\r
-<script type="text/template" id="templates-filer-header_column-none">\r
-</script>\r
-<script type="text/template" id="templates-filer-item_column-show">\r
-  <&= item_column.render_item().el.innerHTML &>\r
-</script>\r
-<script type="text/template" id="templates-filer-item_column-none">\r
-</script>\r
-\r
-<script type="text/template" id="templates-filer-symbol-default">\r
-  <a href="javascript:void(0)">\r
-    <&= item_column.face.render().el &>\r
-  </a>\r
-</script>\r
-<script type="text/template" id="templates-filer-symbol-default_without_link">\r
-  <&= item_column.face.render().el &>\r
-</script>\r
-<script type="text/template" id="templates-filer-symbol-template">\r
-  <&= item_column.template_name &>\r
-</script>\r
-<script type="text/template" id="templates-filer-symbol_face-image">\r
-  <&= Pettanr.AppHelper.image_tag(item_column.url(), {'size': item_column.icon_size()}) &>\r
-</script>\r
-<script type="text/template" id="templates-filer-symbol_face-picture">\r
-  <&= Pettanr.AppHelper.image_tag(item_column.url(), {'size': item_column.icon_size()}) &>\r
-</script>\r
-\r
-<script type="text/template" id="templates-filer-caption-default">\r
-    <&= item_column.face.render().el.outerHTML &>\r
-</script>\r
-<script type="text/template" id="templates-filer-caption-default_without_link">\r
-  <&= item_column.face.render() &>\r
-</script>\r
-<script type="text/template" id="templates-filer-caption-template">\r
-  <&= item_column.template_name &>\r
-</script>\r
-<script type="text/template" id="templates-filer-caption_face-column">\r
-    <&= item_column.face() &>\r
-</script>\r
-<script type="text/template" id="templates-filer-caption_face-method">\r
-  <&= item_column.face() &>\r
-</script>\r
-<script type="text/template" id="templates-filer-caption_face-empty">\r
-'empty'\r
-</script>\r
-\r
-<script type="text/template" id="templates-filer-date-default">\r
-  <&= item_column.time_ago() &>\r
-</script>\r
-<script type="text/template" id="templates-filer-date-none">\r
-</script>\r
-<script type="text/template" id="templates-filer-edit-default">\r
-  # link_to tag(:img, item_column.edit_img_opt), polymorphic_path(item_column.item, :action => :edit)\r
-  # link_to tag(:img, item_column.remove_img_opt), item_column.item, confirm: 'Are you sure?', :method => :delete \r
-</script>\r
-<script type="text/template" id="templates-filer-edit-template">\r
-  # render item_column.template_name, :item => item_column.item\r
-</script>\r
-<script type="text/template" id="templates-filer-edit-none">\r
-</script>\r
-\r
-\r
index e26058c..211755f 100644 (file)
@@ -1,9 +1,6 @@
-require_dependency "locmare/bucket/member"
-require_dependency "locmare/bucket/form_field_name"
 
 module Locmare
   class Bucket
-    include BucketModule
     attr :manifest, :bucket_name, :item, :mounted, :submit, :operators, :template_dir, 
       :fields
     
diff --git a/lib/locmare/bucket/form_field_name.rb b/lib/locmare/bucket/form_field_name.rb
deleted file mode 100644 (file)
index fbc2c59..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-module Locmare
-  module BucketModule
-    class FieldName
-      attr :bucket, :field_name, :field_manifest, 
-        :label, :tag, :helpers, :options
-      def initialize bucket, field_name, field_manifest
-        @bucket = bucket
-        @field_name = field_name
-        @field_manifest = field_manifest
-        @label = LabelFactory.factory self, @field_manifest.label
-        @tag = TagFactory.factory self, @field_manifest.tag
-        @helpers = {}
-        @field_manifest.helpers.each {|helper_name, helper_manifest|
-          @helpers[helper_name] = HelperFactory.factory self, helper_manifest
-        }
-        @options = {'data-model' => @field_manifest.form_name}
-      end
-      
-      def item
-        @form.item
-      end
-      
-      def form_field_name
-        self.form_name + '[' + @field_name + ']'
-      end
-      
-      def form_name
-        @form.form_name
-      end
-      
-      def template_dir
-        @form.template_dir + 'field/'
-      end
-      
-      def template_file_name
-        'default'
-      end
-      
-      def template_name
-        self.template_dir + self.template_file_name
-      end
-      
-      def template_option
-        {:field => self}
-      end
-      
-      def row_break_template_dir
-        @form.template_dir + 'row_break/'
-      end
-      
-      def row_break_template_file_name
-        if @field_manifest.row_break
-          'br'
-        else
-          'no_break'
-        end
-      end
-      
-      def row_break_template_name
-        self.row_break_template_dir + self.row_break_template_file_name
-      end
-      
-    end
-  end
-end
diff --git a/lib/locmare/bucket/member.rb b/lib/locmare/bucket/member.rb
deleted file mode 100644 (file)
index ea7dab3..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-module Locmare
-  module BucketModule
-    class Member
-      attr :form, :field_name, :field_manifest, 
-        :label, :tag, :helpers, :options
-      def initialize form, field_name, field_manifest
-        @form = form
-        @field_name = field_name
-        @field_manifest = field_manifest
-        @label = LabelFactory.factory self, @field_manifest.label
-        @tag = TagFactory.factory self, @field_manifest.tag
-        @helpers = {}
-        @field_manifest.helpers.each {|helper_name, helper_manifest|
-          @helpers[helper_name] = HelperFactory.factory self, helper_manifest
-        }
-        @options = {'data-model' => @field_manifest.form_name}
-      end
-      
-      def mounted
-        @form.mounted ? 0 : 1
-      end
-      
-      def mount_option
-        {'mount' => self.mounted}
-      end
-      
-      def item
-        @form.item
-      end
-      
-      def value
-        self.item.attributes[@field_manifest.column_name]
-      end
-      
-      def options tag_options = {}
-        self.item.field_tag_attributes(@field_manifest.column_name, tag_options).merge(self.mount_option)
-      end
-      
-      def form_field_name
-        self.form_name + '[' + @field_name + ']'
-      end
-      
-      def form_name
-        @form.form_name
-      end
-      
-      def template_dir
-        @form.template_dir + 'field/'
-      end
-      
-      def template_file_name
-        'default'
-      end
-      
-      def template_name
-        self.template_dir + self.template_file_name
-      end
-      
-      def template_option
-        {:field => self}
-      end
-      
-      def row_break_template_dir
-        @form.template_dir + 'row_break/'
-      end
-      
-      def row_break_template_file_name
-        if @field_manifest.row_break
-          'br'
-        else
-          'no_break'
-        end
-      end
-      
-      def row_break_template_name
-        self.row_break_template_dir + self.row_break_template_file_name
-      end
-      
-    end
-  end
-end