OSDN Git Service

add profiler
authoryasushiito <yas@pen-chan.jp>
Fri, 29 Aug 2014 07:36:44 +0000 (16:36 +0900)
committeryasushiito <yas@pen-chan.jp>
Fri, 29 Aug 2014 07:36:44 +0000 (16:36 +0900)
24 files changed:
app/assets/javascripts/ap.js
app/assets/javascripts/local_manifest/profiler/association/has_many.js.coffee
app/assets/javascripts/local_manifest/profiler/association/has_one.js.coffee
app/assets/javascripts/locmare/filer/body/file_body/file_item/icon/base.js.coffee
app/assets/javascripts/locmare/profiler.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/profiler/association.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/profiler/association/belongs_to.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/profiler/association/has_many.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/profiler/association/has_one.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/profiler/column.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/profiler/column/base.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/profiler/column/date.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/profiler/column/default.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/profiler/column/extend.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/profiler/column/extend/extend_column.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/profiler/column/json.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/profiler/column/source.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/profiler/header.js.coffee [new file with mode: 0644]
app/assets/javascripts/main.js.coffee
app/assets/javascripts/models/resource_picture.js.coffee
app/assets/javascripts/models/scroll.js.coffee
app/assets/javascripts/peta/item.js.coffee
app/assets/javascripts/pettanr.js.coffee
app/controllers/application_controller.rb

index 905c87c..b510fc2 100644 (file)
 //= require ./locmare/filer/body/file_body/file_item/edit/account
 //= require ./locmare/filer/body/file_body/file_item/edit/template
 //= require ./locmare/filer/pager
+//= require ./locmare/profiler
+//= require ./locmare/profiler/header
+//= require ./locmare/profiler/column
+//= require ./locmare/profiler/column/base
+//= require ./locmare/profiler/column/default
+//= require ./locmare/profiler/column/date
+//= require ./locmare/profiler/column/source
+//= require ./locmare/profiler/column/extend
+//= require ./locmare/profiler/column/extend/extend_column
+//= require ./locmare/profiler/column/json
+//= require ./locmare/profiler/association
+//= require ./locmare/profiler/association/belongs_to
+//= require ./locmare/profiler/association/has_many
+//= require ./locmare/profiler/association/has_one
 //= require ./peta/peta
 //= require ./peta/item
 //= require ./peta/owner
index 2f1c7bb..feab10d 100644 (file)
@@ -12,13 +12,15 @@ class LocalManifest.ProfilerModule.AssociationModule.HasMany extends ManifestBas
       n = @name.split '.'\r
       if n.length > 1\r
         @table_name = n[0]\r
-        @model_name = @table_name.singularize\r
+        @item_name = Manifest.manifest().controllers[@table_name].item_name\r
+        @model_name = @item_name\r
         @list_name = n[1]\r
       else\r
-        ManifestBase::alert_undefined_message 'list', this.module_message\r
-\r
-  list: () ->\r
-    Locmare::ListGroup.list @model_name, @list_name\r
+        ManifestBase.alert_undefined_message 'list', this.module_message\r
+  \r
+  list_options: (id) ->\r
+    params = {controller: @table_name, action: @list_name, id: id, page: 1, page_size: 3}\r
+    {model: @model(), params: params}\r
   \r
   model: () ->\r
     Manifest.item_name_to_model @model_name\r
index 3372e7a..930a7ce 100644 (file)
@@ -14,10 +14,11 @@ class LocalManifest.ProfilerModule.AssociationModule.HasOne extends ManifestBase
         @model_name = n[0]\r
         @list_name = n[1]\r
       else\r
-        ManifestBase::alert_undefined_message 'list', self.module_message\r
+        ManifestBase.alert_undefined_message 'list', @module_message\r
   \r
-  list: () ->\r
-    Locmare::ListGroup.list @model_name, @list_name\r
+  list_options: (id) ->\r
+    params = {controller: @model().table_name(), action: @list_name, id: id, page: 1, page_size: 3}\r
+    {model: @model(), params: params}\r
   \r
   model: () ->\r
     Manifest.item_name_to_model @model_name\r
