OSDN Git Service

fix: fetch fail
[pettanr/pettanr.git] / app / assets / javascripts / tags.js.coffee
index ca747e9..a50bcd4 100644 (file)
@@ -1,6 +1,6 @@
 class Tag\r
 \r
-class Tag.Img extends Backbone.View\r
+class Tag.Img extends Pettanr.View\r
   tagName: 'img'\r
   \r
   # attr: {src: '/hoge', width: 80, ...}\r
@@ -14,7 +14,7 @@ class Tag.Img extends Backbone.View
     this.$el.addClass(@class_name) if @class_name\r
     this\r
 \r
-class Tag.A_ extends Backbone.View\r
+class Tag.A_ extends Pettanr.View\r
   tagName: 'a'\r
   \r
   initialize: (options) ->\r
@@ -43,7 +43,7 @@ class Tag.A extends Tag.A_
     @trigger('click')\r
     return false\r
   \r
-class Tag.Div extends Backbone.View\r
+class Tag.Div extends Pettanr.View\r
   tagName: 'div'\r
   \r
   initialize: (options) ->\r
@@ -60,7 +60,7 @@ class Tag.Div extends Backbone.View
 class Tag.Span extends Tag.Div\r
   tagName: 'span'\r
     \r
-class Tag.Ul extends Backbone.View\r
+class Tag.Ul extends Pettanr.View\r
   tagName: 'ul'\r
   \r
   initialize: (options) ->\r
@@ -82,7 +82,7 @@ class Tag.RowBreak extends Tag.Div
     @content = null\r
     @class_name = 'row_break'\r
   \r
-class Tag.H3 extends Backbone.View\r
+class Tag.H3 extends Pettanr.View\r
   tagName: 'h3'\r
   \r
   initialize: (options) ->\r
@@ -99,4 +99,82 @@ class Tag.H3 extends Backbone.View
 class Tag.H2 extends Tag.H3\r
   tagName: 'h2'\r
   \r
+class Tag.Input extends Pettanr.View\r
+  tagName: 'input'\r
+  \r
+  initialize: (options) ->\r
+    @type = options.type || 'text'\r
+    @class_name = options.class_name\r
+    @attr = {}\r
+  \r
+  render: () ->\r
+    this.$el.attr(@attr)\r
+    @el.className = @class_name if @class_name\r
+    this.$el.html('')\r
+    this\r
+  \r
+class Tag.Checkbox extends Tag.Input\r
+  events: {\r
+    click: 'click'\r
+  }\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    @type = 'checkbox'\r
+    @value = options.value\r
+    @checked = options.checked\r
+    @attr = {\r
+      type: @type,\r
+      value: @value,\r
+      checked: @checked,\r
+    }\r
+  \r
+  refresh: () ->\r
+    @attr['checked'] = @checked\r
+    this.$el.attr(@attr)\r
+  \r
+  click: () ->\r
+    @checked = this.$el.prop('checked')\r
+    @refresh()\r
+    @trigger('click')\r
+    return true\r
+  \r
+class Tag.Submit extends Tag.Input\r
+  events: {\r
+    click: 'click'\r
+  }\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    @type = 'submit'\r
+    @value = options.value\r
+    @attr = {\r
+      type: @type,\r
+      value: @value,\r
+    }\r
+  \r
+  click: () ->\r
+    @trigger('click')\r
+    return false\r
+  \r
+class Tag.Option extends Pettanr.View\r
+  tagName: 'option'\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    @selected = options.selected\r
+    @value = options.value || ''\r
+    @caption = options.caption\r
+  \r
+  render: () ->\r
+    this.$el.attr({value: @value, selected: @sel_attr()})\r
+    this.$el.html(@caption)\r
+    this\r
+  \r
+  sel_attr: () ->\r
+    if @selected\r
+      'selected'\r
+    else\r
+      ''\r
+  \r
 @Tag = Tag\r