OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
authoryasushiito <yas@pen-chan.jp>
Thu, 14 May 2015 01:42:17 +0000 (10:42 +0900)
committeryasushiito <yas@pen-chan.jp>
Thu, 14 May 2015 01:42:17 +0000 (10:42 +0900)
16 files changed:
app/assets/javascripts/controllers/original_pictures.js.coffee
app/assets/javascripts/local_manifest/form/use/field/tag.js.coffee
app/assets/javascripts/local_manifest/form/use/field/tag/file.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/form.js.coffee
app/assets/javascripts/locmare/form/field/tag.js.coffee
app/assets/javascripts/locmare/form/field/tag/file.js.coffee [new file with mode: 0644]
app/assets/javascripts/views/original_pictures/form.js.coffee [new file with mode: 0644]
app/assets/javascripts/work/forms.js.coffee.erb
app/assets/javascripts/yasapp.js
app/controllers/original_pictures_controller.rb
config/locales/pettanr.ja.yml
lib/local_manifest/form/use/field/helper.rb
lib/local_manifest/form/use/field/helper/slider.rb [new file with mode: 0644]
lib/local_manifest/form/use/field/tag.rb
lib/local_manifest/form/use/field/tag/file.rb [new file with mode: 0644]
public/local_manifest.json

index ec2c950..ec0bf22 100644 (file)
@@ -32,11 +32,25 @@ class Pettanr.OriginalPicturesController extends Pettanr.AppController
   count: () ->\r
   \r
   new: () ->\r
+    @trigger('title', @params)\r
+    # set_new() --->\r
+    @set_new()\r
+    @form = Locmare.Form.factory({\r
+      form_name: 'original_picture', \r
+      use_name: 'multipart', \r
+      item: @item, \r
+      element_form: false, \r
+      submit: 'default'\r
+    })\r
+    @form.render()\r
+    @trigger('ready', @form)\r
+    @trigger('lock', @params, @form)\r
+    # <--- set_new\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
   \r
   create: () ->\r
-    @form.item.overwrite()\r
     @listenTo(@form, 'success', @post_success)\r
     @listenTo(@form, 'fail', @post_fail)\r
     @form.save()\r
index 8685294..f342936 100644 (file)
@@ -7,6 +7,7 @@ class LocalManifest.FormModule.UseModule.FieldModule.TagFactory extends Manifest
       'text_area': LocalManifest.FormModule.UseModule.FieldModule.TagModule.TextAreaTag, \r
       'select': LocalManifest.FormModule.UseModule.FieldModule.TagModule.SelectTag, \r
       'hidden': LocalManifest.FormModule.UseModule.FieldModule.TagModule.HiddenTag\r
+      'file': LocalManifest.FormModule.UseModule.FieldModule.TagModule.HiddenTag\r
     }\r
   \r
   @default_type: () ->\r
diff --git a/app/assets/javascripts/local_manifest/form/use/field/tag/file.js.coffee b/app/assets/javascripts/local_manifest/form/use/field/tag/file.js.coffee
new file mode 100644 (file)
index 0000000..757999c
--- /dev/null
@@ -0,0 +1,10 @@
+class LocalManifest.FormModule.UseModule.FieldModule.TagModule.FileTag extends LocalManifest.FormModule.UseModule.FieldModule.TagModule.Base\r
+  \r
+  set_default: () ->\r
+    super()\r
+    @args['options']['size'] ||= 20\r
+    \r
+  init: () ->\r
+    super()\r
+    @size = @options['size']\r
+  \r
index 90a6958..6c7c147 100644 (file)
@@ -59,11 +59,7 @@ class Locmare.Form extends Locmare.FormBase
     @init_fields()\r
   \r
   render: () ->\r
