OSDN Git Service

fix sign, fix layout
authoryasushiito <yas@pen-chan.jp>
Wed, 11 Feb 2015 23:47:04 +0000 (08:47 +0900)
committeryasushiito <yas@pen-chan.jp>
Wed, 11 Feb 2015 23:47:04 +0000 (08:47 +0900)
13 files changed:
app/assets/javascripts/controllers.js.coffee
app/assets/javascripts/controllers/folders.js.coffee
app/assets/javascripts/controllers/panels.js.coffee
app/assets/javascripts/controllers/scrolls.js.coffee
app/assets/javascripts/editor/panel_editor.js.coffee
app/assets/javascripts/locmare/form.js.coffee
app/assets/javascripts/views/layout.js.coffee
app/assets/javascripts/views/layouts/sns.js.coffee
app/assets/javascripts/views/panels/form.js.coffee
app/assets/javascripts/views/users/account.js.coffee
app/assets/javascripts/views/users/guest.js.coffee
app/assets/javascripts/work/forms.js.coffee.erb
app/controllers/panels_controller.rb

index fdb7347..0cc84d0 100644 (file)
@@ -80,31 +80,34 @@ class Pettanr.AppController
     # Backbone.Model has defaults property\r
     #@item.supply_default()\r
   \r
-  set_edit: () ->\r
+  set_edit: (save_func) ->\r
     @set_model()\r
     @item = new @my_model_class({id: @params['id']})\r
     @item.fetch({cache: true}).done =>\r
       @item.boosts 'post'\r
-      @render_form()\r
+      @render_form(save_func)\r
   \r
-  render_form: () ->\r
+  render_form: (save_func) ->\r
     @form = Locmare.Form.factory({\r
       form_name: @item.item_name(), \r
       item: @item, \r
       mounted: true, \r
       submit: 'default', \r
       operators: @operators,\r
-      action: '/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id'))\r
+      action: '/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')),\r
+      save_func: save_func\r
     })\r
+    @listenTo(@form, 'post', @create)\r
+    @listenTo(@form, 'put', @update)\r
     @form.render()\r
     @trigger('ready', @form)\r
   \r
-  form_new: () ->\r
+  form_new: (save_func) ->\r
     @set_new()\r
-    @render_form()\r
+    @render_form(save_func)\r
   \r
-  form_edit: () ->\r
-    @set_edit()\r
+  form_edit: (save_func) ->\r
+    @set_edit(save_func)\r
   \r
   navigate: (url) ->\r
     @trigger('navigate', url)\r
index 9fbddef..2440390 100644 (file)
@@ -35,9 +35,10 @@ class Pettanr.FoldersController extends Pettanr.AppController
       @item = new Pettanr.FolderWatch({id: @params['id']})\r
       @item.fetch({cache: true}).done () =>\r
         if @item.is_remote()\r
-          vp = new Pettanr.ViewPicker({url: @item.remote_url(), operators: @operators})\r
+          vp = new Pettanr.ViewPicker({operators: @operators})\r
           @listenTo(vp, 'ready', @refresh)\r
           @listenTo(vp, 'retitle', @retitle)\r
+          vp.navigate(@item.remote_url())\r
         else\r
           @children_html()\r
   \r
index c48a0e2..e0849b6 100644 (file)
@@ -51,7 +51,8 @@ class Pettanr.PanelsController extends Pettanr.AppController
   edit: () ->\r
     @trigger('retitle', @params)\r
     @set_model()\r
-    @item = new Pettanr.Panel({id: @params['id']}, {with_elements: true})\r
+    panel = new Pettanr.Panel({id: @params['id']})\r
+    @item = panel.with_elements()\r
     @item.fetch({cache: false}).done =>\r
       editor = new Editor.PanelEditor({root_item: @item, operators: @operators})\r
       editor.render()\r
index 078fbe4..24bc888 100644 (file)
@@ -46,15 +46,37 @@ class Pettanr.ScrollsController extends Pettanr.AppController
   \r
   new: () ->\r
     @trigger('retitle', @params)\r
-    @form_new()\r
+    @form_new(@create)\r
   \r
   edit: () ->\r
     @trigger('retitle', @params)\r
-    @form_edit()\r
+    @form_edit(@update)\r
   \r
-  create: () ->\r
+  create: (form) ->\r
+    form.item.overwrite(@operators)\r
+    if form.save()\r
+      vp = new Pettanr.ViewPicker({operators: @operators})\r
+      @listenTo(vp, 'ready', @redirected)\r
+      @listenTo(vp, 'retitle', @retitle)\r
+      vp.navigate(form.item.show_url())\r
+    else\r
+      @not_created()\r
   \r
