Repair DDL duplicate-index name issue

This blocked the portal-db container from starting, which blocked
the app servers from starting.

Issue: PORTAL-80
Change-Id: I4c0b6b378bda29355111b137cae32c8f219d9921
Signed-off-by: Christopher Lott (cl778h) <clott@research.att.com>
diff --git a/ecomp-portal-BE-os/pom.xml b/ecomp-portal-BE-os/pom.xml
index a8c19a5..966a702 100644
--- a/ecomp-portal-BE-os/pom.xml
+++ b/ecomp-portal-BE-os/pom.xml
@@ -13,7 +13,8 @@
 		<epsdk.version>1.3.0-SNAPSHOT</epsdk.version>
 		<portal.version>1.3.0-SNAPSHOT</portal.version>
 		<encoding>UTF-8</encoding>
-		<!-- Tests usually require some setup that maven cannot do, so skip. -->
+		<!-- If Skiptests is false use mvn clean jacoco:prepare-agent install jacoco:report 
+			to run jacoco report -->
 		<skipTests>true</skipTests>
 		<!-- Jenkins SHOULD invoke mvn with argument -Dbuild.number=${BUILD_NUMBER} -->
 		<build.number>0</build.number>
@@ -158,34 +159,7 @@
 					</execution>
 				</executions>
 			</plugin>
-
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-resources-plugin</artifactId>
-				<version>3.0.2</version>
-				<executions>
-					<execution>
-						<id>copy-src</id>
-						<phase>generate-resources</phase>
-						<goals>
-							<goal>copy-resources</goal>
-						</goals>
-						<configuration>
-							<outputDirectory>${basedir}/target/classes</outputDirectory>
-							<overwrite>false</overwrite>
-							<skip>${skipTests}</skip>
-							<resources>
-								<resource>
-									<directory>${basedir}/../ecomp-portal-BE-common/target/classes</directory>
-								</resource>
-							</resources>
-						</configuration>
-					</execution>
-
-				</executions>
-			</plugin>
-
-
+			
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-surefire-plugin</artifactId>
@@ -253,7 +227,7 @@
 
 			<plugin>
 				<artifactId>maven-resources-plugin</artifactId>
-				<version>3.0.1</version>
+				<version>3.0.2</version>
 				<!-- Your own property files can be placed in ecomp-portal-be/../../overrides 
 					directory and they will override the generic source controlled versions at 
 					build time allowing you to test locally with your own settings. -->
@@ -317,6 +291,23 @@
 							</resources>
 						</configuration>
 					</execution>
+					<execution>
+						<id>copy-src</id>
+						<phase>generate-resources</phase>
+						<goals>
+							<goal>copy-resources</goal>
+						</goals>
+						<configuration>
+							<outputDirectory>${basedir}/target/classes</outputDirectory>
+							<overwrite>false</overwrite>
+							<skip>${skipTests}</skip>
+							<resources>
+								<resource>
+									<directory>${basedir}/../ecomp-portal-BE-common/target/classes</directory>
+								</resource>
+							</resources>
+						</configuration>
+					</execution>
 				</executions>
 			</plugin>
 		</plugins>
diff --git a/ecomp-portal-DB-common/EcompPortalDDLMySql_1710_Common.sql b/ecomp-portal-DB-common/EcompPortalDDLMySql_1710_Common.sql
index f4d3c85..99cbdfa 100644
--- a/ecomp-portal-DB-common/EcompPortalDDLMySql_1710_Common.sql
+++ b/ecomp-portal-DB-common/EcompPortalDDLMySql_1710_Common.sql
@@ -1302,9 +1302,6 @@
 `function_cd` VARCHAR(50) NOT NULL,
 PRIMARY KEY (`id`),
 UNIQUE INDEX `UNIQUE KEY` (`app_id`, `role_id`, `function_cd`),
-INDEX `fk_ep_app_role_function_role_id` (`role_id`),
-INDEX `fk_ep_app_role_function_app_id` (`app_id`),
-INDEX `fk_ep_app_role_function_ep_app_func` (`function_cd`,`app_id`),
 CONSTRAINT `fk_ep_app_role_function_app_id` FOREIGN KEY (`app_id`) REFERENCES `fn_app` (`app_id`),
 CONSTRAINT `fk_ep_app_role_function_ep_app_func` FOREIGN KEY (`app_id`, `function_cd`) REFERENCES `ep_app_function` (`app_id`, `function_cd`),
 CONSTRAINT `fk_ep_app_role_function_role_id` FOREIGN KEY (`role_id`) REFERENCES `fn_role` (`role_id`)
diff --git a/ecomp-portal-FE-common/client/app/views/catalog/catalog.tpl.html b/ecomp-portal-FE-common/client/app/views/catalog/catalog.tpl.html
index d3c1044..996f227 100644
--- a/ecomp-portal-FE-common/client/app/views/catalog/catalog.tpl.html
+++ b/ecomp-portal-FE-common/client/app/views/catalog/catalog.tpl.html
@@ -60,7 +60,7 @@
 					<ul>	
 						<li gridster-item="item" ng-repeat="item in appCatalog"
 							ng-if="(item.select && radioValue=='Selected') || (item.access && radioValue=='Accessible') || (radioValue == 'All')">
-							<div class="gridster-box" style="{{!item.access?' color:lightgray !important':''}}">
+							<div class="gridster-box" ng-attr-style="{{!item.access?' color:lightgray !important':''}}">
 								<div class="gridster-box-header"
 									ng-show="(item.select && radioValue=='Selected') || (item.access && radioValue=='Accessible') || (radioValue == 'All')">
 									<i id="gridster-{{item.headerText.split(' ').join('-')}}-icon" class="icon-content-gridguide"></i>
diff --git a/ecomp-portal-FE-common/client/app/views/role/role-list-controller.js b/ecomp-portal-FE-common/client/app/views/role/role-list-controller.js
index 582706c..2ca149c 100644
--- a/ecomp-portal-FE-common/client/app/views/role/role-list-controller.js
+++ b/ecomp-portal-FE-common/client/app/views/role/role-list-controller.js
@@ -42,7 +42,12 @@
 				} else {
 					toggleType = "inactivate";
 				}
-				
+				if((availableRole.id == "1") || (availableRole.id =="999"))
+				{
+				 confirmBoxService.showInformation(availableRole.name+" role cannot be disabled");
+				 availableRole.active=!availableRole.active
+	             return;
+				}
 				confirmBoxService.confirm("You are about to "+toggleType+" the role "+availableRole.name+". Do you want to continue?").then(
 		    		function(confirmed){