diff --git a/lib/client/viewer.js b/lib/client/viewer.js index 88fdc050..d25e00ce 100644 --- a/lib/client/viewer.js +++ b/lib/client/viewer.js @@ -66,6 +66,28 @@ CloudCommander.Viewer.FancyBox.load = (function(pParent, pCallBack){ }(); }); +CloudCommander.Viewer.FancyBox.loadData = (function(pA){ + var lThis = this; + var lConfig = this.getConfig(); + $.ajax({ + url : pA.href, + error : (function(jqXHR, textStatus, errorThrown){ + lThis.loading = false; + return lThis.Images.showError(jqXHR, textStatus, errorThrown); + }), + + success:function(data, textStatus, jqXHR){ + /* if we got json - show it */ + if(typeof data === 'object') + data = JSON.stringify(data, null, 4); + + $.funcybox('
' + data + '
', lConfig); + + lThis.Images.hideLoad(); + } + }); +}); + CloudCommander.Viewer.FancyBox.set = (function(){ if(this.getByClass('fancybox').length) return; @@ -78,27 +100,26 @@ CloudCommander.Viewer.FancyBox.set = (function(){ var lThis = this; - var lDblClick_f = function(pHref, pIsImg){ + var lDblClick_f = function(pA){ return function(){ var lConfig = lThis.getConfig(); - lConfig.href = pHref; - if(pIsImg) + lConfig.href = pA.href; + if(pA.href) $.fancybox(lConfig); + else lThis.loadData(pA); }; }; /* first two is not files nor folders*/ for (var i=2; i < lA.length; i++) { - var lIsImg_b = false; var lName = lA[i].title || lA[i].textContent; lA[i].className = 'fancybox'; if(CloudFunc.checkExtension(lName, ['png','jpg', 'gif','ico'])){ lA[i].rel = 'gallery'; - var lIsImg_b = true; } - lA[i].ondblclick = lDblClick_f(lA[i].href, lIsImg_b); + lA[i].ondblclick = lDblClick_f(lA); } }catch(pError){ @@ -115,9 +136,12 @@ CloudCommander.Viewer.FancyBox.show = (function(pParent){ var lA = this.getByClass('fancybox', lCurrent); var lConfig = this.getConfig(); - lA.length && - $.fancybox.open({ href : lA[0].href }, - lConfig); + if(lA.length){ + if(lA.rel) + $.fancybox.open({ href : lA[0].href }, + lConfig); + else this.loadData(lA); + } }); CloudCommander.Viewer.Keys = (function(){