summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-FE-os
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-portal-FE-os')
-rw-r--r--ecomp-portal-FE-os/client/configurations/dev.json6
-rw-r--r--ecomp-portal-FE-os/client/configurations/integ.json1
-rw-r--r--ecomp-portal-FE-os/client/index.html1
-rw-r--r--ecomp-portal-FE-os/client/src/views/applications/application-details-dialog/application-details.controller.js50
-rw-r--r--ecomp-portal-FE-os/client/src/views/applications/application-details-dialog/application-details.modal.html124
-rw-r--r--ecomp-portal-FE-os/client/src/views/applications/applications.controller.js22
-rw-r--r--ecomp-portal-FE-os/pom.xml2
7 files changed, 123 insertions, 83 deletions
diff --git a/ecomp-portal-FE-os/client/configurations/dev.json b/ecomp-portal-FE-os/client/configurations/dev.json
index c60e9bcd..78e3a205 100644
--- a/ecomp-portal-FE-os/client/configurations/dev.json
+++ b/ecomp-portal-FE-os/client/configurations/dev.json
@@ -98,7 +98,11 @@
"loggedinUser" : "http://localhost:8080/ecompportal/portalApi/loggedinUser",
"modifyLoggedinUser" : "http://localhost:8080/ecompportal/portalApi/modifyLoggedinUser",
"centralizedApps": "http://localhost:8080/ecompportal/portalApi/centralizedApps",
- "uploadRoleFunction":"http://localhost:8080/ecompportal/portalApi/uploadRoleFunction/:appId"
+ "uploadRoleFunction":"http://localhost:8080/ecompportal/portalApi/uploadRoleFunction/:appId",
+ "checkIfUserIsSuperAdmin":"http://localhost:8080/ecompportal/portalApi/checkIfUserIsSuperAdmin",
+ "getCurrentLang": "http://localhost:8080/ecompportal/auxapi/languageSetting/user/:loginId",
+ "getLanguages": "http://localhost:8080/ecompportal/auxapi/language",
+ "updateLang": "http://localhost:8080/ecompportal/auxapi/languageSetting/user/:loginId"
},
"cookieDomain": "onap.org"
}
diff --git a/ecomp-portal-FE-os/client/configurations/integ.json b/ecomp-portal-FE-os/client/configurations/integ.json
index 4771d635..b0181f8c 100644
--- a/ecomp-portal-FE-os/client/configurations/integ.json
+++ b/ecomp-portal-FE-os/client/configurations/integ.json
@@ -99,6 +99,7 @@
"modifyLoggedinUser" : "portalApi/modifyLoggedinUser",
"centralizedApps": "portalApi/centralizedApps",
"uploadRoleFunction":"portalApi/uploadRoleFunction/:appId",
+ "checkIfUserIsSuperAdmin":"portalApi/checkIfUserIsSuperAdmin",
"getCurrentLang":"auxapi/languageSetting/user/:loginId",
"getLanguages":"auxapi/language",
"updateLang":"auxapi/languageSetting/user/:loginId"
diff --git a/ecomp-portal-FE-os/client/index.html b/ecomp-portal-FE-os/client/index.html
index 648174e4..7a46d598 100644
--- a/ecomp-portal-FE-os/client/index.html
+++ b/ecomp-portal-FE-os/client/index.html
@@ -291,7 +291,6 @@
<script src="app/views/notification-history/notificationhistory.controller.js"></script>
<script src="app/views/portal-admin/new-portal-admin/new-portal-admin.controller.js"></script>
<script src="app/views/portal-admin/portal-admin-controller.js"></script>
- <script src="app/views/role/bulk-upload-dialogs/bulk-upload-role-functions-controller.js"></script>
<script src="app/views/role/role-controller.js"></script>
<script src="app/views/role/role-create-edit-popup-controller.js"></script>
<script src="app/views/role/role-function-list-controller.js"></script>
diff --git a/ecomp-portal-FE-os/client/src/views/applications/application-details-dialog/application-details.controller.js b/ecomp-portal-FE-os/client/src/views/applications/application-details-dialog/application-details.controller.js
index efd5165a..d89af17c 100644
--- a/ecomp-portal-FE-os/client/src/views/applications/application-details-dialog/application-details.controller.js
+++ b/ecomp-portal-FE-os/client/src/views/applications/application-details-dialog/application-details.controller.js
@@ -58,7 +58,7 @@
'username': null,
'appPassword': null,
'thumbnail': emptyImg,
- 'isEnabled': true,
+ 'isEnabled': false,
'restrictedApp': false,
'nameSpace': null,
'isCentralAuth': false
@@ -172,26 +172,44 @@
//***************************
this.saveChanges = () => {
- //if valid..
+ //if valid..
if(this.app.isCentralAuth){
- //if valid..
- if(((angular.isUndefined(this.app.myLoginsAppName) || !this.app.myLoginsAppName)&&(angular.isUndefined(this.app.myLoginsAppOwner) || !this.app.myLoginsAppOwner)&&(angular.isUndefined(this.app.name) || !this.app.name)&&(angular.isUndefined(this.app.url) || !this.app.url)
- &&(angular.isUndefined(this.app.username) || !this.app.username))) {
- confirmBoxService.showInformation('Please fill in all required fields').then(isConfirmed => {});
- return;
- }else if(!((angular.isUndefined(this.app.name) || !!this.app.name)&&(angular.isUndefined(this.app.url) || !!this.app.url))){
- confirmBoxService.showInformation('Please fill in all required fields').then(isConfirmed => {});
- return;
- }
+ //if valid.
+ if(!this.app.isEnabled)
+ {
+ if(((angular.isUndefined(this.app.name) || !this.app.name)||(angular.isUndefined(this.app.nameSpace) || !this.app.nameSpace)
+ ||(angular.isUndefined(this.app.username) || !this.app.username))) {
+ confirmBoxService.showInformation('Please fill in all required fields for centralized application').then(isConfirmed => {});
+ return;
+ }
+ }
+ if(this.app.isEnabled){
+ if(((angular.isUndefined(this.app.myLoginsAppName) || !this.app.myLoginsAppName)||(angular.isUndefined(this.app.myLoginsAppOwner) || !this.app.myLoginsAppOwner)||(angular.isUndefined(this.app.name) || !this.app.name)||(angular.isUndefined(this.app.url) || !this.app.url)
+ ||(angular.isUndefined(this.app.username) || !this.app.username)||(angular.isUndefined(this.app.nameSpace) || !this.app.nameSpace))) {
+ confirmBoxService.showInformation('Please fill in all required fields for centralized active application').then(isConfirmed => {});
+ return;
+ }
+ }
}else{
- if(((angular.isUndefined(this.app.myLoginsAppName) || !this.app.myLoginsAppName)||(angular.isUndefined(this.app.myLoginsAppOwner) || !this.app.myLoginsAppOwner)||(angular.isUndefined(this.app.name) || !this.app.name)||(angular.isUndefined(this.app.url) || !this.app.url)
+
+ if(!this.app.isEnabled)
+ {
+ if((angular.isUndefined(this.app.name) || !this.app.name)){
+ confirmBoxService.showInformation('Please fill in all required field ApplicationName to Save the applictaion').then(isConfirmed => {});
+ return;
+ }
+ }else if(this.app.isEnabled && !this.app.restrictedApp){
+ if(((angular.isUndefined(this.app.myLoginsAppName) || !this.app.myLoginsAppName)||(angular.isUndefined(this.app.myLoginsAppOwner) || !this.app.myLoginsAppOwner)||(angular.isUndefined(this.app.name) || !this.app.name)||(angular.isUndefined(this.app.url) || !this.app.url)
||(angular.isUndefined(this.app.username) || !this.app.username)||(angular.isUndefined(this.app.appPassword) || !this.app.appPassword))) {
- confirmBoxService.showInformation('Please fill in all required fields along with password as the app is not centralized').then(isConfirmed => {});
- return;
- }else if(!((angular.isUndefined(this.app.name) || !!this.app.name)&&(angular.isUndefined(this.app.url) || !!this.app.url))){
- confirmBoxService.showInformation('Please fill in all required fields').then(isConfirmed => {});
+ confirmBoxService.showInformation('Please fill in all required fields along with password as the app is not centralized').then(isConfirmed => {});
+ return;
+ } }else if(this.app.isEnabled && this.app.restrictedApp){
+ if((angular.isUndefined(this.app.name) || !this.app.name) ||(angular.isUndefined(this.app.url) || !this.app.url)){
+ confirmBoxService.showInformation('Please fill in all required fields').then(isConfirmed => {});
return;
+
}
+ }
}
this.isSaving = true;
// For a restricted app, null out all irrelevant fields
diff --git a/ecomp-portal-FE-os/client/src/views/applications/application-details-dialog/application-details.modal.html b/ecomp-portal-FE-os/client/src/views/applications/application-details-dialog/application-details.modal.html
index b4251f15..780a974b 100644
--- a/ecomp-portal-FE-os/client/src/views/applications/application-details-dialog/application-details.modal.html
+++ b/ecomp-portal-FE-os/client/src/views/applications/application-details-dialog/application-details.modal.html
@@ -35,6 +35,16 @@
-->
+<style>
+.mandatoryFeild
+ {
+ color: Red;
+ margin-right: 2px;
+ position: absolute;
+ left: -10px;top: 28px;
+
+ }
+</style>
<div class="b2b-modal-header">
<h2 class="account-details-title" id="application-details-title">Application
@@ -48,14 +58,16 @@
<div class="application-details-modal">
<div class="app-properties-main" scroll-top="appDetails.scrollApi">
<form name="appForm" novalidate autocomplete="off">
+
<div id="app-left-container" class="left-container">
<div class="property-label checkbox-label">
<label for="checkbox-app-is-restricted" class="checkbox">
<input type="checkbox" ng-model="appDetails.app.restrictedApp"
id="checkbox-app-is-restricted"
ng-disabled="appDetails.isEditMode"
- ng-checked="appDetails.app.restrictedApp" /> <i class="skin"></i>
- <span>Hyperlink only application</span>
+ ng-checked="appDetails.app.restrictedApp" /> <i
+ id="checkbox-app-is-restricted" class="skin"></i> <span>Hyperlink
+ only application</span>
</label>
</div>
<div class="property required">
@@ -81,11 +93,14 @@
</div>
</div>
</div>
- <div class="property required">
+ <div class="property">
<div id="url-property-label" class="property-label">URL</div>
- <input id="input-app-url" ng-model="appDetails.app.url"
+ <span runat="server" ID="required" class="mandatoryFeild"
+ visible="false" ng-show="appDetails.app.isEnabled"> *</span><input id="input-app-url" ng-model="appDetails.app.url"
maxlength="256" name="url" type="url" placeholder="https://"
ng-pattern="appDetails.ECOMP_URL_REGEX" required />
+
+
<div id="app-error-url" class="error-container"
ng-show="appDetails.conflictMessages.url"
id="div-app-name-err-url">
@@ -107,9 +122,10 @@
</div>
- <div class="property required" ng-show="!appDetails.app.restrictedApp">
+ <div class="property" ng-show="!appDetails.app.restrictedApp">
<div class="property-label">Rest API URL</div>
- <input id="input-app-rest-url" ng-model="appDetails.app.restUrl"
+ <span runat="server" ID="required" class="mandatoryFiled"
+ visible="false" ng-show="appDetails.app.isEnabled"> *</span><input id="input-app-rest-url" ng-model="appDetails.app.restUrl"
name="restUrl" type="url" placeholder="https://"
ng-pattern="appDetails.ECOMP_URL_REGEX" maxlength="256"
ng-required="!appDetails.app.restrictedApp" />
@@ -122,18 +138,19 @@
</div>
</div>
- <div class="property required"
+ <div class="property"
ng-show="!appDetails.app.restrictedApp">
<div id="username-property-label" class="property-label">Username</div>
- <input type="text" ng-model="appDetails.app.username"
- name="username" maxlength="256"
- ng-required="!appDetails.app.restrictedApp" />
+ <span runat="server" ID="required" class="mandatoryFiled"
+ visible="false" ng-show="appDetails.app.isCentralAuth || appDetails.app.isEnabled"> *</span><input type="text" id="input-username-property"
+ ng-model="appDetails.app.username" name="username"
+ maxlength="256" ng-required="!appDetails.app.restrictedApp" />
<div id="app-error-username-container" class="error-container"
ng-show="appForm.username.$dirty || appDetails.isEditMode">
<div ng-messages="appForm.username.$error"
class="error-container">
<small id="error-appusername-reqd" class="err-message"
- ng-message="required">My Logins App Username is
+ ng-message="required">App Username is
required</small>
</div>
</div>
@@ -161,32 +178,21 @@
ng-model="appDetails.app.appPassword" autocomplete="new-password"
name="appPassword" maxlength="256"/>
</div>
- <div class="property" ng-show="!appDetails.app.restrictedApp">
- <div id="pwd-property-label" class="property-label">Name
- Space</div>
- <input type="text" id="input-mylogins-auth-namespace"
- ng-model="appDetails.app.nameSpace" name="appAuthNameSpace"
- maxlength="256" />
- </div>
+
+
</div>
<div class="right-container">
<div class="property">
<div class="property-label">Upload Image</div>
<input type="file" id="input-app-image-upload"
- class="input-file-field" accept="image/*"
- ng-model="appDetails.originalImage" name="appImage"
- image-upload="appDetails.originalImage"
+ class="input-file-field input-app-image-upload-ht"
+ accept="image/*" ng-model="appDetails.originalImage"
+ name="appImage" image-upload="appDetails.originalImage"
image-upload-resize-max-height="300"
image-upload-resize-max-width="360"
image-upload-resize-quality="0.7"
- image-upload-api="appDetails.imageApi" style="height: 24px;"
- file-change="appImageHandler($event,files)" />
- <div id="app-error-image-upload-type" class="error-container"
- ng-show="appImageTypeError" class="ng-hide">
- <div class="error-container">
- <small id="error-app-invalid-image-size" class="err-message">File must be an image</small>
- </div>
- </div>
+
+ image-upload-api="appDetails.imageApi"
file-change="appImageHandler($event,files)" />
<div id="app-error-image-upload-type" class="error-container"
ng-show="appImageTypeError" class="ng-hide">
@@ -206,21 +212,14 @@
</div>
<div class="property-label preview">
- <span class="left-label">Preview</span> <span class="remove"
+ <span id="{{$index}}-preview-property" class="left-label">Preview</span>
+ <span id="{{$index}}-remove-property" class="remove"
ng-click="appDetails.removeImage()">Remove</span>
</div>
<img id="image-app-preview" class="image-preview"
ng-src="{{appDetails.app.imageLink || appDetails.app.thumbnail || appDetails.emptyImgForPreview}}" />
- <div id="property-communication-inbox" class="property"
- ng-show="!appDetails.app.restrictedApp">
- <div id="property-communication-inbox-label"
- class="property-label">Communication Inbox</div>
- <input type="text" id="input-UEB-topicname"
- ng-model="appDetails.app.uebTopicName" name="uebTopicName"
- readonly="readonly" />
- </div>
-
- <div id="property-communication-key" class="property"
+
+ <div id="property-communication-key" class="property"
ng-show="!appDetails.app.restrictedApp">
<div id="property-communication-key-label" class="property-label">Communication
Key</div>
@@ -228,25 +227,24 @@
ng-model="appDetails.app.uebKey" name="uebKey"
readonly="readonly" />
</div>
+ <div class="property" ng-show="!appDetails.app.restrictedApp" >
+ <div id="pwd-property-label" class="property-label" >Name
+ Space</div>
+ <span runat="server" ID="required" class="mandatoryFiled"
+ visible="false" ng-show="appDetails.app.isCentralAuth"> *</span><input type="text" id="input-mylogins-auth-namespace"
+ ng-model="appDetails.app.nameSpace" name="appAuthNameSpace"
+ maxlength="256" ng-disabled="!appDetails.app.isCentralAuth" />
+ </div>
- <div id="property-communication-secret" class="property"
+
+ <div id="property-is-central-auth" class="property"
ng-show="!appDetails.app.restrictedApp">
- <div id="property-communication-secret-label"
- class="property-label">Communication Secret</div>
- <input type="text" id="input-UEB-communication-secret"
- ng-model="appDetails.app.uebSecret" name="uebSecret"
- readonly="readonly" />
- </div>
-
- <div id="property-guest-access" class="property">
- <label for="checkbox-app-is-open" class="checkbox"> <input
- type="checkbox" ng-model="appDetails.app.isOpen"
- id="checkbox-app-is-open"
- ng-checked="appDetails.app.isOpen || appDetails.app.restrictedApp"
- ng-disabled="appDetails.app.restrictedApp" /> <i class="skin"></i>
- <span>Allow guest access</span>
+ <label for="checkbox-app-is-central-auth" class="checkbox">
+ <input type="checkbox" ng-model="appDetails.app.isCentralAuth"
+ id="checkbox-app-is-central-auth" /> <i class="skin"></i> <span>Centralized</span>
</label>
</div>
+ <br />
<div id="property-active" class="property">
<label for="checkbox-app-is-enabled" class="checkbox"> <input
type="checkbox" ng-model="appDetails.app.isEnabled"
@@ -254,13 +252,16 @@
</label>
</div>
<br />
- <div id="property-is-central-auth" class="property"
- ng-show="!appDetails.app.restrictedApp">
- <label for="checkbox-app-is-central-auth" class="checkbox">
- <input type="checkbox" ng-model="appDetails.app.isCentralAuth"
- id="checkbox-app-is-central-auth" /> <i class="skin"></i> <span>Centralized</span>
+ <div id="property-guest-access" class="property">
+ <label for="checkbox-app-is-open" class="checkbox"> <input
+ type="checkbox" ng-model="appDetails.app.isOpen"
+ id="checkbox-app-is-open"
+ ng-checked="appDetails.app.isOpen || appDetails.app.restrictedApp"
+ ng-disabled="appDetails.app.restrictedApp" /> <i class="skin"></i>
+ <span>Allow guest access</span>
</label>
</div>
+
</div>
@@ -273,8 +274,7 @@
<div align="right">
<span class="ecomp-save-spinner" ng-show="appDetails.isSaving"></span>
<button id="button-save-app" class="btn btn-alt btn-small"
- ng-class="{disabled: appForm.$invalid}"
- ng-click="appDetails.saveChanges()">Save</button>
+ ng-disabled="(!appDetails.app.name || appDetails.app.name.length == 0)" ng-click="appDetails.saveChanges()">Save</button>
<button id="button-notification-cancel" class="btn btn-alt btn-small"
ng-click="$dismiss('cancel')" role="button" tabindex="0">Cancel</button>
</div>
diff --git a/ecomp-portal-FE-os/client/src/views/applications/applications.controller.js b/ecomp-portal-FE-os/client/src/views/applications/applications.controller.js
index 76121a08..0bcc1eb8 100644
--- a/ecomp-portal-FE-os/client/src/views/applications/applications.controller.js
+++ b/ecomp-portal-FE-os/client/src/views/applications/applications.controller.js
@@ -40,8 +40,9 @@
class ApplicationsCtrl {
constructor($log, $cookies, conf, ngDialog,
- applicationsService, confirmBoxService, userProfileService, utilsService,$modal) {
+ applicationsService, confirmBoxService, userProfileService, utilsService,$modal,$scope) {
this.emptyImgForPreview = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
+ $scope.isAdmin = false;
let getOnboardingApps = () => {
this.isLoadingTable = true;
applicationsService.getOnboardingApps()
@@ -54,6 +55,10 @@
appsList[i].imageLink = appsList[i].imageLink+'?' + new Date().getTime();
}
}
+ if(appsList.length == 0)
+ {
+ confirmBoxService.showInformation('You do not have applications to edit').then(isConfirmed => {});
+ }
this.appsList = appsList;
}).catch(err => {
confirmBoxService.showInformation('There was a problem retrieving the Applications. ' +
@@ -64,8 +69,21 @@
});
};
+ let checkIfUserIsSuperAdmin = () => {
+ applicationsService.checkIfUserIsSuperAdmin().then(res => {
+ if(res) {
+ $scope.isAdmin = true;
+ }
+ }).catch(err => {
+ $log.error('ApplicationsCtrl.checkIfUserIsSuperAdmin:: Failed - ' + err);
+ }).finally(()=> {
+ this.isSaving = false;
+ });
+ };
+
let init = () => {
this.isLoadingTable = false;
+ checkIfUserIsSuperAdmin();
getOnboardingApps();
this.searchString = '';
this.appsTableHeaders = [
@@ -143,6 +161,6 @@
}
}
ApplicationsCtrl.$inject = ['$log', '$cookies', 'conf', 'ngDialog',
- 'applicationsService', 'confirmBoxService', 'userProfileService', 'utilsService','$modal'];
+ 'applicationsService', 'confirmBoxService', 'userProfileService', 'utilsService','$modal', '$scope'];
angular.module('ecompApp').controller('ApplicationsCtrl', ApplicationsCtrl);
})();
diff --git a/ecomp-portal-FE-os/pom.xml b/ecomp-portal-FE-os/pom.xml
index f39a31c5..d5014a98 100644
--- a/ecomp-portal-FE-os/pom.xml
+++ b/ecomp-portal-FE-os/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.portal</groupId>
<artifactId>onap-portal-parent</artifactId>
- <version>2.5.0</version>
+ <version>2.6.0-SNAPSHOT</version>
</parent>
<artifactId>portal-FE-os</artifactId>