Browse Source

Refactor in async load

Javi Jimenez Villar 13 years ago
parent
commit
0b8ce70d68
1 changed files with 19 additions and 18 deletions
  1. 19 18
      src/boot/Lungo.Boot.Events.coffee

+ 19 - 18
src/boot/Lungo.Boot.Events.coffee

@@ -27,51 +27,52 @@ Lungo.Boot.Events = do(lng = Lungo) ->
     lng.dom(C.QUERY.ASIDE_ROUTER).tap _onAside
     lng.dom(C.QUERY.MENU_ROUTER).tap _onMenu
 
-
     lng.dom(QUERY.MENU_HREF).tap _closeMenu
     lng.dom(QUERY.INPUT_CHECKBOX).tap _changeCheckboxValue
 
+
   _onSection = (event) ->
     event.preventDefault()
     el = lng.dom @
     if el.data "async"
-      _onAsyncSection el.data("async"), el.data("view-section")
+      _onAsyncResource el, C.ELEMENT.SECTION
     else
       section_id = el.data "view-section"
       if section_id isnt "back" then lng.Router.section(section_id) else lng.Router.back()
 
-  _onAsyncSection = (url, section_id) ->
-    lng.Notification.show()
-    lng.Resource.load url
-    lng.Boot.Data.init "##{section_id}"
-    link.removeAttribute("data-async") for link in lng.dom "[data-async='#{url}']"
-    setTimeout (->
-      lng.Router.section section_id
-      do lng.Notification.hide
-    ), lng.Constants.TRANSITION.DURATION * 2
 
   _onArticle = (event) ->
     event.preventDefault()
     el = lng.dom @
     if el.data "async"
-      _onAsyncArticle el.data("async"), el.data("view-article")
+      _onAsyncResource el, C.ELEMENT.ARTICLE
     else
       lng.Router.article lng.Router.history(), el.data("view-article"), el
       lng.Aside.hide()
 
-  _onAsyncArticle = (url, article_id) ->
+  _onAsyncResource = (el, type) ->
+    url = el.data "async"
+    id = el.data "view-#{type}"
+
     lng.Notification.show()
+    if type is C.ELEMENT.ARTICLE
+      section_id = lng.Element.Cache.section.attr(C.ATTRIBUTE.ID)
+      lng.Resource.load url, C.ELEMENT.SECTION + "#" + section_id
+    else
+      lng.Resource.load url
 
-    section_id = lng.Element.Cache.section.attr(C.ATTRIBUTE.ID)
-    lng.Resource.load url, C.ELEMENT.SECTION + "#" + section_id
-    lng.Boot.Data.init "##{article_id}"
+    lng.Boot.Data.init "##{id}"
     link.removeAttribute("data-async") for link in lng.dom "[data-async='#{url}']"
     setTimeout (->
-      lng.Router.article section_id, article_id
-      lng.Aside.hide()
+      if type is C.ELEMENT.ARTICLE
+        lng.Router.article section_id, id
+        lng.Aside.hide()
+      else
+        lng.Router.section id
       do lng.Notification.hide
     ), lng.Constants.TRANSITION.DURATION * 2
 
+
   _onAside = (event) ->
     event.preventDefault()
     lng.Aside.toggle()