/home/ivoiecob/email.hirewise-va.com/modules/FileViewerWebclientPlugin/js/manager.js
'use strict';
var
_ = require('underscore'),
ko = require('knockout'),
App = require('%PathToCoreWebclientModule%/js/App.js'),
Popups = require('%PathToCoreWebclientModule%/js/Popups.js'),
ViewPopup = require('modules/%ModuleName%/js/popups/ViewPopup.js'),
UrlUtils = require('%PathToCoreWebclientModule%/js/utils/Url.js')
;
module.exports = function (oAppData) {
return {
/**
* Runs before application start. Subscribes to the event before post displaying.
*
* @param {Object} ModulesManager
*/
start: function (ModulesManager) {
var
selector = null,
filesCollection = ko.observableArray(),
fillHtmlData = function(item) {
var
bResult = false,
sCommonHtmlData = '<div class="title">'+item.fileName()+'</div>';
;
if (item.extension().match(/(jpg|jpeg|png|gif)$/i))
{
item.htmlData = ko.observable(sCommonHtmlData + '<div class="item-image"><div><img class="owl-lazy" data-src= ' + UrlUtils.getAppPath() + item.getActionUrl('view') + ' /></div></div>');
bResult = true;
}
else if (item.bIsLink && item.sLinkUrl.match(/(youtube.com|youtu.be)/i))
{
item.htmlData = ko.observable(sCommonHtmlData + '<div class="item-video"><a class="owl-video" href="' + item.sLinkUrl + '"></a></div>');
bResult = true;
}
else if (item.extension().match(/(doc|docx|xls|xlsx)$/i))
{
// item.htmlData = ko.observable(sCommonHtmlData + '<iframe style="width: 100%; height: 100%; border: none;" class="item" src= ' + UrlUtils.getAppPath() + item.getActionUrl('view') + ' />');
// bResult = true;
}
else if (item.extension().match(/(txt)$/i))
{
item.htmlData = ko.observable(sCommonHtmlData + '<iframe style="background: #fff; width: 100%; height: 100%; border: none;" src= ' + UrlUtils.getAppPath() + item.getActionUrl('view') + ' />');
bResult = true;
}
return bResult;
}
;
ViewPopup.onClose = function (){
for (var i=0; i<filesCollection().length; i++) {
$('.owl-carousel').trigger('remove.owl.carousel', [i]);
}
$('.owl-carousel').trigger('refresh.owl.carousel');
if (selector)
{
selector.useKeyboardKeys(true);
}
};
App.subscribeEvent('AbstractFileModel::FileView::before', function (oParams) {
const isFileInList = filesCollection().find(file => file.hash() === oParams.hash);
if (isFileInList) {
oParams.continueView = false;
if (selector)
{
selector.useKeyboardKeys(false);
}
Popups.showPopup(ViewPopup, [filesCollection, oParams.index]);
}
});
App.subscribeEvent('FilesWebclient::ConstructView::after', function (oParams) {
selector = oParams.View.selector;
oParams.View.filesCollection.subscribe(function(newCollection) {
var
collection = [],
index = 0
;
_.each(newCollection, function(item){
item.index(index);
if (fillHtmlData(item))
{
collection.push(item);
}
index++;
});
filesCollection(collection);
App.broadcastEvent('FileViewerWebclientPlugin::FilesCollection::after', {aFilesCollection: filesCollection});
});
});
}
};
};