-  update: () ->\r
+  update: (form) ->\r
+    form.item.overwrite(@operators)\r
+    if form.save()\r
+      vp = new Pettanr.ViewPicker({operators: @operators})\r
+      @listenTo(vp, 'ready', @redirected)\r
+      @listenTo(vp, 'retitle', @retitle)\r
+      vp.navigate(form.item.show_url())\r
+    else\r
+      @not_updated()\r
   \r
   destroy: () ->\r
-    \r
+    @set_model()\r
+    @item = @my_model_class.edit(params['id'], @operators)\r
+    @render_destroy('/home/' + @item.path_name())\r
+  \r
+  redirected: (view) ->\r
+    @trigger('ready', view)\r
+  \r
index a6926e7..7919454 100644 (file)
@@ -46,18 +46,15 @@ class Editor.PanelEditor extends Backbone.View
   \r
   render: () ->\r
     this.$el.html('')\r
-    this.$el.append(@dialog.render().el)\r
-    @dialog.$el.dialog({\r
-      autoOpen: false,\r
-      width: 640, height: 560\r
-    })\r
+    # this.$el.append(@dialog.render().el)\r
+    #@dialog.$el.dialog({autoOpen: false,      width: 640, height: 560    })\r
     this.$el.append(@body.render().el)\r
     this.$el.append(@dock.render().el)\r
     @dock.element_bay.add_new_tab()\r
     this.$el.append(@credits.render().el)\r
     rb = new Tag.RowBreak()\r
     this.$el.append(rb.render().el)\r
-    this.$el.tabs()\r
+    @dock.$el.tabs()\r
     window.editor = this  # enable leave cancel flag on unsave\r
     this\r
   \r
index 11a73b9..02caa55 100644 (file)
@@ -54,6 +54,7 @@ class Locmare.Form extends Locmare.FormBase
     super(options)\r
     @submit = options.submit\r
     @action = options.action\r
+    @save_func = options.save_func\r
     @child_forms = {}\r
     @item.boosts 'post'\r
     @init_fields()\r
@@ -138,22 +139,14 @@ class Locmare.Form extends Locmare.FormBase
   post: () ->\r
     _.each @fields, (field) =>\r
       @item.set(field.field_name, field.val())\r
-    if @item.save()\r
-      # redirect_to show\r
-      @trigger('navigate', @item.show_url())\r
-      return false\r
-    else\r
-      # render_form\r
-      alert('invalid')\r
+    @trigger('post', this)\r
+    return false\r
   \r
   put: () ->\r
     _.each @fields, (field) =>\r
       @item.set(field.field_name, field.val())\r
-    @item.overwrite({operators: @operators})\r
-    if @save()\r
-      @valid()\r
-    else\r
-      @invalid()\r
+    @trigger('put', this)\r
+    return false\r
   \r
   save: (attrs = null, options = null) ->\r
     if attrs\r
index a283d95..acca855 100644 (file)
@@ -1,12 +1,13 @@
 class Pettanr.ViewPicker extends Backbone.View\r
   initialize: (options) ->\r
-    @url = options.url\r
     @operators = options.operators\r
     _.extend(this, Backbone.Events)\r
     _.extend(this, Pettanr.Views.Layout.ControllerManager.prototype)\r
     @local_router = new Pettanr.LocalRouter()\r
     @listenTo(@local_router, 'fire', @fire)\r
-    @local_router.navigate(@url, true)\r
+  \r
+  navigate: (url) ->\r
+    @local_router.navigate(url, true)\r
   \r
   fire: (params) ->\r
     controller = Pettanr.AppController.new2(params, @operators)\r
@@ -86,6 +87,9 @@ class Pettanr.Views.Layout.Base extends Backbone.View
       artist: artist\r
     })\r
   \r
+  sign_in: () ->\r
+    false\r
+  \r
   sign_in_success: (user, response) ->\r
     @init_operators(user)\r
   \r
@@ -99,6 +103,9 @@ class Pettanr.Views.Layout.Base extends Backbone.View
       artist: null\r
     })\r
   \r
+  sign_out: () ->\r
+    false\r
+  \r
   sign_out_success: (user, response) ->\r
     @reset_operators()\r
   \r
@@ -141,13 +148,23 @@ class Pettanr.Views.Layout.Sns extends Pettanr.Views.Layout.Base
   initialize: (options) ->\r
     super(options)\r
     @listenTo(@header, 'navigate', @header_navigate)\r
+    @listenTo(@header, 'sign_in', @sign_in)\r
     @listenTo(@header, 'sign_out', @sign_out)\r
