OSDN Git Service

fix: fetch fail
authoryasushiito <yas@pen-chan.jp>
Mon, 24 Aug 2015 02:16:41 +0000 (11:16 +0900)
committeryasushiito <yas@pen-chan.jp>
Mon, 24 Aug 2015 02:16:41 +0000 (11:16 +0900)
24 files changed:
app/assets/images/config.png [new file with mode: 0644]
app/assets/javascripts/controllers/panels.js.coffee
app/assets/javascripts/locmare/filer/body/file_body/file_item/caption/default/face/method.js.coffee
app/assets/javascripts/locmare/filer/body/file_body/file_item/symbol/default/face/picture.js.coffee
app/assets/javascripts/locmare/profiler/association/belongs_to.js.coffee
app/assets/javascripts/locmare/profiler/association/has_many.js.coffee
app/assets/javascripts/locmare/profiler/association/has_one.js.coffee
app/assets/javascripts/models/license.js.coffee
app/assets/javascripts/models/original_picture.js.coffee
app/assets/javascripts/models/picture.js.coffee
app/assets/javascripts/models/resource_picture.js.coffee
app/assets/javascripts/models/speech_balloon.js.coffee
app/assets/javascripts/models/system_picture.js.coffee
app/assets/javascripts/peta/item.js.coffee
app/assets/javascripts/pettanr/inspire.js.coffee
app/assets/javascripts/view/credits.js.coffee
app/assets/javascripts/view/faced_label_button.js.coffee
app/assets/javascripts/view/image.js.coffee
app/assets/javascripts/view/show/header/authored_by.js.coffee
app/assets/javascripts/view/summary/binder.js.coffee
app/assets/javascripts/view/summary/leaf.js.coffee
app/assets/javascripts/views/panels/show.js.coffee
app/assets/javascripts/views/scrolls/play.js.coffee
config/locales/yasapp.ja.yml

diff --git a/app/assets/images/config.png b/app/assets/images/config.png
new file mode 100644 (file)
index 0000000..305b9c0
Binary files /dev/null and b/app/assets/images/config.png differ
index 1b68d11..685bf07 100644 (file)
@@ -62,6 +62,8 @@ class Pettanr.PanelsController extends Pettanr.AppController
       success: (@item) ->\r
         @item.boosts 'post'\r
         @render_form()\r
+      fail: (response, opt) ->\r
+        @trigger('fail', response, opt)\r
     })\r
     @trigger('done', @params)\r
   \r
index 6948aa7..55bf05e 100644 (file)
@@ -10,6 +10,8 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.CaptionItemCo
       @item[@method_name()].call(@item, this, {\r
         success: (caption) =>\r
           @trigger('ready:caption', Pettanr.View.replace_empty(caption))\r
+        fail: (response, opt) =>\r
+          @trigger('ready:caption', I18n.t('yasapp.unresolved'))\r
       })\r
     this\r
   \r
index cebfb28..fd2855b 100644 (file)
@@ -10,6 +10,8 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SymbolItemCol
       @item[@method_name()].call(@item, this, {\r
         success: (symbol) =>\r
           @trigger('ready:symbol', symbol)\r
+        fail: (response, opt) =>\r
+          @trigger('ready:symbol', Pettanr.View.Image.icon_error_file())\r
       })\r
     this\r
   \r
index ad6789f..03089c1 100644 (file)
@@ -57,6 +57,8 @@ class Locmare.ProfilerModule.AssociationModule.BelongsTo extends Pettanr.View
         @set_filer()\r
         @render()\r
         @filer.add_pick(target_model)\r
+      fail: (response, opt) =>\r
+        @open_error_dialog(response, opt)\r
     })\r
   \r
   http_get: (url) ->\r
index 6d5af92..010d851 100644 (file)
@@ -18,6 +18,8 @@ class Locmare.ProfilerModule.AssociationModule.HasMany extends Pettanr.View
       success: (page_status) =>\r
         @set_filer()\r
         @render()\r