-    @attr = {\r
-      method: @method_type(),\r
-      action: @action_url()\r
-    }\r
-    this.$el.attr(@attr)\r
+    this.$el.attr(@form_attr())\r
     this.$el.html('')\r
     @error_explanation = null\r
     @div_fields = new Locmare.FormModule.Fields({\r
@@ -79,6 +75,12 @@ class Locmare.Form extends Locmare.FormBase
       @delegateEvents({'submit': @method_type()})\r
     this\r
   \r
+  form_attr: () ->\r
+    {\r
+      method: @method_type(),\r
+      action: @action_url()\r
+    }\r
+  \r
   refresh: () ->\r
     _.each @fields, (field) =>\r
       field.refresh()\r
index 2cfed4a..22967e4 100644 (file)
@@ -5,7 +5,8 @@ class Locmare.FormModule.FieldModule.TagFactory
       number: Locmare.FormModule.FieldModule.TagModule.NumberTag, \r
       text_area: Locmare.FormModule.FieldModule.TagModule.TextAreaTag, \r
       select: Locmare.FormModule.FieldModule.TagModule.SelectTag, \r
-      hidden: Locmare.FormModule.FieldModule.TagModule.HiddenTag\r
+      hidden: Locmare.FormModule.FieldModule.TagModule.HiddenTag,\r
+      file: Locmare.FormModule.FieldModule.TagModule.FileTag\r
     }\r
   \r
   @factory: (field, my_manifest) ->\r
diff --git a/app/assets/javascripts/locmare/form/field/tag/file.js.coffee b/app/assets/javascripts/locmare/form/field/tag/file.js.coffee
new file mode 100644 (file)
index 0000000..4256f5a
--- /dev/null
@@ -0,0 +1,13 @@
+class Locmare.FormModule.FieldModule.TagModule.FileTag extends Locmare.FormModule.FieldModule.TagModule.Base\r
+  tagName: 'input'\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    @attr = {\r
+      type: 'file',\r
+      name: @form_field_name()\r
+    }\r
+    _.extend(@attr, @options())\r
+    this.$el.attr(@attr)\r
+    this\r
+  \r
diff --git a/app/assets/javascripts/views/original_pictures/form.js.coffee b/app/assets/javascripts/views/original_pictures/form.js.coffee
new file mode 100644 (file)
index 0000000..40c739e
--- /dev/null
@@ -0,0 +1,39 @@
+class Pettanr.Views.OriginalPicture.Form extends Locmare.Form\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
+  render: () ->\r
+    super()\r
+  \r
+  form_attr: () ->\r
+    _.extend(super(), {\r
+      enctype: 'multipart/form-data'\r
+    })\r
+  \r
+  init_fields: () ->\r
+    _.each @manifest.field_names, (field_name) =>\r
+      field_manifest = @manifest.fields[field_name]\r
+      @fields[field_name] = new Locmare.FormModule.Field({\r
+        form: this, \r
+        field_name: field_name, \r
+        field_manifest: field_manifest\r
+      })\r
+  \r
+  save: () ->\r
+    @listenTo(@item, 'save:success', @success)\r
+    @listenTo(@item, 'save:fail', @fail)\r
+    form_data = new FormData(this.$el.get(0))\r
+    attrs = {}\r
+    _.each @fields, (field) =>\r
+      if field.field_manifest.tag.type == 'file'\r
+        form_data.append('original_picture[file]', field.tag.$el[0].files[0])\r
+      else\r
+        form_data.append(field.field_name, field.val())\r
+    options = {\r
+      data: form_data,\r
+      processData: false,\r
+      contentType: false\r
+    }\r
+    @item.save(null, {}, options)\r
+  \r
index 03766ac..857dcd7 100644 (file)
       },\r
     },\r
   },\r