+    @listenTo(@header, 'sign_in:success', @sign_in_success)\r
+    @listenTo(@header, 'sign_in:fail', @sign_in_fail)\r
+    @listenTo(@header, 'sign_out:success', @sign_out_success)\r
+    @listenTo(@header, 'sign_out:fail', @sign_out_fail)\r
     @listenTo(@body, 'navigate', @body_navigate)\r
+    @listenTo(@body, 'sign_in', @sign_in)\r
+    @listenTo(@body, 'sign_out', @sign_out)\r
   \r
   start: () ->\r
     # initial page\r
     super()\r
   \r
+  sign_in: () ->\r
+    \r
+  \r
   sign_in_success: (user, response) ->\r
     super(user, response)\r
     # navigate users/account\r
@@ -162,6 +179,9 @@ class Pettanr.Views.Layout.Sns extends Pettanr.Views.Layout.Base
     @header_router.navigate('users/guest')\r
     @local_router.navigate('user_seeeions/new')\r
   \r
+  sign_out: () ->\r
+    @header.fire({controller: 'users', action: 'sign_out'})\r
+  \r
   sign_out_success: (user, response) ->\r
     super(user, response)\r
     @global_router.navigate('')\r
index e8e715b..f30e9f4 100644 (file)
@@ -18,12 +18,18 @@ class Pettanr.Views.Layout.Sns.Header extends Backbone.View
     action_name = params['action']\r
     controller[action_name]()\r
   \r
+  sign_in: () ->\r
+    @trigger('sign_in')\r
+  \r
   sign_in_success: (user, response) ->\r
     @trigger('sign_in:success', user, response)\r
   \r
   sign_in_fail: (user, response) ->\r
     @trigger('sign_in:fail', user, response)\r
   \r
+  sign_out: () ->\r
+    @trigger('sign_out')\r
+  \r
   sign_out_success: (user, response) ->\r
     @trigger('sign_out:success', user, response)\r
   \r
@@ -35,11 +41,10 @@ class Pettanr.Views.Layout.Sns.Header extends Backbone.View
   \r
   refresh: (view) ->\r
     @listenTo(view, 'navigate', @navigate)\r
+    @listenTo(view, 'sign_in', @sign_in)\r
+    @listenTo(view, 'sign_out', @sign_out)\r
     this.$el.html(view.render().el)\r
   \r
-  sign_out: () ->\r
-    @trigger('sign_out')\r
-  \r
   navigate: (url) ->\r
     # header's message replace body\r
     # @local_router.navigate(url, true)\r
@@ -68,12 +73,18 @@ class Pettanr.Views.Layout.Sns.Body extends Backbone.View
     action_name = params['action']\r
     controller[action_name]()\r
   \r
+  sign_in: () ->\r
+    @trigger('sign_in')\r
+  \r
   sign_in_success: (user, response) ->\r
     @trigger('sign_in:success', user, response)\r
   \r
   sign_in_fail: (user, response) ->\r
     @trigger('sign_in:fail', user, response)\r
   \r
+  sign_out: () ->\r
+    @trigger('sign_out')\r
+  \r
   sign_out_success: (user, response) ->\r
     @trigger('sign_out:success', user, response)\r
   \r
@@ -85,6 +96,8 @@ class Pettanr.Views.Layout.Sns.Body extends Backbone.View
   \r
   refresh: (view) ->\r
     @listenTo(view, 'navigate', @navigate)\r
+    @listenTo(view, 'post', @post)\r
+    @listenTo(view, 'put', @put)\r
     this.$el.html(view.render().el)\r
   \r
   navigate: (url) ->\r
index f2179e5..e90db9e 100644 (file)
@@ -3,9 +3,3 @@ class Pettanr.Views.Panel.Form extends Locmare.Form
   initialize: (options) ->\r
     super(options)\r
   \r
-  post: () ->\r
-  \r
-  put: () ->\r
-    @trigger('put')\r
-    false\r
-  \r
index 4bdce7f..7502bd5 100644 (file)
@@ -6,28 +6,26 @@ class Pettanr.Views.User.Account extends Backbone.View
     @operators = options.operators\r
     @author = @operators.author\r
     @artist = @operators.artist\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
     @logo = new Pettanr.Views.Common.Logo({})\r
     @listenTo(@logo, 'click', @logo_click)\r
+    this.$el.append(@logo.render().el)\r
     if @author\r
       @author_view = @author.icon_with_caption_view()\r
       @listenTo(@author_view, 'click', @author_click)\r
+      this.$el.append(@author_view.render().el)\r
     if @artist\r
       @artist_view = @artist.icon_with_caption_view()\r
       @listenTo(@artist_view, 'click', @artist_click)\r
