portal-preferences
Version:
This is an angular component which enables configuration of an IBM WebSphere Portal scripting portlet by using its preferences REST service.
157 lines (150 loc) • 12.3 kB
JavaScript
import { Injectable, Component, NgModule, defineInjectable } from '@angular/core';
import { from, throwError } from 'rxjs';
import { FormsModule } from '@angular/forms';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
var PortalPreferencesService = /** @class */ (function () {
function PortalPreferencesService() {
this.preferencesLoaded = null;
try {
// __SPNS__spHelper is replaced with a value by the scripting portlet at runtime
// @ts-ignore
this.spInstance = __SPNS__spHelper;
}
catch (e) {
// running locally
}
}
/**
* @return {?}
*/
PortalPreferencesService.prototype.getPreferences = /**
* @return {?}
*/
function () {
if (this.spInstance) {
if (this.preferencesLoaded == null) {
this.preferencesLoaded = this.spInstance.getPortletPreferences();
}
return from(this.preferencesLoaded);
}
else {
return throwError('portal-preferences: Not running in portal. Add your own override for local testing.');
}
};
/**
* @param {?} preferences
* @return {?}
*/
PortalPreferencesService.prototype.setPreferences = /**
* @param {?} preferences
* @return {?}
*/
function (preferences) {
if (this.spInstance) {
/** @type {?} */
var preferencesSaved = this.spInstance.setPortletPreferences(preferences);
return from(preferencesSaved);
}
else {
return throwError('portal-preferences: Not running in portal. Add your own override for local testing.');
}
};
PortalPreferencesService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] },
];
/** @nocollapse */
PortalPreferencesService.ctorParameters = function () { return []; };
/** @nocollapse */ PortalPreferencesService.ngInjectableDef = defineInjectable({ factory: function PortalPreferencesService_Factory() { return new PortalPreferencesService(); }, token: PortalPreferencesService, providedIn: "root" });
return PortalPreferencesService;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
var PortalPreferencesComponent = /** @class */ (function () {
function PortalPreferencesComponent(portalPreferencesService) {
this.portalPreferencesService = portalPreferencesService;
this.preferencesString = '';
this.logMessage = '';
}
/**
* @return {?}
*/
PortalPreferencesComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
this.portalPreferencesService.getPreferences().subscribe(function (d) { _this.preferencesString = JSON.stringify(d, null, 3); }, function (err) { console.log(err); });
};
/**
* @return {?}
*/
PortalPreferencesComponent.prototype.savePreferences = /**
* @return {?}
*/
function () {
var _this = this;
// clear out message
this.logMessage = '';
/** @type {?} */
var prefObject = {};
try {
prefObject = JSON.parse(this.preferencesString);
}
catch (e) {
this.logMessage = 'Failed to parse JSON. Logged to console.';
console.log(e);
return;
}
this.portalPreferencesService.setPreferences(prefObject).subscribe(function (d) { _this.logMessage = 'Portlet preferences updated.'; }, function (err) {
_this.logMessage = 'Save failed! Logged to console.';
console.log(err);
});
};
PortalPreferencesComponent.decorators = [
{ type: Component, args: [{
selector: 'lib-portlet-preferences',
template: "<p>\n Configure the portlet with valid JSON:\n <br>\n <textarea cols=\"50\" rows=\"10\" [(ngModel)]=\"preferencesString\"></textarea>\n <br>\n <button (click)=\"savePreferences()\">Save</button> {{logMessage}}\n</p>\n",
styles: []
},] },
];
/** @nocollapse */
PortalPreferencesComponent.ctorParameters = function () { return [
{ type: PortalPreferencesService }
]; };
return PortalPreferencesComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
var PortalPreferencesModule = /** @class */ (function () {
function PortalPreferencesModule() {
}
PortalPreferencesModule.decorators = [
{ type: NgModule, args: [{
imports: [
FormsModule
],
declarations: [PortalPreferencesComponent],
exports: [PortalPreferencesComponent]
},] },
];
return PortalPreferencesModule;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
export { PortalPreferencesService, PortalPreferencesComponent, PortalPreferencesModule };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLXByZWZlcmVuY2VzLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9wb3J0YWwtcHJlZmVyZW5jZXMvbGliL3BvcnRhbC1wcmVmZXJlbmNlcy5zZXJ2aWNlLnRzIiwibmc6Ly9wb3J0YWwtcHJlZmVyZW5jZXMvbGliL3BvcnRhbC1wcmVmZXJlbmNlcy5jb21wb25lbnQudHMiLCJuZzovL3BvcnRhbC1wcmVmZXJlbmNlcy9saWIvcG9ydGFsLXByZWZlcmVuY2VzLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tLCBlbXB0eSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQb3J0YWxQcmVmZXJlbmNlc1NlcnZpY2Uge1xuXG4gIHByaXZhdGUgc3BJbnN0YW5jZTogYW55O1xuICBwcml2YXRlIHByZWZlcmVuY2VzTG9hZGVkOiBQcm9taXNlPGFueT4gPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcblxuICAgIHRyeSB7XG4gICAgICAvLyBfX1NQTlNfX3NwSGVscGVyIGlzIHJlcGxhY2VkIHdpdGggYSB2YWx1ZSBieSB0aGUgc2NyaXB0aW5nIHBvcnRsZXQgYXQgcnVudGltZVxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5zcEluc3RhbmNlID0gX19TUE5TX19zcEhlbHBlcjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBydW5uaW5nIGxvY2FsbHlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0UHJlZmVyZW5jZXMoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICBpZiAodGhpcy5zcEluc3RhbmNlKSB7XG4gICAgICBpZiAodGhpcy5wcmVmZXJlbmNlc0xvYWRlZCA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMucHJlZmVyZW5jZXNMb2FkZWQgPSB0aGlzLnNwSW5zdGFuY2UuZ2V0UG9ydGxldFByZWZlcmVuY2VzKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnJvbSh0aGlzLnByZWZlcmVuY2VzTG9hZGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ3BvcnRhbC1wcmVmZXJlbmNlczogTm90IHJ1bm5pbmcgaW4gcG9ydGFsLiBBZGQgeW91ciBvd24gb3ZlcnJpZGUgZm9yIGxvY2FsIHRlc3RpbmcuJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldFByZWZlcmVuY2VzKHByZWZlcmVuY2VzOiBvYmplY3QpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIGlmICh0aGlzLnNwSW5zdGFuY2UpIHtcbiAgICAgIGNvbnN0IHByZWZlcmVuY2VzU2F2ZWQgPSB0aGlzLnNwSW5zdGFuY2Uuc2V0UG9ydGxldFByZWZlcmVuY2VzKHByZWZlcmVuY2VzKTtcbiAgICAgIHJldHVybiBmcm9tKHByZWZlcmVuY2VzU2F2ZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigncG9ydGFsLXByZWZlcmVuY2VzOiBOb3QgcnVubmluZyBpbiBwb3J0YWwuIEFkZCB5b3VyIG93biBvdmVycmlkZSBmb3IgbG9jYWwgdGVzdGluZy4nKTtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3J0YWxQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuL3BvcnRhbC1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcG9ydGxldC1wcmVmZXJlbmNlcycsXG4gIHRlbXBsYXRlOiBgPHA+XG4gICAgQ29uZmlndXJlIHRoZSBwb3J0bGV0IHdpdGggdmFsaWQgSlNPTjpcbiAgICA8YnI+XG4gICAgPHRleHRhcmVhIGNvbHM9XCI1MFwiIHJvd3M9XCIxMFwiIFsobmdNb2RlbCldPVwicHJlZmVyZW5jZXNTdHJpbmdcIj48L3RleHRhcmVhPlxuICAgIDxicj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJzYXZlUHJlZmVyZW5jZXMoKVwiPlNhdmU8L2J1dHRvbj4ge3tsb2dNZXNzYWdlfX1cbjwvcD5cbmAsXG4gIHN0eWxlczogW11cbn0pXG5leHBvcnQgY2xhc3MgUG9ydGFsUHJlZmVyZW5jZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBwcmVmZXJlbmNlc1N0cmluZyA9ICcnO1xuICBwdWJsaWMgbG9nTWVzc2FnZSA9ICcnO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBvcnRhbFByZWZlcmVuY2VzU2VydmljZTogUG9ydGFsUHJlZmVyZW5jZXNTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBvcnRhbFByZWZlcmVuY2VzU2VydmljZS5nZXRQcmVmZXJlbmNlcygpLnN1YnNjcmliZShcbiAgICAgIChkOiBvYmplY3QpID0+IHsgdGhpcy5wcmVmZXJlbmNlc1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KGQsIG51bGwsIDMpOyB9LFxuICAgICAgKGVycikgPT4geyBjb25zb2xlLmxvZyhlcnIpOyB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlUHJlZmVyZW5jZXMoKSB7XG4gICAgLy8gY2xlYXIgb3V0IG1lc3NhZ2VcbiAgICB0aGlzLmxvZ01lc3NhZ2UgPSAnJztcblxuICAgIGxldCBwcmVmT2JqZWN0ID0ge307XG4gICAgdHJ5IHtcbiAgICAgIHByZWZPYmplY3QgPSBKU09OLnBhcnNlKHRoaXMucHJlZmVyZW5jZXNTdHJpbmcpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nTWVzc2FnZSA9ICdGYWlsZWQgdG8gcGFyc2UgSlNPTi4gTG9nZ2VkIHRvIGNvbnNvbGUuJztcbiAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucG9ydGFsUHJlZmVyZW5jZXNTZXJ2aWNlLnNldFByZWZlcmVuY2VzKHByZWZPYmplY3QpLnN1YnNjcmliZShcbiAgICAgIChkKSA9PiB7IHRoaXMubG9nTWVzc2FnZSA9ICdQb3J0bGV0IHByZWZlcmVuY2VzIHVwZGF0ZWQuJzsgfSxcbiAgICAgIChlcnIpID0+IHtcbiAgICAgICAgdGhpcy5sb2dNZXNzYWdlID0gJ1NhdmUgZmFpbGVkISBMb2dnZWQgdG8gY29uc29sZS4nO1xuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgfVxuICAgICk7XG4gIH1cbn1cblxuIiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBvcnRhbFByZWZlcmVuY2VzQ29tcG9uZW50IH0gZnJvbSAnLi9wb3J0YWwtcHJlZmVyZW5jZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbUG9ydGFsUHJlZmVyZW5jZXNDb21wb25lbnRdLFxuICBleHBvcnRzOiBbUG9ydGFsUHJlZmVyZW5jZXNDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFBvcnRhbFByZWZlcmVuY2VzTW9kdWxlIHsgfVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7O2lDQVM0QyxJQUFJO1FBSTVDLElBQUk7OztZQUdGLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUM7U0FDcEM7UUFBQyxPQUFPLENBQUMsRUFBRTs7U0FFWDs7Ozs7SUFHSSxpREFBYzs7OztRQUNuQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsaUJBQWlC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