From b6289ebd47279820bd7238bf106ec5440b6832fe Mon Sep 17 00:00:00 2001 From: yasushiito Date: Fri, 19 Sep 2014 15:20:22 +0900 Subject: [PATCH] color helper --- app/assets/javascripts/ap.js | 5 +- .../javascripts/controllers/artists.js.coffee | 2 + .../javascripts/controllers/authors.js.coffee | 2 + .../controllers/comic_stories.js.coffee | 2 + .../javascripts/controllers/comics.js.coffee | 2 + .../javascripts/controllers/folders.js.coffee | 2 + .../controllers/license_groups.js.coffee | 2 + .../javascripts/controllers/licenses.js.coffee | 2 + .../javascripts/controllers/panels.js.coffee | 2 + .../controllers/scroll_panels.js.coffee | 2 + .../javascripts/controllers/scrolls.js.coffee | 2 + .../javascripts/controllers/sheet_panels.js.coffee | 2 + .../javascripts/controllers/sheets.js.coffee | 2 + .../controllers/speech_balloon_templates.js.coffee | 2 + .../controllers/speech_balloons.js.coffee | 2 + .../javascripts/controllers/stories.js.coffee | 2 + .../javascripts/controllers/story_sheets.js.coffee | 2 + .../controllers/system_pictures.js.coffee | 4 - .../controllers/writing_formats.js.coffee | 2 + .../local_manifest/form/field.js.coffee | 2 +- .../local_manifest/form/field/label/base.js.coffee | 6 +- app/assets/javascripts/locmare/bucket.js.coffee | 123 ++++++++++++ .../locmare/bucket/form_field_name.js.coffee | 126 +++++++++++++ .../javascripts/locmare/bucket/member.js.coffee | 120 ++++++++++++ app/assets/javascripts/locmare/form.js.coffee | 57 ++++-- .../javascripts/locmare/form/field.js.coffee | 38 ++-- .../locmare/form/field/helper.js.coffee | 2 +- .../locmare/form/field/helper/base.js.coffee | 4 +- .../locmare/form/field/helper/color.js.coffee | 207 ++++++++++++++++++++- .../locmare/form/field/helper/popup.js.coffee | 1 - .../locmare/form/field/helper/size.js.coffee | 86 +++++++++ .../locmare/form/field/helper/tail_angle.js.coffee | 1 - .../javascripts/locmare/form/field/label.js.coffee | 2 +- .../locmare/form/field/label/label.js.coffee | 8 +- .../javascripts/locmare/form/field/tag.js.coffee | 2 +- .../locmare/form/field/tag/base.js.coffee | 3 + .../locmare/form/field/tag/hidden.js.coffee | 2 +- .../locmare/form/field/tag/number.js.coffee | 2 +- .../locmare/form/field/tag/select.js.coffee | 13 +- .../locmare/form/field/tag/text.js.coffee | 10 +- .../locmare/form/field/tag/text_area.js.coffee | 2 +- app/assets/javascripts/main.js.coffee | 16 +- .../javascripts/manifest/item/base.js.coffee | 10 +- app/assets/javascripts/peta/item.js.coffee | 6 +- app/assets/javascripts/pettanr.js.coffee | 36 +++- app/assets/javascripts/pettanr/tags.js.coffee | 11 +- app/assets/stylesheets/test.css.scss | 38 +++- lib/locmare/form/field/tag/select.rb | 2 +- 48 files changed, 899 insertions(+), 80 deletions(-) create mode 100644 app/assets/javascripts/locmare/bucket.js.coffee create mode 100644 app/assets/javascripts/locmare/bucket/form_field_name.js.coffee create mode 100644 app/assets/javascripts/locmare/bucket/member.js.coffee diff --git a/app/assets/javascripts/ap.js b/app/assets/javascripts/ap.js index 90bed368..d143c913 100644 --- a/app/assets/javascripts/ap.js +++ b/app/assets/javascripts/ap.js @@ -6,7 +6,7 @@ // //= 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 @@ -243,6 +243,9 @@ //= 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 diff --git a/app/assets/javascripts/controllers/artists.js.coffee b/app/assets/javascripts/controllers/artists.js.coffee index 07f9ded7..c89eeb87 100644 --- a/app/assets/javascripts/controllers/artists.js.coffee +++ b/app/assets/javascripts/controllers/artists.js.coffee @@ -16,8 +16,10 @@ class Pettanr.ArtistsController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/authors.js.coffee b/app/assets/javascripts/controllers/authors.js.coffee index 4840e931..ce80ff49 100644 --- a/app/assets/javascripts/controllers/authors.js.coffee +++ b/app/assets/javascripts/controllers/authors.js.coffee @@ -16,8 +16,10 @@ class Pettanr.AuthorsController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/comic_stories.js.coffee b/app/assets/javascripts/controllers/comic_stories.js.coffee index 1924c8b0..bae8ec8d 100644 --- a/app/assets/javascripts/controllers/comic_stories.js.coffee +++ b/app/assets/javascripts/controllers/comic_stories.js.coffee @@ -25,8 +25,10 @@ class Pettanr.ComicStoriesController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/comics.js.coffee b/app/assets/javascripts/controllers/comics.js.coffee index 4a2df842..f82a22db 100644 --- a/app/assets/javascripts/controllers/comics.js.coffee +++ b/app/assets/javascripts/controllers/comics.js.coffee @@ -22,8 +22,10 @@ class Pettanr.ComicsController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/folders.js.coffee b/app/assets/javascripts/controllers/folders.js.coffee index 2d5e43d6..c9c3c1a5 100644 --- a/app/assets/javascripts/controllers/folders.js.coffee +++ b/app/assets/javascripts/controllers/folders.js.coffee @@ -45,6 +45,8 @@ class Pettanr.FoldersController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() diff --git a/app/assets/javascripts/controllers/license_groups.js.coffee b/app/assets/javascripts/controllers/license_groups.js.coffee index cb2d47d0..3ce6158f 100644 --- a/app/assets/javascripts/controllers/license_groups.js.coffee +++ b/app/assets/javascripts/controllers/license_groups.js.coffee @@ -16,8 +16,10 @@ class Pettanr.LicenseGroupsController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/licenses.js.coffee b/app/assets/javascripts/controllers/licenses.js.coffee index 31532291..279fcb8b 100644 --- a/app/assets/javascripts/controllers/licenses.js.coffee +++ b/app/assets/javascripts/controllers/licenses.js.coffee @@ -22,8 +22,10 @@ class Pettanr.LicensesController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/panels.js.coffee b/app/assets/javascripts/controllers/panels.js.coffee index 5e50281f..e38ce067 100644 --- a/app/assets/javascripts/controllers/panels.js.coffee +++ b/app/assets/javascripts/controllers/panels.js.coffee @@ -28,8 +28,10 @@ class Pettanr.PanelsController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/scroll_panels.js.coffee b/app/assets/javascripts/controllers/scroll_panels.js.coffee index b11bfd67..2efc6cf1 100644 --- a/app/assets/javascripts/controllers/scroll_panels.js.coffee +++ b/app/assets/javascripts/controllers/scroll_panels.js.coffee @@ -25,8 +25,10 @@ class Pettanr.ScrollPanelsController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/scrolls.js.coffee b/app/assets/javascripts/controllers/scrolls.js.coffee index ea966723..929c62f9 100644 --- a/app/assets/javascripts/controllers/scrolls.js.coffee +++ b/app/assets/javascripts/controllers/scrolls.js.coffee @@ -22,8 +22,10 @@ class Pettanr.ScrollsController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/sheet_panels.js.coffee b/app/assets/javascripts/controllers/sheet_panels.js.coffee index 246e5ab0..8ba848ea 100644 --- a/app/assets/javascripts/controllers/sheet_panels.js.coffee +++ b/app/assets/javascripts/controllers/sheet_panels.js.coffee @@ -25,8 +25,10 @@ class Pettanr.SheetPanelsController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/sheets.js.coffee b/app/assets/javascripts/controllers/sheets.js.coffee index 59dfb20f..cfa1b67d 100644 --- a/app/assets/javascripts/controllers/sheets.js.coffee +++ b/app/assets/javascripts/controllers/sheets.js.coffee @@ -25,8 +25,10 @@ class Pettanr.SheetsController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee b/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee index 75f5b14e..485f87b1 100644 --- a/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee +++ b/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee @@ -22,8 +22,10 @@ class Pettanr.SpeechBalloonTemplatesController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/speech_balloons.js.coffee b/app/assets/javascripts/controllers/speech_balloons.js.coffee index 4de1ece6..4a7f72f3 100644 --- a/app/assets/javascripts/controllers/speech_balloons.js.coffee +++ b/app/assets/javascripts/controllers/speech_balloons.js.coffee @@ -25,8 +25,10 @@ class Pettanr.SpeechBalloonsController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/stories.js.coffee b/app/assets/javascripts/controllers/stories.js.coffee index 556cd67f..b4602c3b 100644 --- a/app/assets/javascripts/controllers/stories.js.coffee +++ b/app/assets/javascripts/controllers/stories.js.coffee @@ -25,8 +25,10 @@ class Pettanr.StoriesController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/story_sheets.js.coffee b/app/assets/javascripts/controllers/story_sheets.js.coffee index fa2d5e29..3911c960 100644 --- a/app/assets/javascripts/controllers/story_sheets.js.coffee +++ b/app/assets/javascripts/controllers/story_sheets.js.coffee @@ -25,8 +25,10 @@ class Pettanr.StorySheetsController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/controllers/system_pictures.js.coffee b/app/assets/javascripts/controllers/system_pictures.js.coffee index e9c2e6dc..fec4a4a5 100644 --- a/app/assets/javascripts/controllers/system_pictures.js.coffee +++ b/app/assets/javascripts/controllers/system_pictures.js.coffee @@ -15,10 +15,6 @@ class Pettanr.SystemPicturesController extends Pettanr.AppController count: () -> - new: () -> - - edit: () -> - create: () -> update: () -> diff --git a/app/assets/javascripts/controllers/writing_formats.js.coffee b/app/assets/javascripts/controllers/writing_formats.js.coffee index 4eee0a4d..6e462871 100644 --- a/app/assets/javascripts/controllers/writing_formats.js.coffee +++ b/app/assets/javascripts/controllers/writing_formats.js.coffee @@ -19,8 +19,10 @@ class Pettanr.WritingFormatsController extends Pettanr.AppController count: () -> new: () -> + @form_new() edit: () -> + @form_edit() create: () -> diff --git a/app/assets/javascripts/local_manifest/form/field.js.coffee b/app/assets/javascripts/local_manifest/form/field.js.coffee index bf397772..f1c57922 100644 --- a/app/assets/javascripts/local_manifest/form/field.js.coffee +++ b/app/assets/javascripts/local_manifest/form/field.js.coffee @@ -25,7 +25,7 @@ class LocalManifest.FormModule.Field extends ManifestBase.NameValues @name model_name: () -> - form_name + @form_name() form: () -> @parent diff --git a/app/assets/javascripts/local_manifest/form/field/label/base.js.coffee b/app/assets/javascripts/local_manifest/form/field/label/base.js.coffee index f4ceca0f..a67c2043 100644 --- a/app/assets/javascripts/local_manifest/form/field/label/base.js.coffee +++ b/app/assets/javascripts/local_manifest/form/field/label/base.js.coffee @@ -9,14 +9,14 @@ class LocalManifest.FormModule.FieldModule.LabelModule.Base extends ManifestBase @row_break = @args['row_break'] form_name: () -> - @parent.form_name + @parent.form_name() field_name: () -> @parent.name model_name: () -> - this.form_name + @form_name() column_name: () -> - this.field_name + @field_name() diff --git a/app/assets/javascripts/locmare/bucket.js.coffee b/app/assets/javascripts/locmare/bucket.js.coffee new file mode 100644 index 00000000..6d3fec00 --- /dev/null +++ b/app/assets/javascripts/locmare/bucket.js.coffee @@ -0,0 +1,123 @@ +# form_name_with_sub_form +# item: editing item +# mounted: true/false +# submit: string / 'submit' +# operators: +class Locmare.FormBase extends Backbone.View + tagName: 'div' + + initialize: (options) -> + @form_name_with_sub_form = options.form_name_with_sub_form + @item = options.item + @mounted = options.mounted + @submit = options.submit + @operators = options.operators + if /\./.test(form_name_with_sub_form) + @sub_form_names = form_name_with_sub_form.split('.') + @form_name = @sub_form_names.last + @root_form_name = @sub_form_names.shift + else + @sub_form_names = [] + @form_name = @form_name_with_sub_form + @root_form_name = @form_name + @manifest = LocalManifest.manifest().forms[@form_name] + @fields = {} + + fold_extend_settings: (params) -> + @item.my_class().fold_extend_settings params[@item.item_name()] + + sub_form_name: () -> + r = _.map @sub_form_names, (name) -> + '[' + name + '_attributes' + ']' + r.join() + + form_field_name: (field_name) -> + @root_form_name + @sub_form_name() + '[' + field_name + ']' + + image_dir: () -> + '/images/' + +class Locmare.Bucket extends Backbone.View + + @factory: (options) -> + @bucket_name = options.bucket_name + @item = options.item + @mounted = options.mounted + @submit = options.submit + @operators = options.operators + + bucket = LocalManifest.manifest().buckets[bucket_or_form_name] + c = if bucket and bucket.has_member + Locmare.Bucket + else + Locmare.Form + new c({ + bucket_or_form_name, + item, + mounted, + submit, + operators + }) + + initialize: (options) -> + @bucket_name = options.bucket_name + @item = options.item + @mounted = options.mounted + @submit = options.submit + @operators = options.operators + + @item.boosts 'post' + @manifest = LocalManifest.manifest().buckets[@bucket_name] + @form_fields = [] + @forms = {} + @forms[@item.item_name()] = new Locmare.Form({ + @item.item_name, @item, @mounted, false, @operators + }) + @init_forms(@item.item_name, @manifest, @item) + @init_fields() + + fold_extend_settings: (params) -> + @item.class.fold_extend_settings params[@item.item_name] + self.members_fold_extend_settings @item, params[@item.item_name], @manifest + + members_fold_extend_settings: (fold_item, attr, man) -> + man.members.each do |member_name, member_manifest| + member_item = fold_item.__send__ member_name + member_item.class.fold_extend_settings attr[member_name + '_attributes'] + self.members_fold_extend_settings member_item, attr[member_name + '_attributes'], member_manifest + + each_field: () -> + @form_fields.each do |form_field| + yield form_field.field_name, form_field + + push_form: (key, form_name, item) -> + + init_forms: (key, man, item) -> + man.members.each do |member_name, member_manifest| + form_name = member_name # write exchange function if you want + member_item = item.__send__(form_name) + new_key = key + '.' + form_name + @forms[new_key] = Locmare::Form.new new_key, member_item, @mounted, false, @operators + self.init_forms new_key, member_manifest, member_item + + init_fields: () -> + @manifest.form_field_names.each do |form_field_name| + r = form_field_name.form_name.blank? ? '' : '.' + form_field_name.form_name + key = @item.item_name + r + form = @forms[key] + field = form.fields[form_field_name.field_name] + @form_fields << field + + image_dir: () -> + '/images/' + + submit_name: () -> + if @item.isNew() + @item.table_name() + '.submit.new' + else + @item.table_name() + '.submit.edit' + + form_name: () -> + @bucket_name + +class Locmare.BucketModule diff --git a/app/assets/javascripts/locmare/bucket/form_field_name.js.coffee b/app/assets/javascripts/locmare/bucket/form_field_name.js.coffee new file mode 100644 index 00000000..64485c7c --- /dev/null +++ b/app/assets/javascripts/locmare/bucket/form_field_name.js.coffee @@ -0,0 +1,126 @@ +class Locmare.FormModule.Field extends Backbone.View + tagName: 'div' + className: 'field' + + initialize: (options) -> + @form = options.form + @field_name = options.field_name + @field_manifest = options.field_manifest + @label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label + @tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag + @helpers = {} + _this = this + _.each @field_manifest.helpers, (helper_manifest, helper_name) -> + _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this, helper_manifest) + @rb = @row_break() + @options = {'data-model': @field_manifest.form_name} + + render: () -> + this.$el.html('') + this.$el.append(@label.render().el) if not @label.hidden() + this.$el.append(@tag.render().el) + _this = this + _.each @helpers, (helper) -> + _this.$el.append(helper.render().el) + this.$el.append(@rb.render().el) if @rb + this + + mounted: () -> + if @form.mounted + 0 + else + 1 + + mount_option: () -> + {'mount': @mounted()} + + item: () -> + @form.item + + value: () -> + @item().get(@field_manifest.column_name) + + options: (tag_options = {}) -> + tag_options + + form_field_name: () -> + @form.form_field_name @field_name + + form_name: () -> + @form.form_name + + row_break: () -> + if @field_manifest.row_break + new Pettanr.Tag.Div({ + content: null, + class_name: 'row_break' + }) + else + null + +class Locmare.FormModule.FieldModule +module Locmare + module BucketModule + class FieldName + attr :bucket, :field_name, :field_manifest, + :label, :tag, :helpers, :options + def initialize bucket, field_name, field_manifest + @bucket = bucket + @field_name = field_name + @field_manifest = field_manifest + @label = LabelFactory.factory self, @field_manifest.label + @tag = TagFactory.factory self, @field_manifest.tag + @helpers = {} + @field_manifest.helpers.each {|helper_name, helper_manifest| + @helpers[helper_name] = HelperFactory.factory self, helper_manifest + } + @options = {'data-model' => @field_manifest.form_name} + end + + def item + @form.item + end + + def form_field_name + self.form_name + '[' + @field_name + ']' + end + + def form_name + @form.form_name + end + + def template_dir + @form.template_dir + 'field/' + end + + def template_file_name + 'default' + end + + def template_name + self.template_dir + self.template_file_name + end + + def template_option + {:field => self} + end + + def row_break_template_dir + @form.template_dir + 'row_break/' + end + + def row_break_template_file_name + if @field_manifest.row_break + 'br' + else + 'no_break' + end + end + + def row_break_template_name + self.row_break_template_dir + self.row_break_template_file_name + end + +end +end +end diff --git a/app/assets/javascripts/locmare/bucket/member.js.coffee b/app/assets/javascripts/locmare/bucket/member.js.coffee new file mode 100644 index 00000000..f9249ce5 --- /dev/null +++ b/app/assets/javascripts/locmare/bucket/member.js.coffee @@ -0,0 +1,120 @@ +class Locmare.FormModule.Field extends Backbone.View + tagName: 'div' + className: 'field' + + initialize: (options) -> + @form = options.form + @field_name = options.field_name + @field_manifest = options.field_manifest + @label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label + @tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag + @helpers = {} + _this = this + _.each @field_manifest.helpers, (helper_manifest, helper_name) -> + _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this, helper_manifest) + @rb = @row_break() + @options = {'data-model': @field_manifest.form_name} + + render: () -> + this.$el.html('') + this.$el.append(@label.render().el) if not @label.hidden() + this.$el.append(@tag.render().el) + _this = this + _.each @helpers, (helper) -> + _this.$el.append(helper.render().el) + this.$el.append(@rb.render().el) if @rb + this + + mounted: () -> + if @form.mounted + 0 + else + 1 + + mount_option: () -> + {'mount': @mounted()} + + item: () -> + @form.item + + value: () -> + @item().get(@field_manifest.column_name) + + options: (tag_options = {}) -> + tag_options + + form_field_name: () -> + @form.form_field_name @field_name + + form_name: () -> + @form.form_name + + row_break: () -> + if @field_manifest.row_break + new Pettanr.Tag.Div({ + content: null, + class_name: 'row_break' + }) + else + null + +class Locmare.BucketModule.Member + tagName: 'div' + className: 'field' + + initialize: (options) -> + @form = options.form + @field_name = options.field_name + @field_manifest = options.field_manifest + @label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label + @tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag + @helpers = {} + _this = this + _.each @field_manifest.helpers, (helper_manifest, helper_name) -> + _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this, helper_manifest) + @rb = @row_break() + @options = {'data-model': @field_manifest.form_name} + + render: () -> + this.$el.html('') + this.$el.append(@label.render().el) if not @label.hidden() + this.$el.append(@tag.render().el) + _this = this + _.each @helpers, (helper) -> + _this.$el.append(helper.render().el) + this.$el.append(@rb.render().el) if @rb + this + + mounted: () -> + if @form.mounted + 0 + else + 1 + + mount_option: () -> + {'mount': @mounted()} + + item: () -> + @form.item + + value: () -> + @item().get(@field_manifest.column_name) + + options: (tag_options = {}) -> + tag_options + + form_field_name: () -> + @form.form_name + '[' + @field_name + ']' + + form_name: () -> + @form.form_name + + row_break: () -> + if @field_manifest.row_break + new Pettanr.Tag.Div({ + content: null, + class_name: 'row_break' + }) + else + null + diff --git a/app/assets/javascripts/locmare/form.js.coffee b/app/assets/javascripts/locmare/form.js.coffee index 78f5dc97..bb545af4 100644 --- a/app/assets/javascripts/locmare/form.js.coffee +++ b/app/assets/javascripts/locmare/form.js.coffee @@ -4,21 +4,21 @@ # submit: string / 'submit' # operators: class Locmare.FormBase extends Backbone.View - tagName: 'div' + tagName: 'form' initialize: (options) -> - @form_name_with_sub_form = options.form_name_with_sub_form + @form_name = options.form_name #_with_sub_form @item = options.item @mounted = options.mounted @submit = options.submit @operators = options.operators - if /\./.test(form_name_with_sub_form) - @sub_form_names = form_name_with_sub_form.split('.') + if /\./.test(@form_name) + @sub_form_names = @form_name.split('.') @form_name = @sub_form_names.last @root_form_name = @sub_form_names.shift else @sub_form_names = [] - @form_name = @form_name_with_sub_form + #@form_name = @form_name @root_form_name = @form_name @manifest = LocalManifest.manifest().forms[@form_name] @fields = {} @@ -38,13 +38,27 @@ class Locmare.FormBase extends Backbone.View '/images/' class Locmare.Form extends Locmare.FormBase + events: { + 'submit': 'post' + } + initialize: (options) -> super(options) @submit = options.submit + @action = options.action @item.boosts 'post' @init_fields() render: () -> + m = if @item.isNew() + 'post' + else + 'put' + @attr = { + method: m, + action: @action + } + this.$el.attr(@attr) this.$el.html('') @error_explanation = null @div_fields = new Locmare.FormModule.Fields({ @@ -85,12 +99,6 @@ class Locmare.Form extends Locmare.FormBase field_manifest: field_manifest }) - submit_name: () -> - if @item.isNew() - @item.table_name() + '.submit.new' - else - @item.table_name() + '.submit.edit' - submits: () -> { default: Locmare.FormModule.SubmitModule.Default @@ -99,16 +107,23 @@ class Locmare.Form extends Locmare.FormBase submit_class: () -> @submits()[@submit] + post: () -> + attr = {} + _this = this + _.each @fields, (field) -> + _this.item.set(field.field_name, field.val()) + if @item.save() + window.router.navigate('/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')), true) + return false + else + alert('invalid') + class Locmare.ExtendForm extends Locmare.FormBase initialize: (options) -> @parent = options.parent - @form_name = options.form_name - @item = options.item - @mounted = options.mounted - @operators = options.operators @field_name = options.field_name - super(@form_name, @item, @mounted, @operators) + super(options) @field = new Locmare.FormModule.Field({ form: @parent, field_name: @field_name, @@ -144,6 +159,7 @@ class Locmare.FormModule.Fields extends Backbone.View _this = this _.each @fields, (field) -> _this.$el.append(field.render().el) + _this.$el.append(field.rb.render().el) if field.rb this class Locmare.FormModule.SubmitModule @@ -155,6 +171,13 @@ class Locmare.FormModule.SubmitModule.Default extends Backbone.View @form = options.form render: () -> - this.$el.html('') + caption = I18n.t(@submit_name()) + this.$el.html('') this + submit_name: () -> + if @form.item.isNew() + @form.item.table_name() + '.submit.new' + else + @form.item.table_name() + '.submit.edit' + diff --git a/app/assets/javascripts/locmare/form/field.js.coffee b/app/assets/javascripts/locmare/form/field.js.coffee index 42d340b5..f004079b 100644 --- a/app/assets/javascripts/locmare/form/field.js.coffee +++ b/app/assets/javascripts/locmare/form/field.js.coffee @@ -8,10 +8,7 @@ class Locmare.FormModule.Field extends Backbone.View @field_manifest = options.field_manifest @label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label @tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag - @helpers = {} - _this = this - _.each @field_manifest.helpers, (helper_manifest, helper_name) -> - _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this, helper_manifest) + @helpers = new Locmare.FormModule.FieldModule.Fields({field: this, field_manifest: @field_manifest}) @rb = @row_break() @options = {'data-model': @field_manifest.form_name} @@ -19,10 +16,7 @@ class Locmare.FormModule.Field extends Backbone.View this.$el.html('') this.$el.append(@label.render().el) if not @label.hidden() this.$el.append(@tag.render().el) - _this = this - _.each @helpers, (helper) -> - _this.$el.append(helper.render().el) - this.$el.append(@rb.render().el) if @rb + this.$el.append(@helpers.render().el) this mounted: () -> @@ -37,8 +31,11 @@ class Locmare.FormModule.Field extends Backbone.View item: () -> @form.item + val: () -> + @tag.$el.val() + value: () -> - @item().get(@field_manifest.column_name) + @item().get(@field_manifest.column_name()) options: (tag_options = {}) -> tag_options @@ -51,11 +48,26 @@ class Locmare.FormModule.Field extends Backbone.View row_break: () -> if @field_manifest.row_break - new Pettanr.Tag.Div({ - content: null, - class_name: 'row_break' - }) + new Pettanr.Tag.RowBreak() else null class Locmare.FormModule.FieldModule +class Locmare.FormModule.FieldModule.Fields extends Backbone.View + tagName: 'span' + + initialize: (options) -> + @field = options.field + @field_manifest = options.field_manifest + @helpers = {} + _this = this + _.each @field_manifest.helpers, (helper_manifest, helper_name) -> + _this.helpers[helper_name] = Locmare.FormModule.FieldModule.HelperFactory.factory(_this.field, helper_manifest) + + render: () -> + this.$el.html('') + _this = this + _.each @helpers, (helper) -> + _this.$el.append(helper.render().el) + this + diff --git a/app/assets/javascripts/locmare/form/field/helper.js.coffee b/app/assets/javascripts/locmare/form/field/helper.js.coffee index 99ce8de2..88a328c7 100644 --- a/app/assets/javascripts/locmare/form/field/helper.js.coffee +++ b/app/assets/javascripts/locmare/form/field/helper.js.coffee @@ -11,6 +11,6 @@ class Locmare.FormModule.FieldModule.HelperFactory type = my_manifest.type my_class = @types()[type] console.log "undefined class for local view forms > #{field.form_name} > fields > #{field.field_name} > helper > #{type}\n" if not my_class - new my_class({field: field, my_manifest: my_manifest}) + new my_class({field: field, helper_manifest: my_manifest}) class Locmare.FormModule.FieldModule.HelperModule diff --git a/app/assets/javascripts/locmare/form/field/helper/base.js.coffee b/app/assets/javascripts/locmare/form/field/helper/base.js.coffee index 8266123b..95b0b34b 100644 --- a/app/assets/javascripts/locmare/form/field/helper/base.js.coffee +++ b/app/assets/javascripts/locmare/form/field/helper/base.js.coffee @@ -1,7 +1,7 @@ class Locmare.FormModule.FieldModule.HelperModule.Base extends Backbone.View - tagName: 'input' + tagName: 'span' initialize: (options) -> @field = options.field - @tag_manifest = options.tag_manifest + @helper_manifest = options.helper_manifest diff --git a/app/assets/javascripts/locmare/form/field/helper/color.js.coffee b/app/assets/javascripts/locmare/form/field/helper/color.js.coffee index 2b8e0f1f..63bb8c4e 100644 --- a/app/assets/javascripts/locmare/form/field/helper/color.js.coffee +++ b/app/assets/javascripts/locmare/form/field/helper/color.js.coffee @@ -1,7 +1,212 @@ class Locmare.FormModule.FieldModule.HelperModule.Color extends Locmare.FormModule.FieldModule.HelperModule.Base - tagName: 'input' + tagName: 'div' + className: 'code-wrap' + + # wrapper + initialize: (options) -> + super(options) + this.$el.addClass(@helper_manifest.dom_class) + @picker = new Locmare.FormModule.FieldModule.HelperModule.ColorModule.Picker({field: @field}) + @swatch = new Locmare.FormModule.FieldModule.HelperModule.ColorModule.Swatch({field: @field}) + @status = new Locmare.FormModule.FieldModule.HelperModule.ColorModule.Status({field: @field}) + @rb = new Pettanr.Tag.RowBreak() + + render: () -> + @attr = { + style: 'display: block' + } + this.$el.attr(@attr) + this.$el.html('') + this.$el.append(@picker.render().el) + this.$el.append(@swatch.render().el) + this.$el.append(@status.render().el) + this.$el.append(@rb.render().el) + this + +class Locmare.FormModule.FieldModule.HelperModule.ColorModule +class Locmare.FormModule.FieldModule.HelperModule.ColorModule.Slider extends Pettanr.Tag.Div + events: { + slidechange: 'color_slider_change' + } + + color_slider_change: (trace) -> + alert('lide') + +class Locmare.FormModule.FieldModule.HelperModule.ColorModule.Picker extends Backbone.View + tagName: 'div' + className: 'colorpickers' + + initialize: (options) -> + @field = options.field + @red = new Locmare.FormModule.FieldModule.HelperModule.ColorModule.Slider({ + class_name: 'colorpicker' + }) + @green = new Pettanr.Tag.Div({ + class_name: 'colorpicker' + }) + @blue = new Pettanr.Tag.Div({ + class_name: 'colorpicker' + }) + r = (@field.value() >> 16) & 0xFF + g = (@field.value() >> 8) & 0xFF + b = @field.value() & 0xFF + @red.$el.slider { + orientation: 'horizontal', + range: 'min', + max: 255, + value: r + } + @green.$el.slider { + orientation: 'horizontal', + range: 'min', + max: 255, + value: g + } + @blue.$el.slider { + orientation: 'horizontal', + range: 'min', + max: 255, + value: b + } + + render: () -> + @attr = { + style: 'float: left;' + } + this.$el.attr(@attr) + this.$el.html('') + this.$el.append(@red.render().el) + this.$el.append(@green.render().el) + this.$el.append(@blue.render().el) + this + +class Locmare.FormModule.FieldModule.HelperModule.ColorModule.Swatch extends Backbone.View + tagName: 'div' + className: 'code_swatch' + + initialize: (options) -> + @field = options.field + this.$el.addClass('ui-widget-content') + this.$el.addClass('ui-corner-all') render: () -> + @attr = { + style: 'float: left;' + } + this.$el.attr(@attr) this.$el.html('') this + click: () -> + w = -@field.val() + @field.tag.$el.val(w) + @field.render() + return false + +class Locmare.FormModule.FieldModule.HelperModule.ColorModule.Status extends Backbone.View + tagName: 'div' + + initialize: (options) -> + @field = options.field + + render: () -> + @attr = { + style: 'float: left;' + } + this.$el.attr(@attr) + phex = "000000" + @field.value().toString(16) + hex = @field.value().toString(16) + h = phex.substring(phex.length - 6) + @hex = new Pettanr.Tag.Div({ + content: 'HEX: #' + h + }) + @rgb = new Pettanr.Tag.Div({ + content: 'RGB: (' + }) + this.$el.html('') + this.$el.append(@hex.render().el) + this.$el.append(@rgb.render().el) + this + + click: () -> + w = -@field.val() + @field.tag.$el.val(w) + @field.render() + return false + +class PettanrColorHelper + confirm_confirm_confirm = () -> + confirm( ) + @WritingFormat = window.PettanrWritingFormat + + @color_slider_change = (trace) -> + red = $(trace + 'code_red').slider('value') + green = $(trace + 'code_green').slider('value') + blue = $(trace + 'code_blue').slider('value') + code = (red << 16) + (green << 8) + (blue) + phex = "000000" + code.toString(16) + hex = code.toString(16) + h = phex.substring(phex.length - 6) + $(trace + 'code_swatch').css('background-color', '#' + h) + $(trace + 'code_hex').html('HEX: #' + h) + $(trace + 'code_rgb').html('RGB: (' + red + ',' + green + ',' +blue + ')') + v = '#' + h + if $(trace).attr('element_type') == 'ground_color' + $(trace + 'code').val(code) + $(trace).css('background-color', v) + else + $(trace + 'fore_color').val(code) + $(trace).css('color', v) + + @add_helper = (wrapper, column) -> + editor = window.PettanrEditor + wrapper.map -> + $(@).css('display', 'block') + + $('.colorpicker', wrapper).map -> + if editor.is_element_part($(@)) + code_picker_trace = editor.element_part_tag_id($(@)) + else + code_picker_trace = editor.element_tag_id($(@)) + code = parseInt($(code_picker_trace + column).val()) + red = (code >> 16) & 0xFF + green = (code >> 8) & 0xFF + blue = code & 0xFF + $(code_picker_trace + 'code_red').slider { + orientation: 'horizontal', + range: 'min', + max: 255, + value: red, + change: ( event, ui ) -> + if editor.is_element_part($(@).parent()) + trace = editor.element_part_tag_id($(@).parent()) + else + trace = editor.element_tag_id($(@).parent()) + PettanrColorHelper.color_slider_change(trace) + } + $(code_picker_trace + 'code_green').slider { + orientation: 'horizontal', + range: 'min', + max: 255, + value: green, + change: ( event, ui ) -> + if editor.is_element_part($(@).parent()) + trace = editor.element_part_tag_id($(@).parent()) + else + trace = editor.element_tag_id($(@).parent()) + PettanrColorHelper.color_slider_change(trace) + } + $(code_picker_trace + 'code_blue').slider { + orientation: 'horizontal', + range: 'min', + max: 255, + value: blue, + change: ( event, ui ) -> + if editor.is_element_part($(@).parent()) + trace = editor.element_part_tag_id($(@).parent()) + else + trace = editor.element_tag_id($(@).parent()) + PettanrColorHelper.color_slider_change(trace) + } + PettanrColorHelper.color_slider_change(code_picker_trace) + diff --git a/app/assets/javascripts/locmare/form/field/helper/popup.js.coffee b/app/assets/javascripts/locmare/form/field/helper/popup.js.coffee index 0f3473f7..86e061ca 100644 --- a/app/assets/javascripts/locmare/form/field/helper/popup.js.coffee +++ b/app/assets/javascripts/locmare/form/field/helper/popup.js.coffee @@ -1,5 +1,4 @@ class Locmare.FormModule.FieldModule.HelperModule.Popup extends Locmare.FormModule.FieldModule.HelperModule.Base - tagName: 'textarea' render: () -> this.$el.html('') diff --git a/app/assets/javascripts/locmare/form/field/helper/size.js.coffee b/app/assets/javascripts/locmare/form/field/helper/size.js.coffee index 19ae6062..f15ad449 100644 --- a/app/assets/javascripts/locmare/form/field/helper/size.js.coffee +++ b/app/assets/javascripts/locmare/form/field/helper/size.js.coffee @@ -1,6 +1,92 @@ class Locmare.FormModule.FieldModule.HelperModule.Size extends Locmare.FormModule.FieldModule.HelperModule.Base + initialize: (options) -> + super(options) + this.$el.addClass(@helper_manifest.dom_class) + @reverse = new Locmare.FormModule.FieldModule.HelperModule.SizeModule.Reverse({field: @field}) + @double = new Locmare.FormModule.FieldModule.HelperModule.SizeModule.Double({field: @field}) + @half = new Locmare.FormModule.FieldModule.HelperModule.SizeModule.Half({field: @field}) + render: () -> this.$el.html('') + this.$el.append(@reverse.render().el) + this.$el.append(@double.render().el) + this.$el.append(@half.render().el) + this + +class Locmare.FormModule.FieldModule.HelperModule.SizeModule +class Locmare.FormModule.FieldModule.HelperModule.SizeModule.Reverse extends Backbone.View + tagName: 'button' + className: 'reverse' + events: { + 'click': 'click' + } + + initialize: (options) -> + @field = options.field + + render: () -> + this.$el.html('Rev') + this + + click: () -> + w = -@field.val() + @field.tag.$el.val(w) + @field.render() + return false + +class Locmare.FormModule.FieldModule.HelperModule.SizeModule.Double extends Backbone.View + tagName: 'button' + className: 'double' + events: { + 'click': 'click' + } + + initialize: (options) -> + @field = options.field + + render: () -> + this.$el.html('x2') + this + + click: () -> + w = @field.val() * 2 + @field.tag.$el.val(w) + @field.render() + return false + +class Locmare.FormModule.FieldModule.HelperModule.SizeModule.Half extends Backbone.View + tagName: 'button' + className: 'half' + events: { + 'click': 'click' + } + + initialize: (options) -> + @field = options.field + + render: () -> + this.$el.html('/2') this + click: () -> + w = @field.val() / 2 + @field.tag.$el.val(w) + @field.render() + return false + +class PettanrPictureSizeHelper + @refresh_picture = (e, w, h) -> + if w and h + sd = '' + if h < 0 + sd += 'v' + if w < 0 + sd += 'h' + if sd.length > 0 + sd += '/' + pid = parseInt(e.attr('picture_id')).toString() + ext = e.attr('ext') + src = '/pictures/' + sd + pid + '.' + ext + e.attr('src', src) + diff --git a/app/assets/javascripts/locmare/form/field/helper/tail_angle.js.coffee b/app/assets/javascripts/locmare/form/field/helper/tail_angle.js.coffee index 25d280c6..741cbc5b 100644 --- a/app/assets/javascripts/locmare/form/field/helper/tail_angle.js.coffee +++ b/app/assets/javascripts/locmare/form/field/helper/tail_angle.js.coffee @@ -1,5 +1,4 @@ class Locmare.FormModule.FieldModule.HelperModule.TailAngle extends Locmare.FormModule.FieldModule.HelperModule.Base - tagName: 'select' render: () -> this.$el.html('') diff --git a/app/assets/javascripts/locmare/form/field/label.js.coffee b/app/assets/javascripts/locmare/form/field/label.js.coffee index 785db58e..7b9be1a0 100644 --- a/app/assets/javascripts/locmare/form/field/label.js.coffee +++ b/app/assets/javascripts/locmare/form/field/label.js.coffee @@ -9,6 +9,6 @@ class Locmare.FormModule.FieldModule.LabelFactory type = my_manifest.type my_class = @types()[type] console.log "undefined class for local view forms > #{field.form_name} > fields > #{field.field_name} > label > #{type}\n" if not my_class - new my_class({field: field, my_manifest: my_manifest}) + new my_class({field: field, label_manifest: my_manifest}) class Locmare.FormModule.FieldModule.LabelModule diff --git a/app/assets/javascripts/locmare/form/field/label/label.js.coffee b/app/assets/javascripts/locmare/form/field/label/label.js.coffee index acee74f4..06d2d1c7 100644 --- a/app/assets/javascripts/locmare/form/field/label/label.js.coffee +++ b/app/assets/javascripts/locmare/form/field/label/label.js.coffee @@ -35,17 +35,23 @@ class Locmare.FormModule.FieldModule.LabelModule.Base extends Backbone.View class Locmare.FormModule.FieldModule.LabelModule.Default extends Locmare.FormModule.FieldModule.LabelModule.Base + initialize: (options) -> + super(options) + label_name: () -> 'activerecord.attributes.' + @item_name() + '.' + @column_name() render: () -> this.$el.html('') - this.$el.append(label_name()) + this.$el.append(I18n.t(@label_name())) this.$el.append(@rb) if @rb this class Locmare.FormModule.FieldModule.LabelModule.None extends Locmare.FormModule.FieldModule.LabelModule.Base + initialize: (options) -> + super(options) + hidden: () -> true diff --git a/app/assets/javascripts/locmare/form/field/tag.js.coffee b/app/assets/javascripts/locmare/form/field/tag.js.coffee index 49fbc576..2cfed4ae 100644 --- a/app/assets/javascripts/locmare/form/field/tag.js.coffee +++ b/app/assets/javascripts/locmare/form/field/tag.js.coffee @@ -12,6 +12,6 @@ class Locmare.FormModule.FieldModule.TagFactory type = my_manifest.type my_class = @types()[type] console.log "undefined class for local view forms > #{field.form_name} > fields > #{field.field_name} > tag > #{type}\n" if not my_class - new my_class({field: field, my_manifest: my_manifest}) + new my_class({field: field, tag_manifest: my_manifest}) class Locmare.FormModule.FieldModule.TagModule diff --git a/app/assets/javascripts/locmare/form/field/tag/base.js.coffee b/app/assets/javascripts/locmare/form/field/tag/base.js.coffee index 4847cd31..743f80a2 100644 --- a/app/assets/javascripts/locmare/form/field/tag/base.js.coffee +++ b/app/assets/javascripts/locmare/form/field/tag/base.js.coffee @@ -8,6 +8,9 @@ class Locmare.FormModule.FieldModule.TagModule.Base extends Backbone.View form_field_name: () -> @field.form_field_name() + val: () -> + this.$el.val() + value: () -> @field.value() diff --git a/app/assets/javascripts/locmare/form/field/tag/hidden.js.coffee b/app/assets/javascripts/locmare/form/field/tag/hidden.js.coffee index 3f9bf964..fe8da644 100644 --- a/app/assets/javascripts/locmare/form/field/tag/hidden.js.coffee +++ b/app/assets/javascripts/locmare/form/field/tag/hidden.js.coffee @@ -1,4 +1,4 @@ -class Locmare.FormModule.FieldModule.TagModule.Hidden extends Locmare.FormModule.FieldModule.TagModule.Base +class Locmare.FormModule.FieldModule.TagModule.HiddenTag extends Locmare.FormModule.FieldModule.TagModule.Base render: () -> this.$el.html('') diff --git a/app/assets/javascripts/locmare/form/field/tag/number.js.coffee b/app/assets/javascripts/locmare/form/field/tag/number.js.coffee index 1cb97e6a..a55ae712 100644 --- a/app/assets/javascripts/locmare/form/field/tag/number.js.coffee +++ b/app/assets/javascripts/locmare/form/field/tag/number.js.coffee @@ -1,4 +1,4 @@ -class Locmare.FormModule.FieldModule.TagModule.Number extends Locmare.FormModule.FieldModule.TagModule.Base +class Locmare.FormModule.FieldModule.TagModule.NumberTag extends Locmare.FormModule.FieldModule.TagModule.Base render: () -> this.$el.html('') diff --git a/app/assets/javascripts/locmare/form/field/tag/select.js.coffee b/app/assets/javascripts/locmare/form/field/tag/select.js.coffee index ecffc19e..5bdb03e8 100644 --- a/app/assets/javascripts/locmare/form/field/tag/select.js.coffee +++ b/app/assets/javascripts/locmare/form/field/tag/select.js.coffee @@ -1,4 +1,4 @@ -class Locmare.FormModule.FieldModule.TagModule.Select extends Locmare.FormModule.FieldModule.TagModule.Base +class Locmare.FormModule.FieldModule.TagModule.SelectTag extends Locmare.FormModule.FieldModule.TagModule.Base tagName: 'select' render: () -> @@ -8,25 +8,26 @@ class Locmare.FormModule.FieldModule.TagModule.Select extends Locmare.FormModule } _.extend(@attr, @options()) this.$el.attr(@attr) + _this = this _.each @select_values(), (member) -> - selected = if @is_selected(member) + selected = if _this.is_selected(member) ' selected' else '' - _this.$el.append('') + _this.$el.append('') this model_manifest: () -> Manifest.manifest().models[@field.field_manifest.model_name()] model_attribute_manifest: () -> - @model_manifest().get(@field.field_manifest.column_name()) + @model_manifest().attributes[@field.field_manifest.column_name()] select_item_name: () -> @model_attribute_manifest().source.select_item_name items: () -> - if @model_attribute_manifest().source.type == 'model' + if @model_attribute_manifest().source.type == 'magic_number' Manifest.manifest().system_resources.select_items[@select_item_name()] else resource_model_name = @model_attribute_manifest().source.resource_model_name @@ -53,5 +54,5 @@ class Locmare.FormModule.FieldModule.TagModule.Select extends Locmare.FormModule if @source_by_model() @items() else - Pettanr.t_select_items(@items()) + Pettanr.AppHelper.t_select_items(@items()) diff --git a/app/assets/javascripts/locmare/form/field/tag/text.js.coffee b/app/assets/javascripts/locmare/form/field/tag/text.js.coffee index 06be50b2..073b1955 100644 --- a/app/assets/javascripts/locmare/form/field/tag/text.js.coffee +++ b/app/assets/javascripts/locmare/form/field/tag/text.js.coffee @@ -1,5 +1,8 @@ -class Locmare.FormModule.FieldModule.TagModule.Text extends Locmare.FormModule.FieldModule.TagModule.Base +class Locmare.FormModule.FieldModule.TagModule.TextTag extends Locmare.FormModule.FieldModule.TagModule.Base tagName: 'input' + events: { + 'change': 'change' + } render: () -> this.$el.html('') @@ -12,3 +15,8 @@ class Locmare.FormModule.FieldModule.TagModule.Text extends Locmare.FormModule.F this.$el.attr(@attr) this + change: () -> + console.log this.$el.val() + @item().set(@field.field_name, this.$el.attr('value')) + console.log @item().attributes + diff --git a/app/assets/javascripts/locmare/form/field/tag/text_area.js.coffee b/app/assets/javascripts/locmare/form/field/tag/text_area.js.coffee index 0ff07676..2f7fe133 100644 --- a/app/assets/javascripts/locmare/form/field/tag/text_area.js.coffee +++ b/app/assets/javascripts/locmare/form/field/tag/text_area.js.coffee @@ -1,4 +1,4 @@ -class Locmare.FormModule.FieldModule.TagModule.TextArea extends Locmare.FormModule.FieldModule.TagModule.Base +class Locmare.FormModule.FieldModule.TagModule.TextAreaTag extends Locmare.FormModule.FieldModule.TagModule.Base tagName: 'textarea' render: () -> diff --git a/app/assets/javascripts/main.js.coffee b/app/assets/javascripts/main.js.coffee index 2c646dbb..9cc0c16b 100644 --- a/app/assets/javascripts/main.js.coffee +++ b/app/assets/javascripts/main.js.coffee @@ -24,8 +24,20 @@ $ -> loaded_local_manifest.init() window.router = new Pettanr.Router() - Backbone.history.start({pushState: true}) - window.router.navigate('', true) + #Backbone.history.start({pushState: true}) + #window.router.navigate('', true) + i = new Pettanr.GroundColor({id: 1}) + #i = new Pettanr.PanelPicture({id: 21}) + i.fetch().done -> + form = new Locmare.Form({ + form_name: i.item_name(), + item: i, + mounted: true, + submit: 'default', + operators: window.operators, + action: '/' + i.table_name() + '/' + Pettanr.to_s(i.get('id')) + }) + $("#pettanr").html(form.render().el) test_router: () -> window.router.navigate('folders/98', true) diff --git a/app/assets/javascripts/manifest/item/base.js.coffee b/app/assets/javascripts/manifest/item/base.js.coffee index ca2aeccc..c1ad5a90 100644 --- a/app/assets/javascripts/manifest/item/base.js.coffee +++ b/app/assets/javascripts/manifest/item/base.js.coffee @@ -13,14 +13,16 @@ class Manifest.ItemModule.BasePeta extends ManifestBase.TypeNameArgs @parent_model_name != null find_boost_name: (column_name) -> + r = null _.each @boost, (boost_name, boost_manifest) -> - return boost_name if boost_manifest.settings_column_name == column_name - null + r = boost_name if boost_manifest.settings_column_name == column_name + r is_extend_column: (column_name) -> + r = false _.each @boost, (boost_name, boost_manifest) -> - return true if boost_manifest.extend_column_name == column_name - false + r = true if boost_manifest.extend_column_name == column_name + r supply_defaults: (item) -> _.each @boost, (name, manifest) -> diff --git a/app/assets/javascripts/peta/item.js.coffee b/app/assets/javascripts/peta/item.js.coffee index aaad35ac..c41e8fbd 100644 --- a/app/assets/javascripts/peta/item.js.coffee +++ b/app/assets/javascripts/peta/item.js.coffee @@ -64,10 +64,10 @@ class Peta.Item extends Backbone.Model 'id' @find_boost_name: (column_name) -> - my_peta().find_boost_name column_name - + @my_peta().find_boost_name column_name + @is_extend_column: (column_name) -> - my_peta().is_extend_column column_name + @my_peta().is_extend_column column_name @fold_extend_settings: (attr) -> _.each my_peta().boost, (name, manifest) -> diff --git a/app/assets/javascripts/pettanr.js.coffee b/app/assets/javascripts/pettanr.js.coffee index e7c4ccc6..eee96309 100644 --- a/app/assets/javascripts/pettanr.js.coffee +++ b/app/assets/javascripts/pettanr.js.coffee @@ -65,7 +65,7 @@ class Pettanr @t_select_items: (items) -> _.map items, (i) -> - [t(i[0]), i[1]] + [I18n.t(i[0]), i[1]] @t_selected_item: (name, index) -> I18n.t(Manifest.manifest().system_resources.select_items[name][index][0]) @@ -144,7 +144,39 @@ class Pettanr item: @item, operators: @operators }) - + + set_new: () -> + @set_model() + @item = new @my_model_class({id: @params['id']}) + @item.boosts 'post' + @item.supply_default() + + set_edit: () -> + @set_model() + @item = new @my_model_class({id: @params['id']}) + _this = this + @item.fetch().done -> + _this.item.boosts 'post' + _this.render_form() + + render_form: () -> + @form = new Locmare.Form({ + form_name: @item.item_name(), + item: @item, + mounted: true, + submit: 'default', + operators: @operators, + action: '/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')) + }) + $("#pettanr").html(@form.render().el) + + form_new: () -> + @set_new() + @render_form() + + form_edit: () -> + @set_edit() + class Pettanr.FilerRender constructor: (item_name, list_result, pager_type, operators) -> @item_name = item_name diff --git a/app/assets/javascripts/pettanr/tags.js.coffee b/app/assets/javascripts/pettanr/tags.js.coffee index 75c6ded4..07472d52 100644 --- a/app/assets/javascripts/pettanr/tags.js.coffee +++ b/app/assets/javascripts/pettanr/tags.js.coffee @@ -11,7 +11,7 @@ class Pettanr.Tag.Img extends Backbone.View render: () -> this.$el.attr(@attr) - this.$el.addClass(@class_name) + this.$el.addClass(@class_name) if @class_name this class Pettanr.Tag.A extends Backbone.View @@ -27,7 +27,7 @@ class Pettanr.Tag.A extends Backbone.View render: () -> this.$el.attr(@attr) - @el.className = @class_name + @el.className = @class_name if @class_name this.$el.html(@content) this @@ -43,7 +43,12 @@ class Pettanr.Tag.Div extends Backbone.View @class_name = options.class_name render: () -> - @el.className = @class_name + @el.className = @class_name if @class_name this.$el.html(@content) this +class Pettanr.Tag.RowBreak extends Pettanr.Tag.Div + initialize: (options) -> + @content = null + @class_name = 'row_break' + diff --git a/app/assets/stylesheets/test.css.scss b/app/assets/stylesheets/test.css.scss index c01c9efe..c8aef358 100644 --- a/app/assets/stylesheets/test.css.scss +++ b/app/assets/stylesheets/test.css.scss @@ -1,3 +1,9 @@ +/* + * 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; } @@ -214,6 +220,31 @@ font-family : monospace; .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; @@ -262,13 +293,6 @@ font-family : monospace; 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; } diff --git a/lib/locmare/form/field/tag/select.rb b/lib/locmare/form/field/tag/select.rb index 42700d4b..7419c657 100644 --- a/lib/locmare/form/field/tag/select.rb +++ b/lib/locmare/form/field/tag/select.rb @@ -20,7 +20,7 @@ module Locmare 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 -- 2.11.0