From 688bd2f8208226ced9eddae2280f289198a2de7c Mon Sep 17 00:00:00 2001 From: yasushiito Date: Sat, 2 May 2015 18:23:34 +0900 Subject: [PATCH] fix: --- .../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/licenses.js.coffee | 2 +- .../controllers/original_pictures.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 +- .../javascripts/controllers/stories.js.coffee | 2 +- .../javascripts/controllers/story_sheets.js.coffee | 2 +- .../controllers/writing_formats.js.coffee | 2 +- app/assets/javascripts/editor.js.coffee | 11 +++++ .../javascripts/editor/panel_editor.js.coffee | 4 ++ .../javascripts/editor/panel_editor/dock.js.coffee | 4 ++ .../editor/panel_editor/element.js.coffee | 56 ++++++++++++++++++---- .../editor/panel_editor/element/boards.js.coffee | 11 +++-- app/assets/javascripts/locmare/form.js.coffee | 5 ++ .../locmare/list_group/lib/pager.js.coffee | 30 +++++++++++- .../profiler/association/has_many.js.coffee | 3 ++ .../peta/element_nestable_content.js.coffee | 11 ++++- .../javascripts/views/artists/show.js.coffee | 46 ++++++++++++++++++ .../views/ground_colors/symbol.js.coffee | 8 +--- app/assets/javascripts/views/panels/body.js.coffee | 5 ++ .../javascripts/views/users/account.js.coffee | 2 +- app/models/speech_balloon.rb | 4 +- 29 files changed, 191 insertions(+), 39 deletions(-) diff --git a/app/assets/javascripts/controllers/artists.js.coffee b/app/assets/javascripts/controllers/artists.js.coffee index 25b031c0..96c8caf0 100644 --- a/app/assets/javascripts/controllers/artists.js.coffee +++ b/app/assets/javascripts/controllers/artists.js.coffee @@ -49,7 +49,7 @@ class Pettanr.ArtistsController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/controllers/authors.js.coffee b/app/assets/javascripts/controllers/authors.js.coffee index 0773e367..1a961edd 100644 --- a/app/assets/javascripts/controllers/authors.js.coffee +++ b/app/assets/javascripts/controllers/authors.js.coffee @@ -49,7 +49,7 @@ class Pettanr.AuthorsController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/controllers/comic_stories.js.coffee b/app/assets/javascripts/controllers/comic_stories.js.coffee index 7e89cd5f..5cc0c33f 100644 --- a/app/assets/javascripts/controllers/comic_stories.js.coffee +++ b/app/assets/javascripts/controllers/comic_stories.js.coffee @@ -66,7 +66,7 @@ class Pettanr.ComicStoriesController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/controllers/comics.js.coffee b/app/assets/javascripts/controllers/comics.js.coffee index 6f95cdc3..140995e9 100644 --- a/app/assets/javascripts/controllers/comics.js.coffee +++ b/app/assets/javascripts/controllers/comics.js.coffee @@ -78,7 +78,7 @@ class Pettanr.ComicsController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/controllers/licenses.js.coffee b/app/assets/javascripts/controllers/licenses.js.coffee index fcb93a3e..a76eff81 100644 --- a/app/assets/javascripts/controllers/licenses.js.coffee +++ b/app/assets/javascripts/controllers/licenses.js.coffee @@ -59,7 +59,7 @@ class Pettanr.LicensesController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/controllers/original_pictures.js.coffee b/app/assets/javascripts/controllers/original_pictures.js.coffee index 23c85766..ec2c950d 100644 --- a/app/assets/javascripts/controllers/original_pictures.js.coffee +++ b/app/assets/javascripts/controllers/original_pictures.js.coffee @@ -50,7 +50,7 @@ class Pettanr.OriginalPicturesController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/controllers/panels.js.coffee b/app/assets/javascripts/controllers/panels.js.coffee index 86e5049a..9158499e 100644 --- a/app/assets/javascripts/controllers/panels.js.coffee +++ b/app/assets/javascripts/controllers/panels.js.coffee @@ -85,7 +85,7 @@ class Pettanr.PanelsController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/controllers/scroll_panels.js.coffee b/app/assets/javascripts/controllers/scroll_panels.js.coffee index f39efac2..4d1ca1ed 100644 --- a/app/assets/javascripts/controllers/scroll_panels.js.coffee +++ b/app/assets/javascripts/controllers/scroll_panels.js.coffee @@ -66,7 +66,7 @@ class Pettanr.ScrollPanelsController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/controllers/scrolls.js.coffee b/app/assets/javascripts/controllers/scrolls.js.coffee index 2d68aa37..3dadc423 100644 --- a/app/assets/javascripts/controllers/scrolls.js.coffee +++ b/app/assets/javascripts/controllers/scrolls.js.coffee @@ -75,7 +75,7 @@ class Pettanr.ScrollsController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/controllers/sheet_panels.js.coffee b/app/assets/javascripts/controllers/sheet_panels.js.coffee index de1ea606..2015fb04 100644 --- a/app/assets/javascripts/controllers/sheet_panels.js.coffee +++ b/app/assets/javascripts/controllers/sheet_panels.js.coffee @@ -66,7 +66,7 @@ class Pettanr.SheetPanelsController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/controllers/sheets.js.coffee b/app/assets/javascripts/controllers/sheets.js.coffee index 8c1e83b9..cb1fc429 100644 --- a/app/assets/javascripts/controllers/sheets.js.coffee +++ b/app/assets/javascripts/controllers/sheets.js.coffee @@ -81,7 +81,7 @@ class Pettanr.SheetsController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee b/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee index fafec5a5..bc3170e7 100644 --- a/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee +++ b/app/assets/javascripts/controllers/speech_balloon_templates.js.coffee @@ -59,7 +59,7 @@ class Pettanr.SpeechBalloonTemplatesController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/controllers/stories.js.coffee b/app/assets/javascripts/controllers/stories.js.coffee index 0f82e0ad..bef042fe 100644 --- a/app/assets/javascripts/controllers/stories.js.coffee +++ b/app/assets/javascripts/controllers/stories.js.coffee @@ -83,7 +83,7 @@ class Pettanr.StoriesController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/controllers/story_sheets.js.coffee b/app/assets/javascripts/controllers/story_sheets.js.coffee index 79e21cd9..489de179 100644 --- a/app/assets/javascripts/controllers/story_sheets.js.coffee +++ b/app/assets/javascripts/controllers/story_sheets.js.coffee @@ -66,7 +66,7 @@ class Pettanr.StorySheetsController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/controllers/writing_formats.js.coffee b/app/assets/javascripts/controllers/writing_formats.js.coffee index 8c52bef2..f45a3952 100644 --- a/app/assets/javascripts/controllers/writing_formats.js.coffee +++ b/app/assets/javascripts/controllers/writing_formats.js.coffee @@ -54,7 +54,7 @@ class Pettanr.WritingFormatsController extends Pettanr.AppController destroy: () -> @set_show(@render_destroy) - render_destroy: () -> + render_destroy: (@item) -> @listenTo(@item, 'destroy:success', @destroy_success) @listenTo(@item, 'destroy:fail', @destroy_fail) @item.destroy() diff --git a/app/assets/javascripts/editor.js.coffee b/app/assets/javascripts/editor.js.coffee index b965be50..5ad022a7 100644 --- a/app/assets/javascripts/editor.js.coffee +++ b/app/assets/javascripts/editor.js.coffee @@ -13,6 +13,9 @@ class Editor.EditorModule.DockBase extends Backbone.View tab.body = body tab + remove_tab: (index) -> + @tabs.splice(index, 1) + root_item: () -> @parent.root_item() @@ -246,6 +249,7 @@ class Editor.EditorModule.DockModule.TabModule.BoardLabel extends Editor.EditorM }) this.$el.append(linked_elements_tab.render().el) @destroy_button = new Editor.EditorModule.DestroyButton() + @listenTo(@destroy_button, 'destroy', @destroy) this.$el.append(@destroy_button.render().el) render: () -> @@ -255,6 +259,9 @@ class Editor.EditorModule.DockModule.TabModule.BoardLabel extends Editor.EditorM @face() this + destroy: () -> + @trigger('destroy', @element()) + class Editor.EditorModule.DockModule.TabModule.BoardBody extends Editor.EditorModule.DockModule.TabModule.Body board: () -> @parent @@ -283,8 +290,12 @@ class Editor.EditorModule.DestroyButton extends Backbone.View }, text: false } + @delegateEvents({'click': @click}) this dom_id: () -> @dom_id() + '-destroy_button' + click: () -> + @trigger('destroy') + diff --git a/app/assets/javascripts/editor/panel_editor.js.coffee b/app/assets/javascripts/editor/panel_editor.js.coffee index 1e148a6e..ddf3885f 100644 --- a/app/assets/javascripts/editor/panel_editor.js.coffee +++ b/app/assets/javascripts/editor/panel_editor.js.coffee @@ -21,6 +21,7 @@ class Editor.PanelEditor extends Backbone.View @listenTo(@dock, 'save:fail', @post_fail) @listenTo(@dock, 'add:element', @add_element) @listenTo(@dock, 'add:credit', @add_credit) + @listenTo(@dock, 'destroy', @destroy) add_element: (element) -> @body.add_element(element) @@ -28,6 +29,9 @@ class Editor.PanelEditor extends Backbone.View add_credit: (element) -> @credits.add_picture(element.picture()) + destroy: (element, index) -> + @remove_element(element) + remove_element: (element) -> @body.remove_element(element) diff --git a/app/assets/javascripts/editor/panel_editor/dock.js.coffee b/app/assets/javascripts/editor/panel_editor/dock.js.coffee index bb2b3d2c..8549d8b6 100644 --- a/app/assets/javascripts/editor/panel_editor/dock.js.coffee +++ b/app/assets/javascripts/editor/panel_editor/dock.js.coffee @@ -45,6 +45,7 @@ class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase @listenTo(@root_bay.body, 'save:fail', @post_fail) @listenTo(@element_bay, 'add:credit', @add_credit) @listenTo(@element_bay, 'pick', @pick) + @listenTo(@element_bay, 'destroy', @destroy) render: () -> this.$el.html('') @@ -103,6 +104,9 @@ class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase @scenario_bay.add_element(new_item) @trigger('add:element', new_item) + destroy: (element) -> + @trigger('destroy', element) + quit: () -> @root_bay.body.form.quit() diff --git a/app/assets/javascripts/editor/panel_editor/element.js.coffee b/app/assets/javascripts/editor/panel_editor/element.js.coffee index 10c83140..8eb4dbf9 100644 --- a/app/assets/javascripts/editor/panel_editor/element.js.coffee +++ b/app/assets/javascripts/editor/panel_editor/element.js.coffee @@ -6,6 +6,7 @@ class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.Dock parent: this }) @listenTo(@boards, 'sorted', @sorted) + @removed_elements = [] add_element: (element) -> index = @tabs.length @@ -13,26 +14,57 @@ class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.Dock tab = new Editor.EditorModule.DockModule.ElementBoard({ parent: this, index: index, name: element.item_name(), element: element }) + bl = new Editor.EditorModule.DockModule.TabModule.ElementBoardLabel({ + parent: tab, + name: element.item_name() + }) bb = new Editor.EditorModule.DockModule.TabModule.ElementBoardBody({parent: tab}) - @add_tab( - tab, - new Editor.EditorModule.DockModule.TabModule.ElementBoardLabel({ - parent: tab, - name: element.item_name() - }), - bb - ) + @listenTo(bl, 'destroy', @destroy) + @add_tab(tab, bl, bb) @boards.add_element_tab(tab) @boards.$el.tabs('refresh') if element.constructor.has_picture() @trigger('add:credit', element) + remove_element: (element) -> + if !element.isNew() + element.set({_destroy: true}, {silent: true}) + @removed_elements.push element + t = null + _.each @tabs, (tab) => + if tab.element + if tab.element.cid == element.cid + t = tab + return + t.label.remove() + # t.body.form.remove_elements() + t.body.remove() + @remove_tab(t.index) + @unshift_z() + shift_z: () -> new_tab_z = @new_tab.label.z() _.each @tabs, (tab) -> z = tab.label.z() tab.label.$el.attr('data-z', z + 1) if z >= new_tab_z # new tab too + unshift_z: () -> + @boards.labels.reorder() + new_tab_z = @new_tab.label.z() + index = 0 + _.each @tabs, (tab) -> + z = tab.label.z() + tab.label.$el.attr('data-z', z + 1) if z >= new_tab_z # new tab too + tab.index = index + index++ + t = 0 + _.each @tabs, (tab) => + if tab.element + tab.element.set({ + z: t + 1, t: t + }, {silent: true}) + t++ + add_new_tab: () -> @new_tab = new Editor.EditorModule.DockModule.NewElementBoard({ parent: this, index: 0, name: 'new' @@ -95,12 +127,20 @@ class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.Dock name = form.item.table_name() + '_attributes' attrs[name] ||= [] attrs[name].push(form.save_data()) + _.each @removed_elements, (element) -> + name = element.table_name() + '_attributes' + attrs[name] ||= [] + attrs[name].push({id: element.get('id'), _destroy: true}) attrs pick: (new_item) -> @add_element(new_item) @trigger('pick', new_item) + destroy: (element) -> + @remove_element(element) + @trigger('destroy', element) + class Editor.EditorModule.DockModule.TabModule.ElementBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel class Editor.EditorModule.DockModule.TabModule.ElementBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody diff --git a/app/assets/javascripts/editor/panel_editor/element/boards.js.coffee b/app/assets/javascripts/editor/panel_editor/element/boards.js.coffee index 0d1d3a48..0cf61011 100644 --- a/app/assets/javascripts/editor/panel_editor/element/boards.js.coffee +++ b/app/assets/javascripts/editor/panel_editor/element/boards.js.coffee @@ -47,10 +47,7 @@ class Editor.EditorModule.DockModule.ElementBay.Labels extends Backbone.View label.destroy_button.render() this.$el.sortable { update: (event, ui) -> - z = 0 - $('li', $(@)).map -> - $(@).attr('data-z', z) - z++ + _this.reorder() _this.trigger('sorted') } this @@ -64,3 +61,9 @@ class Editor.EditorModule.DockModule.ElementBay.Labels extends Backbone.View bay: () -> @parent.parent + reorder: () -> + z = 0 + $('li', this.$el).map -> + $(@).attr('data-z', z) + z++ + diff --git a/app/assets/javascripts/locmare/form.js.coffee b/app/assets/javascripts/locmare/form.js.coffee index 65a30e9f..c294c1f5 100644 --- a/app/assets/javascripts/locmare/form.js.coffee +++ b/app/assets/javascripts/locmare/form.js.coffee @@ -126,6 +126,11 @@ class Locmare.Form extends Locmare.FormBase @child_forms[child_element_name].push(form) form + remove_elements: () -> + _.each @child_forms, (child_form, name) => + child_form.item.set({_destroy: true}, {silent: true}) + child_form.remove_elements() + init_fields: () -> _.each @manifest.field_names, (field_name) => field_manifest = @manifest.fields[field_name] diff --git a/app/assets/javascripts/locmare/list_group/lib/pager.js.coffee b/app/assets/javascripts/locmare/list_group/lib/pager.js.coffee index f1010da3..8d9d5cb2 100644 --- a/app/assets/javascripts/locmare/list_group/lib/pager.js.coffee +++ b/app/assets/javascripts/locmare/list_group/lib/pager.js.coffee @@ -3,7 +3,8 @@ class Locmare.ListGroupModule.LibModule.Pager pagers = { default: Locmare.ListGroupModule.LibModule.PagerModule.Default, offset: Locmare.ListGroupModule.LibModule.PagerModule.Offset, - unlimited: Locmare.ListGroupModule.LibModule.PagerModule.Unlimited + unlimited: Locmare.ListGroupModule.LibModule.PagerModule.Unlimited, + more: Locmare.ListGroupModule.LibModule.PagerModule.More } c = pagers[page_status.type] return null if not page_status.total_page @@ -181,3 +182,30 @@ class Locmare.ListGroupModule.LibModule.PagerModule.LastPage extends Locmare.Lis content: () -> '>>' +class Locmare.ListGroupModule.LibModule.PagerModule.More extends Backbone.View + tagName: 'div' + className: 'pagination' + + initialize: (options) -> + @params = options.params + + @controller = Manifest.manifest().controllers[@params['controller']] + @action = @controller.actions[@params['action']] + @action = @action.original if @action.original + + render: () -> + this.$el.html('') + linked_caption = new Tag.A({ + attr: {href: '/' + @url()}, + content: 'More...' + }) + @listenTo(linked_caption, 'click', @click) + this.$el.html(linked_caption.render().el) + this + + url: () -> + @action.url @params + + click: () -> + @trigger('http_get', @url()) + diff --git a/app/assets/javascripts/locmare/profiler/association/has_many.js.coffee b/app/assets/javascripts/locmare/profiler/association/has_many.js.coffee index 1805c60d..64c4f36f 100644 --- a/app/assets/javascripts/locmare/profiler/association/has_many.js.coffee +++ b/app/assets/javascripts/locmare/profiler/association/has_many.js.coffee @@ -11,6 +11,9 @@ class Locmare.ProfilerModule.AssociationModule.HasMany extends Backbone.View action.path_name(), action.name, {id: @item().get('id'), page: 1, page_size: 3} ) + @pager = new Locmare.ListGroupModule.LibModule.PagerModule.More({ + params: {controller: action.path_name(), action: action.name, id: @item().get('id')} + }) clear: () -> this.$el.html('') diff --git a/app/assets/javascripts/peta/element_nestable_content.js.coffee b/app/assets/javascripts/peta/element_nestable_content.js.coffee index b28fdcd1..2087526b 100644 --- a/app/assets/javascripts/peta/element_nestable_content.js.coffee +++ b/app/assets/javascripts/peta/element_nestable_content.js.coffee @@ -84,13 +84,20 @@ class Peta.ElementNestableContent extends Peta.Content elements.release() fix_elements: () -> + return _.each @attributes, (elements, name) => if _.isArray(elements) # has many association model = @my_class().my_manifest().associations.has_many[name].model() _.each elements, (element) => - element.fix() + if @has('_destroy') + element.release() # destroy element by editor + else + element.fix() else if _.isObject(elements) # has one association - elements.fix() + if @has('_destroy') + element.release() + else + element.fix() diff --git a/app/assets/javascripts/views/artists/show.js.coffee b/app/assets/javascripts/views/artists/show.js.coffee index f0f2b74c..33f646bf 100644 --- a/app/assets/javascripts/views/artists/show.js.coffee +++ b/app/assets/javascripts/views/artists/show.js.coffee @@ -1,9 +1,55 @@ +class Pettanr.Views.Artist.ShowModule +class Pettanr.Views.Artist.ShowModule.Header extends Pettanr.Views.Show.Header + + initialize: (options) -> + super(options) + +class Pettanr.Views.Artist.ShowModule.Body extends Backbone.View + + initialize: (options) -> + super(options) + @item = options.item + + render: () -> + this.$el.html('') + resource_pictures_params = {controller: 'resource_pictures', action: 'by_artist', id: @item.get('id')} + resource_pictures_controller = Manifest.manifest().controllers[resource_pictures_params['controller']] + resource_pictures_action = resource_pictures_controller.actions[resource_pictures_params['action']] + @resource_pictures_url = resource_pictures_action.url(resource_pictures_params) + @resource_pictures_caption = new Tag.A({ + attr: {href: '/' + @resource_pictures_url}, + content: Pettanr.AppHelper.t_m('ResourcePicture') + }) + @listenTo(@resource_pictures_caption, 'click', @click_resource_pictures_caption) + this.$el.append(@resource_pictures_caption.render().el) + this + + click_resource_pictures_caption: () -> + @trigger('http_get', @resource_pictures_url) + class Pettanr.Views.Artist.Show extends Backbone.View tagName: 'div' initialize: (options) -> + @item = options.item + @header = new Pettanr.Views.Artist.ShowModule.Header({ + item: @item, + caption: @item.get('name'), + icon_url: @item.show_url(), + caption_url: @item.show_url(), + prof_url: @item.prof_url() + }) + @body = new Pettanr.Views.Artist.ShowModule.Body({ + item: @item, + }) + @listenTo(@body, 'http_get', @http_get) render: () -> this.$el.html('') + this.$el.append(@header.render().el) + this.$el.append(@body.render().el) this + http_get: (url) -> + @trigger('http_get', url) + diff --git a/app/assets/javascripts/views/ground_colors/symbol.js.coffee b/app/assets/javascripts/views/ground_colors/symbol.js.coffee index 24c30a81..42ccff48 100644 --- a/app/assets/javascripts/views/ground_colors/symbol.js.coffee +++ b/app/assets/javascripts/views/ground_colors/symbol.js.coffee @@ -11,16 +11,12 @@ class Pettanr.Views.GroundColor.Symbol extends Backbone.View render: () -> this.$el.addClass(@class_name) - linked_caption = new Tag.A({ - attr: {href: '/' + @item.show_url()}, - content: @bg_color() - }) - @listenTo(linked_caption, 'click', @click) - this.$el.html(linked_caption.render().el) + this.$el.html(@bg_color()) attr = { style: Pettanr.to_style(@style()) } this.$el.attr(attr) + @delegateEvents({'click': @click}) this fore_color: () -> diff --git a/app/assets/javascripts/views/panels/body.js.coffee b/app/assets/javascripts/views/panels/body.js.coffee index 065490ad..3de98bb6 100644 --- a/app/assets/javascripts/views/panels/body.js.coffee +++ b/app/assets/javascripts/views/panels/body.js.coffee @@ -43,6 +43,11 @@ class Pettanr.Views.Panel.Body extends Backbone.View view.render() view + remove_element: (element) -> + _.each @views, (view) => + if view.element.cid == element.cid + view.remove() + element_class: (element) -> Pettanr.Views[element.singular()].Element diff --git a/app/assets/javascripts/views/users/account.js.coffee b/app/assets/javascripts/views/users/account.js.coffee index 5acf90dd..e6a2d2e0 100644 --- a/app/assets/javascripts/views/users/account.js.coffee +++ b/app/assets/javascripts/views/users/account.js.coffee @@ -4,7 +4,7 @@ class Pettanr.Views.User.Account extends Backbone.View initialize: (options) -> @author = Pettanr.cache.operators.author - @artis = Pettanr.cache.operators.artist + @artist = Pettanr.cache.operators.artist render: () -> this.$el.html('') diff --git a/app/models/speech_balloon.rb b/app/models/speech_balloon.rb index 0289e591..5f7c63d1 100644 --- a/app/models/speech_balloon.rb +++ b/app/models/speech_balloon.rb @@ -5,8 +5,8 @@ class SpeechBalloon < Peta::Element belongs_to :speech_balloon_template belongs_to :panel - accepts_nested_attributes_for :balloon - accepts_nested_attributes_for :speech + accepts_nested_attributes_for :balloon, :allow_destroy => true + accepts_nested_attributes_for :speech, :allow_destroy => true validates :panel_id, :numericality => {:allow_blank => true} validates :speech_balloon_template_id, :presence => true, :numericality => true, :existence => {:both => false} -- 2.11.0