+      fail: (response, opt) =>\r
+        @open_error_dialog(response, opt)\r
     })\r
     this\r
   \r
@@ -45,11 +47,14 @@ class Locmare.ProfilerModule.AssociationModule.HasMany extends Pettanr.View
     @association.profiler\r
   \r
   add_pick: (target_model) ->\r
-    @list.open((page_status) =>\r
-      @set_filer()\r
-      @render()\r
-      @filer.add_pick(target_model)\r
-    )\r
+    @list.open(this, {\r
+      success: (page_status) =>\r
+        @set_filer()\r
+        @render()\r
+        @filer.add_pick(target_model)\r
+      fail: (response, opt) =>\r
+        @open_error_dialog(response, opt)\r
+    })\r
   \r
   http_get: (url) ->\r
     @trigger('http_get', url)\r
index e9e5790..0c6c6e0 100644 (file)
@@ -15,6 +15,8 @@ class Locmare.ProfilerModule.AssociationModule.HasOne extends Pettanr.View
       success: (page_status) =>\r
         @set_filer()\r
         @render()\r
+      fail: (response, opt) =>\r
+        @open_error_dialog(response, opt)\r
     })\r
     this\r
   \r
@@ -43,11 +45,14 @@ class Locmare.ProfilerModule.AssociationModule.HasOne extends Pettanr.View
     @association.profiler\r
   \r
   add_pick: (target_model) ->\r
-    @list.open((page_status) =>\r
-      @set_filer()\r
-      @render()\r
-      @filer.add_pick(target_model)\r
-    )\r
+    @list.open(this, {\r
+      success: (page_status) =>\r
+        @set_filer()\r
+        @render()\r
+        @filer.add_pick(target_model)\r
+      fail: (response, opt) =>\r
+        @open_error_dialog(response, opt)\r
+    })\r
   \r
   http_get: (url) ->\r
     @trigger('http_get', url)\r
index 44998c1..9f734b5 100644 (file)
@@ -20,6 +20,8 @@ class Pettanr.License extends Peta.SystemResource
       success: (license_group) => \r
         caption = license_group.escape('caption') + '/' + @escape('caption')\r
         options.success.call(context, caption)\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   is_own: () ->\r