+  original_picture: {\r
+    uses: {\r
+      multipart: {\r
+        fields: {\r
+          file: {\r
+            label: {\r
+              type: 'none',\r
+            },\r
+            tag: {\r
+              type: 'file',\r
+            },\r
+          },\r
+        },\r
+        field_names: [\r
+          'file',\r
+        ]\r
+      },\r
+    },\r
+  },\r
   original_picture_license_group: {\r
     uses: {\r
       default: {\r
index 3399782..1be04e1 100644 (file)
 //= require ./locmare/form/field/tag/text_area
 //= require ./locmare/form/field/tag/select
 //= require ./locmare/form/field/tag/hidden
+//= require ./locmare/form/field/tag/file
 //= require ./locmare/form/field/helper
 //= require ./locmare/form/field/helper/base
 //= require ./locmare/form/field/helper/size
index db1c504..c902cf9 100644 (file)
@@ -63,6 +63,7 @@ class OriginalPicturesController < ApplicationController
   
   def create
     set_model
+    p  params[:file]
     @imager = if params[:original_picture]
       PettanImager.load set_image params[:original_picture][:file]
     else
index 24a9e28..ffa2250 100644 (file)
@@ -1277,6 +1277,8 @@ ja:
       head: 公開中
       tail: 廃盤
       disable: 停止中
+    submit:
+      new: 投稿する
   pictures:
     index:
       title: 実素材一覧
index c6b8d2b..62d05a7 100644 (file)
@@ -1,5 +1,5 @@
 ManifestBase.require_modules "local_manifest/form/use/field/helper/", 
-  %w|base size tail_angle color popup|
+  %w|base size tail_angle color popup slider|
 
 module LocalManifest
   module FormModule
@@ -11,7 +11,7 @@ module LocalManifest
           def self.types
             {
               'size' => Size, 'tail_angle' => TailAngle, 'color' => Color, 
-              'popup' => Popup
+              'popup' => Popup, 'slider' => Slider
             }
           end
           
diff --git a/lib/local_manifest/form/use/field/helper/slider.rb b/lib/local_manifest/form/use/field/helper/slider.rb
new file mode 100644 (file)
index 0000000..437fa34
--- /dev/null
@@ -0,0 +1,22 @@
+module LocalManifest
+  module FormModule
+    module UseModule
+      module FieldModule
+        module HelperModule
+          class Slider < Base
+            
+            def set_default
+              super
+            end
+            
+            def init
+              super
+            end
+            
+          end
+          
+        end
+      end
+    end
+  end
+end
index 63b2947..3d82d59 100644 (file)
@@ -1,5 +1,5 @@
 ManifestBase.require_modules "local_manifest/form/use/field/tag/", 
-  %w|base text number text_area select hidden|
+  %w|base text number text_area select hidden file|
 
 module LocalManifest
   module FormModule
@@ -11,7 +11,7 @@ module LocalManifest
           def self.types
             {
               'text' => TextTag, 'number' => NumberTag, 'text_area' => TextAreaTag, 
-              'select' => SelectTag, 'hidden' => HiddenTag
+              'select' => SelectTag, 'hidden' => HiddenTag, 'file' => FileTag
             }
           end
           
diff --git a/lib/local_manifest/form/use/field/tag/file.rb b/lib/local_manifest/form/use/field/tag/file.rb
new file mode 100644 (file)
index 0000000..8004e83
--- /dev/null
@@ -0,0 +1,25 @@
+module LocalManifest
+  module FormModule
+    module UseModule
+      module FieldModule
+        module TagModule
+          class FileTag < Base
+            attr :size
+            
+            def set_default
+              super
+              @args['options']['size'] ||= 20
+            end
+            
+            def init
+              super
+              @size = @options['size']
+            end
+            
+          end
+          
+        end
+      end
+    end
+  end
+end
index 8adabae..efb866e 100644 (file)
         }\r
       }\r
     },\r
+    "original_picture": {\r
+      "uses": {\r
+        "multipart": {\r
+          "fields": {\r
+            "file": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "file"\r
+              }\r
+            }\r
+          },\r
+          "field_names": [\r
+            "file"\r
+          ]\r
+        }\r
+      }\r
+    },\r
     "original_picture_license_group": {\r
       "uses": {\r
         "default": {\r