io.parrots
Version:
Parrots.io App
1,408 lines (1,396 loc) • 1.16 MB
JavaScript
import { DefaultConnectionManager, CONNECTION_DATA, BackgroundProcessManager, ConnectionManager, ObservableManager, PhloxAppInfoService, AbstractServerResource, DataSchema, DataField, DefaultDataEditorViewProvider, DefaultDataEditorActionProvider, ActionModel, TypeResolveService, DataUtils, APP_BASE_URLS, PhloxAppService, NeedFocusService, NotificationManager, PhloxAppInfo, AbstractSideSlidePanel, AbstractPage, AbstractRippleButton, AbstractNavMenu, Option, AbstractNavItem, AbstractDialogController, DateTimeUtils, I18N, ButtonModel, DefaultSelectItemModel, LanguageButtonModel, DialogService, AbstractComponentDataLangSelector, AbstractDataEditor, EventUtils, ComponentDialogModel, DATA_DESTROY_EVENT, DATA_PROMOTE_EVENT, DATA_QUERY_EVENT, DataEditorActionProvider, DataEditorViewProvider, DataServiceFactory, PhloxModule } from 'com.phloxui';
import { InjectionToken, Injectable, Inject, Component, HostListener, Input, ElementRef, Output, ViewChild, EventEmitter, NgModule } from '@angular/core';
import { Http, RequestOptions, Headers, RequestMethod, URLSearchParams, HttpModule, JsonpModule } from '@angular/http';
import { __decorate, __metadata } from 'tslib';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { LoadersCssModule } from 'angular2-loaders-css';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
class ParrotsDefaultConnectionManager extends DefaultConnectionManager {
/**
* @param {?} baseURLs
* @param {?} http
* @param {?} bgProcMgr
* @param {?=} testMode
* @param {?=} testData
*/
constructor(baseURLs, http, bgProcMgr, testMode, testData) {
super(baseURLs, http, bgProcMgr);
this.testMode = testMode;
this.testData = testData;
}
/**
* @return {?}
*/
isTestMode() {
return this.testMode;
}
/**
* @return {?}
*/
getTestData() {
return this.testData;
}
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
const /** @type {?} */ TEST_MODE = new InjectionToken("TEST_MODE");
const /** @type {?} */ TEST_DATA = new InjectionToken("TEST_DATA"); // value as {"className": []"array of data"}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
const /** @type {?} */ RUNNING = 'RUNNING';
const /** @type {?} */ BASE_URL = 'http://10.1.0.22/api';
const /** @type {?} */ TEST_INSTANCE_ID = 'TEST';
/**
* <p style="text-indent: 2em;">
* A <code>ng</code> service class implementing [[InstanceConnectionManager]] service interface. Please see [[InstanceConnectionManager]] for more details.
* </p>
*
* @author shiorin, tee4cute
*/
class InstanceConnectionManager {
/**
* @param {?} connectionManager
* @param {?} http
* @param {?} bgProcessMgr
* @param {?} testMode
* @param {?} testData
*/
constructor(connectionManager, http, bgProcessMgr, testMode, testData) {
this.seletedInstanceId = "";
this.http = http;
this.bgProcessMgr = bgProcessMgr;
this.connectionManager = connectionManager;
this.instanceConnectionManagerMap = {};
this.testMode = testMode;
this.testData = testData;
// if (testMode) {
this.seletedInstanceId = TEST_INSTANCE_ID;
this.instanceConnectionManagerMap[this.seletedInstanceId] = new ParrotsDefaultConnectionManager(null, this.http, this.bgProcessMgr, testMode, testData);
// }
}
/**
* @param {?} instanceUUID
* @return {?}
*/
getNodes(instanceUUID) {
if (this.connectionManager !== null && typeof this.connectionManager !== 'undefined') {
let /** @type {?} */ url = BASE_URL + "/instance/" + instanceUUID + "/node";
let /** @type {?} */ requestOptionsArgs = new RequestOptions();
return this.connectionManager.getWithHttpInfo(url, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* ## setup instance: generate connectionManager by instanceUUID and cache in map
* @param {?} instanceUUID
* @param {?=} loginData
* @return {?}
*/
setUpInstance(instanceUUID, loginData) {
return new Promise((resolve, reject) => {
this.getNodes(instanceUUID).then((res) => {
let /** @type {?} */ itemNodes = JSON.parse(res._body).items;
let /** @type {?} */ runnintMode = false;
for (let /** @type {?} */ itemNode of itemNodes) {
if (itemNode.status === RUNNING) {
runnintMode = true;
let /** @type {?} */ conMgr = new ParrotsDefaultConnectionManager(null, this.http, this.bgProcessMgr, this.testMode, this.testData);
conMgr.setName(itemNode._uuid);
//Set for test.
let /** @type {?} */ url = itemNode.serverNode.hostName == "localhost" ? "http://10.1.0.22" : itemNode.serverNode.hostName;
url += ":" + itemNode.servicePort + "/api";
conMgr.addBaseURLs(url);
if (loginData !== undefined) {
url += "/user/login";
this.connectionManager.postWithHttpInfo(url, loginData, new RequestOptions()).then((res) => {
let /** @type {?} */ sessionId = JSON.parse((/** @type {?} */ (res))._body).sessionId;
conMgr.setDefaultHeader('Session-Id', sessionId);
this.instanceConnectionManagerMap[instanceUUID] = conMgr;
resolve(itemNodes);
}).catch((error) => {
this.instanceConnectionManagerMap[instanceUUID] = conMgr;
reject(error);
});
}
else {
this.instanceConnectionManagerMap[instanceUUID] = conMgr;
}
}
}
if (loginData === undefined) {
if (runnintMode) {
resolve(itemNodes);
}
reject(itemNodes);
}
}).catch((error) => {
reject(error);
});
});
}
/**
* ## setup instances: generate connectionManager by instanceUUIDs and cache in map
* @param {?} instances
* @return {?}
*/
setUpInstances(instances) {
if (instances === undefined || instances === null) {
return Promise.resolve([]);
}
let /** @type {?} */ proms = [];
for (let /** @type {?} */ instanceUUID in instances) {
if (instanceUUID === null || instanceUUID === undefined) {
continue;
}
proms.push(this.setUpInstance(instanceUUID, instances[instanceUUID]));
}
return Promise.all(proms);
}
/**
* ## remove instance by instanceUUID from map
* @param {?} instanceUUID
* @return {?}
*/
tearDownInstance(instanceUUID) {
delete this.instanceConnectionManagerMap[instanceUUID];
}
/**
* ## remove instance instanceUUID from map
* @param {?=} instanceUUID
* @return {?}
*/
getInstanceConnectionManager(instanceUUID) {
if (instanceUUID !== undefined && instanceUUID !== null && instanceUUID !== '') {
return this.instanceConnectionManagerMap[instanceUUID];
}
if (this.seletedInstanceId === undefined || this.seletedInstanceId === null) {
return null;
}
return this.instanceConnectionManagerMap[this.seletedInstanceId];
}
/**
* @param {?} instanceUUID
* @return {?}
*/
selectInstance(instanceUUID) {
this.seletedInstanceId = instanceUUID;
}
/**
* @param {?} url
* @param {?} requestOptionsArgs
* @return {?}
*/
get(url, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().get(url, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} requestOptionsArgs
* @return {?}
*/
getWithHttpInfo(url, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().getWithHttpInfo(url, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} body
* @param {?} requestOptionsArgs
* @return {?}
*/
post(url, body, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().post(url, body, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} body
* @param {?} requestOptionsArgs
* @return {?}
*/
postWithHttpInfo(url, body, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().postWithHttpInfo(url, body, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} body
* @param {?} requestOptionsArgs
* @return {?}
*/
put(url, body, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().put(url, body, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} body
* @param {?} requestOptionsArgs
* @return {?}
*/
putWithHttpInfo(url, body, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().putWithHttpInfo(url, body, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} requestOptionsArgs
* @return {?}
*/
delete(url, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().delete(url, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} requestOptionsArgs
* @return {?}
*/
deleteWithHttpInfo(url, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().deleteWithHttpInfo(url, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} body
* @param {?} requestOptionsArgs
* @return {?}
*/
patch(url, body, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().patch(url, body, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} body
* @param {?} requestOptionsArgs
* @return {?}
*/
patchWithHttpInfo(url, body, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().patchWithHttpInfo(url, body, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} requestOptionsArgs
* @return {?}
*/
head(url, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().head(url, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} requestOptionsArgs
* @return {?}
*/
headWithHttpInfo(url, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().headWithHttpInfo(url, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} requestOptionsArgs
* @return {?}
*/
options(url, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().options(url, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} requestOptionsArgs
* @return {?}
*/
optionsWithHttpInfo(url, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().optionsWithHttpInfo(url, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} requestOptionsArgs
* @return {?}
*/
request(url, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().request(url, requestOptionsArgs);
}
/**
* @param {?} url
* @param {?} requestOptionsArgs
* @return {?}
*/
requestWithHttpInfo(url, requestOptionsArgs) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
return Promise.reject('Connection Manager is not setup yet.');
}
return this.getInstanceConnectionManager().requestWithHttpInfo(url, requestOptionsArgs);
}
/**
* @return {?}
*/
getRunningProcessesCount() {
if (this.seletedInstanceId === null || this.seletedInstanceId === undefined) {
return null;
}
if (this.bgProcessMgr != null && typeof this.bgProcessMgr !== 'undefined') {
this.bgProcessMgr.getRunningProcessesCount(CONNECTION_DATA, this.seletedInstanceId);
}
return 0;
}
/**
* @return {?}
*/
getRunningProcesses() {
if (this.seletedInstanceId === null || this.seletedInstanceId === undefined) {
return null;
}
if (this.bgProcessMgr != null && typeof this.bgProcessMgr !== 'undefined') {
this.bgProcessMgr.getRunningProcesses(CONNECTION_DATA, this.seletedInstanceId);
}
return [];
}
/**
* @return {?}
*/
getConnectionQuality() {
// TODO
return this.connectionManager.getConnectionQuality();
}
/**
* @param {?} urls
* @return {?}
*/
setBaseURLs(urls) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
throw ('Connection Manager is not setup yet.');
}
this.getInstanceConnectionManager().setBaseURLs(urls);
}
/**
* @return {?}
*/
resetBaseURLs() {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
throw ('Connection Manager is not setup yet.');
}
this.getInstanceConnectionManager().resetBaseURLs();
}
/**
* @param {?} key
* @param {?} value
* @return {?}
*/
setDefaultHeader(key, value) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
throw ('Connection Manager is not setup yet.');
}
this.getInstanceConnectionManager().setDefaultHeader(key, value);
}
/**
* @param {?} key
* @return {?}
*/
removeDefaultHeader(key) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
throw ('Connection Manager is not setup yet.');
}
this.getInstanceConnectionManager().removeDefaultHeader(key);
}
/**
* @return {?}
*/
resetDefaultHeaders() {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
throw ('Connection Manager is not setup yet.');
}
this.getInstanceConnectionManager().resetDefaultHeaders();
}
/**
* @param {?} key
* @param {?} value
* @return {?}
*/
setSearch(key, value) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
throw ('Connection Manager is not setup yet.');
}
this.getInstanceConnectionManager().setSearch(key, value);
}
/**
* @param {?} key
* @return {?}
*/
removeSearch(key) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
throw ('Connection Manager is not setup yet.');
}
this.getInstanceConnectionManager().removeSearch(key);
}
/**
* @return {?}
*/
resetSearch() {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
throw ('Connection Manager is not setup yet.');
}
this.getInstanceConnectionManager().resetSearch();
}
/**
* @param {?} key
* @param {?} value
* @return {?}
*/
setParam(key, value) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
throw ('Connection Manager is not setup yet.');
}
this.getInstanceConnectionManager().setParam(key, value);
}
/**
* @param {?} key
* @return {?}
*/
removeParam(key) {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
throw ('Connection Manager is not setup yet.');
}
this.getInstanceConnectionManager().removeParam(key);
}
/**
* @return {?}
*/
resetParams() {
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
throw ('Connection Manager is not setup yet.');
}
this.getInstanceConnectionManager().resetParams();
}
/**
* @return {?}
*/
getName() {
return this.name;
}
/**
* @param {?} name
* @return {?}
*/
setName(name) {
this.name = name;
if (this.getInstanceConnectionManager() === null || this.getInstanceConnectionManager() === undefined) {
throw ('Connection Manager is not setup yet.');
}
this.getInstanceConnectionManager().setName(name);
}
/**
* @template R
* @param {?} type
* @return {?}
*/
createResource(type) {
return this.getInstanceConnectionManager().createResource(type);
}
}
InstanceConnectionManager.decorators = [
{ type: Injectable },
];
/** @nocollapse */
InstanceConnectionManager.ctorParameters = () => [
{ type: ConnectionManager, },
{ type: Http, },
{ type: BackgroundProcessManager, },
{ type: undefined, decorators: [{ type: Inject, args: [TEST_MODE,] },] },
{ type: undefined, decorators: [{ type: Inject, args: [TEST_DATA,] },] },
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
class JobScheduler {
/**
* @param {?} instanceConnectionManager
*/
constructor(instanceConnectionManager) {
this.instanceConnectionManager = instanceConnectionManager;
}
/**
* @param {?} sessionId
* @return {?}
*/
setInstanceSessionId(sessionId) {
sessionStorage.setItem(JobScheduler.SESSION_ID_KEY, sessionId);
}
/**
* @return {?}
*/
getInstanceSessionId() {
return sessionStorage.getItem(JobScheduler.SESSION_ID_KEY);
}
/**
* @param {?} options
* @param {?} headerData
* @param {?=} xmlType
* @return {?}
*/
addingHeaderRequestOptionsArgs(options, headerData, xmlType) {
if (options === null || typeof options === 'undefined') {
options = new RequestOptions();
}
if (headerData !== null && typeof headerData !== 'undefined') {
if (options.headers !== null && typeof options.headers !== 'undefined') {
for (let /** @type {?} */ key in headerData) {
options.headers.set(key, headerData[key]);
}
}
else {
options.headers = new Headers(headerData);
}
}
let /** @type {?} */ sessionId = this.getInstanceSessionId();
if (sessionId !== undefined && sessionId !== null) {
options.headers.delete('Session-Id');
options.headers.set('Session-Id', sessionId);
}
if (xmlType) {
options.headers.set("Accept", "application/xml");
options.headers.set("Content-Type", "application/xml");
}
else {
options.headers.set("Content-Type", "application/json");
}
return options;
}
/**
* @return {?}
*/
getListJob() {
if (this.instanceConnectionManager !== null && typeof this.instanceConnectionManager !== 'undefined') {
let /** @type {?} */ url = "admin/job/query";
let /** @type {?} */ body = {
"filter": ""
};
//! for testing
let /** @type {?} */ requestOptionsArgs = this.addingHeaderRequestOptionsArgs(new RequestOptions(), {
"Increment-Version": "false",
});
return this.instanceConnectionManager.postWithHttpInfo(url, body, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @param {?} uuid
* @return {?}
*/
interruptJob(uuid) {
if (this.instanceConnectionManager !== null && typeof this.instanceConnectionManager !== 'undefined') {
let /** @type {?} */ url = "admin/job/" + uuid + "/interrupt";
//! for testing
let /** @type {?} */ requestOptionsArgs = this.addingHeaderRequestOptionsArgs(new RequestOptions(), {
"Increment-Version": "false",
});
let /** @type {?} */ body = {};
return this.instanceConnectionManager.postWithHttpInfo(url, body, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @param {?} body
* @return {?}
*/
createJob(body) {
if (this.instanceConnectionManager !== null && typeof this.instanceConnectionManager !== 'undefined') {
let /** @type {?} */ url = "admin/job";
//! for testing
let /** @type {?} */ requestOptionsArgs = this.addingHeaderRequestOptionsArgs(new RequestOptions(), {
"Increment-Version": "false",
});
return this.instanceConnectionManager.postWithHttpInfo(url, body, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @return {?}
*/
getListSchedule() {
if (this.instanceConnectionManager !== null && typeof this.instanceConnectionManager !== 'undefined') {
let /** @type {?} */ url = "admin/job/schedule/query";
let /** @type {?} */ body = {
"filter": ""
};
//! for testing
let /** @type {?} */ requestOptionsArgs = this.addingHeaderRequestOptionsArgs(new RequestOptions(), {
"Increment-Version": "false",
});
return this.instanceConnectionManager.postWithHttpInfo(url, body, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @param {?} body
* @return {?}
*/
createSchedule(body) {
if (this.instanceConnectionManager !== null && typeof this.instanceConnectionManager !== 'undefined') {
let /** @type {?} */ url = "admin/job/schedule";
//! for testing
let /** @type {?} */ requestOptionsArgs = this.addingHeaderRequestOptionsArgs(new RequestOptions(), {
"Increment-Version": "false",
});
return this.instanceConnectionManager.postWithHttpInfo(url, body, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @param {?} body
* @return {?}
*/
editSchedule(body) {
if (this.instanceConnectionManager !== null && typeof this.instanceConnectionManager !== 'undefined') {
let /** @type {?} */ url = "admin/job/schedule/" + body.uuid;
//! for testing
let /** @type {?} */ requestOptionsArgs = this.addingHeaderRequestOptionsArgs(new RequestOptions(), {
"Increment-Version": "false",
});
return this.instanceConnectionManager.putWithHttpInfo(url, body, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @param {?} uuid
* @return {?}
*/
enableSchedule(uuid) {
if (this.instanceConnectionManager !== null && typeof this.instanceConnectionManager !== 'undefined') {
let /** @type {?} */ url = "admin/job/schedule/" + uuid + "/enable";
//! for testing
let /** @type {?} */ requestOptionsArgs = this.addingHeaderRequestOptionsArgs(new RequestOptions(), {
"Increment-Version": "false",
});
let /** @type {?} */ body = {};
return this.instanceConnectionManager.putWithHttpInfo(url, body, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @param {?} uuid
* @return {?}
*/
disableSchedule(uuid) {
if (this.instanceConnectionManager !== null && typeof this.instanceConnectionManager !== 'undefined') {
let /** @type {?} */ url = "admin/job/schedule/" + uuid + "/disable";
//! for testing
let /** @type {?} */ requestOptionsArgs = this.addingHeaderRequestOptionsArgs(new RequestOptions(), {
"Increment-Version": "false",
});
let /** @type {?} */ body = {};
return this.instanceConnectionManager.putWithHttpInfo(url, body, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @param {?} uuid
* @return {?}
*/
getTrigger(uuid) {
if (this.instanceConnectionManager !== null && typeof this.instanceConnectionManager !== 'undefined') {
let /** @type {?} */ url = "admin/job/schedule/" + uuid + "/trigger";
//! for testing
let /** @type {?} */ requestOptionsArgs = this.addingHeaderRequestOptionsArgs(new RequestOptions(), {
"Increment-Version": "false",
});
return this.instanceConnectionManager.getWithHttpInfo(url, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @param {?} body
* @param {?} uuid
* @return {?}
*/
addTrigger(body, uuid) {
if (this.instanceConnectionManager !== null && typeof this.instanceConnectionManager !== 'undefined') {
let /** @type {?} */ url = "admin/job/schedule/" + uuid + "/trigger";
//! for testing
let /** @type {?} */ requestOptionsArgs = this.addingHeaderRequestOptionsArgs(new RequestOptions(), {
"Increment-Version": "false",
});
return this.instanceConnectionManager.postWithHttpInfo(url, body, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @param {?} _uuid
* @param {?} uuidTrigger
* @return {?}
*/
removeTrigger(_uuid, uuidTrigger) {
if (this.instanceConnectionManager !== null && typeof this.instanceConnectionManager !== 'undefined') {
let /** @type {?} */ url = "admin/job/schedule/" + _uuid + "/trigger/" + uuidTrigger;
//! for testing
let /** @type {?} */ requestOptionsArgs = this.addingHeaderRequestOptionsArgs(new RequestOptions(), {
"Increment-Version": "false",
});
return this.instanceConnectionManager.deleteWithHttpInfo(url, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
/**
* @param {?} body
* @param {?} uuid
* @return {?}
*/
createCron(body, uuid) {
if (this.instanceConnectionManager !== null && typeof this.instanceConnectionManager !== 'undefined') {
let /** @type {?} */ url = "admin/job/schedule/" + uuid + "/trigger/cron";
//! for testing
let /** @type {?} */ requestOptionsArgs = this.addingHeaderRequestOptionsArgs(new RequestOptions(), {
"Increment-Version": "false",
});
return this.instanceConnectionManager.postWithHttpInfo(url, body, requestOptionsArgs);
}
else {
return Promise.reject(null);
}
}
}
JobScheduler.SESSION_ID_KEY = 'Instance-Session-Id';
JobScheduler.decorators = [
{ type: Injectable },
];
/** @nocollapse */
JobScheduler.ctorParameters = () => [
{ type: InstanceConnectionManager, },
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
const /** @type {?} */ TIMEOUT_TOPIC = 'user-service.session.timeout';
const /** @type {?} */ ERROR_TOPIC = 'user-service.session.error';
class UserService {
/**
* @param {?} obsMgr
* @param {?} phloxAppInfoService
*/
constructor(obsMgr, phloxAppInfoService) {
this.obsMgr = obsMgr;
if (phloxAppInfoService != null) {
phloxAppInfoService.getAppInfo().then((result) => {
this.phloxAppInfo = result;
});
}
}
/**
* @return {?}
*/
loadAccessibleApp() {
// ! TODO: Edit this on PRODUCTION
return null;
}
/**
* @return {?}
*/
validateConnectionTimeout() {
this.timeout = setTimeout(() => {
if (this.userSession !== null && this.userSession !== undefined) {
this.userSession.checkTimeout().then((result) => {
if (!result) {
this.obsMgr.publish(UserService.TIMEOUT_TOPIC, result);
}
this.validateConnectionTimeout();
}).catch((error) => {
this.obsMgr.publish(UserService.ERROR_TOPIC, error);
this.validateConnectionTimeout();
});
}
}, this.phloxAppInfo.settings.DEFAULT_TIME_OUT_LOGIN_USER_SESSION);
}
/**
* @return {?}
*/
isLoggedOn() {
if (this.userSession === null || this.userSession === undefined) {
return Promise.resolve(false);
}
return this.userSession.load().then((result) => {
if (this.userSession.getSessionId() === undefined || this.userSession.getSessionId() === null || this.userSession.getSessionId() === '') {
return false;
}
else {
return this.userSession.checkTimeout().then((res) => {
if (res) {
if (this.timeout === null || this.timeout === undefined) {
this.validateConnectionTimeout();
}
return true;
}
else {
return false;
}
});
}
});
}
/**
* @return {?}
*/
reloadAccessibleApp() {
this.accessibleApps = null;
return this.getAccessibleApp();
}
/**
* @return {?}
*/
getAccessibleApp() {
if (this.accessibleApps !== null && typeof this.accessibleApps !== 'undefined') {
return Promise.resolve(this.accessibleApps);
}
else {
let /** @type {?} */ prom = this.loadAccessibleApp();
if (prom !== null && prom !== undefined) {
return this.loadAccessibleApp().then((result) => {
this.accessibleApps = result;
return Promise.resolve(this.accessibleApps);
});
}
else {
return Promise.resolve(null);
}
}
}
/**
* @param {?} requestData
* @return {?}
*/
login(requestData) {
if (this.userSession === null || this.userSession === undefined) {
return Promise.reject(null);
}
let /** @type {?} */ state = this.userSession.login(requestData);
state.then((response) => {
if (response.status === 200) {
if (this.timeout !== null && this.timeout !== undefined) {
clearTimeout(this.timeout);
this.timeout = null;
}
this.validateConnectionTimeout();
return Promise.resolve(response);
}
else {
return Promise.reject(response);
}
});
return state;
}
/**
* @return {?}
*/
logout() {
if (this.userSession === null || this.userSession === undefined) {
return Promise.reject(null);
}
let /** @type {?} */ state = this.userSession.logout();
state.then((response) => {
if (response.status === 200) {
if (this.timeout !== null && this.timeout !== undefined) {
clearTimeout(this.timeout);
this.timeout = null;
}
return Promise.resolve(response);
}
else {
return Promise.reject(response);
}
});
return state;
}
/**
* @return {?}
*/
getObservableManager() {
return this.obsMgr;
}
/**
* @param {?} session
* @return {?}
*/
initialize(session) {
if (this.timeout !== null && this.timeout !== undefined) {
clearTimeout(this.timeout);
this.timeout = null;
}
this.userSession = session;
}
/**
* @return {?}
*/
deinitialize() {
if (this.timeout !== null && this.timeout !== undefined) {
clearTimeout(this.timeout);
this.timeout = null;
}
this.userSession = null;
}
/**
* @return {?}
*/
getUserSession() {
return this.userSession;
}
}
UserService.TIMEOUT_TOPIC = TIMEOUT_TOPIC;
UserService.ERROR_TOPIC = ERROR_TOPIC;
UserService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
UserService.ctorParameters = () => [
{ type: ObservableManager, },
{ type: PhloxAppInfoService, },
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
class ParrotsEditorSettingService {
/**
* @param {?} className
* @param {?} baseURL
* @param {?} connectionManager
*/
constructor(className, baseURL, connectionManager) {
this.className = className;
this.baseURL = baseURL;
this.connectionManager = connectionManager;
}
/**
* @return {?}
*/
loadSettings() {
// create versionHistoryModel from setting
return Promise.resolve(null);
}
/**
* @param {?} setting
* @return {?}
*/
saveSettings(setting) {
return Promise.resolve(true);
}
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
class ParrotsEditorViewSetting {
/**
* @param {?} className
* @param {?} baseURL
* @param {?} userConfigResource
* @param {?} viewType
* @param {?} configName
*/
constructor(className, baseURL, userConfigResource, viewType, configName) {
this.className = className;
this.baseURL = baseURL;
this.userConfigResource = userConfigResource;
this.viewType = viewType;
this.configName = configName;
this.VIEW_CONFIG_NAME = ((configName !== null && typeof configName !== 'undefined') ? configName : '') + '.' +
((viewType !== null && typeof viewType !== 'undefined') ? viewType : '');
if (this.VIEW_CONFIG_NAME.endsWith(".")) {
this.VIEW_CONFIG_NAME = this.VIEW_CONFIG_NAME.substring(0, this.VIEW_CONFIG_NAME.length - 1);
}
}
/**
* @return {?}
*/
loadSettings() {
if (this.VIEW_CONFIG_NAME !== undefined && this.VIEW_CONFIG_NAME !== '') {
return new Promise((resolve, reject) => {
this.userConfigResource.getUserConfigWithName(this.VIEW_CONFIG_NAME).then((result) => {
// result in pattern {"value":"..."}
// data is in value tag
let /** @type {?} */ resultJSON = JSON.parse(result);
resolve(resultJSON);
}, (err) => {
reject(err);
});
}).catch((error) => {
return Promise.reject(error);
});
}
return Promise.resolve(null);
}
/**
* @param {?} setting
* @return {?}
*/
saveSettings(setting) {
// expected setting in pattern { "value" : { "...": "..."} }
if (setting !== null && typeof setting !== 'undefined') {
return new Promise((resolve, reject) => {
this.userConfigResource.saveUserConfigWithName(this.VIEW_CONFIG_NAME, setting).then((result) => {
// data is in value tag
let /** @type {?} */ resultJSON = JSON.parse(result);
resolve(resultJSON);
}, (err) => {
reject(err);
});
}).catch((error) => {
return Promise.reject(error);
});
}
return Promise.resolve(null);
}
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
class UserConfigResource extends AbstractServerResource {
/**
* @param {?} connectionMgr
*/
constructor(connectionMgr) {
super(connectionMgr);
this.basePath = './me/config';
this.defaultHeaders = new Headers();
this.defaultHeaders.set('Content-Type', 'application/json');
}
/**
* @return {?}
*/
getUserConfig() {
let /** @type {?} */ headers = new Headers(this.defaultHeaders.toJSON());
let /** @type {?} */ requestOptions = new RequestOptions({
method: RequestMethod.Get,
headers: headers
});
return this.connectionMgr.get(this.basePath, requestOptions);
}
/**
* @param {?} configName
* @return {?}
*/
getUserConfigWithName(configName) {
let /** @type {?} */ url = this.basePath + "/" + configName;
let /** @type {?} */ headers = new Headers(this.defaultHeaders.toJSON());
let /** @type {?} */ requestOptions = new RequestOptions({
method: RequestMethod.Get,
headers: headers
});
return this.connectionMgr.get(url, requestOptions);
}
/**
* @param {?} configName
* @return {?}
*/
deleteUserConfigWithName(configName) {
let /** @type {?} */ url = this.basePath + "/" + configName;
let /** @type {?} */ headers = new Headers(this.defaultHeaders.toJSON());
let /** @type {?} */ requestOptions = new RequestOptions({
method: RequestMethod.Delete,
headers: headers
});
return this.connectionMgr.delete(url, requestOptions);
}
/**
* @param {?} configName
* @param {?} value
* @return {?}
*/
saveUserConfigWithName(configName, value) {
let /** @type {?} */ url = this.basePath + "/" + configName;
let /** @type {?} */ headers = new Headers(this.defaultHeaders.toJSON());
let /** @type {?} */ requestOptions = new RequestOptions({
method: RequestMethod.Put,
headers: headers
});
let /** @type {?} */ body = value;
return this.connectionMgr.put(url, body, requestOptions);
}
/**
* @param {?} configName
* @return {?}
*/
getUserConfigWithNameDefaultNull(configName) {
let /** @type {?} */ url = this.basePath + "/" + configName + "/default";
let /** @type {?} */ headers = new Headers(this.defaultHeaders.toJSON());
let /** @type {?} */ requestOptions = new RequestOptions({
method: RequestMethod.Get,
headers: headers
});
return this.connectionMgr.get(url, requestOptions);
}
/**
* @param {?} configName
* @param {?} defaultValue
* @return {?}
*/
getUserConfigWithNameDefault(configName, defaultValue) {
let /** @type {?} */ url = this.basePath + "/" + configName + "/default";
let /** @type {?} */ headers = new Headers(this.defaultHeaders.toJSON());
let /** @type {?} */ requestOptions = new RequestOptions({
method: RequestMethod.Post,
headers: headers
});
let /** @type {?} */ body = defaultValue;
return this.connectionMgr.post(url, body, requestOptions);
}
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
const /** @type {?} */ BASE_URL$1 = 'http://localhost:8080/hello/';
class ParrotsEditorSettingServiceFactory {
/**
* @param {?} connectionManager
*/
constructor(connectionManager) {
this.connectionManager = connectionManager;
this.userConfigResource = new UserConfigResource(connectionManager);
}
/**
* @param {?} editor
* @param {?} viewType
* @return {?}
*/
createViewSettingService(editor, viewType) {
if (editor === null || typeof editor === 'undefined') {
return null;
}
if (editor.getDataClassName() === null || typeof editor.getDataClassName() === 'undefined') {
return null;
}
let /** @type {?} */ configName = editor.getConfigName();
if (configName === null || typeof configName === 'undefined') {
return null;
}
// return setting by editor class
let /** @type {?} */ service = new ParrotsEditorViewSetting(editor.getDataClassName(), BASE_URL$1 + editor.getDataClassName(), this.userConfigResource, viewType, configName);
return Promise.resolve(service);
}
/**
* @param {?} editor
* @return {?}
*/
createEditorSettingService(editor) {
if (editor === null || typeof editor === 'undefined') {
return null;
}
//! return setting by editor class
let /** @type {?} */ service = new ParrotsEditorSettingService(editor.getDataClassName(), BASE_URL$1 + editor.getDataClassName(), this.connectionManager);
return Promise.resolve(service);
}
}
ParrotsEditorSettingServiceFactory.decorators = [
{ type: Injectable },
];
/** @nocollapse */
ParrotsEditorSettingServiceFactory.ctorParameters = () => [
{ type: ConnectionManager, },
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
class ParrotsDataSchema extends DataSchema {
/**
* @param {?} className
* @param {?} label
* @param {?} dataFields
* @param {?} jsonSchema
*/
constructor(className, label, dataFields, jsonSchema) {
super(label, dataFields, jsonSchema);
this.className = className;
}
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
class AbstractParrotsServerResource extends AbstractServerResource {
/**
* @return {?}
*/
isTestMode() {
if (typeof this.connectionMgr["isTestMode"] === 'function') {
return (/** @type {?} */ (this.connectionMgr)).isTestMode();
}
return false;
}
/**
* @return {?}
*/
getTestData() {
if (typeof this.connectionMgr["getTestData"] === 'function') {
return (/** @type {?} */ (this.connectionMgr)).getTestData();
}
return undefined;
}
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
const /** @type {?} */ BASE_PATH = "./classes";
class ClassesResource extends AbstractParrotsServerResource {
/**
* @param {?} connectionMgr
* @param {?=} basePath
*/
constructor(connectionMgr, basePath) {
super(connectionMgr);
this.basePath = BASE_PATH;
this.defaultHeaders = new Headers();
if (basePath !== null && basePath !== undefined && basePath !== '') {
this.basePath = basePath;
}
}
/**
* @return {?}
*/
uuid4Generate() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var /** @type {?} */ r = Math.random() * 16 | 0, /** @type {?} */ v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
/**
* @param {?} classname
* @param {?} uuid
* @return {?}
*/
findTestData(classname, uuid) {
let /** @type {?} */ testData = this.getTestData();
let /** @type {?} */ testArray = (testData !== null && testData !== undefined) ? testData[classname] : [];
for (let /** @type {?} */ item of testArray) {
if (item._uuid === uuid) {
return item;
}
}
return null;
}
/**
* @param {?} classname
* @return {?}
*/
findTestDataSchema(classname) {
let /** @type {?} */ key = classname + "-schema";
let /** @type {?} */ testData = this.getTestData();
let /** @type {?} */ schemaResult = (testData !== null && testData !== undefined) ? testData[key] : {};
return schemaResult;
}
/**
* Configure the persisent class metadata.
*
* @param {?} body The metadata object to configure.
* @param {?} classname The persistent class name.
* @param {?=} langPreference The language preference used to perform the operation (especially in READ operations such as find/query).
* @param {?=} extraHttpRequestParams
* @return {?}
*/
configure(body, classname, langPreference, extraHttpRequestParams) {
return new Promise((resolve, reject) => {
let /** @type {?} */ prom = this.configureWithHttpInfo(body, classname, langPreference, extraHttpRequestParams);
prom.then((response) => {
resolve(response.json());
}, (error) => {
reject(error);
});
});
}
/**
* Create a new persistent object (insert new row).
*
* @param {?} body The object to be created.
* @param {?} classname The persistent class name.
* @param {?=} langPreference The language preference used to perform the operation (especially in READ operations such as find/query).
* @param {?=} extraHttpRequestParams
* @return {?}
*/
create(body, classname, langPreference, extraHttpRequestParams) {
if (this.isTestMode()) {
if (body !== null && body !== undefined) {
body._uuid = this.uuid4Generate();
let /** @type {?} */ testData = this.getTestData();
let /** @type {?} */ testResult = (testData !== null && testData !== undefined) ? testData[classname] : [];
if (testResult.length == 0) {
testData[classname] = testResult;
}
testResult.push(body);
}
return Promise.resolve(body);
}
return new Promise((resolve, reject) => {
let /** @type {?} */ prom = this.createWithHttpInfo(body, classname, langPreference, extraHttpRequestParams);
prom.then((respons