index 85cc197..a49e44f 100644 (file)
@@ -30,6 +30,8 @@ class Pettanr.OriginalPicture extends Peta.Content
     @retrieve(this, {\r
       success: (symbol_item) => \r
         options.success.call(context, symbol_item.symbol_file())\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   filer_caption: (context, options) ->\r
@@ -44,6 +46,8 @@ class Pettanr.OriginalPicture extends Peta.Content
           head = _.first(pictures)\r
           Pettanr.to_s(head.get('revision'))\r
         options.success.call(context, caption)\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   is_unpublished: () ->\r
index 7370336..4cbe1a3 100644 (file)
@@ -43,6 +43,8 @@ class Pettanr.Picture extends Peta.Content
     @retrieve(this, {\r
       success: (symbol_item) => \r
         options.success.call(context, symbol_item.to_symbol())\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   is_enable: () ->\r
index 7ca045e..d9290a0 100644 (file)
@@ -53,6 +53,8 @@ class Pettanr.ResourcePicture extends Peta.Content
     @retrieve(this, {\r
       success: (symbol_item) => \r
         options.success.call(context, symbol_item.symbol_file())\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   initialize: (attr = {}, options = {}) ->\r
index 6fb8af1..4cb0e9c 100644 (file)
@@ -41,7 +41,11 @@ class Pettanr.SpeechBalloon extends Peta.Element
           success: (speech) => \r
             plain_scenario = @plain_scenario() + balloon.plain_scenario() + speech.plain_scenario()\r
             options.success.call(context, plain_scenario)\r
+          fail: (response, opt) =>\r
+            options.fail.call(context, response, opt)\r
         })\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   plain_scenario: () ->\r
index 148a6d0..58e76a4 100644 (file)
@@ -23,6 +23,8 @@ class Pettanr.SystemPicture extends Peta.SystemResource
     @retrieve(this, {\r
       success: (symbol_item) => \r
         options.success.call(context, symbol_item.symbol_file())\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   initialize: (attr = {}, options = {}) ->\r
index f5fa53b..c11b572 100644 (file)
@@ -153,6 +153,8 @@ class Peta.Item extends Backbone.Model
       @fetch_association(route, cxt, {\r
         success: (association_item, options) =>\r
           options.success.call(context, association_item)\r
+        fail: (response, opt) =>\r
+          options.fail.call(context, response, opt)\r
         context: context,\r
         options: options\r
       })\r
@@ -161,6 +163,8 @@ class Peta.Item extends Backbone.Model
       @fetch_association(route, this, {\r
         success: (association_item, options) =>\r
           association_item.get_association(routes, this, options)\r
+        fail: (response, opt) =>\r
+          options.fail.call(context, response, opt)\r
         context: context,\r
         options: options\r
       })\r
@@ -170,6 +174,8 @@ class Peta.Item extends Backbone.Model
     fetch_options = {\r
       success: (association_item) =>\r
         options.success.call(context, association_item, options.options)\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     }\r
     if a.belongs_to[name]\r
       @get_parent(name, context, fetch_options)\r
@@ -199,6 +205,8 @@ class Peta.Item extends Backbone.Model
         callback = options.success\r
         item = items[0]\r
         callback.call(context, item)\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   get_children: (has_many_name, context, options = null) ->\r
@@ -207,6 +215,8 @@ class Peta.Item extends Backbone.Model
       success: (items) =>\r
         callback = options.success\r
         callback.call(context, items)\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   has_many: (has_many_name) ->\r
@@ -232,6 +242,8 @@ class Peta.Item extends Backbone.Model
     @get_association(routes, this, {\r
       success: (association) => \r
         options.success.call(context, association)\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   boosts: (level) ->\r
@@ -305,6 +317,8 @@ class Peta.Item extends Backbone.Model
     @trace_to('symbol', this, {\r
       success: (symbol_item) => \r
         options.success.call(context, symbol_item.symbol_file())\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   @face_file: () ->\r
index b706feb..16b36e4 100644 (file)
@@ -13,6 +13,8 @@ class Pettanr.Inspire
         @set_root()\r
         @set_elements()\r
         @save(context, options)\r
+      fail: (model, response) ->\r
+        options.fail.call(context, response)\r
     })\r
   \r
   set_root: () ->\r
index e233a01..f69deee 100644 (file)
@@ -22,6 +22,8 @@ class Pettanr.View.Credits extends Pettanr.View
           credit = new Pettanr.View.Credit(picture, @options)\r
           @listenTo(credit, 'click:icon', @click_credit_icon)\r
           this.$el.append(credit.render().el)\r
+        fail: (response, opt) =>\r
+          @open_error_dialog(response, opt)\r
       })\r
   \r
   click_credit_icon: (item) ->\r
index 7f2b9ee..18d979d 100644 (file)
@@ -22,3 +22,28 @@ class Pettanr.View.MiniFacedLabelButton extends Pettanr.View.FacedLabelButton
   face_button_method_name: () ->\r
     'mini_face_button'\r
   \r
+class Pettanr.View.FacedLabelButton.Error extends Pettanr.View\r
+  tagName: 'span'\r
+  \r
+  constructor: () ->\r
+    super()\r
+  \r
+  initialize: () ->\r
+    k = @face_icon_class_name()\r
+    @face_icon = new k(Pettanr.View.Image.icon_error_file())\r
+    @label = I18n.t('yasapp.unresolved')\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    this.$el.append(@face_icon.render().el)\r
+    this.$el.append(@label.render().el)\r
+    this\r
+  \r
+  face_icon_class_name: () ->\r
+    Pettanr.View.Icon\r
+  \r
+class Pettanr.View.MiniFacedLabelButton.Error extends Pettanr.View.FacedLabelButton.Error\r
+  \r
+  face_icon_class_name: () ->\r
+    Pettanr.View.Minicon\r
+  \r
index 104d993..d70966e 100644 (file)
@@ -32,6 +32,9 @@ class Pettanr.View.Image
   @image_dir: () ->\r
     '/images/'\r
   \r
+  @icon_error_file: () ->\r
+    new Pettanr.ImageFile(@image_dir() + 'error.png')\r
+  \r
   @icon_prof_file: () ->\r
     new Pettanr.ImageFile(@image_dir() + 'prof.gif')\r
   \r
index 41651b0..f769180 100644 (file)
@@ -13,6 +13,7 @@ class Pettanr.View.Show.AuthoredBy extends Pettanr.View
   \r
   render: () ->\r
     this.$el.html('')\r
+    this.$el.append(Pettanr.AppHelper.t_a(@content.item_name(), @content.my_class().owner_column()))\r
     author_item_name = @content.my_class().owner_type()\r
     @content.get_parent(author_item_name, this, {\r
       success: (author) =>  # author or artist\r
@@ -21,8 +22,9 @@ class Pettanr.View.Show.AuthoredBy extends Pettanr.View
           click: () =>\r
             @trigger('click', author)\r
         })\r
-        this.$el.append(Pettanr.AppHelper.t_a(@content.item_name(), @content.my_class().owner_column()))\r
         this.$el.append(label_button.render().el)\r
+      fail: (response, opt) =>\r
+        this.$el.append(I18n.t('yasapp.unresolved'))\r
     })\r
     this\r
   \r
index 0caa344..15b656c 100644 (file)
@@ -10,6 +10,8 @@ class Pettanr.View.Summary.Binder extends Pettanr.View.Summary
     @visible = new Tag.Div({\r
       content: Pettanr.AppHelper.t_selected_item(@visible_t, @item.get(@visible_column_name))\r
     })\r
+    this.$el.html('')\r
+    this.$el.append(@visible.render().el)\r
     @item.get_parent('author', this, {\r
       success: (@author) =>\r
         @author_faced_label_button = @author.mini_faced_label_button({\r
@@ -19,9 +21,11 @@ class Pettanr.View.Summary.Binder extends Pettanr.View.Summary
           click: () =>\r
             @trigger('http_get', @author.show_url())\r
         })\r
-        this.$el.html('')\r
-        this.$el.append(@visible.render().el)\r
         this.$el.append(@author_faced_label_button.render().el)\r
+      fail: (response, opt) =>\r
+        @author_faced_label_error = new Pettanr.View.MiniFacedLabelButton.Error({\r
+        })\r
+        this.$el.append(@author_faced_label_error.render().el)\r
     })\r
     this\r
   \r
index f578b07..9b704e2 100644 (file)
@@ -27,6 +27,7 @@ class Pettanr.View.Summary.Leaf.Binder extends Pettanr.View
   \r
   render: () ->\r
     super()\r
+    this.$el.html('')\r
     @item.get_parent(@binder_model.item_name(), this, {\r
       success: (@binder) =>\r
         @face_button = @binder.mini_face_button({\r
@@ -34,6 +35,7 @@ class Pettanr.View.Summary.Leaf.Binder extends Pettanr.View
           click: () =>\r
             @trigger('http_get', @binder.show_url())\r
         })\r
+        this.$el.append(@face_button.render().el)\r
         @binder.get_parent('author', this, {\r
           success: (@author) =>\r
             @author_faced_label_button = @author.mini_faced_label_button({\r
@@ -43,10 +45,14 @@ class Pettanr.View.Summary.Leaf.Binder extends Pettanr.View
               click: () =>\r
                 @trigger('http_get', @author.show_url())\r
             })\r
-            this.$el.html('')\r
-            this.$el.append(@face_button.render().el)\r
             this.$el.append(@author_faced_label_button.render().el)\r
+          fail: (response, opt) =>\r
+            author_faced_label_error = new Pettanr.View.MiniFacedLabelButton.Error({\r
+            })\r
+            this.$el.append(author_faced_label_error.render().el)\r
         })\r
+      fail: (response, opt) =>\r
+        this.$el.append(I18n.t('yasapp.unresolved'))\r
     })\r
     this\r
   \r
@@ -62,6 +68,7 @@ class Pettanr.View.Summary.Leaf.Destination extends Pettanr.View
   \r
   render: () ->\r
     super()\r
+    this.$el.html('')\r
     @item.get_parent(@destination_model.item_name(), this, {\r
       success: (@destination) =>\r
         @face_button = @destination.mini_face_button({\r
@@ -69,6 +76,7 @@ class Pettanr.View.Summary.Leaf.Destination extends Pettanr.View
           click: () =>\r
             @trigger('http_get', @binder.show_url())\r
         })\r
+        this.$el.append(@face_button.render().el)\r
         @destination.get_parent('author', this, {\r
           success: (@author) =>\r
             @author_faced_label_button = @author.mini_faced_label_button({\r
@@ -78,10 +86,14 @@ class Pettanr.View.Summary.Leaf.Destination extends Pettanr.View
               click: () =>\r
                 @trigger('http_get', @author.show_url())\r
             })\r
-            this.$el.html('')\r
-            this.$el.append(@face_button.render().el)\r
             this.$el.append(@author_faced_label_button.render().el)\r
+          fail: (response, opt) =>\r
+            author_faced_label_error = new Pettanr.View.MiniFacedLabelButton.Error({\r
+            })\r
+            this.$el.append(author_faced_label_error.render().el)\r
         })\r
+      fail: (response, opt) =>\r
+        this.$el.append(I18n.t('yasapp.unresolved'))\r
     })\r
     this\r
   \r
index 2bc0455..e8af5f1 100644 (file)
@@ -61,8 +61,8 @@ class Pettanr.Views.Panel.Show.Footer extends Pettanr.View
             inspire.go(@context, {\r
               success: (item) ->\r
                 @trigger('http_get', item.show_url())\r
-              fail: (response) ->\r
-                console.log(response)\r
+              fail: (response, opt) =>\r
+                @open_error_dialog(response, opt)\r
             })\r
         }\r
       )\r
index b9e62fd..9c78936 100644 (file)
@@ -464,7 +464,7 @@ class Pettanr.Views.Scroll.PlayModule.Body extends Pettanr.View
     else\r
       this.$el.html('')\r
       # paginate(@pager)\r
-      credits = new Pettanr.View.Credits({parent: this})\r
+      credits = new Pettanr.View.Credits(this, {icon: true})\r
       @panels = new Pettanr.Views.Scroll.PlayModule.Panels({\r
         parent: this,\r
         binder: @binder,\r
index 7509989..0875080 100644 (file)
@@ -6,10 +6,13 @@ ja:
       subject:
         forbidden: 指定されたコンテンツに対するアクセス権がありません
         not_found: 指定されたコンテンツは存在しません
+        error: 何らかのエラーが発生しました
       detail:
         base: 要因として、次の状況が考えられます。
         forbidden: 他者の非公開コンテンツを操作しようとした。作家登録しないまま制作作業を行おうとした。
         not_found: URLが間違っている。作者によって削除された。
+        error: サーバと通信ができない。プログラムに不備がある。
     guidance:
       author: ようこそ作家登録ページへ。作家登録することでマンガ創作できます。多彩な絵師によるたくさんの素材を利用して、あなたならではのコンテンツを発表できます。製作者コンテンツはマイドキュメントから管理できます。あなたの活躍を心から期待しています。
       artist: ようこそ絵師登録ページへ。絵師登録することであなたの描いたキャラクターをマンガ素材として提供できます。素材はたくさんの作家によって生き生きと動き出すことでしょう。提供したコンテンツはマイドキュメントから管理できます。あなたの活躍を心から期待しています。
+    unresolved: ??未解決??