index a6244ef..b1a9abd 100644 (file)
@@ -1,5 +1,8 @@
 class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.IconItemColumnModule.Base extends Backbone.View\r
   tagName: 'div'\r
+  events: {\r
+    'click .face': 'show'\r
+  }\r
   \r
   initialize: (options) ->\r
     @file_item = options.file_item\r
@@ -20,6 +23,11 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.IconItemColum
     this.$el.html(template(args))\r
     this\r
   \r
+  show: () ->\r
+    item = new Pettanr.Artist({id: 1})\r
+    item.fetch().done ->\r
+      profiler = new Locmare.Profiler({item_name: item.item_name(), item: item, operators: window.operators})\r
+  \r
   filer: () ->\r
     @file_item.filer()\r
   \r
diff --git a/app/assets/javascripts/locmare/profiler.js.coffee b/app/assets/javascripts/locmare/profiler.js.coffee
new file mode 100644 (file)
index 0000000..d4a6f1e
--- /dev/null
@@ -0,0 +1,36 @@
+class Locmare.Profiler extends Backbone.View\r
+  tagName: 'div'\r
+  initialize: (options) ->\r
+    @item_name = options.item_name\r
+    @item = options.item\r
+    # feasible show parsed extend data\r
+    @item.boosts 'post'\r
+    @operators = options.operators\r
+      \r
+    @profiler_manifest = LocalManifest.manifest().profilers[@item_name]\r
+    @template_dir = 'templates-profiler-'\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
+    @render()\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    this.$el.append(@header.render().el)\r
+    this.$el.append(@columns.render().el)\r
+    this.$el.append(@associations.render().el)\r
+    $("#pettanr").html(this.el)\r
+    this\r
+  \r
+  peta: () ->\r
+    Manifest.manifest().items[@item_name]\r
+  \r
+  model: () ->\r
+    Manifest.item_name_to_model @item_name\r
+  \r
+  image_dir: () ->\r
+    '/images/'\r
+  \r
+class Locmare.ProfilerModule\r
+\r
\r
diff --git a/app/assets/javascripts/locmare/profiler/association.js.coffee b/app/assets/javascripts/locmare/profiler/association.js.coffee
new file mode 100644 (file)
index 0000000..c9aa914
--- /dev/null
@@ -0,0 +1,32 @@
+class Locmare.ProfilerModule.Association extends Backbone.View\r
+  tagName: 'div'\r
+  \r
+  initialize: (options) ->\r
+    @profiler = options.profiler\r
+    @association_manifest = options.association_manifest\r
+    @belongs_to = _.map @association_manifest.belongs_to, (belongs_to_manifest) =>\r
+      new Locmare.ProfilerModule.AssociationModule.BelongsTo({association: this, belongs_to_manifest: belongs_to_manifest})\r
+    @has_many = _.map @association_manifest.has_many, (list_manifest) =>\r
+      new Locmare.ProfilerModule.AssociationModule.HasMany({association: this, has_many_manifest: list_manifest})\r
+    @has_one = _.map @association_manifest.has_one, (list_manifest) =>\r
+      new Locmare.ProfilerModule.AssociationModule.HasOne({association: this, has_one_manifest: list_manifestt})\r
+    @render\r
+  \r
+  render: () ->\r
+    _this = this\r
+    _.each @belongs_to, (f) ->\r
+      #_this.$el.append(f.render().el)\r
+    _.each @has_many, (f) ->\r
+      #_this.$el.append(f.render().el)\r
+    _.each @has_one, (f) ->\r
+      #_this.$el.append(f.render().el)\r
+    this\r
+  \r
+  item: () ->\r
+    @profiler.item\r
+  \r
+  model_manifest: () ->\r
+    Manifest.manifest().models[@profiler.item_name]\r
+  \r
+class Locmare.ProfilerModule.AssociationModule\r
+\r
diff --git a/app/assets/javascripts/locmare/profiler/association/belongs_to.js.coffee b/app/assets/javascripts/locmare/profiler/association/belongs_to.js.coffee
new file mode 100644 (file)
index 0000000..2eeb697
--- /dev/null
@@ -0,0 +1,37 @@
+class Locmare.ProfilerModule.AssociationModule.BelongsTo extends Backbone.View\r
+  tagName: 'div'\r
+  \r
+  initialize: (options) ->\r
+    @association = options.association\r
+    @belongs_to_manifest = options.belongs_to_manifest\r
+    @filer = null\r
+    m = new @parent_model({id: @parent_id()})\r
+    _this = this\r
+    m.fetch().done ->\r
+      _this.filer = new Locmare.Filer(@parent_model.item_name, r, null, @profiler().operators)\r
+      _this.render()\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    if @filer\r
+      this.$el.html(@filer.render().el)\r
+    this\r
+  \r
+  item: () ->\r
+    @profiler.item\r
+  \r
+  parent_model: () ->\r
+    @belongs_to_manifest.model()\r
+  \r
+  parent_id: () ->\r
+    @item().get(@model_belongs_to_manifest().id_column)\r
+  \r
+  model_manifest: () ->\r
+    Manifest.manifest().models[@profiler.item_name]\r
+  \r
+  model_belongs_to_manifest: () ->\r
+    @model_manifest().associations.belongs_to[@belongs_to_manifest.model_name]\r
+  \r
+  profiler: () ->\r
+    @association.profiler()\r
+  \r
diff --git a/app/assets/javascripts/locmare/profiler/association/has_many.js.coffee b/app/assets/javascripts/locmare/profiler/association/has_many.js.coffee
new file mode 100644 (file)
index 0000000..b6eef8b
--- /dev/null
@@ -0,0 +1,29 @@
+class Locmare.ProfilerModule.AssociationModule.HasMany extends Backbone.View\r
+  tagName: 'div'\r
+  \r
+  initialize: (options) ->\r
+    @association = options.association\r
+    @has_many_manifest = options.has_many_manifest\r
+    @filer = null\r
+    m = new Pettanr.FilerCollection({}, @has_many_manifest.list_options(@item().get('id')))\r
+    _this = this\r
+    m.fetch().done ->\r
+      items = m.models\r
+      #_this.filer = new Locmare.Filer(_this.has_many_model().item_name, items, @pager, _this.profiler().operators)\r
+      _this.render()\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    if @filer\r
+      this.$el.html(@filer.render().el)\r
+    this\r
+  \r
+  item: () ->\r
+    @profiler().item\r
+  \r
+  has_many_model: () ->\r
+    @has_many_manifest.model()\r
+  \r
+  profiler: () ->\r
+    @association.profiler\r
\r
diff --git a/app/assets/javascripts/locmare/profiler/association/has_one.js.coffee b/app/assets/javascripts/locmare/profiler/association/has_one.js.coffee
new file mode 100644 (file)
index 0000000..c2108e9
--- /dev/null
@@ -0,0 +1,30 @@
+class Locmare.ProfilerModule.AssociationModule.HasOne extends Backbone.View\r
+  tagName: 'div'\r
+  \r
+  initialize: (options) ->\r
+    @association = options.association\r
+    @has_one_manifest = options.has_one_manifest\r
+    @filer = null\r
+    m = new @parent_model(@parent_id())\r
+    m = new Pettanr.FilerCollection({}, @has_one_manifest.list_options(@item().get('id')))\r
+    _this = this\r
+    m.fetch().done ->\r
+      items = m.models\r
+      _this.filer = new Locmare.Filer(_this.has_one_model().item_name, items, null, _this.profiler().operators)\r
+      _this.render()\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    if @filer\r
+      this.$el.html(@filer.render().el)\r
+    this\r
+  \r
+  item: () ->\r
+    @profiler().item\r
+  \r
+  has_one_model: () ->\r
+    @has_one_manifest.model()\r
+  \r
+  profiler: () ->\r
+    @association.profiler\r
+  \r
diff --git a/app/assets/javascripts/locmare/profiler/column.js.coffee b/app/assets/javascripts/locmare/profiler/column.js.coffee
new file mode 100644 (file)
index 0000000..42c89bd
--- /dev/null
@@ -0,0 +1,41 @@
+class Locmare.ProfilerModule.Column extends Backbone.View\r
+  tagName: 'div'\r
+  className: 'columns'\r
+  \r
+  initialize: (options) ->\r
+    @profiler = options.profiler\r
+    @profiler_manifest = @profiler.profiler_manifest\r
+    @columns = {}\r
+    _this = this\r
+    _.each @profiler_manifest.columns, (column, name) ->\r
+      _this.columns[name] = _this.factory(_this.profiler, column)\r
+  \r
+  render: () ->\r
+    _this = this\r
+    this.$el.html('')\r
+    _.each @sorted_columns(), (column) ->\r
+      _this.$el.append(column.render().el)\r
+    this\r
+  \r
+  types: () ->\r
+    {\r
+      default: Locmare.ProfilerModule.ColumnModule.Default, \r
+      date: Locmare.ProfilerModule.ColumnModule.Date, \r
+      source: Locmare.ProfilerModule.ColumnModule.Source, \r
+      extend: Locmare.ProfilerModule.ColumnModule.Extend, \r
+      json: Locmare.ProfilerModule.ColumnModule.Json\r
+    }\r
+  \r
+  factory: (profiler, my_manifest) ->\r
+    type = my_manifest.type\r
+    console.log("undefined type for local view filers > #{profiler.item_name} > edit\n") if not type\r
+    my_class = @types()[type]\r
+    console.log("undefined class for local view filers > #{profiler.item_name} > edit > #{type}\n") if not my_class\r
+    new my_class({profiler: profiler,  column_manifest: my_manifest})\r
+  \r
+  sorted_columns: () ->\r
+    _.map @profiler_manifest.column_names, (column_name) =>\r
+      _this.columns[column_name]\r
+  \r
+class Locmare.ProfilerModule.ColumnModule\r
+\r
diff --git a/app/assets/javascripts/locmare/profiler/column/base.js.coffee b/app/assets/javascripts/locmare/profiler/column/base.js.coffee
new file mode 100644 (file)
index 0000000..f178148
--- /dev/null
@@ -0,0 +1,156 @@
+class Locmare.ProfilerModule.ColumnModule.Base extends Backbone.View\r
+  tagName: 'div'\r
+  className: 'column'\r
+  \r
+  initialize: (options) ->\r
+    @profiler = options.profiler\r
+    @column_manifest = options.column_manifest\r
+    @column_name = @column_manifest.name\r
+    c = @label_class()\r
+    @label = new c({column: this})\r
+    c = @value_class()\r
+    @value = new c({column: this})\r
+    c = @note_class()\r
+    @note = new c({column: this})\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    this.$el.append(@label.render().el)\r
+    this.$el.append(@value.render().el)\r
+    this.$el.append(@note.render().el) if @note.is_visible()\r
+    this\r
+  \r
+  item: () ->\r
+    @profiler.item\r
+  \r
+  label_class: () ->\r
+    Locmare.ProfilerModule.ColumnModule.Label\r
+  \r
+  value_class: () ->\r
+    Locmare.ProfilerModule.ColumnModule.Value\r
+  \r
+  note_class: () ->\r
+    Locmare.ProfilerModule.ColumnModule.NoteNone\r
+  \r
+class Locmare.ProfilerModule.ColumnModule.Label extends Backbone.View\r
+  tagName: 'span'\r
+  \r
+  initialize: (options) ->\r
+    @column = options.column\r
+  \r
+  render: () ->\r
+    this.$el.html(@label())\r
+    this\r
+  \r
+  label: () ->\r
+    Pettanr.AppHelper.t_a(@column.item().item_name(), @column.column_name)\r
+  \r
+class Locmare.ProfilerModule.ColumnModule.Value extends Backbone.View\r
+  tagName: 'span'\r
+  \r
+  initialize: (options) ->\r
+    @column = options.column\r
+  \r
+  render: () ->\r
+    this.$el.html(@value())\r
+    this\r
+  \r
+  value: () ->\r
+    @column.item().get(@column.column_name)\r
+  \r
+class Locmare.ProfilerModule.ColumnModule.DateValue extends Backbone.View\r
+  tagName: 'span'\r
+  \r
+  initialize: (options) ->\r
+    @column = options.column\r
+  \r
+  render: () ->\r
+    this.$el.html(@value())\r
+    this\r
+  \r
+  value: () ->\r
+    l(@column.value())\r
+  \r
+class Locmare.ProfilerModule.ColumnModule.JsonValue extends Backbone.View\r
+  tagName: 'pre'\r
+  \r
+  initialize: (options) ->\r
+    @column = options.column\r
+  \r
+  render: () ->\r
+    this.$el.html(@value())\r
+    this\r
+  \r
+  value: () ->\r
+    JSON.pretty_generate(JSON.parse(@column.value()))\r
+  \r
+class Locmare.ProfilerModule.ColumnModule.ExtendValue extends Backbone.View\r
+  tagName: 'div'\r
+  \r
+  initialize: (options) ->\r
+    @column = options.column\r
+    @columns = {}\r
+    _this = this\r
+    _.each @extend_settings().column_names, (extend_column_name) ->\r
+      extend_column_manifest = _this.extend_settings().columns[extend_column_name] || {}\r
+      _this.columns[extend_column_name] = new Locmare.ProfilerModule.ColumnModule.ExtendModule.ExtendColumn({column: _this, extend_column_name: extend_column_name, extend_column_manifest: extend_column_manifest})\r
+  \r
+  render: () ->\r
+    _this = this\r
+    this.$el.html('')\r
+    _.each @sorted_columns(), (extend_column) ->\r
+      _this.$el.append(extend_column.render().el)\r
+    this\r
+  \r
+  \r
+  extend_columns: () ->\r
+    _.map @extend_settings().column_names, (column_name) ->\r
+      @columns[column_name]\r
+  \r
+  extend_settings: () ->\r
+    @template_model_profiler().extend_settings[self.booster.model_name]\r
+  \r
+  template_model_profiler: () ->\r
+    LocalManifest.manifest.profilers[@template_model().item_name]\r
+  \r
+  template_model: () ->\r
+    @booster().template_model\r
+  \r
+  extend_item: () ->\r
+    @booster.extend_item\r
+  \r
+  booster: () ->\r
+    @column.item().boosters[@column_manifest.boost_name]\r
+  \r
+class Locmare.ProfilerModule.ColumnModule.NoteNone\r
+  \r
+  is_visible:() ->\r
+    false\r
+  \r
+class Locmare.ProfilerModule.ColumnModule.Note extends Backbone.View\r
+  tagName: 'span'\r
+  \r
+  initialize: (options) ->\r
+    @column = options.column\r
+  \r
+  render: () ->\r
+    this.$el.html(@note())\r
+    this\r
+  \r
+  note: () ->\r
+    Pettanr.AppHelper.t_selected_item(@select_item_name, @column.value())\r
+  \r
+  is_visible:() ->\r
+    true\r
+  \r
+  select_item_name: () ->\r
+    @model_attribute_source_manifest().select_item_name\r
+  \r
+  model_manifest: () ->\r
+    Manifest.manifest().models[@column.profiler().item_name]\r
+  \r
+  model_attribute_manifest: () ->\r
+    @model_manifest().attributes[@column.column_name]\r
+  \r
+  model_attribute_source_manifest: () ->\r
+    @model_attribute_manifest().source\r
diff --git a/app/assets/javascripts/locmare/profiler/column/date.js.coffee b/app/assets/javascripts/locmare/profiler/column/date.js.coffee
new file mode 100644 (file)
index 0000000..3d53f90
--- /dev/null
@@ -0,0 +1,5 @@
+class Locmare.ProfilerModule.ColumnModule.Date extends Locmare.ProfilerModule.ColumnModule.Base\r
+  \r
+  value_class: () ->\r
+    Locmare.ProfilerModule.ColumnModule.DateValue\r
+  \r
diff --git a/app/assets/javascripts/locmare/profiler/column/default.js.coffee b/app/assets/javascripts/locmare/profiler/column/default.js.coffee
new file mode 100644 (file)
index 0000000..c0ecc3a
--- /dev/null
@@ -0,0 +1,2 @@
+class Locmare.ProfilerModule.ColumnModule.Default extends Locmare.ProfilerModule.ColumnModule.Base\r
+  \r
diff --git a/app/assets/javascripts/locmare/profiler/column/extend.js.coffee b/app/assets/javascripts/locmare/profiler/column/extend.js.coffee
new file mode 100644 (file)
index 0000000..c954ac2
--- /dev/null
@@ -0,0 +1,6 @@
+class Locmare.ProfilerModule.ColumnModule.Extend extends Locmare.ProfilerModule.ColumnModule.Base\r
+  \r
+  value_class: () ->\r
+    Locmare.ProfilerModule.ColumnModule.ExtendValue\r
+\r
+class Locmare.ProfilerModule.ColumnModule.ExtendModule\r
diff --git a/app/assets/javascripts/locmare/profiler/column/extend/extend_column.js.coffee b/app/assets/javascripts/locmare/profiler/column/extend/extend_column.js.coffee
new file mode 100644 (file)
index 0000000..1a0a64e
--- /dev/null
@@ -0,0 +1,15 @@
+class Locmare.ProfilerModule.ColumnModule.ExtendModule.ExtendColumn extends Backbone.View\r
+  initialize: (options) ->\r
+    @column = options.column  # extend_column\r
+    @extend_column_name = options.extend_column_name\r
+    @extend_column_manifest = options.extend_column_manifest\r
+  \r
+  label: () ->\r
+    Pettanr.AppHelper.t_a(@extend_item().singular(), @extend_column_name)\r
+  \r
+  value: () ->\r
+    @extend_item.get(@extend_column_name)\r
+  \r
+  extend_item: () ->\r
+    @column.extend_item()\r
+  \r
diff --git a/app/assets/javascripts/locmare/profiler/column/json.js.coffee b/app/assets/javascripts/locmare/profiler/column/json.js.coffee
new file mode 100644 (file)
index 0000000..3cb319c
--- /dev/null
@@ -0,0 +1,5 @@
+class Locmare.ProfilerModule.ColumnModule.Json extends Locmare.ProfilerModule.ColumnModule.Base\r
+  \r
+  value_class: () ->\r
+    Locmare.ProfilerModule.ColumnModule.JsonValue\r
+  \r
diff --git a/app/assets/javascripts/locmare/profiler/column/source.js.coffee b/app/assets/javascripts/locmare/profiler/column/source.js.coffee
new file mode 100644 (file)
index 0000000..95d41c2
--- /dev/null
@@ -0,0 +1,5 @@
+class Locmare.ProfilerModule.ColumnModule.Source extends Locmare.ProfilerModule.ColumnModule.Base\r
+  \r
+  note_class: () ->\r
+    Locmare.ProfilerModule.ColumnModule.Note\r
+  \r
diff --git a/app/assets/javascripts/locmare/profiler/header.js.coffee b/app/assets/javascripts/locmare/profiler/header.js.coffee
new file mode 100644 (file)
index 0000000..9f0645d
--- /dev/null
@@ -0,0 +1,13 @@
+class Locmare.ProfilerModule.Header extends Backbone.View\r
+  tagName: 'div'\r
+  \r
+  initialize: (options) ->\r
+    @profiler = options.profiler\r
+  \r
+  render: () ->\r
+    #this.$el.append(@filer().render().el)\r
+    this\r
+  \r
+  filer: () ->\r
+    new Locmare.Filer(@profiler.item_name, [@profiler.item], null, @profiler.operators)\r
+  \r
index 38d2c0b..603e6dc 100644 (file)
@@ -22,10 +22,11 @@ $ ->
   artist.fetch({})\r
   window.operators = new Pettanr.Operator([author, artist])\r
   \r
