OSDN Git Service

fix: any
[pettanr/pettanr.git] / app / assets / javascripts / views / panel_pictures / element.js.coffee
index bdcad4e..70ec929 100644 (file)
@@ -7,9 +7,6 @@ class Pettanr.Views.PanelPicture.Element extends Pettanr.View
     @root = options.root\r
     @spot = options.spot\r
   \r
-  clear: () ->\r
-    this\r
-  \r
   render: () ->\r
     @element.get_parent('picture', this, {\r
       success: (@picture) =>\r
@@ -20,6 +17,7 @@ class Pettanr.Views.PanelPicture.Element extends Pettanr.View
           picture: @picture,\r
           spot: @spot\r
         })\r
+        @listenTo(img, 'http_get', @http_get)\r
         @restyle()\r
         this.$el.html(img.render().el)\r
         @init_picture(img)\r
@@ -33,9 +31,6 @@ class Pettanr.Views.PanelPicture.Element extends Pettanr.View
     attr = {style: Pettanr.to_style(@style())}\r
     this.$el.attr(attr)\r
   \r
-  add_element: () ->\r
-    null\r
-  \r
   style: () ->\r
     {\r
       'top': Pettanr.to_s(@element.get('y')) + 'px',\r
@@ -48,7 +43,34 @@ class Pettanr.Views.PanelPicture.Element extends Pettanr.View
     Pettanr.Views[element.singular()].Element\r
   \r
   img_class: () ->\r
-    Pettanr.Views.PanelPicture.Element.Img\r
+    if @element.get('link')\r
+      if @element.get('link').match(/\:\/\//)\r
+        Pettanr.Views.PanelPicture.Element.LinkedImg\r
+      else\r
+        Pettanr.Views.PanelPicture.Element.ButtonImg\r
+    else\r
+      Pettanr.Views.PanelPicture.Element.Img\r
+  \r
+  http_get: (url) ->\r
+    @trigger('http_get', url)\r
+  \r
+class Pettanr.Views.PanelPicture.Element.LinkedImg extends Tag.A_\r
+  \r
+  initialize: (options) ->\r
+    img = new Pettanr.Views.PanelPicture.Element.Img(options)\r
+    super({content: img.render().el, attr: {href: options.element.get('link')}})\r
+  \r
+class Pettanr.Views.PanelPicture.Element.ButtonImg extends Tag.A\r
+  \r
+  initialize: (options) ->\r
+    img = new Pettanr.Views.PanelPicture.Element.Img(options)\r
+    @link = options.element.get('link')\r
+    super({content: img.render().el, attr: {href: '/' + @link}})\r
+  \r
+  click: () ->\r
+    super()\r
+    @trigger('http_get', @link)\r
+    return false\r
   \r
 class Pettanr.Views.PanelPicture.Element.Img extends Pettanr.View\r
   tagName: 'img'\r
@@ -59,9 +81,6 @@ class Pettanr.Views.PanelPicture.Element.Img extends Pettanr.View
     @picture = options.picture\r
     @spot = options.spot\r
   \r
-  clear: () ->\r
-    this\r
-  \r
   render: () ->\r
     this.$el.html('')\r
     @restyle()\r
@@ -76,7 +95,7 @@ class Pettanr.Views.PanelPicture.Element.Img extends Pettanr.View
       @element.merge_opacity(style, opacity)\r
     {\r
       vPicture: @element.get('id'), \r
-      src: @picture.picture_file(@element.flip()).src(@picture), \r
+      src: @picture.picture_file(@element.flip()).src(), \r
       width: Pettanr.to_s(Math.abs(@element.get('width'))) + 'px', \r
       height: Pettanr.to_s(Math.abs(@element.get('height'))) + 'px', \r
       alt: @element.get('caption'), \r
@@ -87,14 +106,14 @@ class Pettanr.Views.PanelPicture.Element.Edit extends Pettanr.Views.PanelPicture
   \r
   initialize: (options) ->\r
     super(options)\r
+  \r
+  init_picture: (img) ->\r
+    super(img)\r
     @listenTo(@element, 'input:x', @restyle)\r
     @listenTo(@element, 'input:y', @restyle)\r
     @listenTo(@element, 'sort', @restyle)\r
     @listenTo(@element, 'active', @active)\r
     @listenTo(@element, 'inactive', @inactive)\r
-  \r
-  init_picture: (img) ->\r
-    super(img)\r
     wrapper = this\r
     this.$el.draggable {\r
       stop: (event, ui) ->\r