@trudb/tru-common-lib 0.1.174 → 0.1.175

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { breeze } from 'breeze-client';
3
- import { Observable } from 'rxjs';
3
+ import { Observable, forkJoin } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "./tru-data-context";
6
6
  import * as i2 from "./tru-action-invoke";
@@ -55,48 +55,46 @@ export class TruReportManager {
55
55
  obj.send(params);
56
56
  return obj;
57
57
  }
58
- setupMenu(reports, menu, getActionRefs, enabled) {
58
+ setupMenu(report, menu, getActionRefs, enabled) {
59
59
  return new Observable(obs => {
60
- for (var i = 0; i < reports.length; i++) {
61
- this.dataContext.entityAccess().search(this.modelTypeLookup.getType('TruDbCloudFile'), (query) => {
62
- var predicate = new breeze.Predicate('TruDbCloudFileRef', breeze.FilterQueryOp.Equals, reports[i].ReportTruDbCloudFileRef);
63
- return query.where(predicate);
64
- }, null, false).subscribe((cloudFiles) => {
65
- if (cloudFiles.length) {
66
- //there is a cloud file associated with this report
67
- if (cloudFiles[0].Filename.endsWith(".mrt")) {
68
- //this is a stimulsoft report, check if license file exists
69
- this.dataContext.entityAccess().search(this.modelTypeLookup.getType('TruDbConfig'), (query) => {
70
- var predicate = new breeze.Predicate('Key', breeze.FilterQueryOp.Equals, 'StimulsoftLicensePath');
71
- return query.where(predicate);
72
- }, null, false).subscribe((config) => {
73
- if (!config.length || !config[0].Value) {
74
- //do nothing, no menu option will be pushed into the dom since
75
- //we couldn't find the required license path info in the config
76
- }
77
- else {
78
- //var path = config[0].Value.replace("~", "");
79
- //this.get(path, 'get', (data: any) => {
80
- // if (data.length) {
81
- // }
82
- //});
83
- this.setupMenuImpl(reports[i], menu, getActionRefs, enabled);
84
- }
85
- });
86
- }
87
- else {
88
- //there is a cloud file associated with this report, but it isn't an mrt report push menu option
89
- //since this a different type of report (word, excel)
90
- this.setupMenuImpl(reports[i], menu, getActionRefs, enabled);
91
- }
60
+ this.dataContext.entityAccess().search(this.modelTypeLookup.getType('TruDbCloudFile'), (query) => {
61
+ var predicate = new breeze.Predicate('TruDbCloudFileRef', breeze.FilterQueryOp.Equals, report.ReportTruDbCloudFileRef);
62
+ return query.where(predicate);
63
+ }, null, false).subscribe((cloudFiles) => {
64
+ if (cloudFiles.length) {
65
+ //there is a cloud file associated with this report
66
+ if (cloudFiles[0].Filename.endsWith(".mrt")) {
67
+ //this is a stimulsoft report, check if license file exists
68
+ this.dataContext.entityAccess().search(this.modelTypeLookup.getType('TruDbConfig'), (query) => {
69
+ var predicate = new breeze.Predicate('Key', breeze.FilterQueryOp.Equals, 'StimulsoftLicensePath');
70
+ return query.where(predicate);
71
+ }, null, false).subscribe((config) => {
72
+ if (!config.length || !config[0].Value) {
73
+ //do nothing, no menu option will be pushed into the dom since
74
+ //we couldn't find the required license path info in the config
75
+ }
76
+ else {
77
+ //var path = config[0].Value.replace("~", "");
78
+ //this.get(path, 'get', (data: any) => {
79
+ // if (data.length) {
80
+ // }
81
+ //});
82
+ this.setupMenuImpl(report, menu, getActionRefs, enabled);
83
+ }
84
+ });
92
85
  }
93
86
  else {
94
- //no cloud file, so no need to check for license, push menu option
95
- //since this could be a non mrt report (word, excel)
96
- this.setupMenuImpl(reports[i], menu, getActionRefs, enabled);
87
+ //there is a cloud file associated with this report, but it isn't an mrt report push menu option
88
+ //since this a different type of report (word, excel)
89
+ this.setupMenuImpl(report, menu, getActionRefs, enabled);
97
90
  }
98
- });
99
- }
91
+ }
92
+ else {
93
+ //no cloud file, so no need to check for license, push menu option
94
+ //since this could be a non mrt report (word, excel)
95
+ this.setupMenuImpl(report, menu, getActionRefs, enabled);
96
+ }
97
+ });
100
98
  });
101
99
  }
102
100
  queryReports = (tableName, menu, getActionRefs, enabled) => {
@@ -109,7 +107,11 @@ export class TruReportManager {
109
107
  return query.where(predicate);
110
108
  }).subscribe((reports) => {
111
109
  if (reports.length) {
112
- this.setupMenu(reports, menu, getActionRefs, enabled).subscribe(() => {
110
+ let obsList = [];
111
+ for (var i = 0; i < reports.length; i++) {
112
+ obsList.push(this.setupMenu(reports[i], menu, getActionRefs, enabled));
113
+ }
114
+ forkJoin(obsList).subscribe(response => {
113
115
  obs.next(menu);
114
116
  });
115
117
  }
@@ -129,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
129
131
  providedIn: 'root',
130
132
  }]
131
133
  }], ctorParameters: () => [{ type: i1.TruDataContext }, { type: i2.TruActionInvoke }, { type: i3.TruModelTypeLookup }, { type: i4.TruAppEnvironment }, { type: i5.TruUser }] });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXJlcG9ydC1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy90cnUtcmVwb3J0LW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTW5ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFNbEMsTUFBTSxPQUFPLGdCQUFnQjtJQUVqQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBTFYsWUFDVSxXQUEyQixFQUMzQixZQUE2QixFQUM3QixlQUFtQyxFQUNuQyxjQUFpQyxFQUNqQyxJQUFhO1FBSmIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLFNBQUksR0FBSixJQUFJLENBQVM7SUFBSSxDQUFDO0lBRXBCLGFBQWEsQ0FBQyxNQUFXLEVBQUUsSUFBUyxFQUFFLGFBQWtCLEVBQUUsT0FBaUI7UUFDakYsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUMzQixJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUM7UUFDbEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2xCO1lBQ0UsU0FBUyxFQUFFO2dCQUNULE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELEtBQUssRUFBRSxNQUFNLENBQUMsVUFBVTtZQUN4QixPQUFPLEVBQUU7Z0JBQ1AsT0FBTyxPQUFPLEVBQUUsQ0FBQztZQUNuQixDQUFDO1lBQ0QsU0FBUyxFQUFFLFNBQVM7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SSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7cUJBQzVHLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7cUJBQzFELEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO3FCQUMvQyxHQUFHLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUM1RCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3ZCLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7d0JBQ25FLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2pCLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7cUJBQ0ksQ0FBQztvQkFDSixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqQixDQUFDO2dCQUNELEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO3VHQXJIUyxnQkFBZ0I7MkdBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVudGl0eVR5cGUsIGJyZWV6ZSB9IGZyb20gJ2JyZWV6ZS1jbGllbnQnO1xyXG5pbXBvcnQgeyBUcnVHbG9iYWxEYXRhQ29udGV4dCB9IGZyb20gJy4vdHJ1LWdsb2JhbC1kYXRhLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBUcnVVc2VyIH0gZnJvbSAnLi90cnUtdXNlcic7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSAnLi90cnUtZGF0YS1jb250ZXh0JztcclxuaW1wb3J0IHsgVHJ1TW9kZWxUeXBlTG9va3VwIH0gZnJvbSAnLi90cnUtbW9kZWwtdHlwZS1sb29rdXAnO1xyXG5pbXBvcnQgeyBUcnVBY3Rpb25JbnZva2UgfSBmcm9tICcuL3RydS1hY3Rpb24taW52b2tlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcnVBcHBFbnZpcm9ubWVudCB9IGZyb20gJy4vdHJ1LWFwcC1lbnZpcm9ubWVudCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1UmVwb3J0TWFuYWdlciB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRhdGFDb250ZXh0OiBUcnVEYXRhQ29udGV4dCxcclxuICAgIHByaXZhdGUgYWN0aW9uSW52b2tlOiBUcnVBY3Rpb25JbnZva2UsXHJcbiAgICBwcml2YXRlIG1vZGVsVHlwZUxvb2t1cDogVHJ1TW9kZWxUeXBlTG9va3VwLFxyXG4gICAgcHJpdmF0ZSBhcHBFbnZpcm9ubWVudDogVHJ1QXBwRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIHVzZXI6IFRydVVzZXIpIHsgfVxyXG5cclxuICBwcml2YXRlIHNldHVwTWVudUltcGwocmVwb3J0OiBhbnksIG1lbnU6IGFueSwgZ2V0QWN0aW9uUmVmczogYW55LCBlbmFibGVkOiAoKSA9PiB7fSkge1xyXG4gICAgdmFyIHJlcG9ydFJlZiA9IHJlcG9ydC5SZWY7XHJcbiAgICB2YXIgbWltZVJlZiA9IHJlcG9ydC5SZXBvcnRNaW1lVHlwZVN0ZE1pbWVUeXBlUmVmO1xyXG4gICAgbWVudVswXS5jaG9pY2VzLnB1c2goXHJcbiAgICAgIHtcclxuICAgICAgICBoYXNBY2Nlc3M6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWw6IHJlcG9ydC5SZXBvcnROYW1lLFxyXG4gICAgICAgIGVuYWJsZWQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIHJldHVybiBlbmFibGVkKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICByZXBvcnRSZWY6IHJlcG9ydFJlZixcclxuICAgICAgICBtaW1lUmVmOiBtaW1lUmVmLFxyXG4gICAgICAgIGZpcmU6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIHRoaXMuYWN0aW9uSW52b2tlLnByb2Nlc3NDdXN0b21SZXBvcnQoXHJcbiAgICAgICAgICAgIHRoaXMucmVwb3J0UmVmLFxyXG4gICAgICAgICAgICBnZXRBY3Rpb25SZWZzKCksXHJcbiAgICAgICAgICAgIHRoaXMubWltZVJlZlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0KHVybDogc3RyaW5nLCBtZXRob2Q6IHN0cmluZywgY2FsbGJhY2s6IChvOiBhbnkpID0+IGFueSwgcGFyYW1zID0gbnVsbCkge1xyXG4gICAgbGV0IG9iaiA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgdHJ5IHtcclxuICAgICAgb2JqID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGFsZXJ0KFwiWW91ciBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgQWpheC5cIik7XHJcbiAgICB9XHJcbiAgICBvYmoub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICBpZiAob2JqLnJlYWR5U3RhdGUgPT0gNCkge1xyXG4gICAgICAgIGNhbGxiYWNrKG9iaik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG9iai5vcGVuKG1ldGhvZCwgdXJsLCB0cnVlKTtcclxuICAgIG9iai5zZW5kKHBhcmFtcyk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cE1lbnUocmVwb3J0czogQXJyYXk8YW55PiwgbWVudTogYW55LCBnZXRBY3Rpb25SZWZzOiBhbnksIGVuYWJsZWQ6ICgpID0+IHt9KTogT2JzZXJ2YWJsZTxhbnk+ICB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzID0+IHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBvcnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5zZWFyY2godGhpcy5tb2RlbFR5cGVMb29rdXAuZ2V0VHlwZSgnVHJ1RGJDbG91ZEZpbGUnKSwgKHF1ZXJ5OiBhbnkpID0+IHtcclxuICAgICAgICAgIHZhciBwcmVkaWNhdGUgPSBuZXcgYnJlZXplLlByZWRpY2F0ZSgnVHJ1RGJDbG91ZEZpbGVSZWYnLCBicmVlemUuRmlsdGVyUXVlcnlPcC5FcXVhbHMsIHJlcG9ydHNbaV0uUmVwb3J0VHJ1RGJDbG91ZEZpbGVSZWYpXHJcbiAgICAgICAgICByZXR1cm4gcXVlcnkud2hlcmUocHJlZGljYXRlKTtcclxuICAgICAgICB9LCBudWxsLCBmYWxzZSkuc3Vic2NyaWJlKChjbG91ZEZpbGVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChjbG91ZEZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAvL3RoZXJlIGlzIGEgY2xvdWQgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXBvcnRcclxuICAgICAgICAgICAgaWYgKGNsb3VkRmlsZXNbMF0uRmlsZW5hbWUuZW5kc1dpdGgoXCIubXJ0XCIpKSB7XHJcbiAgICAgICAgICAgICAgLy90aGlzIGlzIGEgc3RpbXVsc29mdCByZXBvcnQsIGNoZWNrIGlmIGxpY2Vuc2UgZmlsZSBleGlzdHNcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5zZWFyY2godGhpcy5tb2RlbFR5cGVMb29rdXAuZ2V0VHlwZSgnVHJ1RGJDb25maWcnKSwgKHF1ZXJ5OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHZhciBwcmVkaWNhdGUgPSBuZXcgYnJlZXplLlByZWRpY2F0ZSgnS2V5JywgYnJlZXplLkZpbHRlclF1ZXJ5T3AuRXF1YWxzLCAnU3RpbXVsc29mdExpY2Vuc2VQYXRoJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcXVlcnkud2hlcmUocHJlZGljYXRlKTtcclxuICAgICAgICAgICAgICB9LCBudWxsLCBmYWxzZSkuc3Vic2NyaWJlKChjb25maWc6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFjb25maWcubGVuZ3RoIHx8ICFjb25maWdbMF0uVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgLy9kbyBub3RoaW5nLCBubyBtZW51IG9wdGlvbiB3aWxsIGJlIHB1c2hlZCBpbnRvIHRoZSBkb20gc2luY2VcclxuICAgICAgICAgICAgICAgICAgLy93ZSBjb3VsZG4ndCBmaW5kIHRoZSByZXF1aXJlZCBsaWNlbnNlIHBhdGggaW5mbyBpbiB0aGUgY29uZmlnXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgLy92YXIgcGF0aCA9IGNvbmZpZ1swXS5WYWx1ZS5yZXBsYWNlKFwiflwiLCBcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgLy90aGlzLmdldChwYXRoLCAnZ2V0JywgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAvLyAgaWYgKGRhdGEubGVuZ3RoKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAvLyAgfVxyXG4gICAgICAgICAgICAgICAgICAvL30pO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldHVwTWVudUltcGwocmVwb3J0c1tpXSwgbWVudSwgZ2V0QWN0aW9uUmVmcywgZW5hYmxlZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgLy90aGVyZSBpcyBhIGNsb3VkIGZpbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVwb3J0LCBidXQgaXQgaXNuJ3QgYW4gbXJ0IHJlcG9ydCBwdXNoIG1lbnUgb3B0aW9uXHJcbiAgICAgICAgICAgICAgLy9zaW5jZSB0aGlzIGEgZGlmZmVyZW50IHR5cGUgb2YgcmVwb3J0ICh3b3JkLCBleGNlbClcclxuICAgICAgICAgICAgICB0aGlzLnNldHVwTWVudUltcGwocmVwb3J0c1tpXSwgbWVudSwgZ2V0QWN0aW9uUmVmcywgZW5hYmxlZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvL25vIGNsb3VkIGZpbGUsIHNvIG5vIG5lZWQgdG8gY2hlY2sgZm9yIGxpY2Vuc2UsIHB1c2ggbWVudSBvcHRpb25cclxuICAgICAgICAgICAgLy9zaW5jZSB0aGlzIGNvdWxkIGJlIGEgbm9uIG1ydCByZXBvcnQgKHdvcmQsIGV4Y2VsKVxyXG4gICAgICAgICAgICB0aGlzLnNldHVwTWVudUltcGwocmVwb3J0c1tpXSwgbWVudSwgZ2V0QWN0aW9uUmVmcywgZW5hYmxlZCk7XHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHF1ZXJ5UmVwb3J0cyA9ICh0YWJsZU5hbWU6IHN0cmluZywgbWVudTogYW55LCBnZXRBY3Rpb25SZWZzOiBzdHJpbmcsIGVuYWJsZWQ6ICgpID0+IHt9KTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnMgPT4ge1xyXG4gICAgICB0aGlzLmFwcEVudmlyb25tZW50Lmdsb2JhbERhdGFDb250ZXh0Py5lbnRpdHlBY2Nlc3MoKS5zZWFyY2hDYWNoZU9ubHkodGhpcy5tb2RlbFR5cGVMb29rdXAuZ2V0VHlwZSgnVHJ1RGJSZXBvcnQnKSwgKHF1ZXJ5OiBhbnkpID0+IHtcclxuICAgICAgICB2YXIgcHJlZGljYXRlID0gbmV3IGJyZWV6ZS5QcmVkaWNhdGUoJ093bmVyVHJ1RGJVc2VyUmVmJywgYnJlZXplLkZpbHRlclF1ZXJ5T3AuRXF1YWxzLCB0aGlzLnVzZXIuYWN0aXZlVXNlclJlZilcclxuICAgICAgICAgIC5vcignT3duZXJUcnVEYlVzZXJSZWYnLCBicmVlemUuRmlsdGVyUXVlcnlPcC5FcXVhbHMsIG51bGwpXHJcbiAgICAgICAgICAub3IoJ1B1YmxpYycsIGJyZWV6ZS5GaWx0ZXJRdWVyeU9wLkVxdWFscywgdHJ1ZSlcclxuICAgICAgICAgIC5hbmQoJ1RhYmxlTmFtZScsIGJyZWV6ZS5GaWx0ZXJRdWVyeU9wLkVxdWFscywgdGFibGVOYW1lKTtcclxuICAgICAgICByZXR1cm4gcXVlcnkud2hlcmUocHJlZGljYXRlKTtcclxuICAgICAgfSkuc3Vic2NyaWJlKChyZXBvcnRzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcG9ydHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLnNldHVwTWVudShyZXBvcnRzLCBtZW51LCBnZXRBY3Rpb25SZWZzLCBlbmFibGVkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBvYnMubmV4dChtZW51KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9icy5uZXh0KG1lbnUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBvYnMuY29tcGxldGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9O1xyXG59XHJcbiJdfQ==
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXJlcG9ydC1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9zZXJ2aWNlcy90cnUtcmVwb3J0LW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTW5ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTTVDLE1BQU0sT0FBTyxnQkFBZ0I7SUFFakI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUxWLFlBQ1UsV0FBMkIsRUFDM0IsWUFBNkIsRUFDN0IsZUFBbUMsRUFDbkMsY0FBaUMsRUFDakMsSUFBYTtRQUpiLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBaUI7UUFDN0Isb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBQ25DLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFTO0lBQUksQ0FBQztJQUVwQixhQUFhLENBQUMsTUFBVyxFQUFFLElBQVMsRUFBRSxhQUFrQixFQUFFLE9BQWlCO1FBQ2pGLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDM0IsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDO1FBQ2xELElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNsQjtZQUNFLFNBQVMsRUFBRTtnQkFDVCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxLQUFLLEVBQUUsTUFBTSxDQUFDLFVBQVU7WUFDeEIsT0FBTyxFQUFFO2dCQUNQLE9BQU8sT0FBTyxFQUFFLENBQUM7WUFDbkIsQ0FBQztZQUNELFNBQVMs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Y29yZSc7XHJcbmltcG9ydCB7IEVudGl0eVR5cGUsIGJyZWV6ZSB9IGZyb20gJ2JyZWV6ZS1jbGllbnQnO1xyXG5pbXBvcnQgeyBUcnVHbG9iYWxEYXRhQ29udGV4dCB9IGZyb20gJy4vdHJ1LWdsb2JhbC1kYXRhLWNvbnRleHQnO1xyXG5pbXBvcnQgeyBUcnVVc2VyIH0gZnJvbSAnLi90cnUtdXNlcic7XHJcbmltcG9ydCB7IFRydURhdGFDb250ZXh0IH0gZnJvbSAnLi90cnUtZGF0YS1jb250ZXh0JztcclxuaW1wb3J0IHsgVHJ1TW9kZWxUeXBlTG9va3VwIH0gZnJvbSAnLi90cnUtbW9kZWwtdHlwZS1sb29rdXAnO1xyXG5pbXBvcnQgeyBUcnVBY3Rpb25JbnZva2UgfSBmcm9tICcuL3RydS1hY3Rpb24taW52b2tlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJ1QXBwRW52aXJvbm1lbnQgfSBmcm9tICcuL3RydS1hcHAtZW52aXJvbm1lbnQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydVJlcG9ydE1hbmFnZXIge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQsXHJcbiAgICBwcml2YXRlIGFjdGlvbkludm9rZTogVHJ1QWN0aW9uSW52b2tlLFxyXG4gICAgcHJpdmF0ZSBtb2RlbFR5cGVMb29rdXA6IFRydU1vZGVsVHlwZUxvb2t1cCxcclxuICAgIHByaXZhdGUgYXBwRW52aXJvbm1lbnQ6IFRydUFwcEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSB1c2VyOiBUcnVVc2VyKSB7IH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cE1lbnVJbXBsKHJlcG9ydDogYW55LCBtZW51OiBhbnksIGdldEFjdGlvblJlZnM6IGFueSwgZW5hYmxlZDogKCkgPT4ge30pIHtcclxuICAgIHZhciByZXBvcnRSZWYgPSByZXBvcnQuUmVmO1xyXG4gICAgdmFyIG1pbWVSZWYgPSByZXBvcnQuUmVwb3J0TWltZVR5cGVTdGRNaW1lVHlwZVJlZjtcclxuICAgIG1lbnVbMF0uY2hvaWNlcy5wdXNoKFxyXG4gICAgICB7XHJcbiAgICAgICAgaGFzQWNjZXNzOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxhYmVsOiByZXBvcnQuUmVwb3J0TmFtZSxcclxuICAgICAgICBlbmFibGVkOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICByZXR1cm4gZW5hYmxlZCgpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVwb3J0UmVmOiByZXBvcnRSZWYsXHJcbiAgICAgICAgbWltZVJlZjogbWltZVJlZixcclxuICAgICAgICBmaXJlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGlvbkludm9rZS5wcm9jZXNzQ3VzdG9tUmVwb3J0KFxyXG4gICAgICAgICAgICB0aGlzLnJlcG9ydFJlZixcclxuICAgICAgICAgICAgZ2V0QWN0aW9uUmVmcygpLFxyXG4gICAgICAgICAgICB0aGlzLm1pbWVSZWZcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCh1cmw6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIGNhbGxiYWNrOiAobzogYW55KSA9PiBhbnksIHBhcmFtcyA9IG51bGwpIHtcclxuICAgIGxldCBvYmogPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcclxuICAgIHRyeSB7XHJcbiAgICAgIG9iaiA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBhbGVydChcIllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEFqYXguXCIpO1xyXG4gICAgfVxyXG4gICAgb2JqLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgaWYgKG9iai5yZWFkeVN0YXRlID09IDQpIHtcclxuICAgICAgICBjYWxsYmFjayhvYmopO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBvYmoub3BlbihtZXRob2QsIHVybCwgdHJ1ZSk7XHJcbiAgICBvYmouc2VuZChwYXJhbXMpO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBNZW51KHJlcG9ydDogYW55LCBtZW51OiBhbnksIGdldEFjdGlvblJlZnM6IGFueSwgZW5hYmxlZDogKCkgPT4ge30pOiBPYnNlcnZhYmxlPGFueT4gIHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnMgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuc2VhcmNoKHRoaXMubW9kZWxUeXBlTG9va3VwLmdldFR5cGUoJ1RydURiQ2xvdWRGaWxlJyksIChxdWVyeTogYW55KSA9PiB7XHJcbiAgICAgICAgICB2YXIgcHJlZGljYXRlID0gbmV3IGJyZWV6ZS5QcmVkaWNhdGUoJ1RydURiQ2xvdWRGaWxlUmVmJywgYnJlZXplLkZpbHRlclF1ZXJ5T3AuRXF1YWxzLCByZXBvcnQuUmVwb3J0VHJ1RGJDbG91ZEZpbGVSZWYpXHJcbiAgICAgICAgICByZXR1cm4gcXVlcnkud2hlcmUocHJlZGljYXRlKTtcclxuICAgICAgICB9LCBudWxsLCBmYWxzZSkuc3Vic2NyaWJlKChjbG91ZEZpbGVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChjbG91ZEZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAvL3RoZXJlIGlzIGEgY2xvdWQgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXBvcnRcclxuICAgICAgICAgICAgaWYgKGNsb3VkRmlsZXNbMF0uRmlsZW5hbWUuZW5kc1dpdGgoXCIubXJ0XCIpKSB7XHJcbiAgICAgICAgICAgICAgLy90aGlzIGlzIGEgc3RpbXVsc29mdCByZXBvcnQsIGNoZWNrIGlmIGxpY2Vuc2UgZmlsZSBleGlzdHNcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5zZWFyY2godGhpcy5tb2RlbFR5cGVMb29rdXAuZ2V0VHlwZSgnVHJ1RGJDb25maWcnKSwgKHF1ZXJ5OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHZhciBwcmVkaWNhdGUgPSBuZXcgYnJlZXplLlByZWRpY2F0ZSgnS2V5JywgYnJlZXplLkZpbHRlclF1ZXJ5T3AuRXF1YWxzLCAnU3RpbXVsc29mdExpY2Vuc2VQYXRoJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcXVlcnkud2hlcmUocHJlZGljYXRlKTtcclxuICAgICAgICAgICAgICB9LCBudWxsLCBmYWxzZSkuc3Vic2NyaWJlKChjb25maWc6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFjb25maWcubGVuZ3RoIHx8ICFjb25maWdbMF0uVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgLy9kbyBub3RoaW5nLCBubyBtZW51IG9wdGlvbiB3aWxsIGJlIHB1c2hlZCBpbnRvIHRoZSBkb20gc2luY2VcclxuICAgICAgICAgICAgICAgICAgLy93ZSBjb3VsZG4ndCBmaW5kIHRoZSByZXF1aXJlZCBsaWNlbnNlIHBhdGggaW5mbyBpbiB0aGUgY29uZmlnXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgLy92YXIgcGF0aCA9IGNvbmZpZ1swXS5WYWx1ZS5yZXBsYWNlKFwiflwiLCBcIlwiKTtcclxuICAgICAgICAgICAgICAgICAgLy90aGlzLmdldChwYXRoLCAnZ2V0JywgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAvLyAgaWYgKGRhdGEubGVuZ3RoKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAvLyAgfVxyXG4gICAgICAgICAgICAgICAgICAvL30pO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldHVwTWVudUltcGwocmVwb3J0LCBtZW51LCBnZXRBY3Rpb25SZWZzLCBlbmFibGVkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAvL3RoZXJlIGlzIGEgY2xvdWQgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXBvcnQsIGJ1dCBpdCBpc24ndCBhbiBtcnQgcmVwb3J0IHB1c2ggbWVudSBvcHRpb25cclxuICAgICAgICAgICAgICAvL3NpbmNlIHRoaXMgYSBkaWZmZXJlbnQgdHlwZSBvZiByZXBvcnQgKHdvcmQsIGV4Y2VsKVxyXG4gICAgICAgICAgICAgIHRoaXMuc2V0dXBNZW51SW1wbChyZXBvcnQsIG1lbnUsIGdldEFjdGlvblJlZnMsIGVuYWJsZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy9ubyBjbG91ZCBmaWxlLCBzbyBubyBuZWVkIHRvIGNoZWNrIGZvciBsaWNlbnNlLCBwdXNoIG1lbnUgb3B0aW9uXHJcbiAgICAgICAgICAgIC8vc2luY2UgdGhpcyBjb3VsZCBiZSBhIG5vbiBtcnQgcmVwb3J0ICh3b3JkLCBleGNlbClcclxuICAgICAgICAgICAgdGhpcy5zZXR1cE1lbnVJbXBsKHJlcG9ydCwgbWVudSwgZ2V0QWN0aW9uUmVmcywgZW5hYmxlZCk7XHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBxdWVyeVJlcG9ydHMgPSAodGFibGVOYW1lOiBzdHJpbmcsIG1lbnU6IGFueSwgZ2V0QWN0aW9uUmVmczogc3RyaW5nLCBlbmFibGVkOiAoKSA9PiB7fSk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzID0+IHtcclxuICAgICAgdGhpcy5hcHBFbnZpcm9ubWVudC5nbG9iYWxEYXRhQ29udGV4dD8uZW50aXR5QWNjZXNzKCkuc2VhcmNoQ2FjaGVPbmx5KHRoaXMubW9kZWxUeXBlTG9va3VwLmdldFR5cGUoJ1RydURiUmVwb3J0JyksIChxdWVyeTogYW55KSA9PiB7XHJcbiAgICAgICAgdmFyIHByZWRpY2F0ZSA9IG5ldyBicmVlemUuUHJlZGljYXRlKCdPd25lclRydURiVXNlclJlZicsIGJyZWV6ZS5GaWx0ZXJRdWVyeU9wLkVxdWFscywgdGhpcy51c2VyLmFjdGl2ZVVzZXJSZWYpXHJcbiAgICAgICAgICAub3IoJ093bmVyVHJ1RGJVc2VyUmVmJywgYnJlZXplLkZpbHRlclF1ZXJ5T3AuRXF1YWxzLCBudWxsKVxyXG4gICAgICAgICAgLm9yKCdQdWJsaWMnLCBicmVlemUuRmlsdGVyUXVlcnlPcC5FcXVhbHMsIHRydWUpXHJcbiAgICAgICAgICAuYW5kKCdUYWJsZU5hbWUnLCBicmVlemUuRmlsdGVyUXVlcnlPcC5FcXVhbHMsIHRhYmxlTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIHF1ZXJ5LndoZXJlKHByZWRpY2F0ZSk7XHJcbiAgICAgIH0pLnN1YnNjcmliZSgocmVwb3J0cykgPT4ge1xyXG4gICAgICAgIGlmIChyZXBvcnRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgbGV0IG9ic0xpc3QgPSBbXTtcclxuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVwb3J0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBvYnNMaXN0LnB1c2godGhpcy5zZXR1cE1lbnUocmVwb3J0c1tpXSwgbWVudSwgZ2V0QWN0aW9uUmVmcywgZW5hYmxlZCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZm9ya0pvaW4ob2JzTGlzdCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgb2JzLm5leHQobWVudSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9icy5uZXh0KG1lbnUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBvYnMuY29tcGxldGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -8052,48 +8052,46 @@ class TruReportManager {
8052
8052
  obj.send(params);
8053
8053
  return obj;
8054
8054
  }
