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
'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
--- /dev/null
+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
@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
@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
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
--- /dev/null
+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
--- /dev/null
+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
},\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
//= 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
def create
set_model
+ p params[:file]
@imager = if params[:original_picture]
PettanImager.load set_image params[:original_picture][:file]
else
head: 公開中
tail: 廃盤
disable: 停止中
+ submit:
+ new: 投稿する
pictures:
index:
title: 実素材一覧
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
def self.types
{
'size' => Size, 'tail_angle' => TailAngle, 'color' => Color,
- 'popup' => Popup
+ 'popup' => Popup, 'slider' => Slider
}
end
--- /dev/null
+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
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
def self.types
{
'text' => TextTag, 'number' => NumberTag, 'text_area' => TextAreaTag,
- 'select' => SelectTag, 'hidden' => HiddenTag
+ 'select' => SelectTag, 'hidden' => HiddenTag, 'file' => FileTag
}
end
--- /dev/null
+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
}\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