-  \r
-  render: () ->\r
-    this.$el.html('')\r
-    this.$el.append(@logo.render().el)\r
-    if @author_view\r
-      this.$el.append(@author_view.render().el)\r
-    if @artist_view\r
       this.$el.append(@artist_view.render().el)\r
     sign_out = new Tag.A({\r
       attr: {href: '/users/sign_out'}, \r
       class_name: 'sign_out', \r
       content: 'sign out'\r
     })\r
-    @listenTo(sign_out, 'click', @sign_out)\r
+    @listenTo(sign_out, 'click', @sign_out_click)\r
     this.$el.append(sign_out.render().el)\r
     this\r
   \r
@@ -40,7 +38,7 @@ class Pettanr.Views.User.Account extends Backbone.View
   artist_click: () ->\r
     @trigger('navigate', @artist_view.url())\r
   \r
-  sign_out: () ->\r
-    @trigger('navigate', 'users/sign_out')\r
+  sign_out_click: () ->\r
+    @trigger('sign_out')\r
     return false\r
   \r
index d1cc6cc..9725521 100644 (file)
@@ -3,28 +3,27 @@ class Pettanr.Views.User.Guest extends Backbone.View
   tagName: 'div'\r
   className: 'account'\r
   \r
-  tagName: 'div'\r
-  \r
   initialize: (options) ->\r
-    @logo = new Pettanr.Views.Common.Logo({})\r
-    @listenTo(@logo, 'click', @logo_click)\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    @logo = new Pettanr.Views.Common.Logo({})\r
+    @listenTo(@logo, 'click', @logo_click)\r
     this.$el.append(@logo.render().el)\r
     sign_in = new Tag.A({\r
       attr: {href: '/users/sign_in'}, \r
       class_name: 'sign_in', \r
-      content: 'signin'\r
+      content: 'sign in'\r
     })\r
+    @listenTo(sign_in, 'click', @sign_out_click)\r
     this.$el.append(sign_in.render().el)\r
-    @delegateEvents({'click .sign_in': 'sign_in'})\r
     this\r
   \r
   logo_click: () ->\r
     @trigger('navigate', '')\r
+    return false\r
   \r
-  click_sign_in: () ->\r
+  sign_in_click: () ->\r
     @trigger('navigate', 'user_sessions/new')\r
     return false\r
   \r
index 83871c9..f326cd9 100644 (file)
         },\r
         row_break: true,\r
       },\r
+      visible: {\r
+        tag: {\r
+          type: 'select',\r
+        },\r
+        row_break: true,\r
+      },\r
       description: {\r
         label: {\r
           args: {\r
         tag: {\r
           type: 'text_area',\r
         },\r
-      },\r
-      visible: {\r
-        tag: {\r
-          type: 'select',\r
-        },\r
         row_break: true,\r
       },\r
       id: {\r
     },\r
     field_names: [\r
       'title',\r
-      'description',\r
       'visible',\r
+      'description',\r
       'id',\r
       'author_id',\r
     ]\r
         },\r
         row_break: true,\r
       },\r
+      visible: {\r
+        tag: {\r
+          type: 'select',\r
+        },\r
+        row_break: true,\r
+      },\r
       description: {\r
         label: {\r
           args: {\r
         tag: {\r
           type: 'text_area',\r
         },\r
-      },\r
-      visible: {\r
-        tag: {\r
-          type: 'select',\r
-        },\r
         row_break: true,\r
       },\r
       id: {\r
     },\r
     field_names: [\r
       'title',\r
-      'description',\r
       'visible',\r
+      'description',\r
       'id',\r
       'author_id',\r
     ]\r
         },\r
         row_break: true,\r
       },\r
+      visible: {\r
+        tag: {\r
+          type: 'select',\r
+        },\r
+        row_break: true,\r
+      },\r
       description: {\r
         label: {\r
           args: {\r
         },\r
         row_break: true,\r
       },\r
-      visible: {\r
-        tag: {\r
-          type: 'select',\r
-        },\r
-        row_break: true,\r
-      },\r
       id: {\r
         label: {\r
           type: 'none',\r
     },\r
     field_names: [\r
       'title',\r
-      'description',\r
       'visible',\r
+      'description',\r
       'id',\r
       'author_id',\r
     ]\r
index c792acd..376c68c 100644 (file)
@@ -131,7 +131,6 @@ class PanelsController < ApplicationController
     @item = Panel.edit(params[:id], @operators)
     @item.boosts 'post'
     jsn = nil
-    p params[:json]
     if params[:json]
       jsn = JSON.parse(params[:json])
     end