-  list_result = new Pettanr.Folder.Root({})\r
-  new Pettanr.FilerRender('folder', list_result, 'default', window.operators)\r
+  #list_result = new Pettanr.Folder.Root({})\r
+  #new Pettanr.FilerRender('folder', list_result, 'default', window.operators)\r
   window.router = new Pettanr.Router()\r
   Backbone.history.start({pushState: true})\r
+  window.router.navigate('folders/root', true)\r
   \r
   test_router: () ->\r
     window.router.navigate('folders/98', true)\r
index 2d5b454..fafa3dc 100644 (file)
@@ -1,4 +1,6 @@
 class Pettanr.ResourcePicture extends Peta.Content\r
+  url: '/resource_pictures/'\r
+  \r
   @singular: () ->\r
     'ResourcePicture'\r
   \r
@@ -49,4 +51,4 @@ class Pettanr.ResourcePicture extends Peta.Content
   \r
 class Pettanr.ResourcePicture.Collection extends Backbone.Collection\r
   model: Pettanr.ResourcePicture\r
-  url: '/resource_pictures'\r
+  url: '/resource_pictures/'\r
index 6d636bf..9447642 100644 (file)
@@ -1,5 +1,5 @@
 class Pettanr.Scroll extends Peta.Binder\r
-  url: ''\r
+  url: '/scrolls/'\r
   \r
   @singular: () ->\r
     'Scroll'\r
