OSDN Git Service

fix:replace row break
[pettanr/pettanr.git] / app / assets / javascripts / locmare / profiler / column / base.js.coffee
1 class Locmare.ProfilerModule.ColumnModule.Base extends Pettanr.View\r
2   tagName: 'div'\r
3   className: 'column'\r
4   \r
5   initialize: (options) ->\r
6     @profiler = options.profiler\r
7     @column_manifest = options.column_manifest\r
8     @column_name = @column_manifest.name\r
9     c = @label_class()\r
10     @label = new c({column: this})\r
11     c = @value_class()\r
12     @value = new c({column: this})\r
13     c = @note_class()\r
14     @note = new c({column: this})\r
15   \r
16   render: () ->\r
17     this.$el.html('')\r
18     this.$el.append(@label.render().el)\r
19     this.$el.append(@value.render().el)\r
20     this.$el.append(@note.render().el) if @note.is_visible()\r
21     this\r
22   \r
23   item: () ->\r
24     @profiler.item\r
25   \r
26   label_class: () ->\r
27     Locmare.ProfilerModule.ColumnModule.Label\r
28   \r
29   value_class: () ->\r
30     Locmare.ProfilerModule.ColumnModule.Value\r
31   \r
32   note_class: () ->\r
33     Locmare.ProfilerModule.ColumnModule.NoteNone\r
34   \r
35 class Locmare.ProfilerModule.ColumnModule.Label extends Pettanr.View\r
36   tagName: 'span'\r
37   \r
38   initialize: (options) ->\r
39     @column = options.column\r
40   \r
41   render: () ->\r
42     this.$el.html(@label())\r
43     this\r
44   \r
45   label: () ->\r
46     Pettanr.AppHelper.t_a(@column.item().item_name(), @column.column_name)\r
47   \r
48 class Locmare.ProfilerModule.ColumnModule.Value extends Pettanr.View\r
49   tagName: 'span'\r
50   \r
51   initialize: (options) ->\r
52     @column = options.column\r
53   \r
54   render: () ->\r
55     this.$el.html(@value())\r
56     this\r
57   \r
58   value: () ->\r
59     @column.item().escape(@column.column_name)\r
60   \r
61 class Locmare.ProfilerModule.ColumnModule.DateValue extends Pettanr.View\r
62   tagName: 'span'\r
63   \r
64   initialize: (options) ->\r
65     @column = options.column\r
66   \r
67   render: () ->\r
68     this.$el.html(@value())\r
69     this\r
70   \r
71   value: () ->\r
72     @column.item().get(@column.column_name)\r
73     #Pettanr.format_date(@column.item().get(@column.column_name))\r
74   \r
75 class Locmare.ProfilerModule.ColumnModule.JsonValue extends Pettanr.View\r
76   tagName: 'pre'\r
77   \r
78   initialize: (options) ->\r
79     @column = options.column\r
80   \r
81   render: () ->\r
82     this.$el.html(@value())\r
83     this\r
84   \r
85   value: () ->\r
86     # pre tag no need escapeHTML\r
87     JSON.stringify(JSON.parse(@column.item().get(@column.column_name)), null, 2)\r
88   \r
89 class Locmare.ProfilerModule.ColumnModule.ExtendValue extends Pettanr.View\r
90   tagName: 'div'\r
91   \r
92   initialize: (options) ->\r
93     @column = options.column\r
94     @columns = {}\r
95     _.each @extend_settings().column_names, (extend_column_name) =>\r
96       extend_column_manifest = @extend_settings().columns[extend_column_name] || {}\r
97       @columns[extend_column_name] = new Locmare.ProfilerModule.ColumnModule.ExtendModule.ExtendColumn({\r
98         column: this, \r
99         extend_column_name: extend_column_name, \r
100         extend_column_manifest: extend_column_manifest\r
101       })\r
102   \r
103   render: () ->\r
104     this.$el.html('')\r
105     _.each @sorted_columns(), (extend_column) =>\r
106       this.$el.append(extend_column.render().el)\r
107     this\r
108   \r
109   sorted_columns: () ->\r
110     _.map @extend_settings().column_names, (column_name) =>\r
111       @columns[column_name]\r
112   \r
113   extend_settings: () ->\r
114     @template_model_profiler().extend_settings[@booster().item_name()]\r
115   \r
116   template_model_profiler: () ->\r
117     LocalManifest.manifest().profilers[@template_model().item_name()]\r
118   \r
119   template_model: () ->\r
120     @booster().template_model()\r
121   \r
122   extend_item: () ->\r
123     @booster().extend_item()\r
124   \r
125   booster: () ->\r
126     @column.item().boosters[@column.column_manifest.boost_name]\r
127   \r
128 class Locmare.ProfilerModule.ColumnModule.NoteNone\r
129   \r
130   is_visible:() ->\r
131     false\r
132   \r
133 class Locmare.ProfilerModule.ColumnModule.Note extends Pettanr.View\r
134   tagName: 'span'\r
135   \r
136   initialize: (options) ->\r
137     @column = options.column\r
138   \r
139   render: () ->\r
140     this.$el.html(@note())\r
141     this\r
142   \r
143   note: () ->\r
144     Pettanr.AppHelper.t_selected_item(@select_item_name(), @column.value.value())\r
145   \r
146   is_visible:() ->\r
147     true\r
148   \r
149   select_item_name: () ->\r
150     @model_attribute_source_manifest().select_item_name\r
151   \r
152   model_manifest: () ->\r
153     Manifest.manifest().models[@column.profiler.item_name]\r
154   \r
155   model_attribute_manifest: () ->\r
156     @model_manifest().attributes[@column.column_name]\r
157   \r
158   model_attribute_source_manifest: () ->\r
159     @model_attribute_manifest().source\r