diff --git a/lib/client/view.js b/lib/client/view.js index 694a60c5..a9a149d8 100644 --- a/lib/client/view.js +++ b/lib/client/view.js @@ -72,7 +72,7 @@ var CloudCmd, Util, DOM, CloudFunc, $; * function shows FancyBox */ function show(data, options) { - var path, element, + var path, element, type, config = {}; if (!Loading) { @@ -102,16 +102,30 @@ var CloudCmd, Util, DOM, CloudFunc, $; } else { Images.showLoad(); - path = CloudFunc.FS + Info.path; + path = CloudFunc.FS + Info.path; + type = getType(path); - if (isImage(path)) { + switch(path) { + default: + Info.getData(function(data) { + var element = document.createTextNode(data); + /* add margin only for view text documents */ + Element.css('margin', '2%'); + + $.fancybox(Element.append(element), Config); + }); + break; + + case 'image': config = Util.copyObj({ - autoSize : true - }, Config); - + autoSize : true + }, Config); + $.fancybox.open(path, config); - } else if (isMedia(path)) - getMediaElement(path, function(element) { + break; + + case 'media': + getMediaElement(path, function(element) { var media = DOM.getByDataName('js-media', element), onKey = Util.bind(onMediaKey, media); @@ -131,14 +145,8 @@ var CloudCmd, Util, DOM, CloudFunc, $; } }); }); - else - Info.getData(function(data) { - var element = document.createTextNode(data); - /* add margin only for view text documents */ - Element.css('margin', '2%'); - - $.fancybox(Element.append(element), Config); - }); + break; + } } } } @@ -177,6 +185,15 @@ var CloudCmd, Util, DOM, CloudFunc, $; return isMatch; } + function getType(name) { + var type; + + if (isImage(name)) + type = 'image'; + else if (isMedia(name)) + type = 'media'; + } + function getMediaElement(src, callback) { CloudCmd.getTemplate(TemplateAudio, 'view/media', function(template) { var rendered, element, type, is,