From eaaa49b6defd70aaef6b9fc6658224bb2d4f522a Mon Sep 17 00:00:00 2001 From: yasushiito Date: Fri, 13 Feb 2015 08:11:33 +0900 Subject: [PATCH] fix remote folder's redirect --- app/assets/javascripts/controllers.js.coffee | 13 ++++++------- .../javascripts/controllers/artists.js.coffee | 22 ++++++++++++++++------ .../javascripts/controllers/authors.js.coffee | 22 ++++++++++++++++------ .../javascripts/controllers/comics.js.coffee | 22 ++++++++++++++++------ .../javascripts/controllers/folders.js.coffee | 4 ++++ .../javascripts/controllers/scrolls.js.coffee | 14 ++++---------- .../javascripts/controllers/stories.js.coffee | 22 ++++++++++++++++------ app/assets/javascripts/locmare/form.js.coffee | 2 +- app/assets/javascripts/models/artist.js.coffee | 2 ++ app/assets/javascripts/models/author.js.coffee | 2 ++ app/assets/javascripts/models/comic.js.coffee | 5 +++++ app/assets/javascripts/views/layout.js.coffee | 4 ++++ app/assets/javascripts/views/layouts/sns.js.coffee | 3 +++ 13 files changed, 95 insertions(+), 42 deletions(-) diff --git a/app/assets/javascripts/controllers.js.coffee b/app/assets/javascripts/controllers.js.coffee index 0cc84d05..13ab3cc0 100644 --- a/app/assets/javascripts/controllers.js.coffee +++ b/app/assets/javascripts/controllers.js.coffee @@ -87,27 +87,26 @@ class Pettanr.AppController @item.boosts 'post' @render_form(save_func) - render_form: (save_func) -> + render_form: () -> @form = Locmare.Form.factory({ form_name: @item.item_name(), item: @item, mounted: true, submit: 'default', operators: @operators, - action: '/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')), - save_func: save_func + action: '/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')) }) @listenTo(@form, 'post', @create) @listenTo(@form, 'put', @update) @form.render() @trigger('ready', @form) - form_new: (save_func) -> + form_new: () -> @set_new() - @render_form(save_func) + @render_form() - form_edit: (save_func) -> - @set_edit(save_func) + form_edit: () -> + @set_edit() navigate: (url) -> @trigger('navigate', url) diff --git a/app/assets/javascripts/controllers/artists.js.coffee b/app/assets/javascripts/controllers/artists.js.coffee index e597b419..3a792075 100644 --- a/app/assets/javascripts/controllers/artists.js.coffee +++ b/app/assets/javascripts/controllers/artists.js.coffee @@ -26,15 +26,25 @@ class Pettanr.ArtistsController extends Pettanr.AppController new: () -> @trigger('retitle', @params) - @form_new() + @form_new(@create) edit: () -> @trigger('retitle', @params) - @form_edit() - - create: () -> - - update: () -> + @form_edit(@update) + + create: (form) -> + form.item.overwrite(@operators) + if form.save() + @trigger('redirect', '/home/configure') + else + @not_created() + + update: (form) -> + form.item.overwrite(@operators) + if form.save() + @trigger('redirect', '/home/configure') + else + @not_updated() destroy: () -> diff --git a/app/assets/javascripts/controllers/authors.js.coffee b/app/assets/javascripts/controllers/authors.js.coffee index 629b6cb3..5299023f 100644 --- a/app/assets/javascripts/controllers/authors.js.coffee +++ b/app/assets/javascripts/controllers/authors.js.coffee @@ -26,15 +26,25 @@ class Pettanr.AuthorsController extends Pettanr.AppController new: () -> @trigger('retitle', @params) - @form_new() + @form_new(@create) edit: () -> @trigger('retitle', @params) - @form_edit() - - create: () -> - - update: () -> + @form_edit(@update) + + create: (form) -> + form.item.overwrite(@operators) + if form.save() + @trigger('redirect', '/home/configure') + else + @not_created() + + update: (form) -> + form.item.overwrite(@operators) + if form.save() + @trigger('redirect', '/home/configure') + else + @not_updated() destroy: () -> diff --git a/app/assets/javascripts/controllers/comics.js.coffee b/app/assets/javascripts/controllers/comics.js.coffee index 8dc41d0e..0a429b1b 100644 --- a/app/assets/javascripts/controllers/comics.js.coffee +++ b/app/assets/javascripts/controllers/comics.js.coffee @@ -34,15 +34,25 @@ class Pettanr.ComicsController extends Pettanr.AppController new: () -> @trigger('retitle', @params) - @form_new() + @form_new(@create) edit: () -> @trigger('retitle', @params) - @form_edit() - - create: () -> - - update: () -> + @form_edit(@update) + + create: (form) -> + form.item.overwrite(@operators) + if form.save() + @trigger('redirect', form.item.show_url()) + else + @not_created() + + update: (form) -> + form.item.overwrite(@operators) + if form.save() + @trigger('redirect', form.item.show_url()) + else + @not_updated() destroy: () -> diff --git a/app/assets/javascripts/controllers/folders.js.coffee b/app/assets/javascripts/controllers/folders.js.coffee index 24403906..266a1c0e 100644 --- a/app/assets/javascripts/controllers/folders.js.coffee +++ b/app/assets/javascripts/controllers/folders.js.coffee @@ -38,6 +38,7 @@ class Pettanr.FoldersController extends Pettanr.AppController vp = new Pettanr.ViewPicker({operators: @operators}) @listenTo(vp, 'ready', @refresh) @listenTo(vp, 'retitle', @retitle) + @listenTo(vp, 'redirect', @redirect_to) vp.navigate(@item.remote_url()) else @children_html() @@ -59,3 +60,6 @@ class Pettanr.FoldersController extends Pettanr.AppController retitle: (params, str = null) -> @trigger('retitle', @params, str = null) + redirect_to: (url) -> + @trigger('redirect', url) + diff --git a/app/assets/javascripts/controllers/scrolls.js.coffee b/app/assets/javascripts/controllers/scrolls.js.coffee index 24bc8882..cf85332e 100644 --- a/app/assets/javascripts/controllers/scrolls.js.coffee +++ b/app/assets/javascripts/controllers/scrolls.js.coffee @@ -46,29 +46,23 @@ class Pettanr.ScrollsController extends Pettanr.AppController new: () -> @trigger('retitle', @params) - @form_new(@create) + @form_new() edit: () -> @trigger('retitle', @params) - @form_edit(@update) + @form_edit() create: (form) -> form.item.overwrite(@operators) if form.save() - vp = new Pettanr.ViewPicker({operators: @operators}) - @listenTo(vp, 'ready', @redirected) - @listenTo(vp, 'retitle', @retitle) - vp.navigate(form.item.show_url()) + @trigger('redirect', form.item.show_url()) else @not_created() update: (form) -> form.item.overwrite(@operators) if form.save() - vp = new Pettanr.ViewPicker({operators: @operators}) - @listenTo(vp, 'ready', @redirected) - @listenTo(vp, 'retitle', @retitle) - vp.navigate(form.item.show_url()) + @trigger('redirect', form.item.show_url()) else @not_updated() diff --git a/app/assets/javascripts/controllers/stories.js.coffee b/app/assets/javascripts/controllers/stories.js.coffee index 207acc31..1a82128a 100644 --- a/app/assets/javascripts/controllers/stories.js.coffee +++ b/app/assets/javascripts/controllers/stories.js.coffee @@ -38,15 +38,25 @@ class Pettanr.StoriesController extends Pettanr.AppController new: () -> @trigger('retitle', @params) - @form_new() + @form_new(@create) edit: () -> @trigger('retitle', @params) - @form_edit() - - create: () -> - - update: () -> + @form_edit(@update) + + create: (form) -> + form.item.overwrite(@operators) + if form.save() + @trigger('redirect', form.item.show_url()) + else + @not_created() + + update: (form) -> + form.item.overwrite(@operators) + if form.save() + @trigger('redirect', form.item.show_url()) + else + @not_updated() destroy: () -> diff --git a/app/assets/javascripts/locmare/form.js.coffee b/app/assets/javascripts/locmare/form.js.coffee index 02caa555..e459f2bc 100644 --- a/app/assets/javascripts/locmare/form.js.coffee +++ b/app/assets/javascripts/locmare/form.js.coffee @@ -54,7 +54,6 @@ class Locmare.Form extends Locmare.FormBase super(options) @submit = options.submit @action = options.action - @save_func = options.save_func @child_forms = {} @item.boosts 'post' @init_fields() @@ -139,6 +138,7 @@ class Locmare.Form extends Locmare.FormBase post: () -> _.each @fields, (field) => @item.set(field.field_name, field.val()) + @item.unset('id') # isNew use flag that id attr set @trigger('post', this) return false diff --git a/app/assets/javascripts/models/artist.js.coffee b/app/assets/javascripts/models/artist.js.coffee index 921168fd..4c8c80f2 100644 --- a/app/assets/javascripts/models/artist.js.coffee +++ b/app/assets/javascripts/models/artist.js.coffee @@ -12,6 +12,8 @@ class Pettanr.Artist extends Peta.Owner name: 'no name' } + overwrite: (options) -> + icon_with_caption_view: (half = true, column_name = 'name', length = 12) -> new Pettanr.Views.Common.IconWithCaption({item: this, half: half, column_name: column_name, length: length}) diff --git a/app/assets/javascripts/models/author.js.coffee b/app/assets/javascripts/models/author.js.coffee index 4c8745e7..3695a6f1 100644 --- a/app/assets/javascripts/models/author.js.coffee +++ b/app/assets/javascripts/models/author.js.coffee @@ -12,6 +12,8 @@ class Pettanr.Author extends Peta.Owner name: 'no name' } + overwrite: (options) -> + icon_with_caption_view: (half = true, column_name = 'name', length = 12) -> new Pettanr.Views.Common.IconWithCaption({item: this, half: half, column_name: column_name, length: length}) diff --git a/app/assets/javascripts/models/comic.js.coffee b/app/assets/javascripts/models/comic.js.coffee index 3699848c..9867e34d 100644 --- a/app/assets/javascripts/models/comic.js.coffee +++ b/app/assets/javascripts/models/comic.js.coffee @@ -25,6 +25,11 @@ class Pettanr.Comic extends Peta.Binder else @get('visible') > 0 + overwrite: (options) -> + operators = options.operators + return false if not operators.author + @set('author_id', operators.author.id) + symbol_filename: () -> initialize: () -> diff --git a/app/assets/javascripts/views/layout.js.coffee b/app/assets/javascripts/views/layout.js.coffee index acca8550..0a2e35fe 100644 --- a/app/assets/javascripts/views/layout.js.coffee +++ b/app/assets/javascripts/views/layout.js.coffee @@ -21,6 +21,9 @@ class Pettanr.ViewPicker extends Backbone.View refresh: (view) -> @trigger('ready', view) + redirect_to: (url) -> + @trigger('redirect', url) + class Pettanr.Views.Layout class Pettanr.Views.Layout.ControllerManager @@ -155,6 +158,7 @@ class Pettanr.Views.Layout.Sns extends Pettanr.Views.Layout.Base @listenTo(@header, 'sign_out:success', @sign_out_success) @listenTo(@header, 'sign_out:fail', @sign_out_fail) @listenTo(@body, 'navigate', @body_navigate) + @listenTo(@body, 'retitle', @retitle) @listenTo(@body, 'sign_in', @sign_in) @listenTo(@body, 'sign_out', @sign_out) diff --git a/app/assets/javascripts/views/layouts/sns.js.coffee b/app/assets/javascripts/views/layouts/sns.js.coffee index f30e9f4d..ba47f7a1 100644 --- a/app/assets/javascripts/views/layouts/sns.js.coffee +++ b/app/assets/javascripts/views/layouts/sns.js.coffee @@ -104,6 +104,9 @@ class Pettanr.Views.Layout.Sns.Body extends Backbone.View @local_router.navigate(url, true) @trigger('navigate', url) + redirect_to: (url) -> + @navigate(url) + operators: () -> @parent.operators -- 2.11.0