فهرست منبع

[BUG] Fixed: manager for a unique <aside/> element

@soyjavi 14 سال پیش
والد
کامیت
e586d33152
1فایلهای تغییر یافته به همراه24 افزوده شده و 9 حذف شده
  1. 24 9
      src/view/Lungo.View.Aside.js

+ 24 - 9
src/view/Lungo.View.Aside.js

@@ -5,7 +5,6 @@
  * @class Aside
  *
  * @author Javier Jimenez Villar <javi@tapquo.com> || @soyjavi
- * @author Guillermo Pascual <pasku@tapquo.com> || @pasku1
  */
 
 LUNGO.View.Aside = (function(lng, undefined) {
@@ -22,16 +21,15 @@ LUNGO.View.Aside = (function(lng, undefined) {
      * @param  {string} Aside id
      */
     var toggle = function(aside_id) {
-        var aside = lng.Element.asides.siblings(ELEMENT.ASIDE + aside_id);
-        if (aside.length > 0) {
+        aside = _findAside(aside_id);
+        if (aside) {
             var is_visible = aside.hasClass(CLASS.CURRENT);
             if (is_visible) {
                 lng.View.Aside.hide();
             } else {
-                lng.View.Aside.show(aside_id);
+                lng.View.Aside.show(aside);
             }
         }
-
         aside = null;
     };
 
@@ -42,9 +40,9 @@ LUNGO.View.Aside = (function(lng, undefined) {
      *
      * @param  {string} Aside id
      */
-    var show = function(aside_id) {
-        var aside = lng.Element.asides.siblings(ELEMENT.ASIDE + aside_id);
-        if (aside.length > 0) {
+    var show = function(aside) {
+        if (lng.Core.toType(aside) == 'string') aside = _findAside(aside);
+        if (aside) {
             lng.Element.Current.aside = aside;
             var aside_stylesheet = _asideStylesheet(aside);
 
@@ -73,6 +71,23 @@ LUNGO.View.Aside = (function(lng, undefined) {
         }
     };
 
+    var _findAside = function(aside_id) {
+        var aside = null;
+        var asides_length = lng.Element.asides.length;
+
+        if (asides_length == 1) {
+            var current_id = '#' + lng.Element.asides[0].id ;
+            if (current_id == aside_id) {
+                aside = lng.dom(lng.Element.asides[0]);
+            }
+        }
+        else if (asides_length > 1) {
+            aside = lng.Element.asides.siblings(ELEMENT.ASIDE + aside_id);
+        }
+
+        return aside;
+    };
+
     var _asideStylesheet = function(aside) {
         var aside_stylesheet = aside.attr(ATTRIBUTE.CLASS);
         var classes = '';
@@ -92,4 +107,4 @@ LUNGO.View.Aside = (function(lng, undefined) {
         hide: hide
     };
 
-})(LUNGO);
+})(LUNGO);