summaryrefslogtreecommitdiffstats
path: root/portal-FE-common/src/app/shared/services/application-catalog/application-catalog.service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'portal-FE-common/src/app/shared/services/application-catalog/application-catalog.service.ts')
-rw-r--r--portal-FE-common/src/app/shared/services/application-catalog/application-catalog.service.ts129
1 files changed, 129 insertions, 0 deletions
diff --git a/portal-FE-common/src/app/shared/services/application-catalog/application-catalog.service.ts b/portal-FE-common/src/app/shared/services/application-catalog/application-catalog.service.ts
new file mode 100644
index 00000000..8dae2a67
--- /dev/null
+++ b/portal-FE-common/src/app/shared/services/application-catalog/application-catalog.service.ts
@@ -0,0 +1,129 @@
+/*-
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ============LICENSE_END============================================
+ *
+ *
+ */
+import { Injectable } from '@angular/core';
+import { GridsterConfig, GridsterItem, DisplayGrid, GridType } from 'angular-gridster2';
+import { UUID } from 'angular2-uuid';
+import { CoreService } from '../core/core.service';
+import { Observable } from 'rxjs';
+import { IApplicationCatalog } from '../../model/application-catalog.model';
+import { environment } from 'src/environments/environment';
+import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
+
+@Injectable({
+ providedIn: 'root'
+})
+export class ApplicationCatalogService {
+ public options: GridsterConfig = {
+ minCols: 6,
+ maxCols: 6,
+ minRows: 7,
+ //maxRows: 4,
+ maxItemCols: 50,
+ minItemCols: 1,
+ maxItemRows: 50,
+ minItemRows: 1,
+ maxItemArea: 2500,
+ minItemArea: 1,
+ defaultItemCols: 1,
+ defaultItemRows: 1,
+ setGridSize: false,
+ fixedColWidth: 250,
+ fixedRowHeight: 250,
+ gridType: GridType.ScrollVertical,
+ swap: true,
+ dynamicColumns: true,
+ displayGrid: DisplayGrid.None,
+ itemChangeCallback: this.itemChange,
+
+
+ draggable: {
+ enabled: true
+ },
+ pushItems: true,
+ resizable: {
+ enabled: true
+ }
+ };
+ public layout: GridsterItem[] = [];
+ constructor(private api: HttpClient) { }
+
+ addItem(appData: any): void {
+ this.layout.push(appData);
+ }
+ getAppCatalog(): Observable<any> {
+ return this.api.get(environment.api.appCatalog);
+ }
+ updateAppCatalog(appData: any): Observable<any> {
+ return this.api.put(environment.api.appCatalog, appData);
+ }
+ updateManualAppSort(appData: any): Observable<any> {
+ return this.api.put(environment.api.UpdateUserAppsSortManual, appData);
+ }
+ getuserAppRolesCatalog(appName: string): Observable<any> {
+ return this.api.get(environment.api.appCatalogRoles);
+ }
+ getAppsFullList(): Observable<any> {
+ return this.api.get(environment.api.appsFullList);
+ }
+ getUserAppsSortTypePreference(): Observable<any> {
+ const headers = new HttpHeaders().set('Content-Type','text/plain;charset=utf-8');
+ return this.api.get(environment.api.userAppsSortTypePreference,{headers,responseType:'text'});
+ }
+ getAppsOrderBySortPref(appSortPrefData: any): Observable<any> {
+ let httpParam = new HttpParams().set('mparams', appSortPrefData);
+ return this.api.get(environment.api.userAppsOrderBySortPref, {params: httpParam});
+ }
+ saveAppsSortTypePreference(userPrefData: any): Observable<any> {
+ return this.api.put(environment.api.saveUserAppsSortingPreference, userPrefData);
+ }
+ itemChange(item, itemComponent) {
+ //console.info('itemChanged', item, itemComponent);
+ if(this.layout)
+ {
+ //console.log("check the layout value "+this.layout.values);
+ }
+ }
+ checkIfUserIsSuperAdmin(): Observable<any> {
+ let checkIfUserIsSuperAdminURL = environment.api.checkIfUserIsSuperAdmin;
+ return this.api.get(checkIfUserIsSuperAdminURL);
+ }
+ clearCatalog(): void {
+ this.layout =[];
+ }
+
+}