index 248c0e3..294ee7a 100644 (file)
@@ -74,6 +74,12 @@ class Peta.Item extends Backbone.Model
   \r
   #InstanceMethods\r
   \r
+  singular: () ->\r
+    Pettanr[@constructor.name].singular()\r
+  \r
+  plural: () ->\r
+    Pettanr[@constructor.name].plural()\r
+  \r
   item_name: () ->\r
     @my_class().item_name()\r
   \r
index 3c45a75..c5ed2df 100644 (file)
@@ -1,4 +1,6 @@
 class Pettanr\r
+  # Foo.class -> Pettanr[@constructor.name]\r
+\r
   @is_blank: (str) ->\r
     !str?.trim()\r
   \r
@@ -39,8 +41,11 @@ class Pettanr
         if l.length == 1\r
           I18n.t('activerecord.models.' + Pettanr[label].item_name())\r
         else\r
-          I18n.t('activerecord.models.attribtes.' + Pettanr[l.first].item_name() + '.' + l.last)\r
+          Pettanr.AppHelper.t_a(Pettanr[l.first].item_name(), l.last)\r
     \r
+    @t_a: (item_name, attr_name) ->\r
+      I18n.t('activerecord.attributes.' + item_name + '.' + attr_name)\r
+      \r
     @t_select_items: (items) ->\r
       _.map items, (i) ->\r
         [t(i[0]), i[1]]\r
@@ -130,8 +135,8 @@ class Pettanr
         '?' + q.join('&')\r
       else\r
         ''\r
-      @url = '/' + params['controller'] + i + a + qry\r
-      @total = new Pettanr.CounterModel({}, {url: '/' + params['controller'] + i + 'count_' + a})\r
+      @url = '/' + params['controller'] + '/' + i + a + qry\r
+      @total = new Pettanr.CounterModel({}, {url: '/' + params['controller'] + '/' + i + 'count_' + a})\r
       @model = options['model']\r
   \r
   class Pettanr.AppController\r
index f1da1ce..42e8780 100644 (file)
@@ -165,7 +165,7 @@ class ApplicationController < ActionController::Base
   def show_prof_format format
     format.prof {
       self.formats = [:html]
-      @profiler = Locmare::Profiler.new @my_model.model_name, @item, @operators
+      @profiler = Locmare::Profiler.new @my_model.item_name, @item, @operators
       render @profiler.template_name, :locals => {
         :profiler => @profiler
       }