//
//= require jquery
//= require jquery_ujs
-// require jquery.ui.all
+//= require jquery.ui.all
//require jquery.validate
//require additional-methods
//require jquery.validate.localization/messages_ja
//= require ./locmare/form/field/helper/tail_angle
//= require ./locmare/form/field/helper/color
//= require ./locmare/form/field/helper/popup
+// require ./locmare/bucket
+// require ./locmare/bucket/member
+// require ./locmare/bucket/form_field_name
//= require ./peta/peta
//= require ./peta/item
//= require ./peta/owner
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
\r
count: () ->\r
\r
- new: () ->\r
- \r
- edit: () ->\r
- \r
create: () ->\r
\r
update: () ->\r
count: () ->\r
\r
new: () ->\r
+ @form_new()\r
\r
edit: () ->\r
+ @form_edit()\r
\r
create: () ->\r
\r
@name\r
\r
model_name: () ->\r
- form_name\r
+ @form_name()\r
\r
form: () ->\r
@parent\r
@row_break = @args['row_break']\r
\r
form_name: () ->\r
- @parent.form_name\r
+ @parent.form_name()\r
\r
field_name: () ->\r
@parent.name\r
\r
model_name: () ->\r
- this.form_name\r
+ @form_name()\r
\r
column_name: () ->\r
- this.field_name\r
+ @field_name()\r
\r
--- /dev/null
+# form_name_with_sub_form\r
+# item: editing item\r
+# mounted: true/false\r
+# submit: string / 'submit'\r
+# operators: \r
+class Locmare.FormBase extends Backbone.View\r
+ tagName: 'div'\r
+ \r
+ initialize: (options) ->\r
+ @form_name_with_sub_form = options.form_name_with_sub_form\r
+ @item = options.item\r
+ @mounted = options.mounted\r
+ @submit = options.submit\r
+ @operators = options.operators\r
+ if /\./.test(form_name_with_sub_form)\r
+ @sub_form_names = form_name_with_sub_form.split('.')\r
+ @form_name = @sub_form_names.last\r
+ @root_form_name = @sub_form_names.shift\r
+ else\r
+ @sub_form_names = []\r
+ @form_name = @form_name_with_sub_form\r
+ @root_form_name = @form_name\r
+ @manifest = LocalManifest.manifest().forms[@form_name]\r
+ @fields = {}\r
+ \r
+ fold_extend_settings: (params) ->\r
+ @item.my_class().fold_extend_settings params[@item.item_name()]\r
+ \r
+ sub_form_name: () ->\r
+ r = _.map @sub_form_names, (name) ->\r
+ '[' + name + '_attributes' + ']'\r
+ r.join()\r
+ \r
+ form_field_name: (field_name) ->\r
+ @root_form_name + @sub_form_name() + '[' + field_name + ']'\r
+ \r
+ image_dir: () ->\r
+ '/images/'\r
+ \r
+class Locmare.Bucket extends Backbone.View\r
+ \r
+ @factory: (options) ->\r
+ @bucket_name = options.bucket_name\r
+ @item = options.item\r
+ @mounted = options.mounted\r
+ @submit = options.submit\r
+ @operators = options.operators\r
+ \r
+ bucket = LocalManifest.manifest().buckets[bucket_or_form_name]\r
+ c = if bucket and bucket.has_member\r
+ Locmare.Bucket\r
+ else\r
+ Locmare.Form\r
+ new c({\r
+ bucket_or_form_name, \r
+ item, \r
+ mounted, \r
+ submit, \r
+ operators\r
+ })\r
+ \r
+ initialize: (options) ->\r
+ @bucket_name = options.bucket_name\r
+ @item = options.item\r
+ @mounted = options.mounted\r
+ @submit = options.submit\r
+ @operators = options.operators\r
+ \r
+ @item.boosts 'post'\r
+ @manifest = LocalManifest.manifest().buckets[@bucket_name]\r
+ @form_fields = []\r
+ @forms = {}\r
+ @forms[@item.item_name()] = new Locmare.Form({\r
+ @item.item_name, @item, @mounted, false, @operators\r
+ })\r
+ @init_forms(@item.item_name, @manifest, @item)\r
+ @init_fields()\r
+ \r
+ fold_extend_settings: (params) ->\r
+ @item.class.fold_extend_settings params[@item.item_name]\r
+ self.members_fold_extend_settings @item, params[@item.item_name], @manifest\r
+ \r
+ members_fold_extend_settings: (fold_item, attr, man) ->\r
+ man.members.each do |member_name, member_manifest|\r
+ member_item = fold_item.__send__ member_name\r
+ member_item.class.fold_extend_settings attr[member_name + '_attributes']\r
+ self.members_fold_extend_settings member_item, attr[member_name + '_attributes'], member_manifest\r
+ \r
+ each_field: () ->\r
+ @form_fields.each do |form_field|\r
+ yield form_field.field_name, form_field\r
+ \r
+ push_form: (key, form_name, item) ->\r
+ \r
+ init_forms: (key, man, item) ->\r
+ man.members.each do |member_name, member_manifest|\r
+ form_name = member_name # write exchange function if you want\r
+ member_item = item.__send__(form_name)\r
+ new_key = key + '.' + form_name\r
+ @forms[new_key] = Locmare::Form.new new_key, member_item, @mounted, false, @operators\r
+ self.init_forms new_key, member_manifest, member_item\r
+ \r
+ init_fields: () ->\r
+ @manifest.form_field_names.each do |form_field_name|\r
+ r = form_field_name.form_name.blank? ? '' : '.' + form_field_name.form_name\r
+ key = @item.item_name + r\r
+ form = @forms[key]\r
+ field = form.fields[form_field_name.field_name]\r
+ @form_fields << field\r
+ \r
+ image_dir: () ->\r
+ '/images/'\r
+ \r
+ submit_name: () ->\r
+ if @item.isNew()\r
+ @item.table_name() + '.submit.new'\r
+ else\r
+ @item.table_name() + '.submit.edit'\r
+ \r
+ form_name: () ->\r
+ @bucket_name\r
+ \r
+class Locmare.BucketModule\r
--- /dev/null
+class Locmare.FormModule.Field extends Backbone.View\r
+ tagName: 'div'\r
+ className: 'field'\r
+ \r
+ initialize: (options) ->\r
+ @form = options.form\r
+ @field_name = options.field_name\r
+ @field_manifest = options.field_manifest\r
+ @label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label\r
+ @tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag\r
+ @helpers = {}\r
+ _this = this\r
+ _.each @field_manifest.helpers, (helper_manifest, helper_name) ->\r
+ _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this, helper_manifest)\r
+ @rb = @row_break()\r
+ @options = {'data-model': @field_manifest.form_name}\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ this.$el.append(@label.render().el) if not @label.hidden()\r
+ this.$el.append(@tag.render().el)\r
+ _this = this\r
+ _.each @helpers, (helper) ->\r
+ _this.$el.append(helper.render().el)\r
+ this.$el.append(@rb.render().el) if @rb\r
+ this\r
+ \r
+ mounted: () ->\r
+ if @form.mounted\r
+ 0\r
+ else\r
+ 1\r
+ \r
+ mount_option: () ->\r
+ {'mount': @mounted()}\r
+ \r
+ item: () ->\r
+ @form.item\r
+ \r
+ value: () ->\r
+ @item().get(@field_manifest.column_name)\r
+ \r
+ options: (tag_options = {}) ->\r
+ tag_options\r
+ \r
+ form_field_name: () ->\r
+ @form.form_field_name @field_name\r
+ \r
+ form_name: () ->\r
+ @form.form_name\r
+ \r
+ row_break: () ->\r
+ if @field_manifest.row_break\r
+ new Pettanr.Tag.Div({\r
+ content: null,\r
+ class_name: 'row_break'\r
+ })\r
+ else\r
+ null\r
+ \r
+class Locmare.FormModule.FieldModule\r
+module Locmare\r
+ module BucketModule\r
+ class FieldName\r
+ attr :bucket, :field_name, :field_manifest, \r
+ :label, :tag, :helpers, :options\r
+ def initialize bucket, field_name, field_manifest\r
+ @bucket = bucket\r
+ @field_name = field_name\r
+ @field_manifest = field_manifest\r
+ @label = LabelFactory.factory self, @field_manifest.label\r
+ @tag = TagFactory.factory self, @field_manifest.tag\r
+ @helpers = {}\r
+ @field_manifest.helpers.each {|helper_name, helper_manifest|\r
+ @helpers[helper_name] = HelperFactory.factory self, helper_manifest\r
+ }\r
+ @options = {'data-model' => @field_manifest.form_name}\r
+ end\r
+ \r
+ def item\r
+ @form.item\r
+ end\r
+ \r
+ def form_field_name\r
+ self.form_name + '[' + @field_name + ']'\r
+ end\r
+ \r
+ def form_name\r
+ @form.form_name\r
+ end\r
+ \r
+ def template_dir\r
+ @form.template_dir + 'field/'\r
+ end\r
+ \r
+ def template_file_name\r
+ 'default'\r
+ end\r
+ \r
+ def template_name\r
+ self.template_dir + self.template_file_name\r
+ end\r
+ \r
+ def template_option\r
+ {:field => self}\r
+ end\r
+ \r
+ def row_break_template_dir\r
+ @form.template_dir + 'row_break/'\r
+ end\r
+ \r
+ def row_break_template_file_name\r
+ if @field_manifest.row_break\r
+ 'br'\r
+ else\r
+ 'no_break'\r
+ end\r
+ end\r
+ \r
+ def row_break_template_name\r
+ self.row_break_template_dir + self.row_break_template_file_name\r
+ end\r
+ \r
+end\r
+end\r
+end\r
--- /dev/null
+class Locmare.FormModule.Field extends Backbone.View\r
+ tagName: 'div'\r
+ className: 'field'\r
+ \r
+ initialize: (options) ->\r
+ @form = options.form\r
+ @field_name = options.field_name\r
+ @field_manifest = options.field_manifest\r
+ @label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label\r
+ @tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag\r
+ @helpers = {}\r
+ _this = this\r
+ _.each @field_manifest.helpers, (helper_manifest, helper_name) ->\r
+ _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this, helper_manifest)\r
+ @rb = @row_break()\r
+ @options = {'data-model': @field_manifest.form_name}\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ this.$el.append(@label.render().el) if not @label.hidden()\r
+ this.$el.append(@tag.render().el)\r
+ _this = this\r
+ _.each @helpers, (helper) ->\r
+ _this.$el.append(helper.render().el)\r
+ this.$el.append(@rb.render().el) if @rb\r
+ this\r
+ \r
+ mounted: () ->\r
+ if @form.mounted\r
+ 0\r
+ else\r
+ 1\r
+ \r
+ mount_option: () ->\r
+ {'mount': @mounted()}\r
+ \r
+ item: () ->\r
+ @form.item\r
+ \r
+ value: () ->\r
+ @item().get(@field_manifest.column_name)\r
+ \r
+ options: (tag_options = {}) ->\r
+ tag_options\r
+ \r
+ form_field_name: () ->\r
+ @form.form_field_name @field_name\r
+ \r
+ form_name: () ->\r
+ @form.form_name\r
+ \r
+ row_break: () ->\r
+ if @field_manifest.row_break\r
+ new Pettanr.Tag.Div({\r
+ content: null,\r
+ class_name: 'row_break'\r
+ })\r
+ else\r
+ null\r
+ \r
+class Locmare.BucketModule.Member\r
+ tagName: 'div'\r
+ className: 'field'\r
+ \r
+ initialize: (options) ->\r
+ @form = options.form\r
+ @field_name = options.field_name\r
+ @field_manifest = options.field_manifest\r
+ @label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label\r
+ @tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag\r
+ @helpers = {}\r
+ _this = this\r
+ _.each @field_manifest.helpers, (helper_manifest, helper_name) ->\r
+ _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this, helper_manifest)\r
+ @rb = @row_break()\r
+ @options = {'data-model': @field_manifest.form_name}\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ this.$el.append(@label.render().el) if not @label.hidden()\r
+ this.$el.append(@tag.render().el)\r
+ _this = this\r
+ _.each @helpers, (helper) ->\r
+ _this.$el.append(helper.render().el)\r
+ this.$el.append(@rb.render().el) if @rb\r
+ this\r
+ \r
+ mounted: () ->\r
+ if @form.mounted\r
+ 0\r
+ else\r
+ 1\r
+ \r
+ mount_option: () ->\r
+ {'mount': @mounted()}\r
+ \r
+ item: () ->\r
+ @form.item\r
+ \r
+ value: () ->\r
+ @item().get(@field_manifest.column_name)\r
+ \r
+ options: (tag_options = {}) ->\r
+ tag_options\r
+ \r
+ form_field_name: () ->\r
+ @form.form_name + '[' + @field_name + ']'\r
+ \r
+ form_name: () ->\r
+ @form.form_name\r
+ \r
+ row_break: () ->\r
+ if @field_manifest.row_break\r
+ new Pettanr.Tag.Div({\r
+ content: null,\r
+ class_name: 'row_break'\r
+ })\r
+ else\r
+ null\r
+ \r
# submit: string / 'submit'\r
# operators: \r
class Locmare.FormBase extends Backbone.View\r
- tagName: 'div'\r
+ tagName: 'form'\r
\r
initialize: (options) ->\r
- @form_name_with_sub_form = options.form_name_with_sub_form\r
+ @form_name = options.form_name #_with_sub_form\r
@item = options.item\r
@mounted = options.mounted\r
@submit = options.submit\r
@operators = options.operators\r
- if /\./.test(form_name_with_sub_form)\r
- @sub_form_names = form_name_with_sub_form.split('.')\r
+ if /\./.test(@form_name)\r
+ @sub_form_names = @form_name.split('.')\r
@form_name = @sub_form_names.last\r
@root_form_name = @sub_form_names.shift\r
else\r
@sub_form_names = []\r
- @form_name = @form_name_with_sub_form\r
+ #@form_name = @form_name\r
@root_form_name = @form_name\r
@manifest = LocalManifest.manifest().forms[@form_name]\r
@fields = {}\r
'/images/'\r
\r
class Locmare.Form extends Locmare.FormBase\r
+ events: {\r
+ 'submit': 'post'\r
+ }\r
+ \r
initialize: (options) ->\r
super(options)\r
@submit = options.submit\r
+ @action = options.action\r
@item.boosts 'post'\r
@init_fields()\r
\r
render: () ->\r
+ m = if @item.isNew()\r
+ 'post'\r
+ else\r
+ 'put'\r
+ @attr = {\r
+ method: m,\r
+ action: @action\r
+ }\r
+ this.$el.attr(@attr)\r
this.$el.html('')\r
@error_explanation = null\r
@div_fields = new Locmare.FormModule.Fields({\r
field_manifest: field_manifest\r
})\r
\r
- submit_name: () ->\r
- if @item.isNew()\r
- @item.table_name() + '.submit.new'\r
- else\r
- @item.table_name() + '.submit.edit'\r
- \r
submits: () ->\r
{\r
default: Locmare.FormModule.SubmitModule.Default\r
submit_class: () ->\r
@submits()[@submit]\r
\r
+ post: () ->\r
+ attr = {}\r
+ _this = this\r
+ _.each @fields, (field) ->\r
+ _this.item.set(field.field_name, field.val())\r
+ if @item.save()\r
+ window.router.navigate('/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')), true)\r
+ return false\r
+ else\r
+ alert('invalid')\r
+ \r
class Locmare.ExtendForm extends Locmare.FormBase\r
\r
initialize: (options) ->\r
@parent = options.parent\r
- @form_name = options.form_name\r
- @item = options.item\r
- @mounted = options.mounted\r
- @operators = options.operators\r
@field_name = options.field_name\r
- super(@form_name, @item, @mounted, @operators)\r
+ super(options)\r
@field = new Locmare.FormModule.Field({\r
form: @parent, \r
field_name: @field_name, \r
_this = this\r
_.each @fields, (field) ->\r
_this.$el.append(field.render().el)\r
+ _this.$el.append(field.rb.render().el) if field.rb\r
this\r
\r
class Locmare.FormModule.SubmitModule\r
@form = options.form\r
\r
render: () ->\r
- this.$el.html('<input type="submit" name="commit" class="submit" value="' + @form.submit_name() + '"></input>')\r
+ caption = I18n.t(@submit_name())\r
+ this.$el.html('<input type="submit" name="commit" class="submit" value="' + caption + '"></input>')\r
this\r
\r
+ submit_name: () ->\r
+ if @form.item.isNew()\r
+ @form.item.table_name() + '.submit.new'\r
+ else\r
+ @form.item.table_name() + '.submit.edit'\r
+ \r
@field_manifest = options.field_manifest\r
@label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label\r
@tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag\r
- @helpers = {}\r
- _this = this\r
- _.each @field_manifest.helpers, (helper_manifest, helper_name) ->\r
- _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this, helper_manifest)\r
+ @helpers = new Locmare.FormModule.FieldModule.Fields({field: this, field_manifest: @field_manifest})\r
@rb = @row_break()\r
@options = {'data-model': @field_manifest.form_name}\r
\r
this.$el.html('')\r
this.$el.append(@label.render().el) if not @label.hidden()\r
this.$el.append(@tag.render().el)\r
- _this = this\r
- _.each @helpers, (helper) ->\r
- _this.$el.append(helper.render().el)\r
- this.$el.append(@rb.render().el) if @rb\r
+ this.$el.append(@helpers.render().el)\r
this\r
\r
mounted: () ->\r
item: () ->\r
@form.item\r
\r
+ val: () ->\r
+ @tag.$el.val()\r
+ \r
value: () ->\r
- @item().get(@field_manifest.column_name)\r
+ @item().get(@field_manifest.column_name())\r
\r
options: (tag_options = {}) ->\r
tag_options\r
\r
row_break: () ->\r
if @field_manifest.row_break\r
- new Pettanr.Tag.Div({\r
- content: null,\r
- class_name: 'row_break'\r
- })\r
+ new Pettanr.Tag.RowBreak()\r
else\r
null\r
\r
class Locmare.FormModule.FieldModule\r
+class Locmare.FormModule.FieldModule.Fields extends Backbone.View\r
+ tagName: 'span'\r
+ \r
+ initialize: (options) ->\r
+ @field = options.field\r
+ @field_manifest = options.field_manifest\r
+ @helpers = {}\r
+ _this = this\r
+ _.each @field_manifest.helpers, (helper_manifest, helper_name) ->\r
+ _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this.field, helper_manifest)\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ _this = this\r
+ _.each @helpers, (helper) ->\r
+ _this.$el.append(helper.render().el)\r
+ this\r
+ \r
type = my_manifest.type\r
my_class = @types()[type]\r
console.log "undefined class for local view forms > #{field.form_name} > fields > #{field.field_name} > helper > #{type}\n" if not my_class\r
- new my_class({field: field, my_manifest: my_manifest})\r
+ new my_class({field: field, helper_manifest: my_manifest})\r
\r
class Locmare.FormModule.FieldModule.HelperModule\r
class Locmare.FormModule.FieldModule.HelperModule.Base extends Backbone.View\r
- tagName: 'input'\r
+ tagName: 'span'\r
\r
initialize: (options) ->\r
@field = options.field\r
- @tag_manifest = options.tag_manifest\r
+ @helper_manifest = options.helper_manifest\r
\r
class Locmare.FormModule.FieldModule.HelperModule.Color extends Locmare.FormModule.FieldModule.HelperModule.Base\r
- tagName: 'input'\r
+ tagName: 'div'\r
+ className: 'code-wrap'\r
+ \r
+ # wrapper\r
+ initialize: (options) ->\r
+ super(options)\r
+ this.$el.addClass(@helper_manifest.dom_class)\r
+ @picker = new Locmare.FormModule.FieldModule.HelperModule.ColorModule.Picker({field: @field})\r
+ @swatch = new Locmare.FormModule.FieldModule.HelperModule.ColorModule.Swatch({field: @field})\r
+ @status = new Locmare.FormModule.FieldModule.HelperModule.ColorModule.Status({field: @field})\r
+ @rb = new Pettanr.Tag.RowBreak()\r
+ \r
+ render: () ->\r
+ @attr = {\r
+ style: 'display: block'\r
+ }\r
+ this.$el.attr(@attr)\r
+ this.$el.html('')\r
+ this.$el.append(@picker.render().el)\r
+ this.$el.append(@swatch.render().el)\r
+ this.$el.append(@status.render().el)\r
+ this.$el.append(@rb.render().el)\r
+ this\r
+ \r
+class Locmare.FormModule.FieldModule.HelperModule.ColorModule\r
+class Locmare.FormModule.FieldModule.HelperModule.ColorModule.Slider extends Pettanr.Tag.Div\r
+ events: {\r
+ slidechange: 'color_slider_change'\r
+ }\r
+ \r
+ color_slider_change: (trace) -> \r
+ alert('lide')\r
+ \r
+class Locmare.FormModule.FieldModule.HelperModule.ColorModule.Picker extends Backbone.View\r
+ tagName: 'div'\r
+ className: 'colorpickers'\r
+ \r
+ initialize: (options) ->\r
+ @field = options.field\r
+ @red = new Locmare.FormModule.FieldModule.HelperModule.ColorModule.Slider({\r
+ class_name: 'colorpicker'\r
+ })\r
+ @green = new Pettanr.Tag.Div({\r
+ class_name: 'colorpicker'\r
+ })\r
+ @blue = new Pettanr.Tag.Div({\r
+ class_name: 'colorpicker'\r
+ })\r
+ r = (@field.value() >> 16) & 0xFF\r
+ g = (@field.value() >> 8) & 0xFF\r
+ b = @field.value() & 0xFF\r
+ @red.$el.slider {\r
+ orientation: 'horizontal',\r
+ range: 'min',\r
+ max: 255,\r
+ value: r \r
+ }\r
+ @green.$el.slider {\r
+ orientation: 'horizontal',\r
+ range: 'min',\r
+ max: 255,\r
+ value: g \r
+ }\r
+ @blue.$el.slider {\r
+ orientation: 'horizontal',\r
+ range: 'min',\r
+ max: 255,\r
+ value: b \r
+ }\r
+ \r
+ render: () ->\r
+ @attr = {\r
+ style: 'float: left;'\r
+ }\r
+ this.$el.attr(@attr)\r
+ this.$el.html('')\r
+ this.$el.append(@red.render().el)\r
+ this.$el.append(@green.render().el)\r
+ this.$el.append(@blue.render().el)\r
+ this\r
+ \r
+class Locmare.FormModule.FieldModule.HelperModule.ColorModule.Swatch extends Backbone.View\r
+ tagName: 'div'\r
+ className: 'code_swatch'\r
+ \r
+ initialize: (options) ->\r
+ @field = options.field\r
+ this.$el.addClass('ui-widget-content')\r
+ this.$el.addClass('ui-corner-all')\r
\r
render: () ->\r
+ @attr = {\r
+ style: 'float: left;'\r
+ }\r
+ this.$el.attr(@attr)\r
this.$el.html('')\r
this\r
\r
+ click: () -> \r
+ w = -@field.val()\r
+ @field.tag.$el.val(w)\r
+ @field.render()\r
+ return false\r
+ \r
+class Locmare.FormModule.FieldModule.HelperModule.ColorModule.Status extends Backbone.View\r
+ tagName: 'div'\r
+ \r
+ initialize: (options) ->\r
+ @field = options.field\r
+ \r
+ render: () ->\r
+ @attr = {\r
+ style: 'float: left;'\r
+ }\r
+ this.$el.attr(@attr)\r
+ phex = "000000" + @field.value().toString(16)\r
+ hex = @field.value().toString(16)\r
+ h = phex.substring(phex.length - 6)\r
+ @hex = new Pettanr.Tag.Div({\r
+ content: 'HEX: #' + h\r
+ })\r
+ @rgb = new Pettanr.Tag.Div({\r
+ content: 'RGB: ('\r
+ })\r
+ this.$el.html('')\r
+ this.$el.append(@hex.render().el)\r
+ this.$el.append(@rgb.render().el)\r
+ this\r
+ \r
+ click: () -> \r
+ w = -@field.val()\r
+ @field.tag.$el.val(w)\r
+ @field.render()\r
+ return false\r
+ \r
+class PettanrColorHelper\r
+ confirm_confirm_confirm = () ->\r
+ confirm( )\r
+ @WritingFormat = window.PettanrWritingFormat\r
+ \r
+ @color_slider_change = (trace) -> \r
+ red = $(trace + 'code_red').slider('value')\r
+ green = $(trace + 'code_green').slider('value')\r
+ blue = $(trace + 'code_blue').slider('value')\r
+ code = (red << 16) + (green << 8) + (blue)\r
+ phex = "000000" + code.toString(16)\r
+ hex = code.toString(16)\r
+ h = phex.substring(phex.length - 6)\r
+ $(trace + 'code_swatch').css('background-color', '#' + h)\r
+ $(trace + 'code_hex').html('HEX: #' + h)\r
+ $(trace + 'code_rgb').html('RGB: (' + red + ',' + green + ',' +blue + ')')\r
+ v = '#' + h\r
+ if $(trace).attr('element_type') == 'ground_color'\r
+ $(trace + 'code').val(code)\r
+ $(trace).css('background-color', v)\r
+ else\r
+ $(trace + 'fore_color').val(code)\r
+ $(trace).css('color', v)\r
+ \r
+ @add_helper = (wrapper, column) ->\r
+ editor = window.PettanrEditor\r
+ wrapper.map -> \r
+ $(@).css('display', 'block')\r
+ \r
+ $('.colorpicker', wrapper).map -> \r
+ if editor.is_element_part($(@))\r
+ code_picker_trace = editor.element_part_tag_id($(@))\r
+ else\r
+ code_picker_trace = editor.element_tag_id($(@))\r
+ code = parseInt($(code_picker_trace + column).val())\r
+ red = (code >> 16) & 0xFF\r
+ green = (code >> 8) & 0xFF\r
+ blue = code & 0xFF\r
+ $(code_picker_trace + 'code_red').slider {\r
+ orientation: 'horizontal',\r
+ range: 'min',\r
+ max: 255,\r
+ value: red,\r
+ change: ( event, ui ) ->\r
+ if editor.is_element_part($(@).parent())\r
+ trace = editor.element_part_tag_id($(@).parent())\r
+ else\r
+ trace = editor.element_tag_id($(@).parent())\r
+ PettanrColorHelper.color_slider_change(trace)\r
+ }\r
+ $(code_picker_trace + 'code_green').slider {\r
+ orientation: 'horizontal',\r
+ range: 'min',\r
+ max: 255,\r
+ value: green,\r
+ change: ( event, ui ) ->\r
+ if editor.is_element_part($(@).parent())\r
+ trace = editor.element_part_tag_id($(@).parent())\r
+ else\r
+ trace = editor.element_tag_id($(@).parent())\r
+ PettanrColorHelper.color_slider_change(trace)\r
+ }\r
+ $(code_picker_trace + 'code_blue').slider {\r
+ orientation: 'horizontal',\r
+ range: 'min',\r
+ max: 255,\r
+ value: blue,\r
+ change: ( event, ui ) ->\r
+ if editor.is_element_part($(@).parent())\r
+ trace = editor.element_part_tag_id($(@).parent())\r
+ else\r
+ trace = editor.element_tag_id($(@).parent())\r
+ PettanrColorHelper.color_slider_change(trace)\r
+ }\r
+ PettanrColorHelper.color_slider_change(code_picker_trace)\r
+ \r
class Locmare.FormModule.FieldModule.HelperModule.Popup extends Locmare.FormModule.FieldModule.HelperModule.Base\r
- tagName: 'textarea'\r
\r
render: () ->\r
this.$el.html('')\r
class Locmare.FormModule.FieldModule.HelperModule.Size extends Locmare.FormModule.FieldModule.HelperModule.Base\r
\r
+ initialize: (options) ->\r
+ super(options)\r
+ this.$el.addClass(@helper_manifest.dom_class)\r
+ @reverse = new Locmare.FormModule.FieldModule.HelperModule.SizeModule.Reverse({field: @field})\r
+ @double = new Locmare.FormModule.FieldModule.HelperModule.SizeModule.Double({field: @field})\r
+ @half = new Locmare.FormModule.FieldModule.HelperModule.SizeModule.Half({field: @field})\r
+ \r
render: () ->\r
this.$el.html('')\r
+ this.$el.append(@reverse.render().el)\r
+ this.$el.append(@double.render().el)\r
+ this.$el.append(@half.render().el)\r
+ this\r
+ \r
+class Locmare.FormModule.FieldModule.HelperModule.SizeModule\r
+class Locmare.FormModule.FieldModule.HelperModule.SizeModule.Reverse extends Backbone.View\r
+ tagName: 'button'\r
+ className: 'reverse'\r
+ events: {\r
+ 'click': 'click'\r
+ }\r
+ \r
+ initialize: (options) ->\r
+ @field = options.field\r
+ \r
+ render: () ->\r
+ this.$el.html('Rev')\r
+ this\r
+ \r
+ click: () -> \r
+ w = -@field.val()\r
+ @field.tag.$el.val(w)\r
+ @field.render()\r
+ return false\r
+ \r
+class Locmare.FormModule.FieldModule.HelperModule.SizeModule.Double extends Backbone.View\r
+ tagName: 'button'\r
+ className: 'double'\r
+ events: {\r
+ 'click': 'click'\r
+ }\r
+ \r
+ initialize: (options) ->\r
+ @field = options.field\r
+ \r
+ render: () ->\r
+ this.$el.html('x2')\r
+ this\r
+ \r
+ click: () -> \r
+ w = @field.val() * 2\r
+ @field.tag.$el.val(w)\r
+ @field.render()\r
+ return false\r
+ \r
+class Locmare.FormModule.FieldModule.HelperModule.SizeModule.Half extends Backbone.View\r
+ tagName: 'button'\r
+ className: 'half'\r
+ events: {\r
+ 'click': 'click'\r
+ }\r
+ \r
+ initialize: (options) ->\r
+ @field = options.field\r
+ \r
+ render: () ->\r
+ this.$el.html('/2')\r
this\r
\r
+ click: () -> \r
+ w = @field.val() / 2\r
+ @field.tag.$el.val(w)\r
+ @field.render()\r
+ return false\r
+ \r
+class PettanrPictureSizeHelper\r
+ @refresh_picture = (e, w, h) ->\r
+ if w and h\r
+ sd = ''\r
+ if h < 0\r
+ sd += 'v'\r
+ if w < 0\r
+ sd += 'h'\r
+ if sd.length > 0\r
+ sd += '/'\r
+ pid = parseInt(e.attr('picture_id')).toString()\r
+ ext = e.attr('ext')\r
+ src = '/pictures/' + sd + pid + '.' + ext\r
+ e.attr('src', src)\r
+ \r
class Locmare.FormModule.FieldModule.HelperModule.TailAngle extends Locmare.FormModule.FieldModule.HelperModule.Base\r
- tagName: 'select'\r
\r
render: () ->\r
this.$el.html('')\r
type = my_manifest.type\r
my_class = @types()[type]\r
console.log "undefined class for local view forms > #{field.form_name} > fields > #{field.field_name} > label > #{type}\n" if not my_class\r
- new my_class({field: field, my_manifest: my_manifest})\r
+ new my_class({field: field, label_manifest: my_manifest})\r
\r
class Locmare.FormModule.FieldModule.LabelModule\r
\r
class Locmare.FormModule.FieldModule.LabelModule.Default extends Locmare.FormModule.FieldModule.LabelModule.Base\r
\r
+ initialize: (options) ->\r
+ super(options)\r
+ \r
label_name: () ->\r
'activerecord.attributes.' + @item_name() + '.' + @column_name()\r
\r
render: () ->\r
this.$el.html('')\r
- this.$el.append(label_name())\r
+ this.$el.append(I18n.t(@label_name()))\r
this.$el.append(@rb) if @rb\r
this\r
\r
class Locmare.FormModule.FieldModule.LabelModule.None extends Locmare.FormModule.FieldModule.LabelModule.Base\r
\r
+ initialize: (options) ->\r
+ super(options)\r
+ \r
hidden: () ->\r
true\r
\r
type = my_manifest.type\r
my_class = @types()[type]\r
console.log "undefined class for local view forms > #{field.form_name} > fields > #{field.field_name} > tag > #{type}\n" if not my_class\r
- new my_class({field: field, my_manifest: my_manifest})\r
+ new my_class({field: field, tag_manifest: my_manifest})\r
\r
class Locmare.FormModule.FieldModule.TagModule\r
form_field_name: () ->\r
@field.form_field_name()\r
\r
+ val: () ->\r
+ this.$el.val()\r
+ \r
value: () ->\r
@field.value()\r
\r
-class Locmare.FormModule.FieldModule.TagModule.Hidden extends Locmare.FormModule.FieldModule.TagModule.Base\r
+class Locmare.FormModule.FieldModule.TagModule.HiddenTag extends Locmare.FormModule.FieldModule.TagModule.Base\r
\r
render: () ->\r
this.$el.html('')\r
-class Locmare.FormModule.FieldModule.TagModule.Number extends Locmare.FormModule.FieldModule.TagModule.Base\r
+class Locmare.FormModule.FieldModule.TagModule.NumberTag extends Locmare.FormModule.FieldModule.TagModule.Base\r
\r
render: () ->\r
this.$el.html('')\r
-class Locmare.FormModule.FieldModule.TagModule.Select extends Locmare.FormModule.FieldModule.TagModule.Base\r
+class Locmare.FormModule.FieldModule.TagModule.SelectTag extends Locmare.FormModule.FieldModule.TagModule.Base\r
tagName: 'select'\r
\r
render: () ->\r
}\r
_.extend(@attr, @options())\r
this.$el.attr(@attr)\r
+ _this = this\r
_.each @select_values(), (member) ->\r
- selected = if @is_selected(member)\r
+ selected = if _this.is_selected(member)\r
' selected'\r
else\r
''\r
- _this.$el.append('<option value="' + @select_value() + '"' + selected + '></option>')\r
+ _this.$el.append('<option value="' + member[1] + '"' + selected + '>' + member[0] + '</option>')\r
this\r
\r
model_manifest: () ->\r
Manifest.manifest().models[@field.field_manifest.model_name()]\r
\r
model_attribute_manifest: () ->\r
- @model_manifest().get(@field.field_manifest.column_name())\r
+ @model_manifest().attributes[@field.field_manifest.column_name()]\r
\r
select_item_name: () ->\r
@model_attribute_manifest().source.select_item_name\r
\r
items: () ->\r
- if @model_attribute_manifest().source.type == 'model'\r
+ if @model_attribute_manifest().source.type == 'magic_number'\r
Manifest.manifest().system_resources.select_items[@select_item_name()]\r
else\r
resource_model_name = @model_attribute_manifest().source.resource_model_name\r
if @source_by_model()\r
@items()\r
else\r
- Pettanr.t_select_items(@items())\r
+ Pettanr.AppHelper.t_select_items(@items())\r
\r
-class Locmare.FormModule.FieldModule.TagModule.Text extends Locmare.FormModule.FieldModule.TagModule.Base\r
+class Locmare.FormModule.FieldModule.TagModule.TextTag extends Locmare.FormModule.FieldModule.TagModule.Base\r
tagName: 'input'\r
+ events: {\r
+ 'change': 'change'\r
+ }\r
\r
render: () ->\r
this.$el.html('')\r
this.$el.attr(@attr)\r
this\r
\r
+ change: () ->\r
+ console.log this.$el.val()\r
+ @item().set(@field.field_name, this.$el.attr('value'))\r
+ console.log @item().attributes\r
+ \r
-class Locmare.FormModule.FieldModule.TagModule.TextArea extends Locmare.FormModule.FieldModule.TagModule.Base\r
+class Locmare.FormModule.FieldModule.TagModule.TextAreaTag extends Locmare.FormModule.FieldModule.TagModule.Base\r
tagName: 'textarea'\r
\r
render: () ->\r
loaded_local_manifest.init()\r
\r
window.router = new Pettanr.Router()\r
- Backbone.history.start({pushState: true})\r
- window.router.navigate('', true)\r
+ #Backbone.history.start({pushState: true})\r
+ #window.router.navigate('', true)\r
+ i = new Pettanr.GroundColor({id: 1})\r
+ #i = new Pettanr.PanelPicture({id: 21})\r
+ i.fetch().done ->\r
+ form = new Locmare.Form({\r
+ form_name: i.item_name(), \r
+ item: i, \r
+ mounted: true, \r
+ submit: 'default', \r
+ operators: window.operators,\r
+ action: '/' + i.table_name() + '/' + Pettanr.to_s(i.get('id'))\r
+ })\r
+ $("#pettanr").html(form.render().el)\r
\r
test_router: () ->\r
window.router.navigate('folders/98', true)\r
@parent_model_name != null\r
\r
find_boost_name: (column_name) -> \r
+ r = null\r
_.each @boost, (boost_name, boost_manifest) ->\r
- return boost_name if boost_manifest.settings_column_name == column_name\r
- null\r
+ r = boost_name if boost_manifest.settings_column_name == column_name\r
+ r\r
\r
is_extend_column: (column_name) ->\r
+ r = false\r
_.each @boost, (boost_name, boost_manifest) ->\r
- return true if boost_manifest.extend_column_name == column_name\r
- false\r
+ r = true if boost_manifest.extend_column_name == column_name\r
+ r\r
\r
supply_defaults: (item) ->\r
_.each @boost, (name, manifest) ->\r
'id'\r
\r
@find_boost_name: (column_name) ->\r
- my_peta().find_boost_name column_name\r
- \r
+ @my_peta().find_boost_name column_name\r
+ \r
@is_extend_column: (column_name) -> \r
- my_peta().is_extend_column column_name\r
+ @my_peta().is_extend_column column_name\r
\r
@fold_extend_settings: (attr) ->\r
_.each my_peta().boost, (name, manifest) ->\r
\r
@t_select_items: (items) ->\r
_.map items, (i) ->\r
- [t(i[0]), i[1]]\r
+ [I18n.t(i[0]), i[1]]\r
\r
@t_selected_item: (name, index) ->\r
I18n.t(Manifest.manifest().system_resources.select_items[name][index][0])\r
item: @item, \r
operators: @operators\r
})\r
- \r
+ \r
+ set_new: () ->\r
+ @set_model()\r
+ @item = new @my_model_class({id: @params['id']})\r
+ @item.boosts 'post'\r
+ @item.supply_default()\r
+ \r
+ set_edit: () ->\r
+ @set_model()\r
+ @item = new @my_model_class({id: @params['id']})\r
+ _this = this\r
+ @item.fetch().done ->\r
+ _this.item.boosts 'post'\r
+ _this.render_form()\r
+ \r
+ render_form: () ->\r
+ @form = new Locmare.Form({\r
+ form_name: @item.item_name(), \r
+ item: @item, \r
+ mounted: true, \r
+ submit: 'default', \r
+ operators: @operators,\r
+ action: '/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id'))\r
+ })\r
+ $("#pettanr").html(@form.render().el)\r
+ \r
+ form_new: () ->\r
+ @set_new()\r
+ @render_form()\r
+ \r
+ form_edit: () ->\r
+ @set_edit()\r
+ \r
class Pettanr.FilerRender\r
constructor: (item_name, list_result, pager_type, operators) ->\r
@item_name = item_name\r
\r
render: () ->\r
this.$el.attr(@attr)\r
- this.$el.addClass(@class_name)\r
+ this.$el.addClass(@class_name) if @class_name\r
this\r
\r
class Pettanr.Tag.A extends Backbone.View\r
\r
render: () ->\r
this.$el.attr(@attr)\r
- @el.className = @class_name\r
+ @el.className = @class_name if @class_name\r
this.$el.html(@content)\r
this\r
\r
@class_name = options.class_name\r
\r
render: () ->\r
- @el.className = @class_name\r
+ @el.className = @class_name if @class_name\r
this.$el.html(@content)\r
this\r
\r
+class Pettanr.Tag.RowBreak extends Pettanr.Tag.Div\r
+ initialize: (options) ->\r
+ @content = null\r
+ @class_name = 'row_break'\r
+ \r
+/*
+ * This is a manifest file that'll automatically include all the stylesheets available in this directory
+ * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
+ * the top of the compiled file, but it's generally better to create a new file per style scope.
+ *= require_directory ./base
+*/
table.no-border {
border: none;
}
.colorpicker-hex, #colorpicker-rgb {
margin: 5px;
}
+.ui-slider .ui-slider-handle {
+ width: 1em;
+ height: 1em;
+}
+.ui-slider-horizontal {
+ height: 0.6em;
+}
+ // for ap
+ .code-wrap {
+ border: 1px solid #d0d0d0;
+ border-radius: 10px;
+ padding: 10px 5px;
+ background: #fafafa;
+ display: none;
+ }
+ .colorpicker {
+ float: left;
+ clear: left;
+ width: 256px;
+ margin: 3px 10px;
+ }
+ .colorpicker .ui-slider-range {
+ background: #ef2929;
+ }
+
.tsort-box {
float: left;
font-size: 12px;
font-size: 12px;
cursor: move;
}
-.ui-slider .ui-slider-handle {
- width: 1em;
- height: 1em;
-}
-.ui-slider-horizontal {
- height: 0.6em;
-}
#elements-tabs {
font-size: 12px;
}
end
def items
- if self.model_attribute_manifest.source.type == 'model'
+ if self.model_attribute_manifest.source.type == 'magic_number'
::Manifest.manifest.system_resources.select_items[self.select_item_name]
else
resource_model_name = self.model_attribute_manifest.source.resource_model_name