/home/ivoiecob/email.hirewise-va.com/modules/FilesTableviewWebclientPlugin/js/manager.js
'use strict';
module.exports = function (oAppData) {
var
$ = require('jquery'),
ko = require('knockout'),
TextUtils = require('%PathToCoreWebclientModule%/js/utils/Text.js'),
App = require('%PathToCoreWebclientModule%/js/App.js'),
Settings = require('modules/%ModuleName%/js/Settings.js'),
bShow = false,
TemplateName = '%ModuleName%_ItemsView',
ToggleFilesButtonView = null
;
Settings.init(oAppData);
function getButtonView()
{
if (!ToggleFilesButtonView)
{
ToggleFilesButtonView = require('modules/%ModuleName%/js/views/ToggleFilesButtonView.js');
}
return ToggleFilesButtonView;
}
if (App.isUserNormalOrTenant())
{
return {
start: function (ModulesManager) {
ModulesManager.run(
'SettingsWebclient',
'registerSettingsTabSection',
[
function () { return require('modules/%ModuleName%/js/views/FilesTableviewSettingsFormView.js'); },
Settings.HashModuleName,
TextUtils.i18n('%MODULENAME%/LABEL_SETTINGS_TAB')
]
);
App.subscribeEvent('FilesWebclient::ConstructView::after', function (oParams) {
if ('CFilesView' === oParams.Name)
{
const originalTemplateName = oParams.View.itemsViewTemplate();
if (Settings.enableModule())
{
oParams.View.itemsViewTemplate(TemplateName);
}
Settings.enableModule.subscribe(function(newValue) {
oParams.View.itemsViewTemplate(newValue ? TemplateName : originalTemplateName);
});
}
});
App.subscribeEvent('FilesWebclient::ShowView::after', function (oParams) {
var
previewFileData = {
displayName: ko.observable(''),
enablePreviewPane: Settings.enablePreviewPane,
type: ko.observable(''),
size: ko.observable(''),
// created: ko.observable(''),
modified: ko.observable(''),
location: ko.observable(''),
extension: ko.observable(''),
hasSelectedFile: ko.observable(false),
showPreview: ko.observable(false),
},
$RightPannel = $("<!-- ko template: {name: '%ModuleName%_PaneView'} --><!-- /ko -->"),
aImgMimeTypes = ['image/jpeg', 'image/png', 'image/gif']
;
if (!bShow)
{
bShow = true;
$("#files_center_panel").after($RightPannel);
ko.applyBindings(previewFileData, $RightPannel.get(0));
oParams.View.firstSelectedFile.subscribe(function(selectedFile) {
const fileIsSelected = !!selectedFile;
previewFileData.displayName('');
previewFileData.type('');
previewFileData.size('');
// previewFileData.created('');
previewFileData.modified('');
previewFileData.location('');
previewFileData.hasSelectedFile(fileIsSelected);
previewFileData.extension('');
previewFileData.showPreview(false);
$("#files_view_pane").html("");
if (selectedFile !== undefined && Settings.enablePreviewPane())
{
previewFileData.displayName(selectedFile.displayName());
previewFileData.type(selectedFile.type ? selectedFile.type() : '');
previewFileData.size(selectedFile.friendlySize ? selectedFile.friendlySize() : '');
// previewFileData.created(selectedFile.sHeaderText ? selectedFile.sHeaderText : '');
previewFileData.modified(selectedFile.sLastModified ? selectedFile.sLastModified : '');
previewFileData.location(selectedFile.path && selectedFile.path() ? selectedFile.path() : '/');
previewFileData.extension(selectedFile.extension ? selectedFile.extension() : '' );
if (selectedFile.getActionUrl('view') !== '') {
previewFileData.showPreview(true);
// paranoid encryption hero
if (typeof(selectedFile.oExtendedProps) !== 'undefined' && typeof(selectedFile.oExtendedProps.InitializationVector) !== 'undefined') {
$("#files_view_pane").html("<div class='item key'><span class='icon'/></div>");
} else if (-1 !== $.inArray(selectedFile.mimeType(), aImgMimeTypes)) {
$("#files_view_pane").html("<img src='" + selectedFile.getActionUrl('view') + "'>");
} else {
$("#files_view_pane").html("<iframe class='view_iframe' src='" + selectedFile.getActionUrl('view') + "'></iframe>");
}
}
}
});
}
});
ModulesManager.run('FilesWebclient', 'registerToolbarButtons', [getButtonView()]);
},
};
}
return null;
};