8055
- setupMenu(reports, menu, getActionRefs, enabled) {
8055
+ setupMenu(report, menu, getActionRefs, enabled) {
8056
8056
  return new Observable(obs => {
8057
- for (var i = 0; i < reports.length; i++) {
8058
- this.dataContext.entityAccess().search(this.modelTypeLookup.getType('TruDbCloudFile'), (query) => {
8059
- var predicate = new breeze.Predicate('TruDbCloudFileRef', breeze.FilterQueryOp.Equals, reports[i].ReportTruDbCloudFileRef);
8060
- return query.where(predicate);
8061
- }, null, false).subscribe((cloudFiles) => {
8062
- if (cloudFiles.length) {
8063
- //there is a cloud file associated with this report
8064
- if (cloudFiles[0].Filename.endsWith(".mrt")) {
8065
- //this is a stimulsoft report, check if license file exists
8066
- this.dataContext.entityAccess().search(this.modelTypeLookup.getType('TruDbConfig'), (query) => {
8067
- var predicate = new breeze.Predicate('Key', breeze.FilterQueryOp.Equals, 'StimulsoftLicensePath');
8068
- return query.where(predicate);
8069
- }, null, false).subscribe((config) => {
8070
- if (!config.length || !config[0].Value) {
8071
- //do nothing, no menu option will be pushed into the dom since
8072
- //we couldn't find the required license path info in the config
8073
- }
8074
- else {
8075
- //var path = config[0].Value.replace("~", "");
8076
- //this.get(path, 'get', (data: any) => {
8077
- // if (data.length) {
8078
- // }
8079
- //});
8080
- this.setupMenuImpl(reports[i], menu, getActionRefs, enabled);
8081
- }
8082
- });
8083
- }
8084
- else {
8085
- //there is a cloud file associated with this report, but it isn't an mrt report push menu option
8086
- //since this a different type of report (word, excel)
8087
- this.setupMenuImpl(reports[i], menu, getActionRefs, enabled);
8088
- }
8057
+ this.dataContext.entityAccess().search(this.modelTypeLookup.getType('TruDbCloudFile'), (query) => {
8058
+ var predicate = new breeze.Predicate('TruDbCloudFileRef', breeze.FilterQueryOp.Equals, report.ReportTruDbCloudFileRef);
8059
+ return query.where(predicate);
8060
+ }, null, false).subscribe((cloudFiles) => {
8061
+ if (cloudFiles.length) {
8062
+ //there is a cloud file associated with this report
8063
+ if (cloudFiles[0].Filename.endsWith(".mrt")) {
8064
+ //this is a stimulsoft report, check if license file exists
8065
+ this.dataContext.entityAccess().search(this.modelTypeLookup.getType('TruDbConfig'), (query) => {
8066
+ var predicate = new breeze.Predicate('Key', breeze.FilterQueryOp.Equals, 'StimulsoftLicensePath');
8067
+ return query.where(predicate);
8068
+ }, null, false).subscribe((config) => {
8069
+ if (!config.length || !config[0].Value) {
8070
+ //do nothing, no menu option will be pushed into the dom since
8071
+ //we couldn't find the required license path info in the config
8072
+ }
8073
+ else {
8074
+ //var path = config[0].Value.replace("~", "");
8075
+ //this.get(path, 'get', (data: any) => {
8076
+ // if (data.length) {
8077
+ // }
8078
+ //});
8079
+ this.setupMenuImpl(report, menu, getActionRefs, enabled);
8080
+ }
8081
+ });
8089
8082
  }
8090
8083
  else {
8091
- //no cloud file, so no need to check for license, push menu option
8092
- //since this could be a non mrt report (word, excel)
8093
- this.setupMenuImpl(reports[i], menu, getActionRefs, enabled);
8084
+ //there is a cloud file associated with this report, but it isn't an mrt report push menu option
8085
+ //since this a different type of report (word, excel)
8086
+ this.setupMenuImpl(report, menu, getActionRefs, enabled);
8094
8087
  }
8095
- });
8096
- }
8088
+ }
8089
+ else {
8090
+ //no cloud file, so no need to check for license, push menu option
8091
+ //since this could be a non mrt report (word, excel)
8092
+ this.setupMenuImpl(report, menu, getActionRefs, enabled);
8093
+ }
8094
+ });
8097
8095
  });
8098
8096
  }
8099
8097
  queryReports = (tableName, menu, getActionRefs, enabled) => {
@@ -8106,7 +8104,11 @@ class TruReportManager {
8106
8104
  return query.where(predicate);
8107
8105
  }).subscribe((reports) => {
8108
8106
  if (reports.length) {
8109
- this.setupMenu(reports, menu, getActionRefs, enabled).subscribe(() => {
8107
+ let obsList = [];
8108
+ for (var i = 0; i < reports.length; i++) {
8109
+ obsList.push(this.setupMenu(reports[i], menu, getActionRefs, enabled));
8110
+ }
8111
+ forkJoin(obsList).subscribe(response => {
8110
8112
  obs.next(menu);
8111
8113
  });
8112
8114
  }