var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var Unibase;
(function (Unibase) {
let Platform;
(function (Platform) {
let Analytics;
(function (Analytics) {
let Components;
(function (Components) {
class ReportFolder extends Platform.Core.BaseComponent {
constructor() {
super(...arguments);
this.reportFoldersHtml = '';
this.IsAppRefresh = false;
this.parentArray = [{ id: 0, folderName: null, parentid: null }];
this.groupName = '';
this.allViewableReports = [];
this.loadFolder = [];
this.noReportsGroup = [];
this.allReports = [];
this.allReportsGroup = [];
}
jsFiles() {
var jsFiles = [];
return jsFiles;
}
cssFiles() {
return [];
}
html(id, containerid) {
var instance = this;
let html = ``;
return html;
}
load(id, containerid, callback) {
var instance = this;
}
init(containerid) {
var instance = this;
instance.loadFolders(containerid);
$('.clear_icon').click(function () {
$("#ListSearch").val('');
$(".clear_icon").addClass("d-none");
Unibase.Platform.Analytics.Components.ReportFolder.Instance().searchReports(`${containerid}`);
});
}
loadFolders(containerid) {
var instance = this;
let html = `
`;
$(`.${containerid}`).append(html);
let height = $(`.${containerid}`).siblings('#hf_portletwidgetheight').val();
if (height != '0px') {
$('.userDesignWidgetCardBody').css({ "height": `` + height + ``, "overflow-x": "hidden" }).addClass("biz-custom-scrollbar");
}
if ((this.reportFoldersHtml != '' && this.reportFoldersHtml != null) && !this.IsAppRefresh) {
$('#userdesignreport_folders').html(this.reportFoldersHtml);
this.parentArray = [{ id: 0, folderName: null, parentid: null }];
this.allViewableReports.splice(0, this.allViewableReports.length - 1);
this.noReportsGroup.splice(0, this.noReportsGroup.length - 1);
}
else {
this.IsAppRefresh = false;
let html = ``;
$('#userdesignreport_folders').append(html);
if (this.parentArray.length > 1) {
for (let i = this.parentArray.length; i != 1; i--) {
this.parentArray.shift();
}
}
this.allReports = [];
this.loadFolder = [];
this.allViewableReports = [];
this.noReportsGroup = [];
instance.loadReportFolder(0, containerid);
instance.loadAllReports(containerid);
$('.searchFromAllReports').on('click', function () {
let searchDiv = $(`#${containerid}`).find('.reports-main-div-search');
if (searchDiv.is(":visible")) {
searchDiv.hide();
}
else {
searchDiv.show();
}
});
}
}
loadAllReports(containerid) {
return __awaiter(this, void 0, void 0, function* () {
const allResponse = yield Unibase.Platform.Analytics.Managers.ReportManager.Instance().getViewableReports();
this.allReports.push(allResponse.result);
});
}
showGlobalReports(containerid) {
let searchDiv = $(`#${containerid}`).find('.reports-main-div-search');
if (searchDiv.is(":visible")) {
searchDiv.hide();
}
else {
searchDiv.show();
}
}
searchReports(containerid) {
$(".clear_icon").removeClass("d-none");
const searchText = $(`#${containerid}`).find('.report_folder_search').val().toString().trim().toLowerCase();
if (searchText == '') {
$('.reports-main-div').show();
$(`#${containerid}`).find('.reports-global-search').hide();
$(`#${containerid}`).find('.reports-main-div-search').hide();
$(`#${containerid}`).find('.search-clear-icon').addClass('d-none');
}
else {
$(`#${containerid}`).find('.reports-global-search').show();
if ($(`#${containerid}`).find('.reports-global-search .no-current-reports').length == 0) {
$(`#${containerid}`).find('.reports-global-search').prepend('');
}
}
$(`#${containerid}`).find('.folder-main-div li').each(function () {
let folderName = $(this).attr('data-groupname').toLowerCase();
if (folderName.includes(searchText) == false) {
$(this).hide();
}
else {
$(this).show();
}
});
$(`#${containerid}`).find('.reports-main-div li').each(function () {
let reportName = $(this).attr('data-reportname').toLowerCase();
if (reportName.includes(searchText) == false) {
$(this).hide();
$('.no-current-reports').show();
}
else {
$(this).show();
$('.reports-main-div').show();
$('.no-current-reports').hide();
}
});
let searchReports = [];
for (let i = 0; i < this.allReports[0].length; i++) {
let reportName;
if (this.allReports[0][i].DisplayName == "" || this.allReports[0][i].DisplayName == null) {
reportName = this.allReports[0][i].ReportName.toLowerCase();
}
else {
reportName = this.allReports[0][i].DisplayName.toLowerCase();
}
if (searchText != '') {
if (reportName.includes(searchText)) {
searchReports.push(this.allReports[0][i]);
}
}
}
this.loadReporthtml(searchReports, '', containerid);
if (!$('.reports-main-div li').is(':visible') || $('.reports-main-div li').length == 0) {
$('.reports-main-div').hide();
}
if ($(`#${containerid}`).find('.reports-main-div li').length === 0 || !$(`#${containerid}`).find('.reports-main-div li').is(':visible')) {
if (searchText != '') {
$(`#${containerid}`).find('.reports-global-search').show();
}
}
else {
$(`#${containerid}`).find('.reports-global-search').hide();
}
if (this.parentArray.length === 1) {
$(`#${containerid}`).find('.reports-global-search').hide();
}
else if ($(`#${containerid}`).find('.reports-main-div-search').is(":visible")) {
$(`#${containerid}`).find('.reports-main-div-search').show();
}
else {
$(`#${containerid}`).find('.reports-main-div-search').hide();
}
}
loadReportGroup(parentid) {
return __awaiter(this, void 0, void 0, function* () {
const allReportGroups = yield Unibase.Platform.Analytics.Managers.ReportManager.Instance().getReportGroups();
this.allReportsGroup.push(allReportGroups);
let noReportFolder = allReportGroups.result.filter((report, index, self) => this.allReports[0].find(grp => grp.ParentGroupId === report.reportgroupid) && report.parentgroupid === parentid && self.find(x => x.parentgroupid === report.reportgroupid));
noReportFolder = noReportFolder.filter(obj1 => { return !this.allReports[0].some(obj2 => obj2.ReportGroupId === obj1.reportgroupid); });
this.noReportsGroup.unshift(noReportFolder);
});
}
loadReportFolder(parentid, containerid) {
return __awaiter(this, void 0, void 0, function* () {
var instance = this;
Unibase.Platform.Helpers.NavigationHelper.Instance().showLoading();
const response = yield Unibase.Platform.Analytics.Managers.ReportManager.Instance().getViewableReportsByparentgroupid(parentid);
if (this.allViewableReports.length == 0) {
this.allViewableReports.unshift(response.result);
}
yield this.loadReportGroup(parentid);
let loadedReportFolders = response.result;
if (loadedReportFolders.length > 0) {
if (this.allViewableReports[this.allViewableReports.length - 1].length != loadedReportFolders.length) {
this.allViewableReports.unshift(loadedReportFolders);
}
if (this.allViewableReports.length > 1) {
this.loadReporthtml(this.allViewableReports[1], parentid, containerid);
}
this.loadReportFolderhtml(this.allViewableReports[0], containerid);
}
else {
this.loadReporthtml(this.allViewableReports[0], parentid, containerid);
$('.folder-main-div').html('');
}
this.breadcrumb(containerid);
Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
});
}
loadReportFolderhtml(response, containerid) {
$(`#${containerid}`).find('.report_folder_search').val('');
let filterReportGroups = response.filter((report, index, self) => index === self.findIndex((x) => (x.ReportGroupId === report.ReportGroupId)));
let folder = this.noReportsGroup[0];
for (let i = 0; i < folder.length; i++) {
let groupname = folder[i].groupname;
let displayname = folder[i].displayname;
let reportgroupid = folder[i].reportgroupid;
filterReportGroups.unshift({ ReportGroupId: reportgroupid, GroupName: groupname, GroupDisplayName: displayname });
}
var html = '';
$('.folder-main-div').html('');
let folder_count = filterReportGroups.length;
if (folder_count === 0) {
$('.reports-main-div').removeClass('mt-20');
}
else {
$('.reports-main-div').addClass('mt-20');
}
for (let i = 0; i < folder_count; i++) {
let folderName = filterReportGroups[i]['GroupDisplayName'];
if (folderName == "") {
folderName = filterReportGroups[i]['GroupName'];
}
let parentid = filterReportGroups[i]['ParentGroupId'];
let reportgroupid = filterReportGroups[i]['ReportGroupId'];
html += ``;
}
$('.folder-main-div').append(html);
$('.report_folder').click(function () {
$(this).parents('.folder-main-div').find('a.active').removeClass('active');
});
if (_appsettings.active_identity().isAdmin) {
$('.report_folder').contextmenu(function () {
event.preventDefault;
$(this).parents('.folder-main-div').find('a.active').removeClass('active');
$(this).addClass('active');
let reportgroupid = $(this).parent().data('reportgroupid');
let folderName = $(this).find('div').text();
Unibase.Platform.Analytics.Components.ReportFolder.Instance().renameFolder(folderName, reportgroupid);
return false;
});
}
if (this.reportFoldersHtml === '') {
this.reportFoldersHtml = $('#userdesignreport_folders').html();
}
}
loadReporthtml(reports_response, parentid, containerid) {
let uniqueReports;
let reports_count;
if (parentid == '') {
uniqueReports = reports_response;
reports_count = uniqueReports.length;
if (reports_count == 0) {
$('.reports-main-div-search').html('All Reports
No Reports Found
');
}
else {
if (this.parentArray.length === 1) {
$('.reports-main-div-search').show();
}
}
if (reports_count > 0) {
$('.reports-main-div-search').html('All Reports
');
}
for (let i = 0; i < reports_count; i++) {
let reportName = uniqueReports[i]['DisplayName'];
let reportid = uniqueReports[i]['ReportId'];
let html = ``;
$('.reports-main-div-search').append(html);
}
}
else {
$('.reports-main-div').show();
$('.reports-main-div-search').hide();
uniqueReports = reports_response.filter(checkParent);
function checkParent(res) {
if (res.ReportGroupId == parentid)
return res;
}
reports_count = uniqueReports.length;
if (reports_count == 0) {
$('.reports-main-div').html('');
}
if (reports_count > 0) {
$('.reports-main-div').html('Reports
');
}
for (let i = 0; i < reports_count; i++) {
let reportName = uniqueReports[i]['DisplayName'];
let reportid = uniqueReports[i]['ReportId'];
let html = ``;
$('.reports-main-div').append(html);
}
}
}
loadClickFolder(parentid, reportgroupid, containerid, reportGroupName) {
$(`#${containerid}`).find('.reports-global-search').hide();
$(`#${containerid}`).find('.report_folder_search').val('');
this.loadFolder = [];
this.parentArray.unshift({ id: reportgroupid, folderName: reportGroupName, parentid: parentid });
this.loadReportFolder(reportgroupid, containerid);
$('.back_report').removeClass('hidden');
}
breadcrumb(containerid) {
$('.folders_header').html('');
let html = '';
if (this.loadFolder.length > 0) {
this.parentArray.unshift({ id: this.loadFolder[0].id, folderName: this.loadFolder[0].folderName, parentid: this.loadFolder[0].parentid });
}
for (let i = this.parentArray.length; i > 1; i--) {
let id = this.parentArray[i - 1].id;
let folderName = this.parentArray[i - 2].folderName;
$('.folders_header .breadcrumb-item').removeClass('active');
if (i > 2) {
html += `${folderName}`;
}
else {
html += `${folderName}`;
}
}
$('.folders_header').append(html);
}
breadcrumbClick(clickId, containerid) {
$(`#${containerid}`).find('.reports-global-search').hide();
let endArray;
for (let i = 0; i <= this.parentArray.length - 1; i++) {
let id = this.parentArray[i].id;
if (id == clickId) {
endArray = i;
}
}
let clickedFolder = this.parentArray[endArray - 1];
this.loadFolder = [];
this.loadFolder.unshift({ id: clickedFolder.id, folderName: clickedFolder.folderName, parentid: clickedFolder.parentid });
this.parentArray.splice(0, endArray);
this.noReportsGroup.splice(0, endArray);
if ($('.folder-main-div').html() == '') {
this.allViewableReports.splice(0, endArray - 1);
}
else {
this.allViewableReports.splice(0, endArray);
}
this.loadReportFolder(clickedFolder.id, containerid);
}
loadBackFolder(containerid) {
$(`#${containerid}`).find('.reports-global-search').hide();
$(`#${containerid}`).find('.reports-main-div-search').hide();
if (this.parentArray.length == 0) {
return;
}
const { id } = this.parentArray[1];
let parentArrayLen = this.parentArray.length;
let lastParentId = this.parentArray.shift();
this.noReportsGroup.shift();
if (this.allViewableReports.length > 1) {
if (parentArrayLen == this.allViewableReports.length) {
this.allViewableReports.shift();
}
}
const { parentid } = lastParentId;
this.loadFolder = [];
this.breadcrumb(containerid);
if (this.parentArray.length == 1) {
$('.back_report').addClass('hidden');
}
if (!parentid && parentid != 0) {
return;
}
let res = this.allViewableReports[0];
this.loadReportFolderhtml(res, containerid);
if (id != 0) {
this.loadReporthtml(this.allViewableReports[1], id, containerid);
}
else {
$('.reports-main-div').html('');
}
}
renameFolder(folderName, reportgroupid) {
let parentid = this.parentArray[0].id;
let nextFolder;
if (folderName == undefined) {
let newFolderLen = $('.newfolder').length;
let newFolderNum;
if (newFolderLen == 0) {
newFolderNum = '';
}
else {
newFolderNum = newFolderLen;
}
nextFolder = 'newfolder' + newFolderLen;
folderName = 'New Folder' + newFolderNum;
}
let ModalHtml = ``;
$('#renameModal').remove();
$("#_bizgaze_modal").append(ModalHtml);
$("#renameModal").modal();
$('#renameModal').find('input').select();
}
saveReportGroup(parentid, reportgroupid, nextFolder) {
let folderName = $('#renameModal').find('input').val().toString();
if (reportgroupid == undefined) {
reportgroupid = 0;
}
let isInternal = false;
let groupIndex = 0;
let model = new Unibase.Platform.Analytics.Reports.Requests.ReportGroup();
if (nextFolder != "undefined") {
model.GroupName = folderName;
}
else {
model.GroupName = $('.report_folder.active div').text();
}
model.ReportGroupId = reportgroupid;
model.IsInternalGroup = isInternal;
model.ReportGroupIndex = !parseInt(groupIndex) ? 0 : parseInt(groupIndex);
model.ParentGroupId = parentid;
model.DisplayName = folderName;
Unibase.Platform.Analytics.Managers.ReportManager._instance.saveReportGroup(model).then(function (response) {
let res = JSON.parse(response.result);
if (response.status == Unibase.Data.Status.Error) {
MessageHelper.Instance().showError(response.message, 'divReportGroup_ErrorMessage');
}
else {
MessageHelper.Instance().showSuccess(response.message, '');
if (nextFolder != 'undefined') {
if (_appsettings.active_identity().isAdmin) {
$('.newfolder').contextmenu(function () {
event.preventDefault;
$(this).parents('.folder-main-div').find('a.active').removeClass('active');
$(this).addClass('active');
let reportgroupid = $(this).parent().data('reportgroupid');
let folderName = $(this).find('div').text();
Unibase.Platform.Analytics.Components.ReportFolder.Instance().renameFolder(folderName, reportgroupid);
return false;
});
}
}
else {
$('.folder-main-div').find('a.active').find('div').html(folderName);
}
}
});
if ('#renameModal') {
$("#renameModal").modal('hide');
}
}
static Instance() {
if (this._instance === undefined)
this._instance = new ReportFolder();
return this._instance;
}
}
Components.ReportFolder = ReportFolder;
})(Components = Analytics.Components || (Analytics.Components = {}));
})(Analytics = Platform.Analytics || (Platform.Analytics = {}));
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
})(Unibase || (Unibase = {}));