App Onboarding - Delete app not working 23/110623/1
authorSudarshan Kumar <sudarshan.kumar@att.com>
Mon, 27 Jul 2020 14:18:32 +0000 (19:48 +0530)
committerSudarshan Kumar <sudarshan.kumar@att.com>
Mon, 27 Jul 2020 14:20:14 +0000 (19:50 +0530)
App Onboarding - Delete app not working

Issue-ID: PORTAL-963
Change-Id: I6ec10fc4266b4d66d5393925411a90d0245b3e72
Signed-off-by: Sudarshan Kumar <sudarshan.kumar@att.com>
ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/EPAppCommonServiceImpl.java
ecomp-portal-BE-common/src/main/webapp/WEB-INF/fusion/orm/EP.hbm.xml
portal-FE-common/src/app/layout/components/tabbar/tabbar.component.html
portal-FE-os/src/app/pages/application-onboarding/application-onboarding.component.ts

index 54510d2..a4463c7 100644 (file)
@@ -75,6 +75,7 @@ import org.onap.portalapp.portal.domain.EPUserAppsManualSortPreference;
 import org.onap.portalapp.portal.domain.EPUserAppsSortPreference;
 import org.onap.portalapp.portal.domain.EPWidgetsManualSortPreference;
 import org.onap.portalapp.portal.domain.EcompApp;
+import org.onap.portalapp.portal.domain.MicroserviceData;
 import org.onap.portalapp.portal.domain.UserRole;
 import org.onap.portalapp.portal.domain.UserRoles;
 import org.onap.portalapp.portal.ecomp.model.AppCatalogItem;
@@ -975,6 +976,16 @@ public class EPAppCommonServiceImpl implements EPAppService {
                }
                final Map<String, Long> params = new HashMap<>();
                params.put("app_id", appid);
+               
+               //Checking if App is associated with any exiting microservices- ep_microservice:
+               final Map<String, Long> queryparams = new HashMap<>();
+               queryparams.put("applicationId", appid);
+               List<MicroserviceData> microservicesList  = dataAccessService.executeNamedQuery( "getMicroservicesByAppId", queryparams, null);
+               if(microservicesList!=null && microservicesList.size()>0) {
+                       fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
+                       return fieldsValidator;
+               }
+               
                List<EPUserAppRolesRequest> EPUserAppRolesRequestList= new ArrayList<>();
                EPUserAppRolesRequestList = dataAccessService.executeNamedQuery( "getRequestIdsForApp", params, null);
            for(int i=0;i<EPUserAppRolesRequestList.size();i++)
index 5909036..14156f4 100644 (file)
@@ -2609,4 +2609,11 @@ where fn_role.app_id = fn_app.app_id and fn_app.enabled='Y' and fn_role.active_y
                        UPDATE fn_user fu SET fu.language_id=:language_id WHERE fu.login_id=:login_id
                ]]>
        </sql-query>
+       
+       <sql-query name="getMicroservicesByAppId">
+       <return alias="getMicroservicesByAppId" class="org.onap.portalapp.portal.domain.MicroserviceData" />
+               <![CDATA[ 
+               SELECT * FROM ep_microservice WHERE appId =:applicationId
+               ]]>
+       </sql-query>
 </hibernate-mapping>
index d43328d..65ccf1d 100644 (file)
@@ -86,7 +86,7 @@
         <div *ngFor="let tab of tabs; let index = index"
           [style.display]='tab.active? "inline" : "none"'
           [style.position]='tab.active? "static" : "absolute"'
-          [style.height]='tab.active? "45rem" : "45rem"'>
+          [style.height]='tab.active? "calc(100vh)" : "calc(0vh)"'>
 
           <iframe id="tabframe-{{tab.label.split(' ').join('-')}}-{{index}}" scrolling='yes' frameBorder='0' width='100%'
             scrolling='yes' frameBorder='0' width='100%' height='90%' [src]='tab.url'></iframe>
index a2c759d..5903d65 100644 (file)
@@ -114,7 +114,7 @@ export class ApplicationOnboardingComponent implements OnInit {
 
   openAddApplicationModal(rowData: any, action:any) {
     console.log("Action : ", action);
-    const modalRef = this.ngbModal.open(ApplicationDetailsDialogComponent, { size: 'lg' });
+    const modalRef = this.ngbModal.open(ApplicationDetailsDialogComponent, { size: 'lg', backdrop: 'static', keyboard: false });
     modalRef.componentInstance.title = 'Application Details';
     modalRef.componentInstance.action = action;
     //console.log("selectedData in parent",rowData);
@@ -136,7 +136,7 @@ export class ApplicationOnboardingComponent implements OnInit {
   }
 
   deleteApplication(application: IApplications){
-    let confirmationMsg = 'You are about to delete this App : ' + application.name+ '. Click OK to continue.';
+    let confirmationMsg = 'You are about to delete this App : ' + application.appName+ '. Click OK to continue.';
     this.openInformationModal("Confirmation",confirmationMsg).result.then((result) => {
       if (result === 'Ok') {
         if(!application || application == null){
@@ -150,7 +150,11 @@ export class ApplicationOnboardingComponent implements OnInit {
             this.getOnboardingApps();
           }, error => {
             console.log(error);
-            this.openConfirmationModal('Error', error);
+            if(error && error.status == 405){
+              this.openConfirmationModal('', 'Application : ' + application.appName+ ' can not be deleted as it is associsted with one of the Microservices.');
+            }else{
+              this.openConfirmationModal('Error', error.message);
+            }
         });
       }
     }, (resut) => {