diff --git a/openo-portal/portal-resmgr/pom.xml b/openo-portal/portal-resmgr/pom.xml
index 0ba9361..60890a2 100644
--- a/openo-portal/portal-resmgr/pom.xml
+++ b/openo-portal/portal-resmgr/pom.xml
@@ -16,18 +16,19 @@
     limitations under the License.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <parent>
-    <groupId>org.openo.gso.gui</groupId>
-    <artifactId>openo-portal</artifactId>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>org.openo.gso.gui</groupId>
+        <artifactId>openo-portal</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>portal-resmgr</artifactId>
     <version>1.0.0-SNAPSHOT</version>
-  </parent>
-
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>portal-resmgr</artifactId>
-  <version>1.0.0-SNAPSHOT</version>
-  <packaging>war</packaging>
-
+  <packaging>pom</packaging>
+<!--
   <build>
     <plugins>
       <plugin>
@@ -38,5 +39,5 @@
         </configuration>
       </plugin>
     </plugins>
-  </build>
+  </build> -->
 </project>
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/RMain.css b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/RMain.css
index 90b05a9..43160f5 100644
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/RMain.css
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/RMain.css
@@ -1,195 +1,224 @@
 #iemp_layout_container {
-  padding: 0px;
-  margin: 1px auto;
-  width: 100%;
-  height: 100%;
+    padding: 0px;
+    margin: 1px auto;
+    width: 100%;
+    height: 100%;
 }
+
 #iemp_layout_container .three-cols-layout {
-  width: 100%;
-  height: 100%;
-  border-collapse: collapse;
-  margin-left: 0px;
-  margin-top: 0px;
-  margin-right: 0px;
-  margin-bottom: 0px;
+    width: 100%;
+    height: 100%;
+    border-collapse: collapse;
+    margin-left: 0px;
+    margin-top: 0px;
+    margin-right: 0px;
+    margin-bottom: 0px;
 }
+
 #iemp_layout_container .three-cols-layout {
-  width: 100%;
-  height: 100%;
-  border-collapse: collapse;
-  margin-left: 0px;
-  margin-top: 0px;
-  margin-right: 0px;
-  margin-bottom: 0px;
+    width: 100%;
+    height: 100%;
+    border-collapse: collapse;
+    margin-left: 0px;
+    margin-top: 0px;
+    margin-right: 0px;
+    margin-bottom: 0px;
 }
+
 #iemp_layout_container .three-cols-column.three-cols-left {
-  width: 215px;
-  background-color: #f5f5f5;
+    width: 215px;
+    background-color: #f5f5f5;
 }
+
 .accordion_parent {
-  position: relative;
-  width: 220px;
-  background-color: #f5f5f5;
+    position: relative;
+    width: 220px;
+    background-color: #f5f5f5;
 }
+
 .openo-accordion-resizable-handle {
-  z-index: 1!important;
-  cursor: e-resize;
-  width: 7px;
-  right: -5px;
-  top: 0;
-  height: 100%;
-  position: absolute;
-  font-size: .1px;
-  display: block;
+    z-index: 1 !important;
+    cursor: e-resize;
+    width: 7px;
+    right: -5px;
+    top: 0;
+    height: 100%;
+    position: absolute;
+    font-size: .1px;
+    display: block;
 }
+
 .openoAccordian_accordionmenu {
-  width: 100%;
-  margin: 0;
-  padding: 0;
-  list-style-type: none;
-  line-height: 17px;
+    width: 100%;
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+    line-height: 17px;
 }
+
 .openoAccordian_accordionmenu li {
-  min-width: 75px;
-  margin: 0;
-  padding: 0;
-  list-style-type: none;
-  color: #000;
-  clear: both;
+    min-width: 75px;
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+    color: #000;
+    clear: both;
 }
+
 .openo_accordion_ui-icon-collapse, .openo_accordion_ui-icon-expand {
-  display: block;
-  float: left;
-  margin-bottom: -1px;
-  border-bottom: 1px solid #e5e5e5;
-  cursor: pointer;
-  width: 13px;
-  padding-top: 26px;
+    display: block;
+    float: left;
+    margin-bottom: -1px;
+    border-bottom: 1px solid #e5e5e5;
+    cursor: pointer;
+    width: 13px;
+    padding-top: 26px;
 }
+
 .openo_accordion_ui-icon-expand {
-  background: url(../images/collapse_arrow.png) right 20px no-repeat;
-  margin-top: 8px;
+    background: url(../images/collapse_arrow.png) right 20px no-repeat;
+    margin-top: 8px;
 }
-.openo_accordion_ui-icon-expand.current{
-  background: url(../images/expand_arrow.png) right 20px no-repeat;
+
+.openo_accordion_ui-icon-expand.current {
+    background: url(../images/expand_arrow.png) right 20px no-repeat;
 }
+
 .openoAccordian_showHideArrow_hide, .openoAccordian_showHideArrow_show {
-  display: block;
-  position: absolute;
-  right: 0;
-  top: 4px;
-  width: 18px;
-  height: 41px;
-  cursor: pointer;
-  background-color: #f5f5f5;
+    display: block;
+    position: absolute;
+    right: 0;
+    top: 4px;
+    width: 18px;
+    height: 41px;
+    cursor: pointer;
+    background-color: #f5f5f5;
 }
+
 .openoAccordian_showHideArrow_hide {
-  background-image: url(../images/openo.png);
-  background-position: -7px 0!important;
-  border-collapse: separate;
-  /*box-shadow: inset -1px 0 0 #e5e5e5;*/
+    background-image: url(../images/openo.png);
+    background-position: -7px 0 !important;
+    border-collapse: separate;
+    /*box-shadow: inset -1px 0 0 #e5e5e5;*/
 }
+
 a.header.opened, a.header.closed {
-  font-size: 16px;
-  padding-top: 24px;
-  padding-bottom: 25px;
-  color: #999999;
+    font-size: 16px;
+    padding-top: 24px;
+    padding-bottom: 25px;
+    color: #999999;
 }
+
 .openoAccordian_accordionmenu .closed, .openoAccordian_accordionmenu .opened {
-  padding-right: 10px;
-  background-position: 98% 50%;
-  background-repeat: no-repeat;
+    padding-right: 10px;
+    background-position: 98% 50%;
+    background-repeat: no-repeat;
 }
+
 .openoAccordian_accordionmenu li a {
-  padding: 11px 10px 12px;
-  color: #333333;
-  margin-right: 1px;
-  margin-top: -1px;
-  text-align: left!important;
-  font-family: "Microsoft Yahei",SimSun,Arial,Tahoma;
-  font-size: 14px;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-  overflow: hidden;
-  border-top: 1px solid #e5e5e5;
-  border-bottom: 1px solid #e5e5e5;
-  /*height: 19px;*/
+    padding: 11px 10px 12px;
+    color: #333333;
+    margin-right: 1px;
+    margin-top: -1px;
+    text-align: left !important;
+    font-family: "Microsoft Yahei", SimSun, Arial, Tahoma;
+    font-size: 14px;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    overflow: hidden;
+    border-top: 1px solid #e5e5e5;
+    border-bottom: 1px solid #e5e5e5;
+    /*height: 19px;*/
 }
+
 .openoAccordian_accordionmenu ul {
-  margin: 0;
-  padding: 0;
-  overflow: hidden;
+    margin: 0;
+    padding: 0;
+    overflow: hidden;
 }
+
 .openoAccordian_accordionmenu a {
-  display: block;
-  text-decoration: none;
+    display: block;
+    text-decoration: none;
 }
+
 a {
-  color: #428bca;
-  text-decoration: none;
-  background: 0 0;
+    color: #428bca;
+    text-decoration: none;
+    background: 0 0;
 }
-.bar{
+
+.bar {
     height: 834px;
     width: 18px;
     background: #f8f8f8;
     display: none;
 }
-.bar span{
+
+.bar span {
     width: 13px;
     height: 34px;
     background-image: url(../images/openo.png);
-  background-position: -39px 0!important;
-  display: block;
-  /*margin-top: -430px;*/
+    background-position: -39px 0 !important;
+    display: block;
+    /*margin-top: -430px;*/
 }
-#accordionmenuid_ul_0_0_brAppTopMenuID_UL li{
+
+#accordionmenuid_ul_0_0_brAppTopMenuID_UL li {
     cursor: pointer;
 }
-#puer_base_openo{
+
+#puer_base_openo {
     border: 1px solid #ddd;
 }
+
 .openo_accordion_selected {
-  margin-left: 0;
-  margin-right: 0;
-  background: #fafafa;
-  border-left: 3px solid #4ac9ff!important;
-  box-shadow: none;
-  position: relative;
+    margin-left: 0;
+    margin-right: 0;
+    background: #fafafa;
+    border-left: 3px solid #4ac9ff !important;
+    box-shadow: none;
+    position: relative;
 }
-a:hover{
-    color: #4ac9ff!important;
+
+a:hover {
+    color: #4ac9ff !important;
 }
+
 .openoAccordian_accordionmenu li.openo_accordion_selected a {
-  position: relative;
-  left: -3px;
-  color: #009ae7;
+    position: relative;
+    left: -3px;
+    color: #009ae7;
 }
+
 .openo-accordion-resizable-handle {
-  z-index: 1!important;
-  cursor: e-resize;
-  width: 7px;
-  right: -5px;
-  top: 0;
-  height: 100%;
-  position: absolute;
-  font-size: .1px;
-  display: block;
+    z-index: 1 !important;
+    cursor: e-resize;
+    width: 7px;
+    right: -5px;
+    top: 0;
+    height: 100%;
+    position: absolute;
+    font-size: .1px;
+    display: block;
 }
+
 #iframeContainer iframe {
-  width: 100%;
-  height: 100%;
-  border: 0;
+    width: 100%;
+    height: 100%;
+    border: 0;
 }
+
 #accordionContent, #iframeContainer {
-  margin: 0;
-  padding: 0;
-  border: 0;
-  width: 100%;
-  height: 100%;
+    margin: 0;
+    padding: 0;
+    border: 0;
+    width: 100%;
+    height: 100%;
 }
+
 .openoAccordian_showHideArrow_show {
-  background-image: url(../images/openo.png);
-  background-position: -39px 0!important;
-  box-shadow: inset 1px 0 0 #e5e5e5,inset -1px 0 0 #e5e5e5;
+    background-image: url(../images/openo.png);
+    background-position: -39px 0 !important;
+    box-shadow: inset 1px 0 0 #e5e5e5, inset -1px 0 0 #e5e5e5;
 }
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/VMMain.css b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/VMMain.css
index 8d1db5a..2565306 100644
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/VMMain.css
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/VMMain.css
@@ -1,56 +1,65 @@
-body{
+body {
     font-family: '微软雅黑';
     font-size: 12px;
     color: #333;
     background: #fafafa;
 }
-button{
+
+button {
     outline: none;
 }
-ul,li{
+
+ul, li {
     list-style: none;
-    padding:0;
-    margin:0;
+    padding: 0;
+    margin: 0;
 }
-.titleFont{
+
+.titleFont {
     font-size: 16px;
 }
-.separator-line{
+
+.separator-line {
     height: 1px;
     width: 100%;
-    border:1px solid #ddd;
+    border: 1px solid #ddd;
     margin: 6px 0 15px 0;
 }
-.uploadBtn{
+
+.uploadBtn {
     overflow: hidden;
 }
+
 .creat-btn {
-	padding: 0 14px;
-	height: 24px;
+    padding: 0 14px;
+    height: 24px;
     float: left;
     cursor: pointer;
     text-decoration: none;
     outline: 0;
     border: 1px solid #d3d3d3;
     text-align: center;
-    box-shadow: 0 1px 1px rgba(0,0,0,.05);
+    box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
     background: #fafafa;
-    background: -moz-linear-gradient(top,#fff,#fafafa);
-    background: -webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#fafafa));
-    background: -webkit-linear-gradient(top,#fff,#fafafa);
-    background: linear-gradient(to bottom,#fff,#fafafa);
+    background: -moz-linear-gradient(top, #fff, #fafafa);
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(100%, #fafafa));
+    background: -webkit-linear-gradient(top, #fff, #fafafa);
+    background: linear-gradient(to bottom, #fff, #fafafa);
     border-radius: 6px;
     background: #fff url(../images/add.png) no-repeat 5px center;
     padding-left: 20px;
 }
+
 .creat-btn:hover {
-	color: #009ae7;	
-	border: 1px solid #4AC9FF
+    color: #009ae7;
+    border: 1px solid #4AC9FF
 }
+
 .creat-btn:active {
-	color: #000;	
-	border: 1px solid #4AC9FF
+    color: #000;
+    border: 1px solid #4AC9FF
 }
+
 /*.creat-btn{
     background: #fff url(../image/add.png) no-repeat 5px center;
     border: 1px solid #ddd;
@@ -61,110 +70,130 @@
     color: #fff;
     border:1px solid #428bca;
 }*/
-.search{
+.search {
     width: 310px;
     height: 30px;
-    float:right;
+    float: right;
 }
-.search-text{
+
+.search-text {
     width: 250px;
     float: left;
     margin-right: 6px;
 }
-.search-btn{
+
+.search-btn {
     height: 30px;
     background: #fff;
     border: 1px solid #ddd;
     float: left;
 }
-#ict_virtualApplication_table_div{
+
+#ict_virtualApplication_table_div {
     margin-top: 15px;
 }
-.table>thead>tr.active>th{
-    border: 1px solid #ddd!important;
+
+.table > thead > tr.active > th {
+    border: 1px solid #ddd !important;
     border-bottom: 0;
     background: #f0f0f0;
 }
+
 /*.table tbody tr:hover{
     background: #e6fbe0!important;
 }*/
-.table tbody tr:last-child{
+.table tbody tr:last-child {
     border-bottom: 1px solid #ddd;
 }
-.table-btn{
+
+.table-btn {
     border: 1px solid #ccc;
     border-radius: 3px;
 }
-.delete-btn{
+
+.delete-btn {
     background: url(../image/delete.png) no-repeat;
     width: 16px;
     height: 16px;
     border: none;
 }
-.detail-btn{
+
+.detail-btn {
     background: url(../image/openo.png) no-repeat -343px -283px;
     width: 16px;
     height: 16px;
     border: none;
 }
-.detail-btn.current{
-    background-position: -7px -314px; 
+
+.detail-btn.current {
+    background-position: -7px -314px;
 }
-.detail{
+
+.detail {
     height: 200px;
     border: 1px solid #ddd;
     margin-top: 60px;
 }
 
-.detail-top ul{
+.detail-top ul {
     height: 50px;
     line-height: 50px;
     border-bottom: 1px solid #ddd;
     padding-left: 0px;
-     background: #fafafa;
+    background: #fafafa;
 }
-.detail-top ul li{
-    float:left;
+
+.detail-top ul li {
+    float: left;
     width: 120px;
     text-align: center;
     border-right: 1px solid #ddd;
     cursor: pointer;
 }
-.detail-top ul li.current{
+
+.detail-top ul li.current {
     background: #fff;
 }
-.vmapp-margin{
+
+.vmapp-margin {
     margin-bottom: 10px;
 }
-.control-label .required{
+
+.control-label .required {
     color: #e02222;
     font-size: 12px;
     padding-left: 2px;
 }
-.form-group .control-label{
+
+.form-group .control-label {
     font-size: 12px;
     font-weight: 400;
 }
-legend{
+
+legend {
     font-size: 12px;
     font-weight: bold;
 }
-.pageGro{
+
+.pageGro {
     width: 250px;
     float: right;
 }
-.pageUp,.pageDown,.pageList,.pageList li{
+
+.pageUp, .pageDown, .pageList, .pageList li {
     float: left;
     cursor: pointer;
 }
-.pageUp,.pageDown{
+
+.pageUp, .pageDown {
     width: 60px;
     height: 30px;
     border: 1px solid #ddd;
     text-align: center;
     line-height: 30px;
 }
-.pageList li{
+
+.pageList li {
     width: 30px;
     height: 30px;
     border: 1px solid #ddd;
@@ -172,466 +201,543 @@
     line-height: 30px;
     border-left: none;
 }
-.pageList li.active{
+
+.pageList li.active {
     background: #428bca;
     color: #fff;
     border-color: #428bca;
 }
-.pageDown{
+
+.pageDown {
     border-left: none;
 }
-.headerLinkP{
+
+.headerLinkP {
     padding-top: 17px;
 }
-.headerLinkP span{
+
+.headerLinkP span {
     font-size: 12px;
     color: #666;
-    font-weight: normal!important;
+    font-weight: normal !important;
 }
-label{
-    font-weight: normal!important;
+
+label {
+    font-weight: normal !important;
 }
+
 table.userform tbody tr td {
-  display: table-cell;
-  padding-right: 10px;
-  padding-top: 10px;
-  font-size: 12px;
-  color: #333;
+    display: table-cell;
+    padding-right: 10px;
+    padding-top: 10px;
+    font-size: 12px;
+    color: #333;
 }
-.table th,.table td{
-    padding-top: 3px!important;
-    padding-bottom: 3px!important;
+
+.table th, .table td {
+    padding-top: 3px !important;
+    padding-bottom: 3px !important;
 }
+
 .openoBrowseButton_element {
-  display: table;
+    display: table;
 }
+
 .openo {
-  font-family: "Microsoft Yahei",SimSun,Arial,Tahoma;
-  font-size: 12px;
-  color: #000;
+    font-family: "Microsoft Yahei", SimSun, Arial, Tahoma;
+    font-size: 12px;
+    color: #000;
 }
+
 .openoBrowseButton_input {
-  width: 198px;
-  position: relative;
-  border: 1px solid #c3c3c3!important;
-  height: 26px;
-  background-color: #f3f3f3;
-  border-radius: 4px 0 0 4px;
-  border-right: none;
-  padding: 0;
+    width: 198px;
+    position: relative;
+    border: 1px solid #c3c3c3 !important;
+    height: 26px;
+    background-color: #f3f3f3;
+    border-radius: 4px 0 0 4px;
+    border-right: none;
+    padding: 0;
 }
+
 .buttonClassDefault, .buttonClassDefault:active {
-  cursor: pointer;
-  background-image: url(../images/openo.png);
-  background-position: -154px -7px!important;
+    cursor: pointer;
+    background-image: url(../images/openo.png);
+    background-position: -154px -7px !important;
 }
+
 .openoBrowseButton_button {
-  width: 27px;
-  border: 0;
-  float: right;
-  position: relative;
-  height: 26px;
-  right: 0;
-  top: 0;
-  border-radius: 0 4px 4px 0;
-  border-right: 1px solid #c3c3c3;
-  border-left: none;
+    width: 27px;
+    border: 0;
+    float: right;
+    position: relative;
+    height: 26px;
+    right: 0;
+    top: 0;
+    border-radius: 0 4px 4px 0;
+    border-right: 1px solid #c3c3c3;
+    border-left: none;
 }
+
 .openo .openo-input, .openo.openo-input {
-  outline: 0;
-  border: 1px solid #c3c3c3;
-  box-shadow: 1px 1px #f6f6f6 inset;
-  background-color: #fff;
-  height: 26px;
+    outline: 0;
+    border: 1px solid #c3c3c3;
+    box-shadow: 1px 1px #f6f6f6 inset;
+    background-color: #fff;
+    height: 26px;
 }
+
 .openoInput_openoDefaultText {
-  padding: 0 0 0 6px;
-  border-radius: 4px;
-  color: #000;
-  display: inline-block;
-  outline: 0;
-  box-shadow: 1px 1px #f6f6f6 inset;
-  font-size: 12px;
-  background: #fff;
+    padding: 0 0 0 6px;
+    border-radius: 4px;
+    color: #000;
+    display: inline-block;
+    outline: 0;
+    box-shadow: 1px 1px #f6f6f6 inset;
+    font-size: 12px;
+    background: #fff;
 }
+
 div.openo-select {
-  border: 1px solid #c3c3c3;
-  border-radius: 4px;
-  background: url(../images/arrow-down-enable.png) right no-repeat #fff;
-  line-height: 24px;
-  padding-left: 3px;
-  display: block;
+    border: 1px solid #c3c3c3;
+    border-radius: 4px;
+    background: url(../images/arrow-down-enable.png) right no-repeat #fff;
+    line-height: 24px;
+    padding-left: 3px;
+    display: block;
 }
-div.openo-select>input.openo-select-input {
-  border: none;
-  outline: 0;
-  line-height: 21px;
-  height: 21px;
-  padding-left: 3px;
-  border-right: solid 1px #c3c3c3;
+
+div.openo-select > input.openo-select-input {
+    border: none;
+    outline: 0;
+    line-height: 21px;
+    height: 21px;
+    padding-left: 3px;
+    border-right: solid 1px #c3c3c3;
 }
+
 .openo .openo-ellipsis, .openo.openo-ellipsis {
-  overflow: hidden;
-  white-space: nowrap;
-  text-overflow: ellipsis;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
 }
+
 a.openoButton_buttonClass, a.openoButton_buttonDisableClass, div.openoButton_buttonClass, div.openoButton_buttonDisableClass {
-  height: 26px;
-  float: left;
-  cursor: pointer;
-  text-decoration: none;
-  outline: 0;
-  border: 1px solid #d3d3d3;
-  text-align: center;
-  box-shadow: 0 1px 1px rgba(0,0,0,.05);
-  background: #fafafa;
-  background: -moz-linear-gradient(top,#fff,#fafafa);
-  background: -webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#fafafa));
-  background: -webkit-linear-gradient(top,#fff,#fafafa);
-  background: linear-gradient(to bottom,#fff,#fafafa);
-  border-radius: 6px;
+    height: 26px;
+    float: left;
+    cursor: pointer;
+    text-decoration: none;
+    outline: 0;
+    border: 1px solid #d3d3d3;
+    text-align: center;
+    box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
+    background: #fafafa;
+    background: -moz-linear-gradient(top, #fff, #fafafa);
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(100%, #fafafa));
+    background: -webkit-linear-gradient(top, #fff, #fafafa);
+    background: linear-gradient(to bottom, #fff, #fafafa);
+    border-radius: 6px;
 }
-.openoButton_buttonInnerClass{
-      padding: 0 19px;
-      border-radius: 6px;
+
+.openoButton_buttonInnerClass {
+    padding: 0 19px;
+    border-radius: 6px;
 }
+
 .openoButton_buttonCenterText {
-  color: #000;
-  line-height: 24px;
-  white-space: nowrap;
-  width: auto!important;
+    color: #000;
+    line-height: 24px;
+    white-space: nowrap;
+    width: auto !important;
 }
+
 .userHeader {
-  clear: left;
-  overflow: hidden;
-  margin-bottom: 10px;
-  padding: 10px 10px 0px 0px;
+    clear: left;
+    overflow: hidden;
+    margin-bottom: 10px;
+    padding: 10px 10px 0px 0px;
 }
+
 .openoButton_buttonGroupClass {
-  display: inline;
+    display: inline;
 }
+
 .openoButton_buttonGroupClass div.openoButton_buttonClass_parent:first-child {
-  margin-left: 0;
+    margin-left: 0;
 }
+
 .openoButton_buttonLeftImg {
-  margin-right: 5px;
+    margin-right: 5px;
 }
+
 .openoButton_buttonLeftImg, .openoButton_buttonRightImg {
-  display: inline-block;
-  vertical-align: top;
-  width: 16px;
-  height: 16px;
-  margin-top: 4px;
+    display: inline-block;
+    vertical-align: top;
+    width: 16px;
+    height: 16px;
+    margin-top: 4px;
 }
+
 .openo-table-pagination-wrapper {
-  height: 37px;
+    height: 37px;
 }
+
 .openo-pagination {
-  display: block;
-  float: left;
-  overflow: hidden;
-  padding: 5px 0 0;
-  margin-top: 8px;
+    display: block;
+    float: left;
+    overflow: hidden;
+    padding: 5px 0 0;
+    margin-top: 8px;
 }
+
 .openoPagination_openoPaginationLengthOptions:not(msie8) {
-  line-height: 24px;
+    line-height: 24px;
 }
+
 .openoPagination_openoPaginationLengthOptions {
-  white-space: normal;
-  height: 24px;
-  float: left;
-  outline: 0;
-  line-height: 20px;
-  margin: 0 5px;
+    white-space: normal;
+    height: 24px;
+    float: left;
+    outline: 0;
+    line-height: 20px;
+    margin: 0 5px;
 }
+
 .openo-pagination-select {
-  height: 26px;
-  line-height: 22px;
-  text-align: center;
-  margin-right: -2px;
-  border: 1px solid #e0e0e0;
-  border-radius: 5px 0 0 5px;
-  padding: 1px;
+    height: 26px;
+    line-height: 22px;
+    text-align: center;
+    margin-right: -2px;
+    border: 1px solid #e0e0e0;
+    border-radius: 5px 0 0 5px;
+    padding: 1px;
 }
+
 .openoPagination_openoPaginationLengthOptions span {
-  background-color: #fff!important;
+    background-color: #fff !important;
 }
+
 .openo-pagination-theme a, .openo-pagination-theme span {
-  float: left;
-  color: #666;
-  font: 12px Lucida Grande,Verdana,Arial,Helvetica,sans-serif;
-  line-height: 24px;
-  font-weight: 400;
-  text-align: center;
-  border: 1px solid #e0e0e0;
-  text-decoration: none!important;
-  padding: 0 7px;
-  border-radius: 3px;
-  background: #fff;
+    float: left;
+    color: #666;
+    font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif;
+    line-height: 24px;
+    font-weight: 400;
+    text-align: center;
+    border: 1px solid #e0e0e0;
+    text-decoration: none !important;
+    padding: 0 7px;
+    border-radius: 3px;
+    background: #fff;
 }
+
 .openo-pagination-selectspan {
-  background: url(../images/ideo_default_select.png) left no-repeat!important;
-  float: right!important;
-  width: 26px;
-  height: 26px;
-  cursor: pointer;
+    background: url(../images/ideo_default_select.png) left no-repeat !important;
+    float: right !important;
+    width: 26px;
+    height: 26px;
+    cursor: pointer;
 }
+
 .openo-pagination-theme label {
-  padding-top: 6px;
-  vertical-align: middle;
-  margin-right: 20px;
-  margin-top: -1px;
-  float: left;
-  display: inline-block;
-  height: 20px;
-  font: 12px Lucida Grande,Verdana,Arial,Helvetica,sans-serif;
+    padding-top: 6px;
+    vertical-align: middle;
+    margin-right: 20px;
+    margin-top: -1px;
+    float: left;
+    display: inline-block;
+    height: 20px;
+    font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif;
 }
+
 .openo-pagination li, .openo-pagination ul {
-  list-style: none;
-  padding: 0;
-  margin: 0;
-  float: left;
+    list-style: none;
+    padding: 0;
+    margin: 0;
+    float: left;
 }
+
 dd, dl, dt, li {
-  color: #000;
+    color: #000;
 }
+
 .openo-pagination-theme a, .openo-pagination-theme span.current {
-  margin: 0 5px 0 0;
+    margin: 0 5px 0 0;
 }
+
 .openo .openo-disabled, .openo.openo-disabled {
-  border-color: #c3c3c3!important;
-  color: #666!important;
-  opacity: .3;
-  filter: alpha(opacity=30);
+    border-color: #c3c3c3 !important;
+    color: #666 !important;
+    opacity: .3;
+    filter: alpha(opacity=30);
 }
+
 .openo-pagination-theme .prev {
-  background: 0 0;
-  float: left;
+    background: 0 0;
+    float: left;
 }
+
 .openo-pagination-theme .current {
-  text-decoration: none!important;
-  float: left;
-  padding-left: 6px;
-  height: 24px;
-  color: #fff;
-  display: inline;
-  border-color: #00adf5;
-  background: #4ad2ff;
+    text-decoration: none !important;
+    float: left;
+    padding-left: 6px;
+    height: 24px;
+    color: #fff;
+    display: inline;
+    border-color: #00adf5;
+    background: #4ad2ff;
 }
+
 .openo-pagination-theme a, .openo-pagination-theme span {
-  float: left;
-  color: #666;
-  font: 12px Lucida Grande,Verdana,Arial,Helvetica,sans-serif;
-  line-height: 24px;
-  font-weight: 400;
-  text-align: center;
-  border: 1px solid #e0e0e0;
-  text-decoration: none!important;
-  padding: 0 7px;
-  border-radius: 3px;
-  background: #fff;
+    float: left;
+    color: #666;
+    font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif;
+    line-height: 24px;
+    font-weight: 400;
+    text-align: center;
+    border: 1px solid #e0e0e0;
+    text-decoration: none !important;
+    padding: 0 7px;
+    border-radius: 3px;
+    background: #fff;
 }
+
 .openo-pagination-theme .prev.openo-disabled:before {
-  background: url(../images/page_left_disabled.png) 50% 45% no-repeat;
+    background: url(../images/page_left_disabled.png) 50% 45% no-repeat;
 }
+
 .openo-pagination-theme .prev.openo-disabled:before {
-  background: url(../images/page_left_disabled.png) 50% 45% no-repeat;
+    background: url(../images/page_left_disabled.png) 50% 45% no-repeat;
 }
+
 .openo-pagination-theme .prev:before {
-  background: url(../images/page_l.png) 50% 45% no-repeat;
+    background: url(../images/page_l.png) 50% 45% no-repeat;
 }
+
 .openo-pagination-theme .next:after, .openo-pagination-theme .prev:before {
-  display: inline-block;
-  content: "";
-  vertical-align: middle;
-  width: 10px;
-  height: 24px;
+    display: inline-block;
+    content: "";
+    vertical-align: middle;
+    width: 10px;
+    height: 24px;
 }
+
 .openo-pagination-theme .prev:before {
-  background: url(../images/page_l.png) 50% 45% no-repeat;
+    background: url(../images/page_l.png) 50% 45% no-repeat;
 }
+
 .openo-pagination-theme .next:after, .openo-pagination-theme .prev:before {
-  display: inline-block;
-  content: "";
-  vertical-align: middle;
-  width: 10px;
-  height: 24px;
+    display: inline-block;
+    content: "";
+    vertical-align: middle;
+    width: 10px;
+    height: 24px;
 }
+
 pagination ul {
-  list-style: none;
-  padding: 0;
-  margin: 0;
-  float: left;
+    list-style: none;
+    padding: 0;
+    margin: 0;
+    float: left;
 }
+
 .openo-pagination li, .openo-pagination ul {
-  list-style: none;
-  padding: 0;
-  margin: 0;
-  float: left;
+    list-style: none;
+    padding: 0;
+    margin: 0;
+    float: left;
 }
+
 .openoPagination_gototext {
-  background: #FFF;
-  outline: 0;
-  width: 29px;
-  float: left;
-  height: 26px;
-  line-height: 24px;
-  border-radius: 4px;
-  border: 1px solid #c3c3c3;
-  padding: 0 0 0 5px;
-  margin: 0;
-  color: #666;
-  min-width: 50px;
+    background: #FFF;
+    outline: 0;
+    width: 29px;
+    float: left;
+    height: 26px;
+    line-height: 24px;
+    border-radius: 4px;
+    border: 1px solid #c3c3c3;
+    padding: 0 0 0 5px;
+    margin: 0;
+    color: #666;
+    min-width: 50px;
 }
+
 .openoPagination_gotoimage {
-  width: 29px;
-  height: 26px;
-  line-height: 26px;
-  background-color: #FFF;
-  background-image: url(/portal/themes/default/components/openo/images/openo.png);
-  padding-left: 21px;
-  float: left;
-  margin-left: 5px;
-  border: 1px solid #e0e0e0;
-  border-radius: 4px;
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  background-position: -184px -181px!important;
+    width: 29px;
+    height: 26px;
+    line-height: 26px;
+    background-color: #FFF;
+    background-image: url(/portal/themes/default/components/openo/images/openo.png);
+    padding-left: 21px;
+    float: left;
+    margin-left: 5px;
+    border: 1px solid #e0e0e0;
+    border-radius: 4px;
+    box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    background-position: -184px -181px !important;
 }
+
 .openo-pagination-theme .ellipse {
-  float: left;
-  margin-left: -8px;
-  margin-right: -4px;
-  background: 0 0;
-  border: none;
-  border-radius: 0;
-  box-shadow: none;
-  font-weight: 700;
-  cursor: default;
+    float: left;
+    margin-left: -8px;
+    margin-right: -4px;
+    background: 0 0;
+    border: none;
+    border-radius: 0;
+    box-shadow: none;
+    font-weight: 700;
+    cursor: default;
 }
+
 .openo.openo-disabled {
-  border-color: #c3c3c3!important;
-  color: #666!important;
-  opacity: .3;
-  filter: alpha(opacity=30);
+    border-color: #c3c3c3 !important;
+    color: #666 !important;
+    opacity: .3;
+    filter: alpha(opacity=30);
 }
+
 .openo-pagination-theme .prev {
-  background: 0 0;
-  float: left;
+    background: 0 0;
+    float: left;
 }
+
 .openo-pagination-theme .current {
-  text-decoration: none!important;
-  float: left;
-  padding-left: 6px;
-  height: 26px;
-  color: #fff;
-  display: inline;
-  /*border-color: #00adf5;
-  background: #4ad2ff;*/
+    text-decoration: none !important;
+    float: left;
+    padding-left: 6px;
+    height: 26px;
+    color: #fff;
+    display: inline;
+    /*border-color: #00adf5;
+    background: #4ad2ff;*/
     border: 1px solid #e0e0e0;
 }
+
 .openo-pagination-theme .next:after {
-  background: url(../images/page_r.png) 50% 45% no-repeat;
+    background: url(../images/page_r.png) 50% 45% no-repeat;
 }
+
 .openoButton_buttonGroupClass div.openoButton_buttonClass_parent, .openoButton_buttonRightImg {
-  margin-left: 5px;
+    margin-left: 5px;
 }
 
 html, body {
-  height: 99%;
-  width: 98%;
+    height: 99%;
+    width: 98%;
 }
+
 .cotentBody {
-  padding: 0px 20px 0px 20px;
+    padding: 0px 20px 0px 20px;
 }
 
 div.openoButton_buttonClass:hover {
-  border: 1px solid #4ac9ff;
+    border: 1px solid #4ac9ff;
 }
+
 div.openoButton_button_default:hover .openoButton_buttonCenterText {
-  color: #009ae7;
+    color: #009ae7;
 }
+
 .header_lineimg {
-  height: 1px;
-  width: 100%;
-  margin-top: 17px;
+    height: 1px;
+    width: 100%;
+    margin-top: 17px;
 }
+
 .openo.openo-hide {
-  display: none;
+    display: none;
 }
+
 div.openo-select-popup-container {
-  position: absolute;
-  border: 1px solid #4ac9ff;
-  border-top: none;
-  border-radius: 0 0 4px 4px;
-  max-height: 202px;
-  overflow-y: auto;
-  background-color: #fff;
-  z-index: 880;
+    position: absolute;
+    border: 1px solid #4ac9ff;
+    border-top: none;
+    border-radius: 0 0 4px 4px;
+    max-height: 202px;
+    overflow-y: auto;
+    background-color: #fff;
+    z-index: 880;
 }
-div.openo-select-popup-container>div.openo-select-item {
-  display: block;
+
+div.openo-select-popup-container > div.openo-select-item {
+    display: block;
 }
+
 .openo .openo-ellipsis, .openo.openo-ellipsis {
-  overflow: hidden;
-  white-space: nowrap;
-  text-overflow: ellipsis;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
 }
-div.openo-select-popup-container>div.openo-select-item>label {
-  padding-top: 3px;
-  padding-bottom: 3px;
-  line-height: 20px;
+
+div.openo-select-popup-container > div.openo-select-item > label {
+    padding-top: 3px;
+    padding-bottom: 3px;
+    line-height: 20px;
 }
+
 .openo .openo-ellipsis, .openo.openo-ellipsis {
-  overflow: hidden;
-  white-space: nowrap;
-  text-overflow: ellipsis;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
 }
+
 .openo-select-item label {
-  margin-left: 4px;
-  margin-right: 4px;
-  white-space: nowrap;
+    margin-left: 4px;
+    margin-right: 4px;
+    white-space: nowrap;
 }
-div.openo-select-popup-container>div.openo-select-item.openo-item-selected, div.openo-select-popup-container>div.openo-select-item:hover {
-  background-color: #f1f1f1;
-  color: #008fd6;
+
+div.openo-select-popup-container > div.openo-select-item.openo-item-selected, div.openo-select-popup-container > div.openo-select-item:hover {
+    background-color: #f1f1f1;
+    color: #008fd6;
 }
+
 div.openo-select.openo-focus {
-  border: 1px solid #4ac9ff;
-  border-bottom-left-radius: 0;
-  border-bottom-right-radius: 0;
-  border-bottom-color: #ddd;
+    border: 1px solid #4ac9ff;
+    border-bottom-left-radius: 0;
+    border-bottom-right-radius: 0;
+    border-bottom-color: #ddd;
 }
+
 .openo-pagination-theme a:hover {
-  border-color: #4ac9ff;
-  cursor: pointer;
+    border-color: #4ac9ff;
+    cursor: pointer;
 }
-.SDBtn{
-     background: #fff; 
-     color: #333; 
-     border: 1px solid #ddd;
+
+.SDBtn {
+    background: #fff;
+    color: #333;
+    border: 1px solid #ddd;
 }
-.SDBtn:hover{
-    color: #009ae7;	
-	border: 1px solid #4AC9FF
+
+.SDBtn:hover {
+    color: #009ae7;
+    border: 1px solid #4AC9FF
 }
+
 table tbody tr.even:hover td, table tbody tr.odd:hover td {
-  background-color: #e6fbe0;
+    background-color: #e6fbe0;
 }
+
 table tr.openoTable_row_selected td {
-  background: #e8f8fe!important;
-  border-bottom: 1px solid #e8e8e8!important;
+    background: #e8f8fe !important;
+    border-bottom: 1px solid #e8e8e8 !important;
 }
-.modal-body{
-    padding: 0!important;
+
+.modal-body {
+    padding: 0 !important;
 }
-.form-control{
-    height: 26px!important;
+
+.form-control {
+    height: 26px !important;
 }
+
 .form-group .control-label {
-  margin-left: 20px;
+    margin-left: 20px;
 }
 
 .form-horizontal .control-label {
-  text-align: left;
+    text-align: left;
 }
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/resmgr.css b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/resmgr.css
index 6163952..e79d125 100644
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/resmgr.css
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/css/resmgr.css
@@ -1,20 +1,24 @@
-fieldset{    width: 680px;    }
+fieldset {
+    width: 680px;
+}
 
-legend{    margin-left: 8px;    }
+legend {
+    margin-left: 8px;
+}
 
-.item{
+.item {
     height: 56px;
     line-height: 36px;
     margin: 10px;
 }
 
-.item .item-label{
+.item .item-label {
     float: left;
     width: 80px;
     text-align: right;
 }
 
-.item-text{
+.item-text {
     float: left;
     width: 244px;
     height: 16px;
@@ -24,7 +28,7 @@
     overflow: hidden;
 }
 
-.item-select{
+.item-select {
     float: left;
     height: 34px;
     border: 1px solid #ccc;
@@ -33,19 +37,19 @@
     padding: 6px 0px;
 }
 
-.item-submit{
+.item-submit {
     margin-left: 88px;
 }
 
-input.error{
+input.error {
     border: 1px solid #E6594E;
 }
 
-input.highlight{
+input.highlight {
     border: 1px solid #7abd54;
 }
 
-label.error,label.tip{
+label.error, label.tip {
     float: left;
     height: 32px;
     line-height: 32px;
@@ -57,12 +61,12 @@
     background: url('error.png') no-repeat left center;
 }
 
-label.tip{
+label.tip {
     color: #aaa;
     background: url('tip.png') no-repeat left center;
 }
 
-label.valid{
+label.valid {
     background: url('valid.png') no-repeat left center;
     width: 32px;
 }
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/datacenter.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/datacenter.html
index cac3a83..451d2f4 100644
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/datacenter.html
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/datacenter.html
@@ -1,339 +1,346 @@
-
 <!DOCTYPE html>
 <html>
 <head>
-<head lang="en">
-<meta charset="UTF-8">
-<title></title>
-<link href="css/bootstrap.min.css" rel="stylesheet" />
-<link href="css/VMMain.css" rel="stylesheet" />
-<link href="css/bootstrap-table.min.css" rel="stylesheet" />
+    <head lang="en">
+        <meta charset="UTF-8">
+        <title></title>
+        <link href="css/bootstrap.min.css" rel="stylesheet"/>
+        <link href="css/VMMain.css" rel="stylesheet"/>
+        <link href="css/bootstrap-table.min.css" rel="stylesheet"/>
 
-<script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
-<script type="text/javascript" src="js/bootstrap.min.js"></script>
-<script type="text/javascript" src="js/bootstrap-table.min.js"></script>
-<script type="text/javascript" src="js/bootbox.min.js"></script>
-<script type="text/javascript" src="js/jquery.validate.min.js"></script>
+        <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
+        <script type="text/javascript" src="js/bootstrap.min.js"></script>
+        <script type="text/javascript" src="js/bootstrap-table.min.js"></script>
+        <script type="text/javascript" src="js/bootbox.min.js"></script>
+        <script type="text/javascript" src="js/jquery.validate.min.js"></script>
 
-<script type="text/javascript" src="js/datacenter.js"></script>
+        <script type="text/javascript" src="js/datacenter.js"></script>
 
-<style type="text/css">
-</style>
-<script type="text/javascript">
-	$(document).ready(function() {
-		/* var jsondata = [{
-			"id": "123",
-			"name": "China",
-			"status": "active",
-			"country": "China",
-           "location": "Xi'an",
-           "serviceName": "Cloud serviceName",
-			"cpu": "23/106",
-			"memory": "18000/1922222222",
-			"hardDisk":"2188/39999999"
-          }];
+        <style type="text/css">
+        </style>
+        <script type="text/javascript">
+            $(document).ready(function () {
+                /* var jsondata = [{
+                 "id": "123",
+                 "name": "China",
+                 "status": "active",
+                 "country": "China",
+                 "location": "Xi'an",
+                 "serviceName": "Cloud serviceName",
+                 "cpu": "23/106",
+                 "memory": "18000/1922222222",
+                 "hardDisk":"2188/39999999"
+                 }];
 
-		$('#Datacenter_table').bootstrapTable({
-		//Assigning example data to table
-			data: jsondata
-		}); */
-		
-		loadDatacenterData();
-		loadNetWorkData();
-		loadPortData();
-		loadHostData();
-		fillCountryData();
-		fillVimNameData();
-	});
+                 $('#Datacenter_table').bootstrapTable({
+                 //Assigning example data to table
+                 data: jsondata
+                 }); */
 
-	function operateFormatter(value, row, index) {
-		return [ '<img class="DatacenterDeleteImg" src="images/delete.png" href="javascript:void(0)" style="cursor: pointer" name="title" title="Delete" />' ]
-				.join('');
+                loadDatacenterData();
+                loadNetWorkData();
+                loadPortData();
+                loadHostData();
+                fillCountryData();
+                fillVimNameData();
+            });
 
-	}
-	window.operateEvents = {
-		'click .DatacenterDeleteImg' : function(e, value, row, index) {
-			deleteDatacenter(row.id);
-			console.log(value, row, index);
-		}
-	};
-	
-	
-</script>
-</head>
+            function operateFormatter(value, row, index) {
+                return ['<img class="DatacenterDeleteImg" src="images/delete.png" href="javascript:void(0)" style="cursor: pointer" name="title" title="Delete" />']
+                        .join('');
+
+            }
+            window.operateEvents = {
+                'click .DatacenterDeleteImg': function (e, value, row, index) {
+                    deleteDatacenter(row.id);
+                    console.log(value, row, index);
+                }
+            };
+
+
+        </script>
+    </head>
 <body id="open_base_site_cotentBody" class="cotentBody ng-scope">
-	
-	<ul class="nav nav-tabs" id="dcTab"> 
-      <li class="active"><a href="#compute">Compute</a></li> 
-      <li><a href="#network">Network</a></li> 
-      <li><a href="#port">Port</a></li> 
-      <li><a href="#host">Host</a></li> 
-    </ul> 
-       
-    <script> 
-      $(function () { 
-        $('#dcTab a:first').tab('show');//show init tab 
-      
-        $('#dcTab a').click(function (e) { 
-          e.preventDefault();//prevent the  link
-          $(this).tab('show');//show content
-        }) 
-      }) 
-    </script>
-<div class="tab-content"> 
 
-	<div id="host" class="tab-pane">
-	<!--  host table area -->
-	<hr>
-			<div class="row-fluid" data-name="table_zone">
-				<div id='host_table_div'>
-					<div>
-						<div class="top">
-							<table id="host_table" data-pagination="true" data-page-size="5"
-								data-pagination-first-text="First"
-								data-pagination-pre-text="Previous"
-								data-pagination-next-text="Next" data-pagination-last-text="Last">
-								<thead>
-									<tr class="active">
-										<th data-field="id" data-sortable="true">Id</th>
-										<th data-field="name" data-sortable="true">Name</th>
-										<th data-field="cpu" data-sortable="true">Cpu</th>
-										<th data-field="memory" data-sortable="true">Memory</th>
-										<th data-field="disk" data-sortable="true">HardDisk</th>
-									</tr>
-								</thead>
-							</table>
-						</div>
-					</div>
-				</div>
-			</div>
-	</div>
-	
-	<div id="port" class="tab-pane">
-	<hr>
-	<!--  port table area -->
-			<div class="row-fluid" data-name="table_zone">
-				<div id='port_table_div'>
-					<div>
-						<div class="top">
-							<table id="port_table" data-pagination="true" data-page-size="5"
-								data-pagination-first-text="First"
-								data-pagination-pre-text="Previous"
-								data-pagination-next-text="Next" data-pagination-last-text="Last">
-								<thead>
-									<tr class="active">
-										<th data-field="id" data-sortable="true">Id</th>
-										<th data-field="name" data-sortable="true">Name</th>
-										<th data-field="networkId" data-sortable="true">NetworkID</th>
-										<th data-field="status" data-sortable="true">Status</th>
-									</tr>
-								</thead>
-							</table>
-						</div>
-					</div>
-				</div>
-			</div>
-	</div>
-	
-	<div id="network" class="tab-pane">
-	<hr>
-		<!--  network table area -->
-			<div class="row-fluid" data-name="table_zone">
-				<div id='network_table_div'>
-					<div>
-						<div class="top">
-							<table id="network_table" data-pagination="true" data-page-size="5"
-								data-pagination-first-text="First"
-								data-pagination-pre-text="Previous"
-								data-pagination-next-text="Next" data-pagination-last-text="Last">
-								<thead>
-									<tr class="active">
-										<th data-field="id" data-sortable="true">Id</th>
-										<th data-field="name" data-sortable="true">Name</th>
-										<th data-field="id" data-sortable="true">NetworkID</th>
-										<th data-field="provider:segmentation_id" data-sortable="true">VLanID</th>
-										<th data-field="provider:physical_network" data-sortable="true">physicalNet</th>
-										<th data-field="provider:network_type" data-sortable="true">type</th>
-										<th data-field="vimName" data-sortable="true">ServiceName</th>
-										<th data-field="status" data-sortable="true">status</th>
-									</tr>
-								</thead>
-							</table>
-						</div>
-					</div>
-				</div>
-			</div>
-	</div>
-	<div id="compute" class="tab-pane active" >  
-		<div class="container-fluid ms-controller">
-	<!-- button area -->
-			<div class="uploadBtn">
-				<div id="open_base_tpL_userHeader" class="userHeader">
-					<div id="open_base_tpL_buttonGroup"
-						class="openoButton_buttonGroupClass">
-						<div
-							class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass defaultbutton openoButton_button_default"
-							tabindex="0" id="false" text="res.brApp_ui_res_btn_create"
-							icon-url="./images/add.png" cls="defaultbutton" click="clickAdd"
-							style="display: inline-block; padding-left: 0px; padding-right: 0px;">
-							<div
-								class="openoButton_buttonInnerClass openo-corner-all openoButton_Image"
-								id="false_button">
+<ul class="nav nav-tabs" id="dcTab">
+    <li class="active"><a href="#compute">Compute</a></li>
+    <li><a href="#network">Network</a></li>
+    <li><a href="#port">Port</a></li>
+    <li><a href="#host">Host</a></li>
+</ul>
+
+<script>
+    $(function () {
+        $('#dcTab a:first').tab('show');//show init tab 
+
+        $('#dcTab a').click(function (e) {
+            e.preventDefault();//prevent the  link
+            $(this).tab('show');//show content
+        })
+    })
+</script>
+<div class="tab-content">
+
+    <div id="host" class="tab-pane">
+        <!--  host table area -->
+        <hr>
+        <div class="row-fluid" data-name="table_zone">
+            <div id='host_table_div'>
+                <div>
+                    <div class="top">
+                        <table id="host_table" data-pagination="true" data-page-size="5"
+                               data-pagination-first-text="First"
+                               data-pagination-pre-text="Previous"
+                               data-pagination-next-text="Next" data-pagination-last-text="Last">
+                            <thead>
+                            <tr class="active">
+                                <th data-field="id" data-sortable="true">Id</th>
+                                <th data-field="name" data-sortable="true">Name</th>
+                                <th data-field="cpu" data-sortable="true">Cpu</th>
+                                <th data-field="memory" data-sortable="true">Memory</th>
+                                <th data-field="disk" data-sortable="true">HardDisk</th>
+                            </tr>
+                            </thead>
+                        </table>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <div id="port" class="tab-pane">
+        <hr>
+        <!--  port table area -->
+        <div class="row-fluid" data-name="table_zone">
+            <div id='port_table_div'>
+                <div>
+                    <div class="top">
+                        <table id="port_table" data-pagination="true" data-page-size="5"
+                               data-pagination-first-text="First"
+                               data-pagination-pre-text="Previous"
+                               data-pagination-next-text="Next" data-pagination-last-text="Last">
+                            <thead>
+                            <tr class="active">
+                                <th data-field="id" data-sortable="true">Id</th>
+                                <th data-field="name" data-sortable="true">Name</th>
+                                <th data-field="networkId" data-sortable="true">NetworkID</th>
+                                <th data-field="status" data-sortable="true">Status</th>
+                            </tr>
+                            </thead>
+                        </table>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <div id="network" class="tab-pane">
+        <hr>
+        <!--  network table area -->
+        <div class="row-fluid" data-name="table_zone">
+            <div id='network_table_div'>
+                <div>
+                    <div class="top">
+                        <table id="network_table" data-pagination="true" data-page-size="5"
+                               data-pagination-first-text="First"
+                               data-pagination-pre-text="Previous"
+                               data-pagination-next-text="Next" data-pagination-last-text="Last">
+                            <thead>
+                            <tr class="active">
+                                <th data-field="id" data-sortable="true">Id</th>
+                                <th data-field="name" data-sortable="true">Name</th>
+                                <th data-field="id" data-sortable="true">NetworkID</th>
+                                <th data-field="provider:segmentation_id" data-sortable="true">VLanID</th>
+                                <th data-field="provider:physical_network" data-sortable="true">physicalNet</th>
+                                <th data-field="provider:network_type" data-sortable="true">type</th>
+                                <th data-field="vimName" data-sortable="true">ServiceName</th>
+                                <th data-field="status" data-sortable="true">status</th>
+                            </tr>
+                            </thead>
+                        </table>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div id="compute" class="tab-pane active">
+        <div class="container-fluid ms-controller">
+            <!-- button area -->
+            <div class="uploadBtn">
+                <div id="open_base_tpL_userHeader" class="userHeader">
+                    <div id="open_base_tpL_buttonGroup"
+                         class="openoButton_buttonGroupClass">
+                        <div
+                                class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass defaultbutton openoButton_button_default"
+                                tabindex="0" id="false" text="res.brApp_ui_res_btn_create"
+                                icon-url="./images/add.png" cls="defaultbutton" click="clickAdd"
+                                style="display: inline-block; padding-left: 0px; padding-right: 0px;">
+                            <div
+                                    class="openoButton_buttonInnerClass openo-corner-all openoButton_Image"
+                                    id="false_button">
 								<span class="openo-widget-button-image openoButton_buttonLeftImg"
-									style="background-image: url(images/add.png);"></span><span
-									class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Create Datacenter</span><span
-									class="openo-widget-button-image openoButton_buttonImgDefault"></span>
-							</div>
-						</div>
-	
-	
-						<div
-							class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass undefined openoButton_button_default"
-							tabindex="0" id="meEdit" text="res.brApp_ui_res_btn_edit"
-							display="false" style="display: none;">
-							<div class="openoButton_buttonInnerClass openo-corner-all"
-								id="meEdit_button">
+                                      style="background-image: url(images/add.png);"></span><span
+                                    class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Create Datacenter</span><span
+                                    class="openo-widget-button-image openoButton_buttonImgDefault"></span>
+                            </div>
+                        </div>
+
+
+                        <div
+                                class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass undefined openoButton_button_default"
+                                tabindex="0" id="meEdit" text="res.brApp_ui_res_btn_edit"
+                                display="false" style="display: none;">
+                            <div class="openoButton_buttonInnerClass openo-corner-all"
+                                 id="meEdit_button">
 								<span
-									class="openo-widget-button-image openoButton_buttonImgDefault"></span><span
-									class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Edit</span><span
-									class="openo-widget-button-image openoButton_buttonImgDefault"></span>
-							</div>
-						</div>
-	
-					</div>
-				</div>
-			</div>
-			<!--  compute table area -->
-			<div class="row-fluid" data-name="table_zone">
-				<div id='ict_virtualApplication_table_div'>
-					<div>
-						<div class="top">
-							<table id="Datacenter_table" data-pagination="true" data-page-size="5"
-								data-pagination-first-text="First"
-								data-pagination-pre-text="Previous"
-								data-pagination-next-text="Next" data-pagination-last-text="Last">
-								<thead>
-									<tr class="active">
-										<th data-field="id" data-sortable="true">Id</th>
-										<th data-field="name" data-sortable="true">Name</th>
-										<th data-field="status" data-sortable="true">Status</th>
-										<th data-field="country" data-sortable="true">Country</th>
-										<th data-field="location" data-sortable="true">Location</th>
-										<th data-field="vimName" data-sortable="true">ServiceName</th>
-										<th data-field="cpu" data-sortable="true">Cpu(Cores)</th>
-										<th data-field="memory" data-sortable="true">Memory(MB)</th>
-										<th data-field="hardDisk" data-sortable="true">HardDisk(GB)</th>
-										<th align="center" data-formatter="operateFormatter"
-											data-events="operateEvents">Action</th>
-									</tr>
-								</thead>
-							</table>
-						</div>
-					</div>
-				</div>
-			</div>
-			<!-- modal dialog area -->
-			<div id="vmAppDialog" class="modal fade" tabindex="-1" role="dialog"
-				aria-labelledby="myModalLabel" aria-hidden="false">
-				<div class="modal-dialog">
-					<div class="modal-content">
-						<div class="content">
-							<div class="modal-header">
-								<button type="button" class="close" data-dismiss="modal"
-									aria-hidden="true">×</button>
-								<h4 class="modal-title" id="myModalLabel">
-									<span>Create Datacenter</span>
-								</h4>
-							</div>
-							<form class="form-horizontal" role="form" id="vmAppForm">
-								<div id="wizard">
-									<div class="modal-body">
-										<ul class="nav nav-pills nav-justified vmapp-margin">
-										</ul>
-										<div class="tab-content">
-											<div class="tab-pane active" id="basicTab">
-												<div class="form-group" style="display:none;">
-													<label class="col-sm-3 control-label"> <span>Id</span>
-													</label>
-													<div class="col-sm-7">
-														<input type="text" id="id" name="id"
-															class="form-control" placeholder="id" />
-													</div>
-												</div>
-												<div class="form-group">
-													<label class="col-sm-3 control-label"> <span>Name</span>
-														<span class="required">*</span>
-													</label>
-													<div class="col-sm-7">
-														<input type="text" id="name" name="name"
-															class="form-control" placeholder="Name" />
-													</div>
-												</div>
-												<div class="form-group">
-													<label class="col-sm-3 control-label"> <span>Country</span>
-														<span class="required">*</span>
-													</label>
-													<div class="col-sm-7">
-														<select class="form-control" style ="padding-top: 0px;padding-bottom: 0px;" id="country" name="country">
-															<option value="">--select--</option>
-														</select>
-													</div>
-												</div>
-												<div class="form-group">
-													<label class="col-sm-3 control-label"> <span>Location</span>
-														<span class="required">*</span>
-													</label>
-													<div class="col-sm-7">
-														<select class="form-control" style ="padding-top: 0px;padding-bottom: 0px;" id="location" name="location">
-															<option value="">--select--</option>
-														</select>
-													</div>
-												</div>
-												<div class="form-group">
-													<label class="col-sm-3 control-label"> <span>ServiceName</span>
-														<span class="required">*</span>
-													</label>
-													<div class="col-sm-7">
-														<select class="form-control" style ="padding-top: 0px;padding-bottom: 0px;" id="vimName" name="vimName">
-															<option value="">--select--</option>
-														</select>
-													</div>
-												</div>
-											
-												<div class="form-group">
-													<label class="col-sm-3 control-label"> 
-													<span>Avaliable Res:</span>
-														CPU(Cores):<br>
-														Memory:<br>
-														HardDisk:
-													</label>
-													<div class="col-sm-7">
-														
-													</div>
-												</div>
-											</div>
-	
-	
-										</div>
-									</div>
-									<div class="modal-footer">
-										<button type="button" class="btn SDBtn" data-dismiss="modal"
-											aria-hidden="true" id="createDatacenter">
-											<span id="nfv-virtualApplication-iui-text-cancelBtn">OK</span>
-										</button>
-										<button type="button" class="btn button-previous SDBtn">
-											<span id="nfv-virtualApplication-iui-text-previousBtn">Cancel</span>
-										</button>
-	
-									</div>
-								</div>
-							</form>
-						</div>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
+                                        class="openo-widget-button-image openoButton_buttonImgDefault"></span><span
+                                    class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Edit</span><span
+                                    class="openo-widget-button-image openoButton_buttonImgDefault"></span>
+                            </div>
+                        </div>
+
+                    </div>
+                </div>
+            </div>
+            <!--  compute table area -->
+            <div class="row-fluid" data-name="table_zone">
+                <div id='ict_virtualApplication_table_div'>
+                    <div>
+                        <div class="top">
+                            <table id="Datacenter_table" data-pagination="true" data-page-size="5"
+                                   data-pagination-first-text="First"
+                                   data-pagination-pre-text="Previous"
+                                   data-pagination-next-text="Next" data-pagination-last-text="Last">
+                                <thead>
+                                <tr class="active">
+                                    <th data-field="id" data-sortable="true">Id</th>
+                                    <th data-field="name" data-sortable="true">Name</th>
+                                    <th data-field="status" data-sortable="true">Status</th>
+                                    <th data-field="country" data-sortable="true">Country</th>
+                                    <th data-field="location" data-sortable="true">Location</th>
+                                    <th data-field="vimName" data-sortable="true">ServiceName</th>
+                                    <th data-field="cpu" data-sortable="true">Cpu(Cores)</th>
+                                    <th data-field="memory" data-sortable="true">Memory(MB)</th>
+                                    <th data-field="hardDisk" data-sortable="true">HardDisk(GB)</th>
+                                    <th align="center" data-formatter="operateFormatter"
+                                        data-events="operateEvents">Action
+                                    </th>
+                                </tr>
+                                </thead>
+                            </table>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <!-- modal dialog area -->
+            <div id="vmAppDialog" class="modal fade" tabindex="-1" role="dialog"
+                 aria-labelledby="myModalLabel" aria-hidden="false">
+                <div class="modal-dialog">
+                    <div class="modal-content">
+                        <div class="content">
+                            <div class="modal-header">
+                                <button type="button" class="close" data-dismiss="modal"
+                                        aria-hidden="true">×
+                                </button>
+                                <h4 class="modal-title" id="myModalLabel">
+                                    <span>Create Datacenter</span>
+                                </h4>
+                            </div>
+                            <form class="form-horizontal" role="form" id="vmAppForm">
+                                <div id="wizard">
+                                    <div class="modal-body">
+                                        <ul class="nav nav-pills nav-justified vmapp-margin">
+                                        </ul>
+                                        <div class="tab-content">
+                                            <div class="tab-pane active" id="basicTab">
+                                                <div class="form-group" style="display:none;">
+                                                    <label class="col-sm-3 control-label"> <span>Id</span>
+                                                    </label>
+                                                    <div class="col-sm-7">
+                                                        <input type="text" id="id" name="id"
+                                                               class="form-control" placeholder="id"/>
+                                                    </div>
+                                                </div>
+                                                <div class="form-group">
+                                                    <label class="col-sm-3 control-label"> <span>Name</span>
+                                                        <span class="required">*</span>
+                                                    </label>
+                                                    <div class="col-sm-7">
+                                                        <input type="text" id="name" name="name"
+                                                               class="form-control" placeholder="Name"/>
+                                                    </div>
+                                                </div>
+                                                <div class="form-group">
+                                                    <label class="col-sm-3 control-label"> <span>Country</span>
+                                                        <span class="required">*</span>
+                                                    </label>
+                                                    <div class="col-sm-7">
+                                                        <select class="form-control"
+                                                                style="padding-top: 0px;padding-bottom: 0px;"
+                                                                id="country" name="country">
+                                                            <option value="">--select--</option>
+                                                        </select>
+                                                    </div>
+                                                </div>
+                                                <div class="form-group">
+                                                    <label class="col-sm-3 control-label"> <span>Location</span>
+                                                        <span class="required">*</span>
+                                                    </label>
+                                                    <div class="col-sm-7">
+                                                        <select class="form-control"
+                                                                style="padding-top: 0px;padding-bottom: 0px;"
+                                                                id="location" name="location">
+                                                            <option value="">--select--</option>
+                                                        </select>
+                                                    </div>
+                                                </div>
+                                                <div class="form-group">
+                                                    <label class="col-sm-3 control-label"> <span>ServiceName</span>
+                                                        <span class="required">*</span>
+                                                    </label>
+                                                    <div class="col-sm-7">
+                                                        <select class="form-control"
+                                                                style="padding-top: 0px;padding-bottom: 0px;"
+                                                                id="vimName" name="vimName">
+                                                            <option value="">--select--</option>
+                                                        </select>
+                                                    </div>
+                                                </div>
+
+                                                <div class="form-group">
+                                                    <label class="col-sm-3 control-label">
+                                                        <span>Avaliable Res:</span>
+                                                        CPU(Cores):<br>
+                                                        Memory:<br>
+                                                        HardDisk:
+                                                    </label>
+                                                    <div class="col-sm-7">
+
+                                                    </div>
+                                                </div>
+                                            </div>
+
+
+                                        </div>
+                                    </div>
+                                    <div class="modal-footer">
+                                        <button type="button" class="btn SDBtn" data-dismiss="modal"
+                                                aria-hidden="true" id="createDatacenter">
+                                            <span id="nfv-virtualApplication-iui-text-cancelBtn">OK</span>
+                                        </button>
+                                        <button type="button" class="btn button-previous SDBtn">
+                                            <span id="nfv-virtualApplication-iui-text-previousBtn">Cancel</span>
+                                        </button>
+
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
 </div>
 </body>
 </html>
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/html/index.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/html/index.html
index c4009b7..300a447 100644
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/html/index.html
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/html/index.html
@@ -18,14 +18,14 @@
 <html>
 
 <head>
-<title>Test</title>
-<script src="/component/thirdparty/jquery/jquery-3.1.0.min.js" type="text/javascript"></script>
-<script src="/resmgr/js/SendMsg.js" type="text/javascript"></script>
+    <title>Test</title>
+    <script src="/component/thirdparty/jquery/jquery-3.1.0.min.js" type="text/javascript"></script>
+    <script src="/resmgr/js/SendMsg.js" type="text/javascript"></script>
 </head>
 
 <body>Loading...
 <script type="text/javascript">
-	window.location.href = "resmgr/resource.html"
+    window.location.href = "resmgr/resource.html"
 </script>
 </body>
 
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/SendMsg.js b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/SendMsg.js
index b898d6a..e42c033 100644
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/SendMsg.js
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/SendMsg.js
@@ -1,20 +1,20 @@
 var sendMsg = {
-	get : "get",
-	post : "post"
+    get: "get",
+    post: "post"
 }
 
 function request(url, requestType, data, success, error, async) {
-	var setting = {
-		url : url,
-		async : async ? async : false,
-		type : requestType,
-		dataType : "json",
-		contentType : 'application/json;charset=UTF-8',
-		data : data,
-		success : success,
-		error : error
-	}
+    var setting = {
+        url: url,
+        async: async ? async : false,
+        type: requestType,
+        dataType: "json",
+        contentType: 'application/json;charset=UTF-8',
+        data: data,
+        success: success,
+        error: error
+    }
 
-	$.ajax(setting);
+    $.ajax(setting);
 
 }
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/datacenter.js b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/datacenter.js
index 44b464e..e3ff681 100644
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/datacenter.js
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/datacenter.js
@@ -1,247 +1,246 @@
-function hideFirstCol(){
+function hideFirstCol() {
 //	$('table tr').find('th:eq(0)').hide();
 //	$('table tr').find('td:eq(0)').hide();
 }
 
 function deleteDatacenter(objectId) {
-	var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/datacenters/"+ objectId;
-	$.ajax({
-		type : "DELETE",
-		url : requestUrl,
-		contentType : "application/json",
-		success : function(jsonobj) {
-			$('#Datacenter_table').bootstrapTable('remove', {
-				field : 'id',
-				values : [ objectId ]
-			});
-			bootbox.alert("Delete  successfull !!!");
-		},
-		error : function(xhr, ajaxOptions, thrownError) {
-			bootbox.alert("Error on deleting data: " + xhr.responseText);
-		}
-	});
+    var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/datacenters/" + objectId;
+    $.ajax({
+        type: "DELETE",
+        url: requestUrl,
+        contentType: "application/json",
+        success: function (jsonobj) {
+            $('#Datacenter_table').bootstrapTable('remove', {
+                field: 'id',
+                values: [objectId]
+            });
+            bootbox.alert("Delete  successfull !!!");
+        },
+        error: function (xhr, ajaxOptions, thrownError) {
+            bootbox.alert("Error on deleting data: " + xhr.responseText);
+        }
+    });
 }
 
 function loadDatacenterData() {
-	var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/datacenters";
-	$.ajax({
-		type : "GET",
-		url : requestUrl,
-		contentType : "application/json",
-		success : function(jsonobj) {
-			$.each(jsonobj.datacenters,function(n,v){
-                v.cpu= "used:"+v.usedCPU+"<br>total:"+v.totalCPU;
-                v.memory="used:"+v.usedMemory+"<br>total:"+v.totalMemory;
-                v.hardDisk="used:"+v.usedDisk+"<br>total:"+v.totalDisk;
+    var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/datacenters";
+    $.ajax({
+        type: "GET",
+        url: requestUrl,
+        contentType: "application/json",
+        success: function (jsonobj) {
+            $.each(jsonobj.datacenters, function (n, v) {
+                v.cpu = "used:" + v.usedCPU + "<br>total:" + v.totalCPU;
+                v.memory = "used:" + v.usedMemory + "<br>total:" + v.totalMemory;
+                v.hardDisk = "used:" + v.usedDisk + "<br>total:" + v.totalDisk;
             });
-			$('#Datacenter_table').bootstrapTable({
-				data : jsonobj.datacenters
-			});
-			$('#Datacenter_table').bootstrapTable('refresh');
-			hideFirstCol();
-		},
-		error : function(xhr, ajaxOptions, thrownError) {
-			bootbox.alert("Error on getting site data : " + xhr.responseText);
-		}
-	});
+            $('#Datacenter_table').bootstrapTable({
+                data: jsonobj.datacenters
+            });
+            $('#Datacenter_table').bootstrapTable('refresh');
+            hideFirstCol();
+        },
+        error: function (xhr, ajaxOptions, thrownError) {
+            bootbox.alert("Error on getting site data : " + xhr.responseText);
+        }
+    });
 }
 function loadNetWorkData() {
-	var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/networks";
-	$.ajax({
-		type : "GET",
-		url : requestUrl,
-		contentType : "application/json",
-		success : function(jsonobj) {
-			$('#network_table').bootstrapTable({
-				data : jsonobj.networks
-			});
-		},
-		error : function(xhr, ajaxOptions, thrownError) {
-			bootbox.alert("Error on getting site data : " + xhr.responseText);
-		}
-	});
+    var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/networks";
+    $.ajax({
+        type: "GET",
+        url: requestUrl,
+        contentType: "application/json",
+        success: function (jsonobj) {
+            $('#network_table').bootstrapTable({
+                data: jsonobj.networks
+            });
+        },
+        error: function (xhr, ajaxOptions, thrownError) {
+            bootbox.alert("Error on getting site data : " + xhr.responseText);
+        }
+    });
 }
 function loadPortData() {
-	var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/ports";
-	$.ajax({
-		type : "GET",
-		url : requestUrl,
-		contentType : "application/json",
-		success : function(jsonobj) {
-			$('#port_table').bootstrapTable({
-				data : jsonobj.ports
-			});
-		},
-		error : function(xhr, ajaxOptions, thrownError) {
-			bootbox.alert("Error on getting site data : " + xhr.responseText);
-		}
-	});
+    var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/ports";
+    $.ajax({
+        type: "GET",
+        url: requestUrl,
+        contentType: "application/json",
+        success: function (jsonobj) {
+            $('#port_table').bootstrapTable({
+                data: jsonobj.ports
+            });
+        },
+        error: function (xhr, ajaxOptions, thrownError) {
+            bootbox.alert("Error on getting site data : " + xhr.responseText);
+        }
+    });
 }
 function loadHostData() {
-	var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/hosts";
-	$.ajax({
-		type : "GET",
-		url : requestUrl,
-		contentType : "application/json",
-		success : function(jsonobj) {
-			$('#host_table').bootstrapTable({
-				data : jsonobj.hosts
-			});
-		},
-		error : function(xhr, ajaxOptions, thrownError) {
-			bootbox.alert("Error on getting site data : " + xhr.responseText);
-		}
-	});
+    var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/hosts";
+    $.ajax({
+        type: "GET",
+        url: requestUrl,
+        contentType: "application/json",
+        success: function (jsonobj) {
+            $('#host_table').bootstrapTable({
+                data: jsonobj.hosts
+            });
+        },
+        error: function (xhr, ajaxOptions, thrownError) {
+            bootbox.alert("Error on getting site data : " + xhr.responseText);
+        }
+    });
 }
 
 
 function fillCountryData() {
-	
-	var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/locations/country";
-	var htmlContent = "";
-	$.ajax({
-		type : "GET",
-		url : requestUrl,
-		contentType : "application/json",
-		success : function(jsonobj) {
-			var str = jsonobj.data.replace('[','').replace(']','').split(',')
-			$.each(str,function(n,v){
-				htmlContent += "<option value='"+v+"'>"+v+"</option>";
-		        $("#country").html(htmlContent);
-                
-			 });
-		},
-		error : function(xhr, ajaxOptions, thrownError) {
-			bootbox.alert("Error on getting country data : " + xhr.responseText);
-		}
-	});
+
+    var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/locations/country";
+    var htmlContent = "";
+    $.ajax({
+        type: "GET",
+        url: requestUrl,
+        contentType: "application/json",
+        success: function (jsonobj) {
+            var str = jsonobj.data.replace('[', '').replace(']', '').split(',')
+            $.each(str, function (n, v) {
+                htmlContent += "<option value='" + v + "'>" + v + "</option>";
+                $("#country").html(htmlContent);
+
+            });
+        },
+        error: function (xhr, ajaxOptions, thrownError) {
+            bootbox.alert("Error on getting country data : " + xhr.responseText);
+        }
+    });
 }
 
 function fillVimNameData() {
-	
-	var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/locations/cloudservice";
-	var htmlContent = "";
-	$.ajax({
-		type : "GET",
-		url : requestUrl,
-		contentType : "application/json",
-		success : function(jsonobj) {
-			var str = jsonobj.data.replace('[','').replace(']','').split(',')
-			$.each(str,function(n,v){
-				htmlContent += "<option value='"+v+"'>"+v+"</option>";
-		        $("#vimName").html(htmlContent);
-                
+
+    var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/locations/cloudservice";
+    var htmlContent = "";
+    $.ajax({
+        type: "GET",
+        url: requestUrl,
+        contentType: "application/json",
+        success: function (jsonobj) {
+            var str = jsonobj.data.replace('[', '').replace(']', '').split(',')
+            $.each(str, function (n, v) {
+                htmlContent += "<option value='" + v + "'>" + v + "</option>";
+                $("#vimName").html(htmlContent);
+
             });
-		},
-		error : function(xhr, ajaxOptions, thrownError) {
-			bootbox.alert("Error on getting country data : " + xhr.responseText);
-		}
-	});
+        },
+        error: function (xhr, ajaxOptions, thrownError) {
+            bootbox.alert("Error on getting country data : " + xhr.responseText);
+        }
+    });
 }
 
 
-$(function() {
-	 $("#vmAppForm").validate({
-	        rules: {
-	   country: "required",
-	   location: "required",
-	   lantitude: "required",
-	   longitude: "required"
-		   }
-	    });
-	 
-	$('.close,.button-previous').click(function() {
-		$('#vmAppDialog').removeClass('in').css('display', 'none');
-	});
-	$('.detail-top ul li').click(function() {
-		$(this).addClass('current').siblings().removeClass('current');
-	});
-	$('.basic').click(function() {
-		$('#flavorTab').css('display', 'none');
-	});
+$(function () {
+    $("#vmAppForm").validate({
+        rules: {
+            country: "required",
+            location: "required",
+            lantitude: "required",
+            longitude: "required"
+        }
+    });
 
-	$('.table tbody tr').click(
-			function() {
-				$(this).addClass('openoTable_row_selected').siblings()
-						.removeClass('openoTable_row_selected');
-			});
-	$('.table tr:odd').addClass('active');
-	$('#false').click(function() {
-		$('#vmAppForm')[0].reset();
-		$('#vmAppDialog').addClass('in').css({
-			'display' : 'block'
-		});
-	});
-	$('.close,.button-previous').click(function() {
-		$('#vmAppDialog').removeClass('in').css('display', 'none');
-	});
-	
-	$.fn.serializeObject = function() {
-		var o = {};
-		var a = this.serializeArray();
-		$.each(a, function() {
-			if (o[this.name] !== undefined) {
-				if (!o[this.name].push) {
-					o[this.name] = [ o[this.name] ];
-				}
-				o[this.name].push(this.value || '');
-			} else {
-				o[this.name] = this.value || '';
-			}
-		});
-		return o;
-	};
-	$('#createDatacenter')
-			.click(
-					function() {
-						
-						
-						var formData = JSON.stringify($("#vmAppForm").serializeObject());
-						var jsonobj = JSON.parse(formData);
-						var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/datacenters";
-						$.ajax({
-							type : "POST",
-							url : requestUrl,
-							contentType : "application/json",
-							dataType : "json",
-							data : formData,
-							success : function(jsonResp) {
-								loadDatacenterData();
-								bootbox.alert(jsonResp.msg);
-								$('#vmAppDialog').removeClass('in').css({
-									'display' : 'none'
-								});
-							},
-							error : function(xhr, ajaxOptions, thrownError) {
-								bootbox.alert("Error on page : " + xhr.responseText);
-							}
-						});
-					});
+    $('.close,.button-previous').click(function () {
+        $('#vmAppDialog').removeClass('in').css('display', 'none');
+    });
+    $('.detail-top ul li').click(function () {
+        $(this).addClass('current').siblings().removeClass('current');
+    });
+    $('.basic').click(function () {
+        $('#flavorTab').css('display', 'none');
+    });
 
-	$('#country').change(function(){ 
-		var country = $(this).children('option:selected').val(); 
-		var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/locations/locationbycountry?country="+country;
-		
-		var htmlContent = "<option value=''>--select--</option>";
-		$.ajax({
-			type : "GET",
-			url : requestUrl,
-			contentType : "application/json",
-			success : function(jsonobj) {
-					$.each(jsonobj.data,function(n,v){
-						htmlContent += "<option value='"+v+"'>"+v+"</option>";
-				        $("#location").html(htmlContent);
-		                
-		            });
-				
-			},
-			error : function(xhr, ajaxOptions, thrownError) {
-				bootbox.alert("Error on getting location data : " + xhr.responseText);
-			}
-		});
-		
-	}) 
-	
-	
+    $('.table tbody tr').click(
+        function () {
+            $(this).addClass('openoTable_row_selected').siblings()
+                .removeClass('openoTable_row_selected');
+        });
+    $('.table tr:odd').addClass('active');
+    $('#false').click(function () {
+        $('#vmAppForm')[0].reset();
+        $('#vmAppDialog').addClass('in').css({
+            'display': 'block'
+        });
+    });
+    $('.close,.button-previous').click(function () {
+        $('#vmAppDialog').removeClass('in').css('display', 'none');
+    });
+
+    $.fn.serializeObject = function () {
+        var o = {};
+        var a = this.serializeArray();
+        $.each(a, function () {
+            if (o[this.name] !== undefined) {
+                if (!o[this.name].push) {
+                    o[this.name] = [o[this.name]];
+                }
+                o[this.name].push(this.value || '');
+            } else {
+                o[this.name] = this.value || '';
+            }
+        });
+        return o;
+    };
+    $('#createDatacenter')
+        .click(
+            function () {
+
+
+                var formData = JSON.stringify($("#vmAppForm").serializeObject());
+                var jsonobj = JSON.parse(formData);
+                var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/datacenters";
+                $.ajax({
+                    type: "POST",
+                    url: requestUrl,
+                    contentType: "application/json",
+                    dataType: "json",
+                    data: formData,
+                    success: function (jsonResp) {
+                        loadDatacenterData();
+                        bootbox.alert(jsonResp.msg);
+                        $('#vmAppDialog').removeClass('in').css({
+                            'display': 'none'
+                        });
+                    },
+                    error: function (xhr, ajaxOptions, thrownError) {
+                        bootbox.alert("Error on page : " + xhr.responseText);
+                    }
+                });
+            });
+
+    $('#country').change(function () {
+        var country = $(this).children('option:selected').val();
+        var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/locations/locationbycountry?country=" + country;
+
+        var htmlContent = "<option value=''>--select--</option>";
+        $.ajax({
+            type: "GET",
+            url: requestUrl,
+            contentType: "application/json",
+            success: function (jsonobj) {
+                $.each(jsonobj.data, function (n, v) {
+                    htmlContent += "<option value='" + v + "'>" + v + "</option>";
+                    $("#location").html(htmlContent);
+
+                });
+
+            },
+            error: function (xhr, ajaxOptions, thrownError) {
+                bootbox.alert("Error on getting location data : " + xhr.responseText);
+            }
+        });
+
+    })
+
 
 })
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/resmgr.js b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/resmgr.js
index 2480413..a0ad992 100644
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/resmgr.js
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/resmgr.js
@@ -1,202 +1,198 @@
-function hideFirstCol(){
+function hideFirstCol() {
 //	$('table tr').find('th:eq(0)').hide();
 //	$('table tr').find('td:eq(0)').hide();
 }
 function deleteLocation(objectId) {
-	var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/locations/"+ objectId;
-	$.ajax({
-		type : "DELETE",
-		url : requestUrl,
-		contentType : "application/json",
-		success : function(jsonobj) {
-			$('#location_table').bootstrapTable('remove', {
-				field : 'id',
-				values : [ objectId ]
-			});
-			bootbox.alert("Delete  successfull !!!");
-		},
-		error : function(xhr, ajaxOptions, thrownError) {
-			bootbox.alert("Error on deleting data: " + xhr.responseText);
-		}
-	});
+    var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/locations/" + objectId;
+    $.ajax({
+        type: "DELETE",
+        url: requestUrl,
+        contentType: "application/json",
+        success: function (jsonobj) {
+            $('#location_table').bootstrapTable('remove', {
+                field: 'id',
+                values: [objectId]
+            });
+            bootbox.alert("Delete  successfull !!!");
+        },
+        error: function (xhr, ajaxOptions, thrownError) {
+            bootbox.alert("Error on deleting data: " + xhr.responseText);
+        }
+    });
 }
 
 function editLocation(row) {
-	$('#vmAppDialog').addClass('in').css({
-		'display' : 'block'
-	});
-	$('#id').val(row.id);
-	$('#country').val(row.country);
-	$('#location').val(row.location);
-	$('#description').val(row.description);
-	$('#latitude').val(row.latitude);
-	$('#longitude').val(row.longitude);
+    $('#vmAppDialog').addClass('in').css({
+        'display': 'block'
+    });
+    $('#id').val(row.id);
+    $('#country').val(row.country);
+    $('#location').val(row.location);
+    $('#description').val(row.description);
+    $('#latitude').val(row.latitude);
+    $('#longitude').val(row.longitude);
 }
 
 function loadLocationData() {
-	var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/locations";
-	$.ajax({
-		type : "GET",
-		url : requestUrl,
-		contentType : "application/json",
-		success : function(jsonobj) {
-			$('#location_table').bootstrapTable({
-				pageSize: 50,
-				striped: true,
-				data : jsonobj.locations
-			});
-			$('#location_table').bootstrapTable('refresh');
-			
-		},
-		error : function(xhr, ajaxOptions, thrownError) {
-			bootbox.alert("Error on getting site data : " + xhr.responseText);
-		}
-	});
-	
+    var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/locations";
+    $.ajax({
+        type: "GET",
+        url: requestUrl,
+        contentType: "application/json",
+        success: function (jsonobj) {
+            $('#location_table').bootstrapTable({
+                pageSize: 50,
+                striped: true,
+                data: jsonobj.locations
+            });
+            $('#location_table').bootstrapTable('refresh');
+
+        },
+        error: function (xhr, ajaxOptions, thrownError) {
+            bootbox.alert("Error on getting site data : " + xhr.responseText);
+        }
+    });
+
 }
 
-$(function() {
-	 $("#vmAppForm").validate({
-	        rules: {
-	   country: "required",
-	   location: "required",
-	   latitude: {
-		      required: true,
-		      number: true
-		    },
-	   longitude: {
-		      required: true,
-		      number: true
-		    }
-		   }
-	    });
-	 
-	$('.close,.button-previous').click(function() {
-		$('#vmAppDialog').removeClass('in').css('display', 'none');
-	});
-	$('.detail-top ul li').click(function() {
-		$(this).addClass('current').siblings().removeClass('current');
-	});
-	$('.para').click(function() {
-		if ($('#serviceTemplateName').val() == '') {
-			alert('Please choose the service templet！');
-			$('#flavorTab').css('display', 'none');
-		} else {
-			$('#flavorTab').css('display', 'block');
-		}
-		$('#basicTab').css('display', 'block');
-	});
-	$('.basic').click(function() {
-		$('#flavorTab').css('display', 'none');
-	});
+$(function () {
+    $("#vmAppForm").validate({
+        rules: {
+            country: "required",
+            location: "required",
+            latitude: {
+                required: true,
+                number: true
+            },
+            longitude: {
+                required: true,
+                number: true
+            }
+        }
+    });
 
-	$('.table tbody tr').click(
-			function() {
-				$(this).addClass('openoTable_row_selected').siblings()
-						.removeClass('openoTable_row_selected');
-			});
-	$('.table tr:odd').addClass('active');
-	$('#false').click(function() {
-		$('#vmAppForm')[0].reset();
-		$('#vmAppDialog').addClass('in').css({
-			'display' : 'block'
-		});
-	});
-	$('.close,.button-previous').click(function() {
-		$('#vmAppDialog').removeClass('in').css('display', 'none');
-	});
-	$('#filterTpLogicalType').click(
-			function() {
-				$('#filterTpLogicalType_select_popupcontainer').toggleClass(
-						'openo-hide');
-				$('#filterTpLogicalType').toggleClass('openo-focus');
-				var oLeft = $('#open_base_tpL_td6').offset().left;
-				var oTop = $('#open_base_tpL_td6').offset().top;
-				var oHeight = $('#open_base_tpL_td6').height();
-				$('#filterTpLogicalType_select_popupcontainer').css({
-					'left' : oLeft,
-					'top' : oTop + oHeight + 10
-				});
-			});
-	$('div.openo-select-popup-container>div.openo-select-item>label').click(
-			function() {
-				var Lvalue = $(this).html();
-				$('#filterTpLogicalType_select_input').attr('value', Lvalue);
-				$('#filterTpLogicalType_select_popupcontainer').addClass(
-						'openo-hide');
-				$('#filterTpLogicalType').removeClass('openo-focus');
-			});
-	$.fn.serializeObject = function() {
-		var o = {};
-		var a = this.serializeArray();
-		$.each(a, function() {
-			if (o[this.name] !== undefined) {
-				if (!o[this.name].push) {
-					o[this.name] = [ o[this.name] ];
-				}
-				o[this.name].push(this.value || '');
-			} else {
-				o[this.name] = this.value || '';
-			}
-		});
-		return o;
-	};
-	$('#createLocation')
-			.click(
-					
-					function() {
-						var formData = JSON.stringify($("#vmAppForm").serializeObject());
-						var jsonobj = JSON.parse(formData);
-						var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/locations";
-						var requestUrl_query = "/resmgr/rest/openoapi/resmgr/v1/locations";
-						if($('#id').val().length === 0){//create
+    $('.close,.button-previous').click(function () {
+        $('#vmAppDialog').removeClass('in').css('display', 'none');
+    });
+    $('.detail-top ul li').click(function () {
+        $(this).addClass('current').siblings().removeClass('current');
+    });
+    $('.para').click(function () {
+        if ($('#serviceTemplateName').val() == '') {
+            alert('Please choose the service templet！');
+            $('#flavorTab').css('display', 'none');
+        } else {
+            $('#flavorTab').css('display', 'block');
+        }
+        $('#basicTab').css('display', 'block');
+    });
+    $('.basic').click(function () {
+        $('#flavorTab').css('display', 'none');
+    });
 
-							
-							$.ajax({
-								type : "POST",
-								url : requestUrl,
-								contentType : "application/json",
-								dataType : "json",
-								data : formData,
-								success : function(jsonResp) {
-									loadLocationData();
-									bootbox.alert(jsonResp.msg);
-									$('#vmAppDialog').removeClass('in').css({
-										'display' : 'none'
-									});
-									
-								},
-								error : function(xhr, ajaxOptions, thrownError) {
-									bootbox.alert("Error on page : " + xhr.responseText);
-								}
-							});
-						}else{//put
+    $('.table tbody tr').click(
+        function () {
+            $(this).addClass('openoTable_row_selected').siblings()
+                .removeClass('openoTable_row_selected');
+        });
+    $('.table tr:odd').addClass('active');
+    $('#false').click(function () {
+        $('#vmAppForm')[0].reset();
+        $('#vmAppDialog').addClass('in').css({
+            'display': 'block'
+        });
+    });
+    $('.close,.button-previous').click(function () {
+        $('#vmAppDialog').removeClass('in').css('display', 'none');
+    });
+    $('#filterTpLogicalType').click(
+        function () {
+            $('#filterTpLogicalType_select_popupcontainer').toggleClass(
+                'openo-hide');
+            $('#filterTpLogicalType').toggleClass('openo-focus');
+            var oLeft = $('#open_base_tpL_td6').offset().left;
+            var oTop = $('#open_base_tpL_td6').offset().top;
+            var oHeight = $('#open_base_tpL_td6').height();
+            $('#filterTpLogicalType_select_popupcontainer').css({
+                'left': oLeft,
+                'top': oTop + oHeight + 10
+            });
+        });
+    $('div.openo-select-popup-container>div.openo-select-item>label').click(
+        function () {
+            var Lvalue = $(this).html();
+            $('#filterTpLogicalType_select_input').attr('value', Lvalue);
+            $('#filterTpLogicalType_select_popupcontainer').addClass(
+                'openo-hide');
+            $('#filterTpLogicalType').removeClass('openo-focus');
+        });
+    $.fn.serializeObject = function () {
+        var o = {};
+        var a = this.serializeArray();
+        $.each(a, function () {
+            if (o[this.name] !== undefined) {
+                if (!o[this.name].push) {
+                    o[this.name] = [o[this.name]];
+                }
+                o[this.name].push(this.value || '');
+            } else {
+                o[this.name] = this.value || '';
+            }
+        });
+        return o;
+    };
+    $('#createLocation')
+        .click(
+            function () {
+                var formData = JSON.stringify($("#vmAppForm").serializeObject());
+                var jsonobj = JSON.parse(formData);
+                var requestUrl = "/resmgr/rest/openoapi/resmgr/v1/locations";
+                var requestUrl_query = "/resmgr/rest/openoapi/resmgr/v1/locations";
+                if ($('#id').val().length === 0) {//create
 
-							
-							$.ajax({
-								type : "PUT",
-								url : requestUrl,
-								contentType : "application/json",
-								dataType : "json",
-								data : formData,
-								success : function(jsonResp) {
-									loadLocationData();
-									bootbox.alert(jsonResp.msg);
-									$('#vmAppDialog').removeClass('in').css({
-										'display' : 'none'
-									});
-									
-								},
-								error : function(xhr, ajaxOptions, thrownError) {
-									bootbox.alert("Error on page : " + xhr.responseText);
-								}
-							});
-						}
-						
-					});
-					
 
-	
-	
+                    $.ajax({
+                        type: "POST",
+                        url: requestUrl,
+                        contentType: "application/json",
+                        dataType: "json",
+                        data: formData,
+                        success: function (jsonResp) {
+                            loadLocationData();
+                            bootbox.alert(jsonResp.msg);
+                            $('#vmAppDialog').removeClass('in').css({
+                                'display': 'none'
+                            });
+
+                        },
+                        error: function (xhr, ajaxOptions, thrownError) {
+                            bootbox.alert("Error on page : " + xhr.responseText);
+                        }
+                    });
+                } else {//put
+
+
+                    $.ajax({
+                        type: "PUT",
+                        url: requestUrl,
+                        contentType: "application/json",
+                        dataType: "json",
+                        data: formData,
+                        success: function (jsonResp) {
+                            loadLocationData();
+                            bootbox.alert(jsonResp.msg);
+                            $('#vmAppDialog').removeClass('in').css({
+                                'display': 'none'
+                            });
+
+                        },
+                        error: function (xhr, ajaxOptions, thrownError) {
+                            bootbox.alert("Error on page : " + xhr.responseText);
+                        }
+                    });
+                }
+
+            });
+
 
 })
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/validateset.js b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/validateset.js
index 5b44be8..d6e47d2 100644
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/validateset.js
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/validateset.js
@@ -1,28 +1,28 @@
-$(function(){
-	$.validator.setDefaults({
-	    onkeyup: null,
-	    success: function(label){
-	        label.text('').addClass('valid');
-	    },
-	    onfocusin: function( element ) {
-	        this.lastActive = element;
-	        this.addWrapper(this.errorsFor(element)).hide();
-	        var tip = $(element).attr('tip');
-	        if(tip && $(element).parent().children(".tip").length === 0){
-	            $(element).parent().append("<label class='tip'>" + tip + "</label>");
-	        }
-	        $(element).addClass('highlight');
-	        if ( this.settings.focusCleanup ) {
-	            if ( this.settings.unhighlight ) {
-	                this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );
-	            }
-	            this.hideThese( this.errorsFor( element ) );
-	        }
-	    },
-	    onfocusout: function( element ) {
-	        $(element).parent().children(".tip").remove();
-	        $(element).removeClass('highlight');
-	        this.element( element );
-	    }
-	});
+$(function () {
+    $.validator.setDefaults({
+        onkeyup: null,
+        success: function (label) {
+            label.text('').addClass('valid');
+        },
+        onfocusin: function (element) {
+            this.lastActive = element;
+            this.addWrapper(this.errorsFor(element)).hide();
+            var tip = $(element).attr('tip');
+            if (tip && $(element).parent().children(".tip").length === 0) {
+                $(element).parent().append("<label class='tip'>" + tip + "</label>");
+            }
+            $(element).addClass('highlight');
+            if (this.settings.focusCleanup) {
+                if (this.settings.unhighlight) {
+                    this.settings.unhighlight.call(this, element, this.settings.errorClass, this.settings.validClass);
+                }
+                this.hideThese(this.errorsFor(element));
+            }
+        },
+        onfocusout: function (element) {
+            $(element).parent().children(".tip").remove();
+            $(element).removeClass('highlight');
+            this.element(element);
+        }
+    });
 });
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/vim.js b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/vim.js
index 1a406f9..6de4371 100644
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/vim.js
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/js/vim.js
@@ -1,79 +1,79 @@
 function loadVimData() {
-	var requestUrl = "/resmgr/rest/v1/resmanage/vim/vimInfo";
-	$.ajax({
-		type : "GET",
-		url : requestUrl,
-		contentType : "application/json",
-		success : function(jsonobj) {
-			printCharts(jsonobj.data[0].used.cpu,
-					jsonobj.data[0].total.cpu,jsonobj.data[0].used.memory,jsonobj.data[0].total.memory,jsonobj.data[0].used.disk,jsonobj.data[0].total.disk);
+    var requestUrl = "/resmgr/rest/v1/resmanage/vim/vimInfo";
+    $.ajax({
+        type: "GET",
+        url: requestUrl,
+        contentType: "application/json",
+        success: function (jsonobj) {
+            printCharts(jsonobj.data[0].used.cpu,
+                jsonobj.data[0].total.cpu, jsonobj.data[0].used.memory, jsonobj.data[0].total.memory, jsonobj.data[0].used.disk, jsonobj.data[0].total.disk);
 
-		},
-		error : function(xhr, ajaxOptions, thrownError) {
-			bootbox.alert("Error on getting data (here display the test data) : " + xhr.responseText);
-			printCharts(11,12,21,22,31,32);
-		}
-	});
+        },
+        error: function (xhr, ajaxOptions, thrownError) {
+            bootbox.alert("Error on getting data (here display the test data) : " + xhr.responseText);
+            printCharts(11, 12, 21, 22, 31, 32);
+        }
+    });
 }
-function printCharts(v11,v12,v21,v22,v31,v32){
-	var cpuChart = new Chart($("#cpuChart"), {
-		type : 'doughnut',
-		data : {
-			labels : ["used", "available" ],
-			datasets : [ {
-				data : [v11,v12],
-				backgroundColor : ["#FFCE56","#36A2EB"],
-				hoverBackgroundColor : ["#FFCE56","#36A2EB"]
-			} ]
-		},
-		options : {
-			animation:{
-		        animateScale:true,
-		        animateRotate:true
-		       
-		    }
-		}
-	});
-	var memoryChart = new Chart($("#memoryChart"), {
-		type : 'doughnut',
-		data : {
-			labels : [ "used", "available"],
-			datasets : [ {
-				data : [v21,v22],
-				backgroundColor : [ "#FF6384", "#36A2EB"],
-				hoverBackgroundColor : [ "#FF6384", "#36A2EB"]
-			} ]
-		},
-		options : {
-		
-			animation:{
-		        animateScale:true,
-		        animateRotate:true
-		       
-		    }
-		}
-	});
-	var diskChart = new Chart($("#diskChart"), {
-		type : 'doughnut',
-		data : {
-			labels : [ "used", "available"],
-			datasets : [ {
-				data : [v31,v32],
-				backgroundColor : [ "#FF6384",  "green" ],
-				hoverBackgroundColor : [ "#FF6384", "green" ]
-			} ]
-		},
-		options : {
-			animation:{
-		        animateScale:true,
-		        animateRotate:true
-		       
-		    }
-		}
-	});
+function printCharts(v11, v12, v21, v22, v31, v32) {
+    var cpuChart = new Chart($("#cpuChart"), {
+        type: 'doughnut',
+        data: {
+            labels: ["used", "available"],
+            datasets: [{
+                data: [v11, v12],
+                backgroundColor: ["#FFCE56", "#36A2EB"],
+                hoverBackgroundColor: ["#FFCE56", "#36A2EB"]
+            }]
+        },
+        options: {
+            animation: {
+                animateScale: true,
+                animateRotate: true
+
+            }
+        }
+    });
+    var memoryChart = new Chart($("#memoryChart"), {
+        type: 'doughnut',
+        data: {
+            labels: ["used", "available"],
+            datasets: [{
+                data: [v21, v22],
+                backgroundColor: ["#FF6384", "#36A2EB"],
+                hoverBackgroundColor: ["#FF6384", "#36A2EB"]
+            }]
+        },
+        options: {
+
+            animation: {
+                animateScale: true,
+                animateRotate: true
+
+            }
+        }
+    });
+    var diskChart = new Chart($("#diskChart"), {
+        type: 'doughnut',
+        data: {
+            labels: ["used", "available"],
+            datasets: [{
+                data: [v31, v32],
+                backgroundColor: ["#FF6384", "green"],
+                hoverBackgroundColor: ["#FF6384", "green"]
+            }]
+        },
+        options: {
+            animation: {
+                animateScale: true,
+                animateRotate: true
+
+            }
+        }
+    });
 }
 
-$(function() {
-	loadVimData();
-	
+$(function () {
+    loadVimData();
+
 })
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/location.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/location.html
index b51c16a..187bee3 100644
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/location.html
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/location.html
@@ -1,261 +1,262 @@
-
 <!DOCTYPE html>
 <html>
 <head>
-<head lang="en">
-<meta charset="UTF-8">
-<title></title>
-<link href="css/bootstrap.min.css" rel="stylesheet" />
-<link href="css/VMMain.css" rel="stylesheet" />
-<link href="css/resmgr.css" rel="stylesheet" />
-<link href="css/bootstrap-table.min.css" rel="stylesheet" />
+    <head lang="en">
+        <meta charset="UTF-8">
+        <title></title>
+        <link href="css/bootstrap.min.css" rel="stylesheet"/>
+        <link href="css/VMMain.css" rel="stylesheet"/>
+        <link href="css/resmgr.css" rel="stylesheet"/>
+        <link href="css/bootstrap-table.min.css" rel="stylesheet"/>
 
-<script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
-<script type="text/javascript" src="js/bootstrap.min.js"></script>
-<script type="text/javascript" src="js/bootstrap-table.min.js"></script>
-<script type="text/javascript" src="js/bootbox.min.js"></script>
-<script type="text/javascript" src="js/jquery.validate.min.js"></script>
-<script type="text/javascript" src="js/validateset.js"></script>
+        <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
+        <script type="text/javascript" src="js/bootstrap.min.js"></script>
+        <script type="text/javascript" src="js/bootstrap-table.min.js"></script>
+        <script type="text/javascript" src="js/bootbox.min.js"></script>
+        <script type="text/javascript" src="js/jquery.validate.min.js"></script>
+        <script type="text/javascript" src="js/validateset.js"></script>
 
-<script type="text/javascript" src="js/resmgr.js"></script>
+        <script type="text/javascript" src="js/resmgr.js"></script>
 
-<style type="text/css">
-</style>
-<script type="text/javascript">
-	$(document).ready(function() {
-/* 		var jsondata = [{
-			"id": "123",
-			"country": "China",
-           "location": "Xi'an",
-           "description": "description",
-			"latitude": "23",
-			"longitude": "180"
-          },{
-        	  "id": "1234",
-        	  "country": "Americaxx",
-            "location": "addressXXXxx",
-            "description": "xxxxx",
- 			"latitude": "xxxx",
- 			"longitude": "xxxx"
-           }];
+        <style type="text/css">
+        </style>
+        <script type="text/javascript">
+            $(document).ready(function () {
+                /* 		var jsondata = [{
+                 "id": "123",
+                 "country": "China",
+                 "location": "Xi'an",
+                 "description": "description",
+                 "latitude": "23",
+                 "longitude": "180"
+                 },{
+                 "id": "1234",
+                 "country": "Americaxx",
+                 "location": "addressXXXxx",
+                 "description": "xxxxx",
+                 "latitude": "xxxx",
+                 "longitude": "xxxx"
+                 }];
 
-		$('#location_table').bootstrapTable({
-		//Assigning example data to table
-			data: jsondata
-		}); */
-		
-		loadLocationData();
-	});
+                 $('#location_table').bootstrapTable({
+                 //Assigning example data to table
+                 data: jsondata
+                 }); */
 
-	function operateFormatter(value, row, index) {
-		return [ '<img class="locationEditImg" src="images/edit.png" href="javascript:void(0)" style="cursor: pointer" name="edit" title="Edit" />&nbsp;&nbsp;&nbsp;&nbsp;<img class="locationDeleteImg" src="images/delete.png" href="javascript:void(0)" style="cursor: pointer" name="title" title="Delete" />' ]
-				.join('');
+                loadLocationData();
+            });
 
-	}
-	window.operateEvents = {
-		'click .locationDeleteImg' : function(e, value, row, index) {
-			deleteLocation(row.id);
-			console.log(value, row, index);
-		},
-		'click .locationEditImg' : function(e, value, row, index) {
-			editLocation(row);
-			console.log(value, row, index);
-		}
-	};
-	
-	
-</script>
-</head>
+            function operateFormatter(value, row, index) {
+                return ['<img class="locationEditImg" src="images/edit.png" href="javascript:void(0)" style="cursor: pointer" name="edit" title="Edit" />&nbsp;&nbsp;&nbsp;&nbsp;<img class="locationDeleteImg" src="images/delete.png" href="javascript:void(0)" style="cursor: pointer" name="title" title="Delete" />']
+                        .join('');
+
+            }
+            window.operateEvents = {
+                'click .locationDeleteImg': function (e, value, row, index) {
+                    deleteLocation(row.id);
+                    console.log(value, row, index);
+                },
+                'click .locationEditImg': function (e, value, row, index) {
+                    editLocation(row);
+                    console.log(value, row, index);
+                }
+            };
+
+
+        </script>
+    </head>
 <body id="open_base_site_cotentBody" class="cotentBody ng-scope">
-	<div class="container-fluid ms-controller">
-<!-- button area -->
-		<div class="uploadBtn">
-			<div id="open_base_tpL_userHeader" class="userHeader">
-				<div id="open_base_tpL_buttonGroup"
-					class="openoButton_buttonGroupClass">
-					<div
-						class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass defaultbutton openoButton_button_default"
-						tabindex="0" id="false" text="res.brApp_ui_res_btn_create"
-						icon-url="./images/add.png" cls="defaultbutton" click="clickAdd"
-						style="display: inline-block; padding-left: 0px; padding-right: 0px;">
-						<div
-							class="openoButton_buttonInnerClass openo-corner-all openoButton_Image"
-							id="false_button">
+<div class="container-fluid ms-controller">
+    <!-- button area -->
+    <div class="uploadBtn">
+        <div id="open_base_tpL_userHeader" class="userHeader">
+            <div id="open_base_tpL_buttonGroup"
+                 class="openoButton_buttonGroupClass">
+                <div
+                        class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass defaultbutton openoButton_button_default"
+                        tabindex="0" id="false" text="res.brApp_ui_res_btn_create"
+                        icon-url="./images/add.png" cls="defaultbutton" click="clickAdd"
+                        style="display: inline-block; padding-left: 0px; padding-right: 0px;">
+                    <div
+                            class="openoButton_buttonInnerClass openo-corner-all openoButton_Image"
+                            id="false_button">
 							<span class="openo-widget-button-image openoButton_buttonLeftImg"
-								style="background-image: url(images/add.png);"></span><span
-								class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Add Location</span><span
-								class="openo-widget-button-image openoButton_buttonImgDefault"></span>
-						</div>
-					</div>
+                                  style="background-image: url(images/add.png);"></span><span
+                            class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Add Location</span><span
+                            class="openo-widget-button-image openoButton_buttonImgDefault"></span>
+                    </div>
+                </div>
 
 
-					<div
-						class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass undefined openoButton_button_default"
-						tabindex="0" id="meEdit" text="res.brApp_ui_res_btn_edit"
-						display="false" style="display: none;">
-						<div class="openoButton_buttonInnerClass openo-corner-all"
-							id="meEdit_button">
+                <div
+                        class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass undefined openoButton_button_default"
+                        tabindex="0" id="meEdit" text="res.brApp_ui_res_btn_edit"
+                        display="false" style="display: none;">
+                    <div class="openoButton_buttonInnerClass openo-corner-all"
+                         id="meEdit_button">
 							<span
-								class="openo-widget-button-image openoButton_buttonImgDefault"></span><span
-								class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Edit</span><span
-								class="openo-widget-button-image openoButton_buttonImgDefault"></span>
-						</div>
-					</div>
+                                    class="openo-widget-button-image openoButton_buttonImgDefault"></span><span
+                            class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Edit</span><span
+                            class="openo-widget-button-image openoButton_buttonImgDefault"></span>
+                    </div>
+                </div>
 
-				</div>
-			</div>
-		</div>
-		<!-- table area -->
-		<div class="row-fluid" data-name="table_zone">
-			<div id='ict_virtualApplication_table_div'>
-				<div>
-					<div class="top">
-						<table id="location_table" data-pagination="true" data-page-size="5"
-							data-pagination-first-text="First"
-							data-pagination-pre-text="Previous"
-							data-pagination-next-text="Next" data-pagination-last-text="Last">
-							<thead>
-								<tr class="active">
-									<th data-field="id" data-sortable="true">Id</th>
-									<th data-field="country" data-sortable="true">Country</th>
-									<th data-field="location" data-sortable="true">Location</th>
-									<th data-field="description" data-sortable="true">Description</th>
-									<th data-field="latitude" data-sortable="true">Latitude</th>
-									<th data-field="longitude" data-sortable="true">Longitude</th>
-									<th align="center" data-formatter="operateFormatter"
-										data-events="operateEvents">Action</th>
-								</tr>
-							</thead>
-						</table>
-					</div>
-				</div>
-			</div>
-		</div>
-		<!-- modal dialog area -->
-		<div id="vmAppDialog" class="modal fade" tabindex="-1" role="dialog"
-			aria-labelledby="myModalLabel" aria-hidden="false">
-			<div class="modal-dialog">
-				<div class="modal-content">
-					<div class="content">
-						<div class="modal-header">
-							<button type="button" class="close" data-dismiss="modal"
-								aria-hidden="true">×</button>
-							<h4 class="modal-title" id="myModalLabel">
-								<span>Add Location</span>
-							</h4>
-						</div>
-						<form class="form-horizontal" role="form" id="vmAppForm">
-							<div id="wizard">
-								<div class="modal-body">
-									<ul class="nav nav-pills nav-justified vmapp-margin">
-									</ul>
-									<div class="tab-content">
-										<div class="tab-pane active" id="basicTab">
-											<div class="form-group" style="display:none;">
-												<label class="col-sm-3 control-label"> <span>Id</span>
-												</label>
-												<div class="col-sm-7">
-													<input type="text" id="id" name="id"
-														class="form-control" placeholder="id" />
-												</div>
-											</div>
-											<div class="form-group">
-												<label class="col-sm-3 control-label"> <span>Country</span>
-													<span class="required">*</span>
-												</label>
-												<div class="col-sm-7">
-													<input type="text" id="country" name="country"
-														class="form-control" placeholder="Country" />
-												</div>
-											</div>
-											<div class="form-group">
-												<label class="col-sm-3 control-label"> <span>Location</span>
-													<span class="required">*</span>
-												</label>
-												<div class="col-sm-7">
-													<input type="text" id="location" name="location"
-														class="form-control" placeholder="Location" />
-												</div>
-											</div>
-											<div class="form-group">
-												<label class="col-sm-3 control-label"> <span>Latitude</span>
-													<span class="required">*</span>
-												</label>
-												<div class="col-sm-7">
-													<input type="text" id="latitude" name="latitude"
-														class="form-control" placeholder="Latitude" />
-												</div>
-											</div>
-											<div class="form-group">
-												<label class="col-sm-3 control-label"> <span>Longitude</span>
-													<span class="required">*</span>
-												</label>
-												<div class="col-sm-7">
-													<input type="text" id="longitude" name="longitude"
-														class="form-control" placeholder="Longitude" />
-												</div>
-											</div>
-											<div class="form-group">
-												<label class="col-sm-3 control-label"> <span>Description</span>
-													&nbsp;&nbsp;
-												</label>
-												<div class="col-sm-7">
-													<input type="text" id="description" name="description"
-														class="form-control" placeholder="Description" />
-												</div>
-											</div>
-										</div>
+            </div>
+        </div>
+    </div>
+    <!-- table area -->
+    <div class="row-fluid" data-name="table_zone">
+        <div id='ict_virtualApplication_table_div'>
+            <div>
+                <div class="top">
+                    <table id="location_table" data-pagination="true" data-page-size="5"
+                           data-pagination-first-text="First"
+                           data-pagination-pre-text="Previous"
+                           data-pagination-next-text="Next" data-pagination-last-text="Last">
+                        <thead>
+                        <tr class="active">
+                            <th data-field="id" data-sortable="true">Id</th>
+                            <th data-field="country" data-sortable="true">Country</th>
+                            <th data-field="location" data-sortable="true">Location</th>
+                            <th data-field="description" data-sortable="true">Description</th>
+                            <th data-field="latitude" data-sortable="true">Latitude</th>
+                            <th data-field="longitude" data-sortable="true">Longitude</th>
+                            <th align="center" data-formatter="operateFormatter"
+                                data-events="operateEvents">Action
+                            </th>
+                        </tr>
+                        </thead>
+                    </table>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!-- modal dialog area -->
+    <div id="vmAppDialog" class="modal fade" tabindex="-1" role="dialog"
+         aria-labelledby="myModalLabel" aria-hidden="false">
+        <div class="modal-dialog">
+            <div class="modal-content">
+                <div class="content">
+                    <div class="modal-header">
+                        <button type="button" class="close" data-dismiss="modal"
+                                aria-hidden="true">×
+                        </button>
+                        <h4 class="modal-title" id="myModalLabel">
+                            <span>Add Location</span>
+                        </h4>
+                    </div>
+                    <form class="form-horizontal" role="form" id="vmAppForm">
+                        <div id="wizard">
+                            <div class="modal-body">
+                                <ul class="nav nav-pills nav-justified vmapp-margin">
+                                </ul>
+                                <div class="tab-content">
+                                    <div class="tab-pane active" id="basicTab">
+                                        <div class="form-group" style="display:none;">
+                                            <label class="col-sm-3 control-label"> <span>Id</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="id" name="id"
+                                                       class="form-control" placeholder="id"/>
+                                            </div>
+                                        </div>
+                                        <div class="form-group">
+                                            <label class="col-sm-3 control-label"> <span>Country</span>
+                                                <span class="required">*</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="country" name="country"
+                                                       class="form-control" placeholder="Country"/>
+                                            </div>
+                                        </div>
+                                        <div class="form-group">
+                                            <label class="col-sm-3 control-label"> <span>Location</span>
+                                                <span class="required">*</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="location" name="location"
+                                                       class="form-control" placeholder="Location"/>
+                                            </div>
+                                        </div>
+                                        <div class="form-group">
+                                            <label class="col-sm-3 control-label"> <span>Latitude</span>
+                                                <span class="required">*</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="latitude" name="latitude"
+                                                       class="form-control" placeholder="Latitude"/>
+                                            </div>
+                                        </div>
+                                        <div class="form-group">
+                                            <label class="col-sm-3 control-label"> <span>Longitude</span>
+                                                <span class="required">*</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="longitude" name="longitude"
+                                                       class="form-control" placeholder="Longitude"/>
+                                            </div>
+                                        </div>
+                                        <div class="form-group">
+                                            <label class="col-sm-3 control-label"> <span>Description</span>
+                                                &nbsp;&nbsp;
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="description" name="description"
+                                                       class="form-control" placeholder="Description"/>
+                                            </div>
+                                        </div>
+                                    </div>
 
 
-									</div>
-								</div>
-								<div class="modal-footer">
-									<button type="button" class="btn SDBtn" data-dismiss="modal"
-										aria-hidden="true" id="createLocation">
-										<span id="nfv-virtualApplication-iui-text-cancelBtn">OK</span>
-									</button>
-									<button type="button" class="btn button-previous SDBtn">
-										<span id="nfv-virtualApplication-iui-text-previousBtn">Cancel</span>
-									</button>
+                                </div>
+                            </div>
+                            <div class="modal-footer">
+                                <button type="button" class="btn SDBtn" data-dismiss="modal"
+                                        aria-hidden="true" id="createLocation">
+                                    <span id="nfv-virtualApplication-iui-text-cancelBtn">OK</span>
+                                </button>
+                                <button type="button" class="btn button-previous SDBtn">
+                                    <span id="nfv-virtualApplication-iui-text-previousBtn">Cancel</span>
+                                </button>
 
-								</div>
-							</div>
-						</form>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
 
 <!-- others -->
-	<div id="filterTpLogicalType_select_popupcontainer"
-		class="openo openo-select-popup-container openo-hide"
-		style="width: 155px; max-height: 130px; left: 628px; top: 104px; z-index: 1761;">
-		<div class="openo-select-item openo-ellipsis  "
-			id="filterTpLogicalType_openo-select-id_0">
-			<label class="openo-ellipsis openo-select-blank-item"
-				style="width: 100%; display: block; height: 20px;"></label>
-		</div>
-		<div class="openo-select-item openo-ellipsis  "
-			id="filterTpLogicalType_openo-select-id_1">
-			<label class="openo-ellipsis "
-				style="width: 100%; display: block; height: 20px;">ETH</label>
-		</div>
-		<div class="openo-select-item openo-ellipsis  "
-			id="filterTpLogicalType_openo-select-id_2">
-			<label class="openo-ellipsis "
-				style="width: 100%; display: block; height: 20px;" title="POS">POS</label>
-		</div>
-		<div class="openo-select-item openo-ellipsis  "
-			id="filterTpLogicalType_openo-select-id_3">
-			<label class="openo-ellipsis "
-				style="width: 100%; display: block; height: 20px;">Trunk</label>
-		</div>
-		<div class="openo-select-item openo-ellipsis  "
-			id="filterTpLogicalType_openo-select-id_4">
-			<label class="openo-ellipsis "
-				style="width: 100%; display: block; height: 20px;">Loopback</label>
-		</div>
-	</div>
+<div id="filterTpLogicalType_select_popupcontainer"
+     class="openo openo-select-popup-container openo-hide"
+     style="width: 155px; max-height: 130px; left: 628px; top: 104px; z-index: 1761;">
+    <div class="openo-select-item openo-ellipsis  "
+         id="filterTpLogicalType_openo-select-id_0">
+        <label class="openo-ellipsis openo-select-blank-item"
+               style="width: 100%; display: block; height: 20px;"></label>
+    </div>
+    <div class="openo-select-item openo-ellipsis  "
+         id="filterTpLogicalType_openo-select-id_1">
+        <label class="openo-ellipsis "
+               style="width: 100%; display: block; height: 20px;">ETH</label>
+    </div>
+    <div class="openo-select-item openo-ellipsis  "
+         id="filterTpLogicalType_openo-select-id_2">
+        <label class="openo-ellipsis "
+               style="width: 100%; display: block; height: 20px;" title="POS">POS</label>
+    </div>
+    <div class="openo-select-item openo-ellipsis  "
+         id="filterTpLogicalType_openo-select-id_3">
+        <label class="openo-ellipsis "
+               style="width: 100%; display: block; height: 20px;">Trunk</label>
+    </div>
+    <div class="openo-select-item openo-ellipsis  "
+         id="filterTpLogicalType_openo-select-id_4">
+        <label class="openo-ellipsis "
+               style="width: 100%; display: block; height: 20px;">Loopback</label>
+    </div>
+</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/resource.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/resource.html
index 702061a..116990d 100644
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/resource.html
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/resource.html
@@ -1,59 +1,59 @@
 <!doctype html>
 <html>
 <head>
-<meta charset="utf-8">
-<title></title>
-	<link href="css/bootstrap.min.css" rel="stylesheet" />
-	<link href="css/RMain.css" rel="stylesheet" />
+    <meta charset="utf-8">
+    <title></title>
+    <link href="css/bootstrap.min.css" rel="stylesheet"/>
+    <link href="css/RMain.css" rel="stylesheet"/>
     <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
     <script type="text/javascript" src="js/bootstrap.min.js"></script>
 </head>
 <script type="text/javascript">
-    $(function(){
-        $('.openo_accordion_ui-icon-expand,.header').click(function(){
+    $(function () {
+        $('.openo_accordion_ui-icon-expand,.header').click(function () {
             $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL').slideToggle(500);
             $('.openo_accordion_ui-icon-expand').toggleClass('current')
         });
-        $('.openoAccordian_showHideArrow_hide').click(function(){
+        $('.openoAccordian_showHideArrow_hide').click(function () {
             // $('#open_base_openo').css('margin-left','-200px');
             // $('#open_base_openo').css('display','none');
             // $('.bar').css('display','block');
-            if($('#accordionmenuid').width() >= 200){
+            if ($('#accordionmenuid').width() >= 200) {
                 $('#accordionmenuid').width('18px');
-                $('.openo_accordion_ui-icon-expand,.header,#accordionmenuid_ul_0_0_brAppTopMenuID_UL li a').css('display','none');
-                $('#accordionmenuid_arrow').attr('classname','openoAccordian_showHideArrow_show');
-                $('#iframeContainer').css('width','1284px');                
-            }else if($('#accordionmenuid').width() == 18){
+                $('.openo_accordion_ui-icon-expand,.header,#accordionmenuid_ul_0_0_brAppTopMenuID_UL li a').css('display', 'none');
+                $('#accordionmenuid_arrow').attr('classname', 'openoAccordian_showHideArrow_show');
+                $('#iframeContainer').css('width', '1284px');
+            } else if ($('#accordionmenuid').width() == 18) {
                 $('#accordionmenuid').width('220px');
-                $('.openo_accordion_ui-icon-expand,.header,#accordionmenuid_ul_0_0_brAppTopMenuID_UL li a').css('display','block');
-                $('#accordionmenuid_arrow').attr('classname','openoAccordian_showHideArrow_hide');
-                $('#iframeContainer').css('width','1063px');
+                $('.openo_accordion_ui-icon-expand,.header,#accordionmenuid_ul_0_0_brAppTopMenuID_UL li a').css('display', 'block');
+                $('#accordionmenuid_arrow').attr('classname', 'openoAccordian_showHideArrow_hide');
+                $('#iframeContainer').css('width', '1063px');
             }
-            
+
         });
-        $('.bar span').click(function(){
-            $('#open_base_openo').css('display','block');
-            $('.bar').css('display','none');
-             $('#iframeContainer').css('width','1063px');
+        $('.bar span').click(function () {
+            $('#open_base_openo').css('display', 'block');
+            $('.bar').css('display', 'none');
+            $('#iframeContainer').css('width', '1063px');
         });
-        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL li').click(function(){
+        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL li').click(function () {
             $(this).addClass('openo_accordion_selected').siblings().removeClass('openo_accordion_selected');
         });
-        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_0_brAppSiteMenuID').click(function(){
-            $('#accordionContent').attr('src','location.html');
+        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_0_brAppSiteMenuID').click(function () {
+            $('#accordionContent').attr('src', 'location.html');
         });
-        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_1_brAppMeMenuID').click(function(){
-            $('#accordionContent').attr('src','vim.html');
+        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_1_brAppMeMenuID').click(function () {
+            $('#accordionContent').attr('src', 'vim.html');
         });
-        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_2_brAppTpMenuID').click(function(){
-            $('#accordionContent').attr('src','datacenter.html');
+        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_2_brAppTpMenuID').click(function () {
+            $('#accordionContent').attr('src', 'datacenter.html');
         });
-        
-        $('#accordionContent').attr('src','location.html');
+
+        $('#accordionContent').attr('src', 'location.html');
     })
 </script>
 <body>
-    <div id="febDiv" style="overflow: hidden;">
+<div id="febDiv" style="overflow: hidden;">
     <div id="open_base_feb">
         <!--use for store menu come from feb service, maybe just a temple plan-->
         <div id="app">
@@ -66,28 +66,38 @@
                             <span></span>
                         </td>
                         <td id="open_base_openo" class="three-cols-column three-cols-left">
-                            <div id="accordionmenuid" allow-resize="true" dataset="dataArr" height="resHeight" listeners="callBacklisteners" resize-callback="resizehandler" current-select="currentselect" click="clickHandler" class="ng-isolate-scope accordion_parent openo_accordion_main_menu" style="height: 870px;">
+                            <div id="accordionmenuid" allow-resize="true" dataset="dataArr" height="resHeight"
+                                 listeners="callBacklisteners" resize-callback="resizehandler"
+                                 current-select="currentselect" click="clickHandler"
+                                 class="ng-isolate-scope accordion_parent openo_accordion_main_menu"
+                                 style="height: 870px;">
                                 <div class="openo-accordion-resizable-handle" style="cursor: auto;"></div>
                                 <ul id="accordionmenuid_ul" class="openoAccordian_accordionmenu">
                                     <li id="accordionmenuid_ul_0_0_brAppTopMenuID" nodeid="brAppTopMenuID">
-                                        <span class="openo_accordion_ui-icon-expand" style="padding-left: 20px; height: 60px;cursor: pointer;"></span>
-                                        <span class="openoAccordian_showHideArrow_hide" id="accordionmenuid_arrow" style="cursor: pointer;"></span>
-                                        <a title="brApp" class="header opened" style="padding-left: 10px; cursor: pointer;">Resource</a>
+                                        <span class="openo_accordion_ui-icon-expand"
+                                              style="padding-left: 20px; height: 60px;cursor: pointer;"></span>
+                                        <span class="openoAccordian_showHideArrow_hide" id="accordionmenuid_arrow"
+                                              style="cursor: pointer;"></span>
+                                        <a title="brApp" class="header opened"
+                                           style="padding-left: 10px; cursor: pointer;">Resource</a>
                                         <ul id="accordionmenuid_ul_0_0_brAppTopMenuID_UL">
-                                            <li id="accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_0_brAppSiteMenuID" nodeid="brAppSiteMenuID" class="" style="display: list-item;">
+                                            <li id="accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_0_brAppSiteMenuID"
+                                                nodeid="brAppSiteMenuID" class="" style="display: list-item;">
                                                 <a title="点击访问站点" class="" style="padding-left: 62px;">Location</a>
-											</li>
-                                            <li id="accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_1_brAppMeMenuID" nodeid="brAppMeMenuID" style="display: list-item;">
-                                                    <a title="点击访问网元" style="padding-left: 62px;">Vim</a>
                                             </li>
-                                            <li id="accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_2_brAppTpMenuID" nodeid="brAppTpMenuID" style="display: list-item;">
-                                                    <a title="点击访问端口" style="padding-left: 62px;">DataCenter</a>
+                                            <li id="accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_1_brAppMeMenuID"
+                                                nodeid="brAppMeMenuID" style="display: list-item;">
+                                                <a title="点击访问网元" style="padding-left: 62px;">Vim</a>
                                             </li>
-                                           
+                                            <li id="accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_2_brAppTpMenuID"
+                                                nodeid="brAppTpMenuID" style="display: list-item;">
+                                                <a title="点击访问端口" style="padding-left: 62px;">DataCenter</a>
+                                            </li>
+
                                         </ul>
                                     </li>
                                 </ul>
-							</div>
+                            </div>
                         </td>
                         <td id="open_base_iframe" class="three-cols-column three-cols-center" style="padding: 0px;">
 
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/vim.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/vim.html
index 31879e1..d4697da 100644
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/vim.html
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-nfv/vim.html
@@ -1,52 +1,52 @@
-
 <!DOCTYPE html>
 <html>
 <head>
-<head lang="en">
-<meta charset="UTF-8">
-<title></title>
-<link href="css/bootstrap.min.css" rel="stylesheet" />
-<link href="css/VMMain.css" rel="stylesheet" />
-<link href="css/bootstrap-table.min.css" rel="stylesheet" />
+    <head lang="en">
+        <meta charset="UTF-8">
+        <title></title>
+        <link href="css/bootstrap.min.css" rel="stylesheet"/>
+        <link href="css/VMMain.css" rel="stylesheet"/>
+        <link href="css/bootstrap-table.min.css" rel="stylesheet"/>
 
-<script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
-<script type="text/javascript" src="js/bootstrap.min.js"></script>
-<script type="text/javascript" src="js/bootstrap-table.min.js"></script>
-<script type="text/javascript" src="js/bootbox.min.js"></script>
-<script type="text/javascript" src="js/jquery.validate.min.js"></script>
-<script type="text/javascript" src="js/chart.min.js"></script>
+        <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
+        <script type="text/javascript" src="js/bootstrap.min.js"></script>
+        <script type="text/javascript" src="js/bootstrap-table.min.js"></script>
+        <script type="text/javascript" src="js/bootbox.min.js"></script>
+        <script type="text/javascript" src="js/jquery.validate.min.js"></script>
+        <script type="text/javascript" src="js/chart.min.js"></script>
 
-<script type="text/javascript" src="js/vim.js"></script>
+        <script type="text/javascript" src="js/vim.js"></script>
 
-<style type="text/css">
-</style>
+        <style type="text/css">
+        </style>
 
-</head>
+    </head>
 <body id="open_base_site_cotentBody" class="cotentBody ng-scope">
 
-	<div class="container-fluid ms-controller">
-	<br>
-	<div style="font-size:18px">resource using status:</div>
-	<hr>
-		<!-- chart area -->
-		<div style="width:30%;float: left;text-align:center;display: inline">
-			<canvas id="cpuChart" ></canvas><br>
-			<label style="font-size:14px;">Cpu status</label>
-		</div>
-		<div style="width:30%;float: left;text-align:center;display: inline">
-			<canvas id="memoryChart" ></canvas>
-			<br>
-			<label style="font-size:14px;">Memory status</label>
-		</div>
-		<div style="width:30%;float: left;text-align:center;display: inline">
-			<canvas id="diskChart" ></canvas><br>
-			<label style="font-size:14px;">Disk status</label>
-		</div>
-		<script type="text/javascript">
+<div class="container-fluid ms-controller">
+    <br>
+    <div style="font-size:18px">resource using status:</div>
+    <hr>
+    <!-- chart area -->
+    <div style="width:30%;float: left;text-align:center;display: inline">
+        <canvas id="cpuChart"></canvas>
+        <br>
+        <label style="font-size:14px;">Cpu status</label>
+    </div>
+    <div style="width:30%;float: left;text-align:center;display: inline">
+        <canvas id="memoryChart"></canvas>
+        <br>
+        <label style="font-size:14px;">Memory status</label>
+    </div>
+    <div style="width:30%;float: left;text-align:center;display: inline">
+        <canvas id="diskChart"></canvas>
+        <br>
+        <label style="font-size:14px;">Disk status</label>
+    </div>
+    <script type="text/javascript">
 
 
-			
-		</script>
-	</div>
+    </script>
+</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/css/RMain.css b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/css/RMain.css
new file mode 100644
index 0000000..0a74032
--- /dev/null
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/css/RMain.css
@@ -0,0 +1,239 @@
+/* Copyright 2016, Huawei Technologies Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file 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.
+ */
+
+#iemp_layout_container {
+    padding: 0px;
+    margin: 1px auto;
+    width: 100%;
+    height: 100%;
+}
+
+#iemp_layout_container .three-cols-layout {
+    width: 100%;
+    height: 100%;
+    border-collapse: collapse;
+    margin-left: 0px;
+    margin-top: 0px;
+    margin-right: 0px;
+    margin-bottom: 0px;
+}
+
+#iemp_layout_container .three-cols-layout {
+    width: 100%;
+    height: 100%;
+    border-collapse: collapse;
+    margin-left: 0px;
+    margin-top: 0px;
+    margin-right: 0px;
+    margin-bottom: 0px;
+}
+
+#iemp_layout_container .three-cols-column.three-cols-left {
+    width: 215px;
+    background-color: #f5f5f5;
+}
+
+.accordion_parent {
+    position: relative;
+    width: 220px;
+    background-color: #f5f5f5;
+}
+
+.openo-accordion-resizable-handle {
+    z-index: 1 !important;
+    cursor: e-resize;
+    width: 7px;
+    right: -5px;
+    top: 0;
+    height: 100%;
+    position: absolute;
+    font-size: .1px;
+    display: block;
+}
+
+.openoAccordian_accordionmenu {
+    width: 100%;
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+    line-height: 17px;
+}
+
+.openoAccordian_accordionmenu li {
+    min-width: 75px;
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+    color: #000;
+    clear: both;
+}
+
+.openo_accordion_ui-icon-collapse, .openo_accordion_ui-icon-expand {
+    display: block;
+    float: left;
+    margin-bottom: -1px;
+    border-bottom: 1px solid #e5e5e5;
+    cursor: pointer;
+    width: 13px;
+    padding-top: 26px;
+}
+
+.openo_accordion_ui-icon-expand {
+    background: url(../images/collapse_arrow.png) right 20px no-repeat;
+    margin-top: 8px;
+}
+
+.openo_accordion_ui-icon-expand.current {
+    background: url(../images/expand_arrow.png) right 20px no-repeat;
+}
+
+.openoAccordian_showHideArrow_hide, .openoAccordian_showHideArrow_show {
+    display: block;
+    position: absolute;
+    right: 0;
+    top: 4px;
+    width: 18px;
+    height: 41px;
+    cursor: pointer;
+    background-color: #f5f5f5;
+}
+
+.openoAccordian_showHideArrow_hide {
+    background-image: url(../images/openo.png);
+    background-position: -7px 0 !important;
+    border-collapse: separate;
+    /*box-shadow: inset -1px 0 0 #e5e5e5;*/
+}
+
+a.header.opened, a.header.closed {
+    font-size: 16px;
+    padding-top: 24px;
+    padding-bottom: 25px;
+    color: #999999;
+}
+
+.openoAccordian_accordionmenu .closed, .openoAccordian_accordionmenu .opened {
+    padding-right: 10px;
+    background-position: 98% 50%;
+    background-repeat: no-repeat;
+}
+
+.openoAccordian_accordionmenu li a {
+    padding: 11px 10px 12px;
+    color: #333333;
+    margin-right: 1px;
+    margin-top: -1px;
+    text-align: left !important;
+    font-family: "Microsoft Yahei", SimSun, Arial, Tahoma;
+    font-size: 14px;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    overflow: hidden;
+    border-top: 1px solid #e5e5e5;
+    border-bottom: 1px solid #e5e5e5;
+    /*height: 19px;*/
+}
+
+.openoAccordian_accordionmenu ul {
+    margin: 0;
+    padding: 0;
+    overflow: hidden;
+}
+
+.openoAccordian_accordionmenu a {
+    display: block;
+    text-decoration: none;
+}
+
+a {
+    color: #428bca;
+    text-decoration: none;
+    background: 0 0;
+}
+
+.bar {
+    height: 834px;
+    width: 18px;
+    background: #f8f8f8;
+    display: none;
+}
+
+.bar span {
+    width: 13px;
+    height: 34px;
+    background-image: url(../images/openo.png);
+    background-position: -39px 0 !important;
+    display: block;
+    /*margin-top: -430px;*/
+}
+
+#accordionmenuid_ul_0_0_brAppTopMenuID_UL li {
+    cursor: pointer;
+}
+
+#puer_base_openo {
+    border: 1px solid #ddd;
+}
+
+.openo_accordion_selected {
+    margin-left: 0;
+    margin-right: 0;
+    background: #fafafa;
+    border-left: 3px solid #4ac9ff !important;
+    box-shadow: none;
+    position: relative;
+}
+
+a:hover {
+    color: #4ac9ff !important;
+}
+
+.openoAccordian_accordionmenu li.openo_accordion_selected a {
+    position: relative;
+    left: -3px;
+    color: #009ae7;
+}
+
+.openo-accordion-resizable-handle {
+    z-index: 1 !important;
+    cursor: e-resize;
+    width: 7px;
+    right: -5px;
+    top: 0;
+    height: 100%;
+    position: absolute;
+    font-size: .1px;
+    display: block;
+}
+
+#iframeContainer iframe {
+    width: 100%;
+    height: 100%;
+    border: 0;
+}
+
+#accordionContent, #iframeContainer {
+    margin: 0;
+    padding: 0;
+    border: 0;
+    width: 100%;
+    height: 100%;
+}
+
+.openoAccordian_showHideArrow_show {
+    background-image: url(../images/openo.png);
+    background-position: -39px 0 !important;
+    box-shadow: inset 1px 0 0 #e5e5e5, inset -1px 0 0 #e5e5e5;
+}
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/css/VMMain.css b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/css/VMMain.css
new file mode 100644
index 0000000..a1c0866
--- /dev/null
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/css/VMMain.css
@@ -0,0 +1,758 @@
+/* Copyright 2016, Huawei Technologies Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file 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.
+ */
+
+body {
+    font-family: '微软雅黑';
+    font-size: 12px;
+    color: #333;
+    background: #fafafa;
+}
+
+button {
+    outline: none;
+}
+
+ul, li {
+    list-style: none;
+    padding: 0;
+    margin: 0;
+}
+
+.titleFont {
+    font-size: 16px;
+}
+
+.separator-line {
+    height: 1px;
+    width: 100%;
+    border: 1px solid #ddd;
+    margin: 6px 0 15px 0;
+}
+
+.uploadBtn {
+    overflow: hidden;
+}
+
+.creat-btn {
+    padding: 0 14px;
+    height: 24px;
+    float: left;
+    cursor: pointer;
+    text-decoration: none;
+    outline: 0;
+    border: 1px solid #d3d3d3;
+    text-align: center;
+    box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
+    background: #fafafa;
+    background: -moz-linear-gradient(top, #fff, #fafafa);
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(100%, #fafafa));
+    background: -webkit-linear-gradient(top, #fff, #fafafa);
+    background: linear-gradient(to bottom, #fff, #fafafa);
+    border-radius: 6px;
+    background: #fff url(../images/add.png) no-repeat 5px center;
+    padding-left: 20px;
+}
+
+.creat-btn:hover {
+    color: #009ae7;
+    border: 1px solid #4AC9FF
+}
+
+.creat-btn:active {
+    color: #000;
+    border: 1px solid #4AC9FF
+}
+
+/*.creat-btn{
+    background: #fff url(../image/add.png) no-repeat 5px center;
+    border: 1px solid #ddd;
+    float: left;
+}
+.creat-btn:hover{
+    background: #428bca;
+    color: #fff;
+    border:1px solid #428bca;
+}*/
+.search {
+    width: 310px;
+    height: 30px;
+    float: right;
+}
+
+.search-text {
+    width: 250px;
+    float: left;
+    margin-right: 6px;
+}
+
+.search-btn {
+    height: 30px;
+    background: #fff;
+    border: 1px solid #ddd;
+    float: left;
+}
+
+#ict_virtualApplication_table_div {
+    margin-top: 15px;
+}
+
+.table > thead > tr.active > th {
+    border: 1px solid #ddd !important;
+    border-bottom: 0;
+    background: #f0f0f0;
+}
+
+/*.table tbody tr:hover{
+    background: #e6fbe0!important;
+}*/
+.table tbody tr:last-child {
+    border-bottom: 1px solid #ddd;
+}
+
+.table-btn {
+    border: 1px solid #ccc;
+    border-radius: 3px;
+}
+
+.delete-btn {
+    background: url(../image/delete.png) no-repeat;
+    width: 16px;
+    height: 16px;
+    border: none;
+}
+
+.detail-btn {
+    background: url(../image/openo.png) no-repeat -343px -283px;
+    width: 16px;
+    height: 16px;
+    border: none;
+}
+
+.detail-btn.current {
+    background-position: -7px -314px;
+}
+
+.detail {
+    height: 200px;
+    border: 1px solid #ddd;
+    margin-top: 60px;
+}
+
+.detail-top ul {
+    height: 50px;
+    line-height: 50px;
+    border-bottom: 1px solid #ddd;
+    padding-left: 0px;
+    background: #fafafa;
+}
+
+.detail-top ul li {
+    float: left;
+    width: 120px;
+    text-align: center;
+    border-right: 1px solid #ddd;
+    cursor: pointer;
+}
+
+.detail-top ul li.current {
+    background: #fff;
+}
+
+.vmapp-margin {
+    margin-bottom: 10px;
+}
+
+.control-label .required {
+    color: #e02222;
+    font-size: 12px;
+    padding-left: 2px;
+}
+
+.form-group .control-label {
+    font-size: 12px;
+    font-weight: 400;
+}
+
+legend {
+    font-size: 12px;
+    font-weight: bold;
+}
+
+.pageGro {
+    width: 250px;
+    float: right;
+}
+
+.pageUp, .pageDown, .pageList, .pageList li {
+    float: left;
+    cursor: pointer;
+}
+
+.pageUp, .pageDown {
+    width: 60px;
+    height: 30px;
+    border: 1px solid #ddd;
+    text-align: center;
+    line-height: 30px;
+}
+
+.pageList li {
+    width: 30px;
+    height: 30px;
+    border: 1px solid #ddd;
+    text-align: center;
+    line-height: 30px;
+    border-left: none;
+}
+
+.pageList li.active {
+    background: #428bca;
+    color: #fff;
+    border-color: #428bca;
+}
+
+.pageDown {
+    border-left: none;
+}
+
+.headerLinkP {
+    padding-top: 17px;
+}
+
+.headerLinkP span {
+    font-size: 12px;
+    color: #666;
+    font-weight: normal !important;
+}
+
+label {
+    font-weight: normal !important;
+}
+
+table.userform tbody tr td {
+    display: table-cell;
+    padding-right: 10px;
+    padding-top: 10px;
+    font-size: 12px;
+    color: #333;
+}
+
+.table th, .table td {
+    padding-top: 3px !important;
+    padding-bottom: 3px !important;
+}
+
+.openoBrowseButton_element {
+    display: table;
+}
+
+.openo {
+    font-family: "Microsoft Yahei", SimSun, Arial, Tahoma;
+    font-size: 12px;
+    color: #000;
+}
+
+.openoBrowseButton_input {
+    width: 198px;
+    position: relative;
+    border: 1px solid #c3c3c3 !important;
+    height: 26px;
+    background-color: #f3f3f3;
+    border-radius: 4px 0 0 4px;
+    border-right: none;
+    padding: 0;
+}
+
+.buttonClassDefault, .buttonClassDefault:active {
+    cursor: pointer;
+    background-image: url(../images/openo.png);
+    background-position: -154px -7px !important;
+}
+
+.openoBrowseButton_button {
+    width: 27px;
+    border: 0;
+    float: right;
+    position: relative;
+    height: 26px;
+    right: 0;
+    top: 0;
+    border-radius: 0 4px 4px 0;
+    border-right: 1px solid #c3c3c3;
+    border-left: none;
+}
+
+.openo .openo-input, .openo.openo-input {
+    outline: 0;
+    border: 1px solid #c3c3c3;
+    box-shadow: 1px 1px #f6f6f6 inset;
+    background-color: #fff;
+    height: 26px;
+}
+
+.openoInput_openoDefaultText {
+    padding: 0 0 0 6px;
+    border-radius: 4px;
+    color: #000;
+    display: inline-block;
+    outline: 0;
+    box-shadow: 1px 1px #f6f6f6 inset;
+    font-size: 12px;
+    background: #fff;
+}
+
+div.openo-select {
+    border: 1px solid #c3c3c3;
+    border-radius: 4px;
+    background: url(../images/arrow-down-enable.png) right no-repeat #fff;
+    line-height: 24px;
+    padding-left: 3px;
+    display: block;
+}
+
+div.openo-select > input.openo-select-input {
+    border: none;
+    outline: 0;
+    line-height: 21px;
+    height: 21px;
+    padding-left: 3px;
+    border-right: solid 1px #c3c3c3;
+}
+
+.openo .openo-ellipsis, .openo.openo-ellipsis {
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
+
+a.openoButton_buttonClass, a.openoButton_buttonDisableClass, div.openoButton_buttonClass, div.openoButton_buttonDisableClass {
+    height: 26px;
+    float: left;
+    cursor: pointer;
+    text-decoration: none;
+    outline: 0;
+    border: 1px solid #d3d3d3;
+    text-align: center;
+    box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
+    background: #fafafa;
+    background: -moz-linear-gradient(top, #fff, #fafafa);
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(100%, #fafafa));
+    background: -webkit-linear-gradient(top, #fff, #fafafa);
+    background: linear-gradient(to bottom, #fff, #fafafa);
+    border-radius: 6px;
+}
+
+.openoButton_buttonInnerClass {
+    padding: 0 19px;
+    border-radius: 6px;
+}
+
+.openoButton_buttonCenterText {
+    color: #000;
+    line-height: 24px;
+    white-space: nowrap;
+    width: auto !important;
+}
+
+.userHeader {
+    clear: left;
+    overflow: hidden;
+    margin-bottom: 10px;
+    padding: 10px 10px 0px 0px;
+}
+
+.openoButton_buttonGroupClass {
+    display: inline;
+}
+
+.openoButton_buttonGroupClass div.openoButton_buttonClass_parent:first-child {
+    margin-left: 0;
+}
+
+.openoButton_buttonLeftImg {
+    margin-right: 5px;
+}
+
+.openoButton_buttonLeftImg, .openoButton_buttonRightImg {
+    display: inline-block;
+    vertical-align: top;
+    width: 16px;
+    height: 16px;
+    margin-top: 4px;
+}
+
+.openo-table-pagination-wrapper {
+    height: 37px;
+}
+
+.openo-pagination {
+    display: block;
+    float: left;
+    overflow: hidden;
+    padding: 5px 0 0;
+    margin-top: 8px;
+}
+
+.openoPagination_openoPaginationLengthOptions:not(msie8) {
+    line-height: 24px;
+}
+
+.openoPagination_openoPaginationLengthOptions {
+    white-space: normal;
+    height: 24px;
+    float: left;
+    outline: 0;
+    line-height: 20px;
+    margin: 0 5px;
+}
+
+.openo-pagination-select {
+    height: 26px;
+    line-height: 22px;
+    text-align: center;
+    margin-right: -2px;
+    border: 1px solid #e0e0e0;
+    border-radius: 5px 0 0 5px;
+    padding: 1px;
+}
+
+.openoPagination_openoPaginationLengthOptions span {
+    background-color: #fff !important;
+}
+
+.openo-pagination-theme a, .openo-pagination-theme span {
+    float: left;
+    color: #666;
+    font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif;
+    line-height: 24px;
+    font-weight: 400;
+    text-align: center;
+    border: 1px solid #e0e0e0;
+    text-decoration: none !important;
+    padding: 0 7px;
+    border-radius: 3px;
+    background: #fff;
+}
+
+.openo-pagination-selectspan {
+    background: url(../images/ideo_default_select.png) left no-repeat !important;
+    float: right !important;
+    width: 26px;
+    height: 26px;
+    cursor: pointer;
+}
+
+.openo-pagination-theme label {
+    padding-top: 6px;
+    vertical-align: middle;
+    margin-right: 20px;
+    margin-top: -1px;
+    float: left;
+    display: inline-block;
+    height: 20px;
+    font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif;
+}
+
+.openo-pagination li, .openo-pagination ul {
+    list-style: none;
+    padding: 0;
+    margin: 0;
+    float: left;
+}
+
+dd, dl, dt, li {
+    color: #000;
+}
+
+.openo-pagination-theme a, .openo-pagination-theme span.current {
+    margin: 0 5px 0 0;
+}
+
+.openo .openo-disabled, .openo.openo-disabled {
+    border-color: #c3c3c3 !important;
+    color: #666 !important;
+    opacity: .3;
+    filter: alpha(opacity=30);
+}
+
+.openo-pagination-theme .prev {
+    background: 0 0;
+    float: left;
+}
+
+.openo-pagination-theme .current {
+    text-decoration: none !important;
+    float: left;
+    padding-left: 6px;
+    height: 24px;
+    color: #fff;
+    display: inline;
+    border-color: #00adf5;
+    background: #4ad2ff;
+}
+
+.openo-pagination-theme a, .openo-pagination-theme span {
+    float: left;
+    color: #666;
+    font: 12px Lucida Grande, Verdana, Arial, Helvetica, sans-serif;
+    line-height: 24px;
+    font-weight: 400;
+    text-align: center;
+    border: 1px solid #e0e0e0;
+    text-decoration: none !important;
+    padding: 0 7px;
+    border-radius: 3px;
+    background: #fff;
+}
+
+.openo-pagination-theme .prev.openo-disabled:before {
+    background: url(../images/page_left_disabled.png) 50% 45% no-repeat;
+}
+
+.openo-pagination-theme .prev.openo-disabled:before {
+    background: url(../images/page_left_disabled.png) 50% 45% no-repeat;
+}
+
+.openo-pagination-theme .prev:before {
+    background: url(../images/page_l.png) 50% 45% no-repeat;
+}
+
+.openo-pagination-theme .next:after, .openo-pagination-theme .prev:before {
+    display: inline-block;
+    content: "";
+    vertical-align: middle;
+    width: 10px;
+    height: 24px;
+}
+
+.openo-pagination-theme .prev:before {
+    background: url(../images/page_l.png) 50% 45% no-repeat;
+}
+
+.openo-pagination-theme .next:after, .openo-pagination-theme .prev:before {
+    display: inline-block;
+    content: "";
+    vertical-align: middle;
+    width: 10px;
+    height: 24px;
+}
+
+pagination ul {
+    list-style: none;
+    padding: 0;
+    margin: 0;
+    float: left;
+}
+
+.openo-pagination li, .openo-pagination ul {
+    list-style: none;
+    padding: 0;
+    margin: 0;
+    float: left;
+}
+
+.openoPagination_gototext {
+    background: #FFF;
+    outline: 0;
+    width: 29px;
+    float: left;
+    height: 26px;
+    line-height: 24px;
+    border-radius: 4px;
+    border: 1px solid #c3c3c3;
+    padding: 0 0 0 5px;
+    margin: 0;
+    color: #666;
+    min-width: 50px;
+}
+
+.openoPagination_gotoimage {
+    width: 29px;
+    height: 26px;
+    line-height: 26px;
+    background-color: #FFF;
+    background-image: url(/portal/themes/default/components/openo/images/openo.png);
+    padding-left: 21px;
+    float: left;
+    margin-left: 5px;
+    border: 1px solid #e0e0e0;
+    border-radius: 4px;
+    box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    background-position: -184px -181px !important;
+}
+
+.openo-pagination-theme .ellipse {
+    float: left;
+    margin-left: -8px;
+    margin-right: -4px;
+    background: 0 0;
+    border: none;
+    border-radius: 0;
+    box-shadow: none;
+    font-weight: 700;
+    cursor: default;
+}
+
+.openo.openo-disabled {
+    border-color: #c3c3c3 !important;
+    color: #666 !important;
+    opacity: .3;
+    filter: alpha(opacity=30);
+}
+
+.openo-pagination-theme .prev {
+    background: 0 0;
+    float: left;
+}
+
+.openo-pagination-theme .current {
+    text-decoration: none !important;
+    float: left;
+    padding-left: 6px;
+    height: 26px;
+    color: #fff;
+    display: inline;
+    /*border-color: #00adf5;
+    background: #4ad2ff;*/
+    border: 1px solid #e0e0e0;
+}
+
+.openo-pagination-theme .next:after {
+    background: url(../images/page_r.png) 50% 45% no-repeat;
+}
+
+.openoButton_buttonGroupClass div.openoButton_buttonClass_parent, .openoButton_buttonRightImg {
+    margin-left: 5px;
+}
+
+html, body {
+    height: 99%;
+    width: 98%;
+}
+
+.cotentBody {
+    padding: 0px 20px 0px 20px;
+}
+
+div.openoButton_buttonClass:hover {
+    border: 1px solid #4ac9ff;
+}
+
+div.openoButton_button_default:hover .openoButton_buttonCenterText {
+    color: #009ae7;
+}
+
+.header_lineimg {
+    height: 1px;
+    width: 100%;
+    margin-top: 17px;
+}
+
+.openo.openo-hide {
+    display: none;
+}
+
+div.openo-select-popup-container {
+    position: absolute;
+    border: 1px solid #4ac9ff;
+    border-top: none;
+    border-radius: 0 0 4px 4px;
+    max-height: 202px;
+    overflow-y: auto;
+    background-color: #fff;
+    z-index: 880;
+}
+
+div.openo-select-popup-container > div.openo-select-item {
+    display: block;
+}
+
+.openo .openo-ellipsis, .openo.openo-ellipsis {
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
+
+div.openo-select-popup-container > div.openo-select-item > label {
+    padding-top: 3px;
+    padding-bottom: 3px;
+    line-height: 20px;
+}
+
+.openo .openo-ellipsis, .openo.openo-ellipsis {
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
+
+.openo-select-item label {
+    margin-left: 4px;
+    margin-right: 4px;
+    white-space: nowrap;
+}
+
+div.openo-select-popup-container > div.openo-select-item.openo-item-selected, div.openo-select-popup-container > div.openo-select-item:hover {
+    background-color: #f1f1f1;
+    color: #008fd6;
+}
+
+div.openo-select.openo-focus {
+    border: 1px solid #4ac9ff;
+    border-bottom-left-radius: 0;
+    border-bottom-right-radius: 0;
+    border-bottom-color: #ddd;
+}
+
+.openo-pagination-theme a:hover {
+    border-color: #4ac9ff;
+    cursor: pointer;
+}
+
+.SDBtn {
+    background: #fff;
+    color: #333;
+    border: 1px solid #ddd;
+}
+
+.SDBtn:hover {
+    color: #009ae7;
+    border: 1px solid #4AC9FF
+}
+
+table tbody tr.even:hover td, table tbody tr.odd:hover td {
+    background-color: #e6fbe0;
+}
+
+table tr.openoTable_row_selected td {
+    background: #e8f8fe !important;
+    border-bottom: 1px solid #e8e8e8 !important;
+}
+
+.modal-body {
+    padding: 0 !important;
+}
+
+.form-control {
+    height: 26px !important;
+}
+
+.form-group .control-label {
+    margin-left: 20px;
+}
+
+.form-horizontal .control-label {
+    text-align: left;
+}
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/css/bootstrap-table.min.css b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/css/bootstrap-table.min.css
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/css/bootstrap-table.min.css
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/css/bootstrap-table.min.css
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/css/bootstrap.min.css b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/css/bootstrap.min.css
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/css/bootstrap.min.css
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/css/bootstrap.min.css
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/License.txt b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/License.txt
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/License.txt
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/License.txt
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/add.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/add.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/add.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/add.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/arrow-down-enable.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/arrow-down-enable.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/arrow-down-enable.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/arrow-down-enable.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/collapse_arrow.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/collapse_arrow.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/collapse_arrow.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/collapse_arrow.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/delete.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/delete.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/delete.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/delete.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/edit.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/edit.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/edit.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/edit.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/expand_arrow.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/expand_arrow.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/expand_arrow.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/expand_arrow.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/ideo_default_select.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/ideo_default_select.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/ideo_default_select.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/ideo_default_select.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/import.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/import.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/import.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/import.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/line.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/line.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/line.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/line.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/loading-spinner-grey.gif b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/loading-spinner-grey.gif
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/loading-spinner-grey.gif
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/loading-spinner-grey.gif
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/openo.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/openo.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/openo.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/openo.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/page_l.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/page_l.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/page_l.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/page_l.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/page_left_disabled.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/page_left_disabled.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/page_left_disabled.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/page_left_disabled.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/page_r.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/page_r.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/page_r.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/page_r.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/sort_asc.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/sort_asc.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/sort_asc.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/sort_asc.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/sort_both.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/sort_both.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/sort_both.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/sort_both.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/images/sort_desc.png b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/sort_desc.png
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/images/sort_desc.png
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/images/sort_desc.png
Binary files differ
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/js/bootstrap-table.min.js b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/js/bootstrap-table.min.js
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/js/bootstrap-table.min.js
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/js/bootstrap-table.min.js
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/js/bootstrap.min.js b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/js/bootstrap.min.js
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/js/bootstrap.min.js
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/js/bootstrap.min.js
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/js/brs.js b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/js/brs.js
new file mode 100644
index 0000000..90489c5
--- /dev/null
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/js/brs.js
@@ -0,0 +1,342 @@
+/* Copyright 2016, Huawei Technologies Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file 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.
+ */
+
+$('.siteDeleteImg').click(function () {
+    var data = $(this).parent().parent().parent().find('td:last').find('div:last').html();
+    alert(data);
+    var jsonObj = JSON.parse(data);
+    for (var i = 0; i < jsonObj.length; i++) {
+        var obj = jsonObj[i];
+        var rowData = [obj.tpName, obj.peName, obj.vlanId, obj.siteCidr, obj.ip];
+        $('#underlayTpDataTable').DataTable();
+        $('#underlayTpDataTable').dataTable().fnAddData(rowData);
+    }
+});
+
+
+function deleteSite(objectId) {
+    var requestUrl = "/openoapi/sdnobrs/v1/sites/" + objectId;
+    $
+        .ajax({
+            type: "DELETE",
+            url: requestUrl,
+            contentType: "application/json",
+            success: function (jsonobj) {
+                $('#site').bootstrapTable('remove', {
+                    field: 'id',
+                    values: [objectId]
+                });
+                alert("Delete Site successfull !!!");
+            },
+            error: function (xhr, ajaxOptions, thrownError) {
+                alert("Error on deleting site: " + xhr.responseText);
+            }
+        });
+}
+function deleteLink(objectId) {
+    var requestUrl = "/openoapi/sdnobrs/v1/topological-links/" + objectId;
+    $
+        .ajax({
+            type: "DELETE",
+            url: requestUrl,
+            contentType: "application/json",
+            success: function (jsonobj) {
+                $('#link').bootstrapTable('remove', {
+                    field: 'id',
+                    values: [objectId]
+                });
+                alert("Delete Link successfull !!!");
+            },
+            error: function (xhr, ajaxOptions, thrownError) {
+                alert("Error on deleting link : " + xhr.responseText);
+            }
+        });
+}
+
+function deleteNe(objectId) {
+    var requestUrl = "/openoapi/sdnobrs/v1/managed-elements/" + objectId;
+    $
+        .ajax({
+            type: "DELETE",
+            url: requestUrl,
+            contentType: "application/json",
+            success: function (jsonobj) {
+                $('#ne').bootstrapTable('remove', {
+                    field: 'id',
+                    values: [objectId]
+                });
+                alert("Delete NE successfull !!!");
+            },
+            error: function (xhr, ajaxOptions, thrownError) {
+                alert("Error on deleting ne : " + xhr.responseText);
+            }
+        });
+}
+
+function deletePort(objectId) {
+    var requestUrl = "/openoapi/sdnobrs/v1/logical-termination-points/" + objectId;
+    $
+        .ajax({
+            type: "DELETE",
+            url: requestUrl,
+            contentType: "application/json",
+            success: function (jsonobj) {
+                $('#port').bootstrapTable('remove', {
+                    field: 'id',
+                    values: [objectId]
+                });
+                alert("Delete Port successfull !!!");
+            },
+            error: function (xhr, ajaxOptions, thrownError) {
+                alert("Error on deleting port : " + xhr.responseText);
+            }
+        });
+}
+function loadSiteData() {
+    var requestUrl = "/openoapi/sdnobrs/v1/sites";
+    $
+        .ajax({
+            type: "GET",
+            url: requestUrl,
+            contentType: "application/json",
+            success: function (jsonobj) {
+                $('#site').bootstrapTable({
+                    data: jsonobj.sites
+                });
+            },
+            error: function (xhr, ajaxOptions, thrownError) {
+                alert("Error on getting site data : " + xhr.responseText);
+            }
+        });
+}
+function loadLinkData() {
+    var requestUrl = "/openoapi/sdnobrs/v1/topological-links";
+    $
+        .ajax({
+            type: "GET",
+            url: requestUrl,
+            contentType: "application/json",
+            success: function (jsonobj) {
+                $('#link').bootstrapTable({
+                    data: jsonobj.topologicalLinks
+                });
+            },
+            error: function (xhr, ajaxOptions, thrownError) {
+                alert("Error on getting link data : " + xhr.responseText);
+            }
+        });
+}
+function loadNeData() {
+    var requestUrl = "/openoapi/sdnobrs/v1/managed-elements";
+    $
+        .ajax({
+            type: "GET",
+            url: requestUrl,
+            contentType: "application/json",
+            success: function (jsonobj) {
+                $('#ne').bootstrapTable({
+                    data: jsonobj.managedElements
+                });
+            },
+            error: function (xhr, ajaxOptions, thrownError) {
+                alert("Error on getting ne data : " + xhr.responseText);
+            }
+        });
+}
+function loadPortData() {
+    var requestUrl = "/openoapi/sdnobrs/v1/logical-termination-points";
+    $
+        .ajax({
+            type: "GET",
+            url: requestUrl,
+            contentType: "application/json",
+            success: function (jsonobj) {
+                $('#port').bootstrapTable({
+                    data: jsonobj.logicalTerminationPoints
+                });
+            },
+            error: function (xhr, ajaxOptions, thrownError) {
+                alert("Error on getting port data : " + xhr.responseText);
+            }
+        });
+}
+$(function () {
+    $('.creat-btn').click(function () {
+        $('#vmAppDialog').addClass('in').css({'display': 'block'});
+
+    });
+    $('.close,.button-previous').click(function () {
+        $('#vmAppDialog').removeClass('in').css('display', 'none');
+    });
+    $('.detail-top ul li').click(function () {
+        $(this).addClass('current').siblings().removeClass('current');
+    });
+    $('.para').click(function () {
+        if ($('#serviceTemplateName').val() == '') {
+            alert('Please choose the service templet！');
+            $('#flavorTab').css('display', 'none');
+        } else {
+            $('#flavorTab').css('display', 'block');
+        }
+        $('#basicTab').css('display', 'block');
+    });
+    $('.basic').click(function () {
+        $('#flavorTab').css('display', 'none');
+    });
+
+    $('.table tbody tr').click(function () {
+        $(this).addClass('openoTable_row_selected').siblings().removeClass('openoTable_row_selected');
+    });
+    $('.table tr:odd').addClass('active');
+    $('#false').click(function () {
+        $('#vmAppDialog').addClass('in').css({'display': 'block'});
+    });
+    $('.close,.button-previous').click(function () {
+        $('#vmAppDialog').removeClass('in').css('display', 'none');
+    });
+    $('#filterTpLogicalType').click(function () {
+        $('#filterTpLogicalType_select_popupcontainer').toggleClass('openo-hide');
+        $('#filterTpLogicalType').toggleClass('openo-focus');
+        var oLeft = $('#open_base_tpL_td6').offset().left;
+        var oTop = $('#open_base_tpL_td6').offset().top;
+        var oHeight = $('#open_base_tpL_td6').height();
+        $('#filterTpLogicalType_select_popupcontainer').css({'left': oLeft, 'top': oTop + oHeight + 10});
+    });
+    $('div.openo-select-popup-container>div.openo-select-item>label').click(function () {
+        var Lvalue = $(this).html();
+        $('#filterTpLogicalType_select_input').attr('value', Lvalue);
+        $('#filterTpLogicalType_select_popupcontainer').addClass('openo-hide');
+        $('#filterTpLogicalType').removeClass('openo-focus');
+    });
+    $.fn.serializeObject = function () {
+        var o = {};
+        var a = this.serializeArray();
+        $.each(a, function () {
+            if (o[this.name] !== undefined) {
+                if (!o[this.name].push) {
+                    o[this.name] = [o[this.name]];
+                }
+                o[this.name].push(this.value || '');
+            } else {
+                o[this.name] = this.value || '';
+            }
+        });
+        return o;
+    };
+    $('#createSite').click(function () {
+        var formData = JSON.stringify($("#vmAppForm").serializeObject());
+        var jsonobj = JSON.parse(formData);
+        var newJson = {"site": jsonobj};
+        formData = JSON.stringify(newJson);
+        var requestUrl = "/openoapi/sdnobrs/v1/sites";
+        $
+            .ajax({
+                type: "POST",
+                url: requestUrl,
+                contentType: "application/json",
+                dataType: "json",
+                data: formData,
+                success: function (jsonResp) {
+                    alert("Site saved successfully!!!");
+                    jsonobj["id"] = jsonResp.site.id;
+                    $('#site').bootstrapTable("append", jsonobj);
+                    $('#vmAppDialog').removeClass('in').css('display', 'none');
+                },
+                error: function (xhr, ajaxOptions, thrownError) {
+                    alert("Error on page : " + xhr.responseText);
+                }
+            });
+    });
+
+    $('#createNe').click(function () {
+        var formData = JSON.stringify($("#neForm").serializeObject());
+        var jsonobj = JSON.parse(formData);
+        var newJson = {"managedElement": jsonobj};
+        formData = JSON.stringify(newJson);
+        var requestUrl = "/openoapi/sdnobrs/v1/managed-elements";
+        $
+            .ajax({
+                type: "POST",
+                url: requestUrl,
+                contentType: "application/json",
+                dataType: "json",
+                data: formData,
+                success: function (jsonResp) {
+                    alert("NE saved successfully!!!");
+                    jsonobj["id"] = jsonResp.managedElement.id;
+                    $('#ne').bootstrapTable("append", jsonobj);
+                    $('#vmAppDialog').removeClass('in').css('display', 'none');
+
+                },
+                error: function (xhr, ajaxOptions, thrownError) {
+                    alert("Error on page : " + xhr.responseText);
+                }
+            });
+    });
+
+    $('#createPort').click(function () {
+        var formData = JSON.stringify($("#portForm").serializeObject());
+        var jsonobj = JSON.parse(formData);
+        var newJson = {"logicalTerminationPoint": jsonobj};
+        formData = JSON.stringify(newJson);
+        var requestUrl = "/openoapi/sdnobrs/v1/logical-termination-points";
+        $
+            .ajax({
+                type: "POST",
+                url: requestUrl,
+                contentType: "application/json",
+                dataType: "json",
+                data: formData,
+                success: function (jsonResp) {
+                    alert("Port saved successfully!!!");
+                    //TODO : hide model data window.
+                    jsonobj["id"] = jsonResp.logicalTerminationPoint.id;
+                    $('#port').bootstrapTable("append", jsonobj);
+                    $('#vmAppDialog').removeClass('in').css('display', 'none');
+
+                },
+                error: function (xhr, ajaxOptions, thrownError) {
+                    alert("Error on page : " + xhr.responseText);
+                }
+            });
+    });
+
+    $('#createLink').click(function () {
+        var formData = JSON.stringify($("#linkForm").serializeObject());
+        var jsonobj = JSON.parse(formData);
+        var newJson = {"topologicalLink": jsonobj};
+        formData = JSON.stringify(newJson);
+        var requestUrl = "/openoapi/sdnobrs/v1/topological-links";
+        $
+            .ajax({
+                type: "POST",
+                url: requestUrl,
+                contentType: "application/json",
+                dataType: "json",
+                data: formData,
+                success: function (jsonResp) {
+                    alert("Link saved successfully!!!");
+                    jsonobj["id"] = jsonResp.topologicalLink.id;
+                    $('#link').bootstrapTable("append", jsonobj);
+                    $('#vmAppDialog').removeClass('in').css('display', 'none');
+
+                },
+                error: function (xhr, ajaxOptions, thrownError) {
+                    alert("Error on page : " + xhr.responseText);
+                }
+            });
+    });
+
+})
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/js/jquery-1.11.2.min.js b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/js/jquery-1.11.2.min.js
similarity index 100%
rename from openo-portal/portal-resmgr/src/main/webapp/resmgr/js/jquery-1.11.2.min.js
rename to openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/js/jquery-1.11.2.min.js
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/link.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/link.html
new file mode 100644
index 0000000..64458cd
--- /dev/null
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/link.html
@@ -0,0 +1,351 @@
+<!--
+
+    Copyright 2016, Huawei Technologies Co., Ltd.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file 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.
+
+-->
+
+<!DOCTYPE html>
+<html>
+<head>
+    <head lang="en">
+        <meta charset="UTF-8">
+        <title></title>
+        <link href="css/bootstrap.min.css" rel="stylesheet"/>
+        <link href="css/VMMain.css" rel="stylesheet"/>
+        <link href="css/bootstrap-table.min.css" rel="stylesheet"/>
+        <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
+        <script type="text/javascript" src="js/bootstrap.min.js"></script>
+        <script type="text/javascript" src="js/brs.js"></script>
+        <script type="text/javascript" src="js/bootstrap-table.min.js"></script>
+        <script type="text/javascript">
+            $(document).ready(function () {
+
+
+                var jsondata = loadLinkData();
+
+                $('#link').bootstrapTable({
+                    //Assigning data to table
+                    data: jsondata
+                });
+            });
+            function operateFormatter(value, row, index) {
+                return [
+                    '<img class="siteDeleteImg" src="images/delete.png" href="javascript:void(0)" style="cursor: pointer" name="title" title="Delete" />'
+                ].join('');
+
+            }
+            window.operateEvents = {
+                'click .siteDeleteImg': function (e, value, row, index) {
+                    // TO DO ajex call for delete
+                    deleteLink(row.id);
+                    console.log(value, row, index);
+                }
+            };
+        </script>
+    </head>
+<body id="open_base_site_cotentBody" class="cotentBody ng-scope">
+<div class="container-fluid ms-controller">
+
+    <div class="uploadBtn">
+        <div id="open_base_tpL_userHeader" class="userHeader">
+            <div id="open_base_tpL_buttonGroup" class="openoButton_buttonGroupClass">
+                <div class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass defaultbutton openoButton_button_default"
+                     tabindex="0" id="false" text="res.brApp_ui_res_btn_create" icon-url="./images/add.png"
+                     cls="defaultbutton" click="clickAdd"
+                     style="display: inline-block; padding-left: 0px; padding-right: 0px;">
+                    <div class="openoButton_buttonInnerClass openo-corner-all openoButton_Image" id="false_button"><span
+                            class="openo-widget-button-image openoButton_buttonLeftImg"
+                            style="background-image: url(images/add.png);"></span><span
+                            class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Create</span><span
+                            class="openo-widget-button-image openoButton_buttonImgDefault"></span></div>
+                </div>
+
+            </div>
+        </div>
+    </div>
+
+    <div class="row-fluid" data-name="table_zone">
+        <div id='ict_virtualApplication_table_div'>
+            <div>
+                <div class="top">
+                    <table id="link" data-pagination="true" data-page-size="5" data-pagination-first-text="First"
+                           data-pagination-pre-text="Previous" data-pagination-next-text="Next"
+                           data-pagination-last-text="Last">
+                        <thead id="link" class="openo-table-thead">
+                        <tr class="active">
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="name" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+											<span id="linkName_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip openoTable_sortable leftHeaderAlign  openo-table-disable-element ">Name
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="logicalType" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="link_aEnd_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Type
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="layerRate" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="link_layerRate_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Layer Rate
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="aEnd" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="link_aEnd_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Source Port
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="zEnd" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="link_zEnd_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Sink Port
+                                            </span>
+                                </div>
+                            </th>
+
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="aEndME" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="link_source_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Source NE
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="zEndME" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="link_source_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Sink NE
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="adminState" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="link_adminState_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Admin State
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="operState" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="link_operState_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Operating State
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="siteType" align="center" data-formatter="operateFormatter"
+                                data-events="operateEvents">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="link_latency_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Actions
+                                            </span>
+                                </div>
+                            </th>
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <!-- <tr style="display: none;">
+                            <td colspan="7" style="text-align: center;">NULL</td>
+                        </tr>
+                        <tr class="odd  openo-table-tr openo-table-disable-element" data-rowid="0" data-tableid="siteTable">
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor    " data-colid="siteName" data-tableid="siteTable">
+                                <div class="openo-table-disable-element overflow_elip leftDataAlign">
+                                    <a class="openo-table-disable-element hyperLinkRow" href="javascript:void(0)" id="siteTable_0_siteName_link">Link1</a></div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element">Type</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element">15</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element">8080</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element">1234</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element">NE</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element">UP</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element">UP</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteOperation" data-tableid="siteTable">
+                                <div class="openo-table-disable-element overflow_elip leftDataAlign openo-table-custom-el" id="siteTable_0_siteOperation_custom_el">
+                                <div>
+                                    <img src="images/delete.png" href="javascript:void(0)" onclick="deleteLink('this')"  opertype="siteDelete" style="cursor: pointer" title="Delete" id="bac4ff3c-d693-4f54-86cd-25af1ea22f59" rowid="0/">
+                                </div></div>
+                            </td>
+                        </tr> -->
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!-- <div id="tpListopenotable_pagination_wrapper" class="openo-table-pagination-wrapper" style="display: block;"><div class="pagination-container openo-pagination-theme openo-pagination"><div class="openoPagination_openoPaginationLengthOptions" id="tpListopenotable_wrapper_div"><input readonly="true" class="openo-pagination-select openopaginationselect" value="" id="tpListopenotable_wrapper_input" actualval="20" style="width: 32px;"><span class="openo-pagination-selectspan openopaginationselectspan" id="tpListopenotable_wrapper_trigger"></span></div><label style="display: block;float:left;">Total records: 23</label><li class="active"><span class="current prev openo-disabled" id="tpListopenotable_wrapper_prev">&nbsp;</span></li><ul><li class="active"><span class="current" id="tpListopenotable_wrapper_page_link_1">1</span></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_2">2</a></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_3">3</a></li><li><a class="page-link next" id="tpListopenotable_wrapper_next">&nbsp;</a></li></ul></div></div> -->
+
+    <div id="vmAppDialog" class="modal fade" tabindex="-1" role="dialog"
+         aria-labelledby="myModalLabel" aria-hidden="false">
+        <div class="modal-dialog">
+            <div class="modal-content">
+                <div class="content">
+                    <div class="modal-header">
+                        <button type="button" class="close" data-dismiss="modal"
+                                aria-hidden="true">×
+                        </button>
+                        <h4 class="modal-title" id="myModalLabel">
+                            <span>Create</span>
+                        </h4>
+                    </div>
+                    <form class="form-horizontal" role="form" id="linkForm">
+                        <div id="wizard">
+                            <div class="modal-body">
+                                <ul class="nav nav-pills nav-justified vmapp-margin">
+                                </ul>
+                                <div class="tab-content">
+                                    <div class="tab-pane active" id="basicTab">
+                                        <div class="form-group" ms-class="has-error:vmAppDialog.name==''">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Name</span>
+                                                <span class="required">*</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="name" name="name" class="form-control"/>
+                                            </div>
+                                        </div>
+                                        <div class="form-group">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Type</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <select class="form-control"
+                                                        style="padding-top: 0px;padding-bottom: 0px;" id="logicalType"
+                                                        name="logicalType">
+                                                    <option value="fiberLink">Fiber Link</option>
+                                                    <option value="l2Link">L2 Link</option>
+                                                    <option value="ipLink">IP Link</option>
+                                                    <option value="electricalLink">Electrical Link</option>
+                                                </select>
+                                            </div>
+                                        </div>
+                                        <div class="form-group" ms-class="has-error:vmAppDialog.name==''">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Layer Rate</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="layerRate" name="layerRate"
+                                                       class="form-control"/>
+                                            </div>
+                                        </div>
+
+
+                                        <div class="form-group" ms-class="has-error:vmAppDialog.name==''">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Source Port</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="aEnd" name="aEnd" class="form-control"/>
+                                            </div>
+                                        </div>
+                                        <div class="form-group" ms-class="has-error:vmAppDialog.name==''">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Sink Port</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="zEnd" name="zEnd" class="form-control"/>
+                                            </div>
+                                        </div>
+                                        <div class="form-group" ms-class="has-error:vmAppDialog.name==''">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Source NE</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="aEndMe" name="aEndME" class="form-control"/>
+                                            </div>
+                                        </div>
+                                        <div class="form-group" ms-class="has-error:vmAppDialog.name==''">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Sink NE</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="zEndMe" name="zEndME" class="form-control"/>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="modal-footer">
+                                <button type="button" class="btn SDBtn" data-dismiss="modal" aria-hidden="true"
+                                        id="createLink">
+                                    <span id="nfv-virtualApplication-iui-text-cancelBtn">OK</span>
+                                </button>
+                                <button type="button" class="btn button-previous SDBtn">
+                                    <span id="nfv-virtualApplication-iui-text-previousBtn">Cancel</span>
+                                </button>
+
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<div id="filterTpLogicalType_select_popupcontainer" class="openo openo-select-popup-container openo-hide"
+     style="width: 155px; max-height: 130px; left: 628px; top: 104px; z-index: 1761;">
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_0"><label
+            class="openo-ellipsis openo-select-blank-item" style="width: 100%; display: block; height: 20px;"></label>
+    </div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_1"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">ETH</label></div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_2"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;" title="POS">POS</label></div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_3"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Trunk</label></div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_4"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Loopback</label></div>
+</div>
+
+
+</body>
+</html>
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/ne.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/ne.html
new file mode 100644
index 0000000..56e2aa7
--- /dev/null
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/ne.html
@@ -0,0 +1,340 @@
+<!--
+
+    Copyright 2016, Huawei Technologies Co., Ltd.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file 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.
+
+-->
+
+<!DOCTYPE html>
+<html>
+<head>
+    <head lang="en">
+        <meta charset="UTF-8">
+        <title></title>
+        <link href="css/bootstrap.min.css" rel="stylesheet"/>
+        <link href="css/VMMain.css" rel="stylesheet"/>
+        <link href="css/bootstrap-table.min.css" rel="stylesheet"/>
+        <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
+        <script type="text/javascript" src="js/bootstrap.min.js"></script>
+        <script type="text/javascript" src="js/brs.js"></script>
+        <script type="text/javascript" src="js/bootstrap-table.min.js"></script>
+        <script type="text/javascript">
+            $(document).ready(function () {
+                var jsondata = [];
+                jsondata = loadNeData();
+                $('#ne').bootstrapTable({
+                    //Assigning data to table
+                    data: jsondata
+                });
+
+            });
+            function operateFormatter(value, row, index) {
+                return [
+                    '<img class="siteDeleteImg" src="images/delete.png" href="javascript:void(0)" style="cursor: pointer" name="title" title="Delete" />'
+                ].join('');
+
+            }
+            window.operateEvents = {
+                'click .siteDeleteImg': function (e, value, row, index) {
+                    // TO DO ajex call for delete
+                    var result = deleteNe(row.id, row);
+                }
+            };
+
+        </script>
+    </head>
+<body id="open_base_site_cotentBody" class="cotentBody ng-scope">
+<div class="container-fluid ms-controller">
+
+
+    <div class="uploadBtn">
+        <div id="open_base_tpL_userHeader" class="userHeader">
+            <div id="open_base_tpL_buttonGroup" class="openoButton_buttonGroupClass">
+                <div class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass defaultbutton openoButton_button_default"
+                     tabindex="0" id="false" text="res.brApp_ui_res_btn_create" icon-url="./images/add.png"
+                     cls="defaultbutton" click="clickAdd"
+                     style="display: inline-block; padding-left: 0px; padding-right: 0px;">
+                    <div class="openoButton_buttonInnerClass openo-corner-all openoButton_Image" id="false_button"><span
+                            class="openo-widget-button-image openoButton_buttonLeftImg"
+                            style="background-image: url(images/add.png);"></span><span
+                            class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Create</span><span
+                            class="openo-widget-button-image openoButton_buttonImgDefault"></span></div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <div class="row-fluid" data-name="table_zone">
+        <div id='ict_virtualApplication_table_div'>
+            <div>
+                <div class="top">
+                    <table id="ne" data-row-style="rowStyle" data-pagination="true" data-page-size="5"
+                           data-pagination-first-text="First" data-pagination-pre-text="Previous"
+                           data-pagination-next-text="Next" data-pagination-last-text="Last">
+                        <thead class="openo-table-thead">
+                        <tr class="active">
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="name" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+											<span class="openo-table-th-sorticon overflow_elip openoTable_sortable leftHeaderAlign  openo-table-disable-element ">Name
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="version" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="ne_isVersion_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Version
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="productName" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="neproductName_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Product Name
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="ipAddress" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="ne_ipAddress_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">IP Address
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="neRole" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="ne_neRole_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element0">NE Role
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="adminState">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="ne_adminState_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Admin State
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                data-field="operState" data-sortable="true">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="ne_operState_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Operating State
+                                            </span>
+                                </div>
+                            </th>
+                            <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                                align="center" data-formatter="operateFormatter" data-events="operateEvents">
+                                <div class="openo-table-th-border"></div>
+                                <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="ne_nativeID_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Actions
+                                            </span>
+                                </div>
+                            </th>
+                        </tr>
+                        </thead>
+                        <!-- <tbody>
+                            <tr style="display: none;">
+                                <td colspan="7" style="text-align: center;">NULL</td>
+                            </tr>
+                            <tr class="odd  openo-table-tr openo-table-disable-element" data-rowid="0" data-tableid="siteTable">
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor    " data-colid="siteName" data-tableid="siteTable">
+                                    <div class="openo-table-disable-element overflow_elip leftDataAlign">
+                                        <a class="openo-table-disable-element hyperLinkRow" href="javascript:void(0)" id="siteTable_0_siteName_link">NE</a></div>
+                                </td>
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">1.1</div>
+                                </td>
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">SDN</div>
+                                </td>
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">192.168.100.102</div>
+                                </td>
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">Role</div>
+                                </td>
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">Admin</div>
+                                </td>
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">UP</div>
+                                </td>
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteOperation" data-tableid="siteTable">
+                                    <div class="openo-table-disable-element overflow_elip leftDataAlign openo-table-custom-el" id="siteTable_0_siteOperation_custom_el">
+                                        <div>
+                                        <img src="images/delete.png" href="javascript:void(0)" onclick="deleteNe('this');" opertype="siteDelete" style="cursor: pointer" title="Delete" id="bac4ff3c-d693-4f54-86cd-25af1ea22f59" rowid="0/">
+                                        </div>
+                                    </div>
+                                </td>
+                            </tr>
+                            <tr class="even  openo-table-tr openo-table-disable-element" data-rowid="0" data-tableid="siteTable">
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor    " data-colid="siteName" data-tableid="siteTable">
+                                    <div class="openo-table-disable-element overflow_elip leftDataAlign">
+                                        <a class="openo-table-disable-element hyperLinkRow" href="javascript:void(0)" id="siteTable_0_siteName_link">NE</a></div>
+                                </td>
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">1.1</div>
+                                </td>
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">SDN</div>
+                                </td>
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">192.168.100.102</div>
+                                </td>
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">Role</div>
+                                </td>
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">Admin</div>
+                                </td>
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
+                                    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">UP</div>
+                                </td>
+                                <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteOperation" data-tableid="siteTable">
+                                    <div class="openo-table-disable-element overflow_elip leftDataAlign openo-table-custom-el" id="siteTable_0_siteOperation_custom_el">
+                                        <div>
+                                        <img src="images/delete.png" href="javascript:void(0)" onclick="deleteNe('this');" opertype="siteDelete" style="cursor: pointer" title="Delete" id="bac4ff3c-d693-4f54-86cd-25af1ea22f59" rowid="0/">
+                                        </div>
+                                    </div>
+                                </td>
+                            </tr>
+                        </tbody> -->
+                    </table>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!-- <div id="tpListopenotable_pagination_wrapper" class="openo-table-pagination-wrapper" style="display: block;"><div class="pagination-container openo-pagination-theme openo-pagination"><div class="openoPagination_openoPaginationLengthOptions" id="tpListopenotable_wrapper_div"><input readonly="true" class="openo-pagination-select openopaginationselect" value="" id="tpListopenotable_wrapper_input" actualval="20" style="width: 32px;"><span class="openo-pagination-selectspan openopaginationselectspan" id="tpListopenotable_wrapper_trigger"></span></div><label style="display: block;float:left;">Total records: 23</label><li class="active"><span class="current prev openo-disabled" id="tpListopenotable_wrapper_prev">&nbsp;</span></li><ul><li class="active"><span class="current" id="tpListopenotable_wrapper_page_link_1">1</span></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_2">2</a></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_3">3</a></li><li><a class="page-link next" id="tpListopenotable_wrapper_next">&nbsp;</a></li></ul></div></div> -->
+
+    <div id="vmAppDialog" class="modal fade" tabindex="-1" role="dialog"
+         aria-labelledby="myModalLabel" aria-hidden="false">
+        <div class="modal-dialog">
+            <div class="modal-content">
+                <div class="content">
+                    <div class="modal-header">
+                        <button type="button" class="close" data-dismiss="modal"
+                                aria-hidden="true">×
+                        </button>
+                        <h4 class="modal-title" id="myModalLabel">
+                            <span>Create</span>
+                        </h4>
+                    </div>
+                    <form class="form-horizontal" role="form" id="neForm">
+                        <div id="wizard">
+                            <div class="modal-body">
+                                <ul class="nav nav-pills nav-justified vmapp-margin">
+
+                                </ul>
+                                <div class="tab-content">
+                                    <div class="tab-pane active" id="basicTab">
+                                        <div class="form-group" ms-class="has-error:vmAppDialog.name==''">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Name</span>
+                                                <span class="required">*</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="name" name="name" class="form-control"
+                                                       placeholder="Name"/>
+                                            </div>
+                                        </div>
+                                        <div class="form-group" ms-class="has-error:vmAppDialog.name==''">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Version</span>
+                                                <span class="required">*</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="version" name="version" class="form-control"
+                                                       placeholder="1.1"/>
+                                            </div>
+                                        </div>
+                                        <div class="form-group">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Product Name</span>&nbsp;&nbsp;&nbsp;
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="productName" name="productName"
+                                                       class="form-control" placeholder="Product Name"/>
+                                            </div>
+                                        </div>
+                                        <div class="form-group">
+                                            <label class="col-sm-3 control-label">
+                                                <span>IP Address</span>&nbsp;&nbsp;&nbsp;
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="ipAddress" name="ipAddress" class="form-control"
+                                                       placeholder="255.255.255.255"/>
+                                            </div>
+                                        </div>
+                                        <!-- TODO : check for valid neRole
+                                        <div class="form-group">
+                                            <label class="col-sm-3 control-label">
+                                                <span>NE Role</span>&nbsp;&nbsp;&nbsp;
+                                            </label>
+                                             <div class="col-sm-7">
+                                                <input type="text" id="neRole" name="neRole" class="form-control" placeholder="Role"/>
+                                            </div>
+                                        </div>
+                                        -->
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="modal-footer">
+                                <button type="button" class="btn SDBtn" data-dismiss="modal" aria-hidden="true"
+                                        id="createNe">
+                                    <span id="nfv-virtualApplication-iui-text-cancelBtn">OK</span>
+                                </button>
+                                <button type="button" class="btn button-previous SDBtn">
+                                    <span id="nfv-virtualApplication-iui-text-previousBtn">Cancel</span>
+                                </button>
+
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<div id="filterTpLogicalType_select_popupcontainer" class="openo openo-select-popup-container openo-hide"
+     style="width: 155px; max-height: 130px; left: 628px; top: 104px; z-index: 1761;">
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_0"><label
+            class="openo-ellipsis openo-select-blank-item" style="width: 100%; display: block; height: 20px;"></label>
+    </div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_1"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">ETH</label></div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_2"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;" title="POS">POS</label></div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_3"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Trunk</label></div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_4"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Loopback</label></div>
+</div>
+
+
+</body>
+</html>
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/port.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/port.html
new file mode 100644
index 0000000..73358cc
--- /dev/null
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/port.html
@@ -0,0 +1,351 @@
+<!--
+
+    Copyright 2016, Huawei Technologies Co., Ltd.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file 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.
+
+-->
+
+<!DOCTYPE html>
+<html>
+<head>
+    <head lang="en">
+        <meta charset="UTF-8">
+        <title></title>
+        <link href="css/bootstrap.min.css" rel="stylesheet"/>
+        <link href="css/VMMain.css" rel="stylesheet"/>
+        <link href="css/bootstrap-table.min.css" rel="stylesheet"/>
+        <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
+        <script type="text/javascript" src="js/bootstrap.min.js"></script>
+        <script type="text/javascript" src="js/brs.js"></script>
+        <script type="text/javascript" src="js/bootstrap-table.min.js"></script>
+        <script type="text/javascript">
+            $(document).ready(function () {
+
+                var jsondata = [];
+                jsondata = loadPortData();
+
+                $('#port').bootstrapTable({
+                    //Assigning data to table
+                    data: jsondata
+                });
+            });
+            function operateFormatter(value, row, index) {
+                return [
+                    '<img class="siteDeleteImg" src="images/delete.png" href="javascript:void(0)" style="cursor: pointer" name="title" title="Delete" />'
+                ].join('');
+
+            }
+            window.operateEvents = {
+                'click .siteDeleteImg': function (e, value, row, index) {
+
+                    deletePort(row.id);
+                    console.log(value, row, index);
+                }
+            };
+        </script>
+    </head>
+<body id="open_base_site_cotentBody" class="cotentBody ng-scope">
+
+
+<div class="uploadBtn">
+    <div id="open_base_tpL_userHeader" class="userHeader">
+        <div id="open_base_tpL_buttonGroup" class="openoButton_buttonGroupClass">
+            <div class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass defaultbutton openoButton_button_default"
+                 tabindex="0" id="false" text="res.brApp_ui_res_btn_create" icon-url="./images/add.png"
+                 cls="defaultbutton" click="clickAdd"
+                 style="display: inline-block; padding-left: 0px; padding-right: 0px;">
+                <div class="openoButton_buttonInnerClass openo-corner-all openoButton_Image" id="false_button"><span
+                        class="openo-widget-button-image openoButton_buttonLeftImg"
+                        style="background-image: url(images/add.png);"></span><span
+                        class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Create</span><span
+                        class="openo-widget-button-image openoButton_buttonImgDefault"></span></div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<div class="row-fluid" data-name="table_zone">
+    <div id='ict_virtualApplication_table_div'>
+        <div>
+            <div class="top">
+                <table id="port" data-pagination="true" data-page-size="5" data-pagination-first-text="First"
+                       data-pagination-pre-text="Previous" data-pagination-next-text="Next"
+                       data-pagination-last-text="Last">
+                    <thead id="portTable_thead" class="openo-table-thead">
+                    <tr class="active">
+                        <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                            data-field="name" data-sortable="true">
+                            <div class="openo-table-th-border"></div>
+                            <div class="DataTables_sort_wrapper openo-ellipsis ">
+											<span id="portName_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip openoTable_sortable leftHeaderAlign  openo-table-disable-element ">Name
+                                             </span>
+                            </div>
+                        </th>
+                        <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                            data-field="meID" data-sortable="true">
+                            <div class="openo-table-th-border"></div>
+                            <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="portmeID_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">ME
+                                            </span>
+                            </div>
+                        </th>
+                        <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                            data-field="logicalType" data-sortable="true">
+                            <div class="openo-table-th-border"></div>
+                            <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="portLogicalType_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Type
+                                            </span>
+                            </div>
+                        </th>
+                        <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                            data-field="layerRate" data-sortable="true">
+                            <div class="openo-table-th-border"></div>
+                            <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="portLayerRate_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Layer Rate
+                                            </span>
+                            </div>
+                        </th>
+                        <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                            data-field="isEdgePoint" data-sortable="true">
+                            <div class="openo-table-th-border"></div>
+                            <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="portIsEdgePoint_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Edge Point
+                                            </span>
+                            </div>
+                        </th>
+                        <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                            data-field="portIndex" data-sortable="true">
+                            <div class="openo-table-th-border"></div>
+                            <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="portIndex_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Port Index
+                                            </span>
+                            </div>
+                        </th>
+                        <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                            data-field="ipAddress" data-sortable="true">
+                            <div class="openo-table-th-border"></div>
+                            <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="portIpAddress_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">IP Address
+                                            </span>
+                            </div>
+                        </th>
+                        <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                            data-field="adminState" data-sortable="true">
+                            <div class="openo-table-th-border"></div>
+                            <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="portAdminState_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Admin State
+                                            </span>
+                            </div>
+                        </th>
+                        <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                            data-field="operState" data-sortable="true">
+                            <div class="openo-table-th-border"></div>
+                            <div class="DataTables_sort_wrapper openo-ellipsis ">
+							                <span id="portOperState_sorticon"
+                                                  class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Operating State
+                                            </span>
+                            </div>
+                        </th>
+                        <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign"
+                            align="center" data-formatter="operateFormatter" data-events="operateEvents">
+                            <div class="openo-table-th-border"></div>
+                            <div class="DataTables_sort_wrapper openo-ellipsis ">
+                                <span id="portAction_sorticon"
+                                      class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Action</span>
+                            </div>
+                        </th>
+                    </tr>
+                    </thead>
+                    <!-- <tbody>
+                        <tr style="display: none;">
+                            <td colspan="7" style="text-align: center;">NULL</td>
+                        </tr>
+                        <tr class="odd  openo-table-tr openo-table-disable-element" data-rowid="0" data-tableid="siteTable">
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteName" data-tableid="siteTable">
+                                <div class="openo-table-disable-element overflow_elip leftDataAlign">
+                                    <a class="openo-table-disable-element hyperLinkRow" href="javascript:void(0)" id="siteTable_0_portName_link"></a>Port1</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >ME</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteTenantName" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >Type</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteTenantName" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >12</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteTenantName" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >Edge</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteTenantName" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >12345</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteTenantName" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >255.255.255.123</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteTenantName" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >UP</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteTenantName" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >UP</div>
+                            </td>
+                            <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteOperation" data-tableid="siteTable">
+                                <div class="openo-table-disable-element overflow_elip leftDataAlign openo-table-custom-el" id="siteTable_0_siteOperation_custom_el">
+                                    <div>
+                                        <img src="images/delete.png" href="javascript:void(0)" onclick="deletePort('this');" opertype="siteDelete" style="cursor: pointer" title="Delete" id="bac4ff3c-d693-4f54-86cd-25af1ea22f59" rowid="0/">
+                                    </div>
+                                </div>
+                            </td>
+                        </tr>
+                    </tbody> -->
+                </table>
+            </div>
+        </div>
+    </div>
+</div>
+<!-- <div id="tpListopenotable_pagination_wrapper" class="openo-table-pagination-wrapper" style="display: block;"><div class="pagination-container openo-pagination-theme openo-pagination"><div class="openoPagination_openoPaginationLengthOptions" id="tpListopenotable_wrapper_div"><input readonly="true" class="openo-pagination-select openopaginationselect" value="" id="tpListopenotable_wrapper_input" actualval="20" style="width: 32px;"><span class="openo-pagination-selectspan openopaginationselectspan" id="tpListopenotable_wrapper_trigger"></span></div><label style="display: block;float:left;">Total records: 23</label><li class="active"><span class="current prev openo-disabled" id="tpListopenotable_wrapper_prev">&nbsp;</span></li><ul><li class="active"><span class="current" id="tpListopenotable_wrapper_page_link_1">1</span></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_2">2</a></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_3">3</a></li><li><a class="page-link next" id="tpListopenotable_wrapper_next">&nbsp;</a></li></ul></div></div> -->
+
+<div id="vmAppDialog" class="modal fade" tabindex="-1" role="dialog"
+     aria-labelledby="myModalLabel" aria-hidden="false">
+    <div class="modal-dialog">
+        <div class="modal-content">
+            <div class="content">
+                <div class="modal-header">
+                    <button type="button" class="close" data-dismiss="modal"
+                            aria-hidden="true">×
+                    </button>
+                    <h4 class="modal-title" id="myModalLabel">
+                        <span>Create</span>
+                    </h4>
+                </div>
+                <form class="form-horizontal" role="form" id="portForm">
+                    <div id="wizard">
+                        <div class="modal-body">
+                            <ul class="nav nav-pills nav-justified vmapp-margin">
+                            </ul>
+                            <div class="tab-content">
+                                <div class="tab-pane active" id="basicTab">
+                                    <div class="form-group" ms-class="has-error:vmAppDialog.name==''">
+                                        <label class="col-sm-3 control-label">
+                                            <span>Name</span>
+                                            <span class="required">*</span>
+                                        </label>
+                                        <div class="col-sm-7">
+                                            <input type="text" id="name" name="name" class="form-control"
+                                                   placeholder="Name"/>
+                                        </div>
+                                    </div>
+                                    <div class="form-group" ms-class="has-error:vmAppDialog.name==''">
+                                        <label class="col-sm-3 control-label">
+                                            <span>ME</span>
+                                        </label>
+                                        <div class="col-sm-7">
+                                            <input type="text" id="meID" name="meID" class="form-control"
+                                                   placeholder="ME"/>
+                                        </div>
+                                    </div>
+                                    <div class="form-group">
+                                        <label class="col-sm-3 control-label">
+                                            <span>Type</span>
+                                        </label>
+                                        <div class="col-sm-7">
+                                            <select class="form-control" style="padding-top: 0px;padding-bottom: 0px;"
+                                                    id="logicalType"
+                                                    name="logicalType">
+                                                <option value="ETH">ETH</option>
+                                                <option value="POS">POS</option>
+                                                <option value="Trunk">Trunk</option>
+                                                <option value="Loopback">Loopback</option>
+                                            </select>
+                                        </div>
+                                    </div>
+                                    <div class="form-group" ms-class="has-error:vmAppDialog.name==''">
+                                        <label class="col-sm-3 control-label">
+                                            <span>Layer Rate</span>
+                                        </label>
+                                        <div class="col-sm-7">
+                                            <input type="text" id="layerRate" name="layerRate" class="form-control"
+                                                   placeholder="Layer Rate"/>
+                                        </div>
+                                    </div>
+                                    <div class="form-group">
+                                        <label class="col-sm-3 control-label">
+                                            <span>Edge Point</span>
+                                        </label>
+                                        <div class="col-sm-7">
+                                            <select class="form-control" style="padding-top: 0px;padding-bottom: 0px;"
+                                                    id="isEdgePoint"
+                                                    name="isEdgePoint">
+                                                <option value="true">True</option>
+                                                <option value="false">False</option>
+                                            </select>
+                                        </div>
+                                    </div>
+                                    <div class="form-group" ms-class="has-error:vmAppDialog.name==''">
+                                        <label class="col-sm-3 control-label">
+                                            <span>Port Index</span>
+                                        </label>
+                                        <div class="col-sm-7">
+                                            <input type="text" id="portIndex" name="portIndex" class="form-control"
+                                                   placeholder="Port Index"/>
+                                        </div>
+                                    </div>
+
+                                    <div class="form-group">
+                                        <label class="col-sm-3 control-label">
+                                            <span>IP Address</span>&nbsp;&nbsp;&nbsp;
+                                        </label>
+                                        <div class="col-sm-7">
+                                            <input type="text" id="ipAddress" name="ipAddress" class="form-control"
+                                                   placeholder="255.255.255.255"/>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="modal-footer">
+                            <button type="button" class="btn SDBtn" data-dismiss="modal" aria-hidden="true"
+                                    id="createPort">
+                                <span id="nfv-virtualApplication-iui-text-cancelBtn">OK</span>
+                            </button>
+                            <button type="button" class="btn button-previous SDBtn">
+                                <span id="nfv-virtualApplication-iui-text-previousBtn">Cancel</span>
+                            </button>
+
+                        </div>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+</div>
+</div>
+<div id="filterTpLogicalType_select_popupcontainer" class="openo openo-select-popup-container openo-hide"
+     style="width: 155px; max-height: 130px; left: 628px; top: 104px; z-index: 1761;">
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_0"><label
+            class="openo-ellipsis openo-select-blank-item" style="width: 100%; display: block; height: 20px;"></label>
+    </div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_1"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">ETH</label></div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_2"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;" title="POS">POS</label></div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_3"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Trunk</label></div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_4"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Loopback</label></div>
+</div>
+
+
+</body>
+</html>
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/resource.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/resource.html
new file mode 100644
index 0000000..0625f70
--- /dev/null
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/resource.html
@@ -0,0 +1,140 @@
+<!--
+
+    Copyright 2016, Huawei Technologies Co., Ltd.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file 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.
+
+-->
+
+<!doctype html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title></title>
+    <link href="css/bootstrap.min.css" rel="stylesheet"/>
+    <link href="css/RMain.css" rel="stylesheet"/>
+    <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
+    <script type="text/javascript" src="js/bootstrap.min.js"></script>
+</head>
+<script type="text/javascript">
+    $(function () {
+        $('.openo_accordion_ui-icon-expand,.header').click(function () {
+            $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL').slideToggle(500);
+            $('.openo_accordion_ui-icon-expand').toggleClass('current')
+        });
+        $('.openoAccordian_showHideArrow_hide').click(function () {
+            // $('#open_base_openo').css('margin-left','-200px');
+            // $('#open_base_openo').css('display','none');
+            // $('.bar').css('display','block');
+            if ($('#accordionmenuid').width() >= 200) {
+                $('#accordionmenuid').width('18px');
+                $('.openo_accordion_ui-icon-expand,.header,#accordionmenuid_ul_0_0_brAppTopMenuID_UL li a').css('display', 'none');
+                $('#accordionmenuid_arrow').attr('classname', 'openoAccordian_showHideArrow_show');
+                $('#iframeContainer').css('width', '1284px');
+            } else if ($('#accordionmenuid').width() == 18) {
+                $('#accordionmenuid').width('220px');
+                $('.openo_accordion_ui-icon-expand,.header,#accordionmenuid_ul_0_0_brAppTopMenuID_UL li a').css('display', 'block');
+                $('#accordionmenuid_arrow').attr('classname', 'openoAccordian_showHideArrow_hide');
+                $('#iframeContainer').css('width', '1063px');
+            }
+
+        });
+        $('.bar span').click(function () {
+            $('#open_base_openo').css('display', 'block');
+            $('.bar').css('display', 'none');
+            $('#iframeContainer').css('width', '1063px');
+        });
+        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL li').click(function () {
+            $(this).addClass('openo_accordion_selected').siblings().removeClass('openo_accordion_selected');
+        });
+        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_0_brAppSiteMenuID').click(function () {
+            $('#accordionContent').attr('src', 'site.html');
+        });
+        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_1_brAppMeMenuID').click(function () {
+            $('#accordionContent').attr('src', 'ne.html');
+        });
+        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_2_brAppTpMenuID').click(function () {
+            $('#accordionContent').attr('src', 'port.html');
+        });
+        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_3_brAppTlMenuID').click(function () {
+            $('#accordionContent').attr('src', 'link.html');
+        });
+
+    })
+</script>
+<body>
+<div id="febDiv" style="overflow: hidden;">
+    <div id="open_base_feb">
+        <!--use for store menu come from feb service, maybe just a temple plan-->
+        <div id="app">
+            <div id="iemp_layout_container" ng-controller="resourceCtrl" class="iemp_layout_container ng-scope">
+
+                <table id="open_base_table" class="three-cols-layout">
+                    <tbody id="open_base_tbody">
+                    <tr id="open_base_tr">
+                        <td class="bar">
+                            <span></span>
+                        </td>
+                        <td id="open_base_openo" class="three-cols-column three-cols-left">
+                            <div id="accordionmenuid" allow-resize="true" dataset="dataArr" height="resHeight"
+                                 listeners="callBacklisteners" resize-callback="resizehandler"
+                                 current-select="currentselect" click="clickHandler"
+                                 class="ng-isolate-scope accordion_parent openo_accordion_main_menu"
+                                 style="height: 870px;">
+                                <div class="openo-accordion-resizable-handle" style="cursor: auto;"></div>
+                                <ul id="accordionmenuid_ul" class="openoAccordian_accordionmenu">
+                                    <li id="accordionmenuid_ul_0_0_brAppTopMenuID" nodeid="brAppTopMenuID">
+                                        <span class="openo_accordion_ui-icon-expand"
+                                              style="padding-left: 20px; height: 60px;cursor: pointer;"></span>
+                                        <span class="openoAccordian_showHideArrow_hide" id="accordionmenuid_arrow"
+                                              style="cursor: pointer;"></span>
+                                        <a title="brApp" class="header opened"
+                                           style="padding-left: 10px; cursor: pointer;">Resource</a>
+                                        <ul id="accordionmenuid_ul_0_0_brAppTopMenuID_UL">
+                                            <li id="accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_0_brAppSiteMenuID"
+                                                nodeid="brAppSiteMenuID" class="" style="display: list-item;">
+                                                <a title="Site" class="" style="padding-left: 62px;">Site</a>
+                                            </li>
+                                            <li id="accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_1_brAppMeMenuID"
+                                                nodeid="brAppMeMenuID" style="display: list-item;">
+                                                <a title="NE" style="padding-left: 62px;">NE</a>
+                                            </li>
+                                            <li id="accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_2_brAppTpMenuID"
+                                                nodeid="brAppTpMenuID" style="display: list-item;">
+                                                <a title="Port" style="padding-left: 62px;">Port</a>
+                                            </li>
+                                            <li id="accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_3_brAppTlMenuID"
+                                                nodeid="brAppTlMenuID" style="display: list-item;">
+                                                <a title="Link" style="padding-left: 62px;">Link</a>
+                                            </li>
+                                        </ul>
+                                    </li>
+                                </ul>
+                            </div>
+                        </td>
+                        <td id="open_base_iframe" class="three-cols-column three-cols-center" style="padding: 0px;">
+
+                            <div id="iframeContainer" class="frame-class" style="height: 870px;">
+                                <iframe id="accordionContent" src="" height="870px"></iframe>
+                            </div>
+                        </td>
+                    </tr>
+                    </tbody>
+                </table>
+
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/site.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/site.html
new file mode 100644
index 0000000..ef05aa5
--- /dev/null
+++ b/openo-portal/portal-resmgr/src/main/webapp/resmgr-sdn/site.html
@@ -0,0 +1,229 @@
+<!--
+
+    Copyright 2016, Huawei Technologies Co., Ltd.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file 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.
+
+-->
+
+<!DOCTYPE html>
+<html>
+<head>
+    <head lang="en">
+        <meta charset="UTF-8">
+        <title></title>
+        <link href="css/bootstrap.min.css" rel="stylesheet"/>
+        <link href="css/VMMain.css" rel="stylesheet"/>
+        <link href="css/bootstrap-table.min.css" rel="stylesheet"/>
+        <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
+        <script type="text/javascript" src="js/bootstrap.min.js"></script>
+        <script type="text/javascript" src="js/brs.js"></script>
+        <script type="text/javascript" src="js/bootstrap-table.min.js"></script>
+
+        <style type="text/css">
+        </style>
+        <script type="text/javascript">
+            $(document).ready(function () {
+
+                var jsondata = [];
+                jsondata = loadSiteData();
+                $('#site').bootstrapTable({
+                    //Assigning data to table
+                    data: jsondata
+                });
+
+
+            });
+
+            function operateFormatter(value, row, index) {
+                return [
+                    '<img class="siteDeleteImg" src="images/delete.png" href="javascript:void(0)" style="cursor: pointer" name="title" title="Delete" />'
+                ].join('');
+
+            }
+            window.operateEvents = {
+                'click .siteDeleteImg': function (e, value, row, index) {
+                    // TO DO ajex call for delete
+                    deleteSite(row.id);
+                    console.log(value, row, index);
+                }
+            };
+        </script>
+    </head>
+<body id="open_base_site_cotentBody" class="cotentBody ng-scope">
+<div class="container-fluid ms-controller">
+
+    <div class="uploadBtn">
+        <div id="open_base_tpL_userHeader" class="userHeader">
+            <div id="open_base_tpL_buttonGroup" class="openoButton_buttonGroupClass">
+                <div class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass defaultbutton openoButton_button_default"
+                     tabindex="0" id="false" text="res.brApp_ui_res_btn_create" icon-url="./images/add.png"
+                     cls="defaultbutton" click="clickAdd"
+                     style="display: inline-block; padding-left: 0px; padding-right: 0px;">
+                    <div class="openoButton_buttonInnerClass openo-corner-all openoButton_Image" id="false_button"><span
+                            class="openo-widget-button-image openoButton_buttonLeftImg"
+                            style="background-image: url(images/add.png);"></span><span
+                            class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Create</span><span
+                            class="openo-widget-button-image openoButton_buttonImgDefault"></span></div>
+                </div>
+
+
+                <div class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass undefined openoButton_button_default"
+                     tabindex="0" id="meEdit" text="res.brApp_ui_res_btn_edit" display="false" style="display: none;">
+                    <div class="openoButton_buttonInnerClass openo-corner-all" id="meEdit_button"><span
+                            class="openo-widget-button-image openoButton_buttonImgDefault"></span><span
+                            class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Edit</span><span
+                            class="openo-widget-button-image openoButton_buttonImgDefault"></span></div>
+                </div>
+
+            </div>
+        </div>
+    </div>
+
+    <div class="row-fluid" data-name="table_zone">
+        <div id='ict_virtualApplication_table_div'>
+            <div>
+                <div class="top">
+                    <table id="site"
+                           data-pagination="true" data-page-size="5" data-pagination-first-text="First"
+                           data-pagination-pre-text="Previous" data-pagination-next-text="Next"
+                           data-pagination-last-text="Last">
+                        <thead>
+                        <tr class="active">
+                            <th data-field="name" data-sortable="true">Name</th>
+                            <th data-field="type" data-sortable="true">Type</th>
+                            <th data-field="tenantID" data-sortable="true">Tenant Name</th>
+                            <th data-field="tenantSiteIDs" data-sortable="true">Tenant Site</th>
+                            <th data-field="location" data-sortable="true">Location</th>
+
+                            <th align="center" data-formatter="operateFormatter" data-events="operateEvents">Action</th>
+                        </tr>
+                        </thead>
+                    </table>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!-- <div id="tpListopenotable_pagination_wrapper" class="openo-table-pagination-wrapper" style="display: block;"><div class="pagination-container openo-pagination-theme openo-pagination"><div class="openoPagination_openoPaginationLengthOptions" id="tpListopenotable_wrapper_div"><input readonly="true" class="openo-pagination-select openopaginationselect" value="" id="tpListopenotable_wrapper_input" actualval="20" style="width: 32px;"><span class="openo-pagination-selectspan openopaginationselectspan" id="tpListopenotable_wrapper_trigger"></span></div><label style="display: block;float:left;">Total records: 23</label><li class="active"><span class="current prev openo-disabled" id="tpListopenotable_wrapper_prev">&nbsp;</span></li><ul><li class="active"><span class="current" id="tpListopenotable_wrapper_page_link_1">1</span></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_2">2</a></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_3">3</a></li><li><a class="page-link next" id="tpListopenotable_wrapper_next">&nbsp;</a></li></ul></div></div> -->
+
+    <div id="vmAppDialog" class="modal fade" tabindex="-1" role="dialog"
+         aria-labelledby="myModalLabel" aria-hidden="false">
+        <div class="modal-dialog">
+            <div class="modal-content">
+                <div class="content">
+                    <div class="modal-header">
+                        <button type="button" class="close" data-dismiss="modal"
+                                aria-hidden="true">×
+                        </button>
+                        <h4 class="modal-title" id="myModalLabel">
+                            <span>Create</span>
+                        </h4>
+                    </div>
+                    <form class="form-horizontal" role="form" id="vmAppForm">
+                        <div id="wizard">
+                            <div class="modal-body">
+                                <ul class="nav nav-pills nav-justified vmapp-margin">
+                                </ul>
+                                <div class="tab-content">
+                                    <div class="tab-pane active" id="basicTab">
+                                        <div class="form-group" ms-class="has-error:vmAppDialog.name==''">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Name</span>
+                                                <span class="required">*</span>
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="name" name="name" class="form-control"
+                                                       placeholder="Name"/>
+                                            </div>
+                                        </div>
+                                        <div class="form-group">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Type</span>&nbsp;&nbsp;&nbsp;
+                                            </label>
+
+                                            <div class="col-sm-7">
+                                                <select class="form-control"
+                                                        style="padding-top: 0px;padding-bottom: 0px;" id="type"
+                                                        name="type">
+                                                    <option value="network_site">Network</option>
+                                                    <option value="tenant_site">Tenant</option>
+                                                </select>
+                                            </div>
+                                        </div>
+                                        <!--  TODO: these field are ignored as of now
+                                        <div class="form-group">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Tenant Name</span>&nbsp;&nbsp;&nbsp;
+                                            </label>
+                                             <div class="col-sm-7">
+                                                <input type="text" id="tenantName" name="tenantName" class="form-control" placeholder="Banglore"/>
+                                            </div>
+                                        </div>
+                                        <div class="form-group">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Tenant Site</span>&nbsp;&nbsp;&nbsp;
+                                            </label>
+                                             <div class="col-sm-7">
+                                                <input type="text" id="tenantSite" name="tenantSite" class="form-control" placeholder="Banglore"/>
+                                            </div>
+                                        </div>
+                                        -->
+                                        <div class="form-group">
+                                            <label class="col-sm-3 control-label">
+                                                <span>Location</span>&nbsp;&nbsp;&nbsp;
+                                            </label>
+                                            <div class="col-sm-7">
+                                                <input type="text" id="location" name="location" class="form-control"
+                                                       placeholder="Banglore"/>
+                                            </div>
+                                        </div>
+                                    </div>
+
+
+                                </div>
+                            </div>
+                            <div class="modal-footer">
+                                <button type="button" class="btn SDBtn" data-dismiss="modal" aria-hidden="true"
+                                        id="createSite">
+                                    <span id="nfv-virtualApplication-iui-text-cancelBtn">OK</span>
+                                </button>
+                                <button type="button" class="btn button-previous SDBtn">
+                                    <span id="nfv-virtualApplication-iui-text-previousBtn">Cancel</span>
+                                </button>
+
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<div id="filterTpLogicalType_select_popupcontainer" class="openo openo-select-popup-container openo-hide"
+     style="width: 155px; max-height: 130px; left: 628px; top: 104px; z-index: 1761;">
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_0"><label
+            class="openo-ellipsis openo-select-blank-item" style="width: 100%; display: block; height: 20px;"></label>
+    </div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_1"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">ETH</label></div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_2"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;" title="POS">POS</label></div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_3"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Trunk</label></div>
+    <div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_4"><label
+            class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Loopback</label></div>
+</div>
+
+
+</body>
+</html>
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/css/RMain.css b/openo-portal/portal-resmgr/src/main/webapp/resmgr/css/RMain.css
deleted file mode 100644
index 1b8488a..0000000
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr/css/RMain.css
+++ /dev/null
@@ -1,211 +0,0 @@
-/* Copyright 2016, Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file 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.
- */
-
-
-#iemp_layout_container {
-  padding: 0px;
-  margin: 1px auto;
-  width: 100%;
-  height: 100%;
-}
-#iemp_layout_container .three-cols-layout {
-  width: 100%;
-  height: 100%;
-  border-collapse: collapse;
-  margin-left: 0px;
-  margin-top: 0px;
-  margin-right: 0px;
-  margin-bottom: 0px;
-}
-#iemp_layout_container .three-cols-layout {
-  width: 100%;
-  height: 100%;
-  border-collapse: collapse;
-  margin-left: 0px;
-  margin-top: 0px;
-  margin-right: 0px;
-  margin-bottom: 0px;
-}
-#iemp_layout_container .three-cols-column.three-cols-left {
-  width: 215px;
-  background-color: #f5f5f5;
-}
-.accordion_parent {
-  position: relative;
-  width: 220px;
-  background-color: #f5f5f5;
-}
-.openo-accordion-resizable-handle {
-  z-index: 1!important;
-  cursor: e-resize;
-  width: 7px;
-  right: -5px;
-  top: 0;
-  height: 100%;
-  position: absolute;
-  font-size: .1px;
-  display: block;
-}
-.openoAccordian_accordionmenu {
-  width: 100%;
-  margin: 0;
-  padding: 0;
-  list-style-type: none;
-  line-height: 17px;
-}
-.openoAccordian_accordionmenu li {
-  min-width: 75px;
-  margin: 0;
-  padding: 0;
-  list-style-type: none;
-  color: #000;
-  clear: both;
-}
-.openo_accordion_ui-icon-collapse, .openo_accordion_ui-icon-expand {
-  display: block;
-  float: left;
-  margin-bottom: -1px;
-  border-bottom: 1px solid #e5e5e5;
-  cursor: pointer;
-  width: 13px;
-  padding-top: 26px;
-}
-.openo_accordion_ui-icon-expand {
-  background: url(../images/collapse_arrow.png) right 20px no-repeat;
-  margin-top: 8px;
-}
-.openo_accordion_ui-icon-expand.current{
-  background: url(../images/expand_arrow.png) right 20px no-repeat;
-}
-.openoAccordian_showHideArrow_hide, .openoAccordian_showHideArrow_show {
-  display: block;
-  position: absolute;
-  right: 0;
-  top: 4px;
-  width: 18px;
-  height: 41px;
-  cursor: pointer;
-  background-color: #f5f5f5;
-}
-.openoAccordian_showHideArrow_hide {
-  background-image: url(../images/openo.png);
-  background-position: -7px 0!important;
-  border-collapse: separate;
-  /*box-shadow: inset -1px 0 0 #e5e5e5;*/
-}
-a.header.opened, a.header.closed {
-  font-size: 16px;
-  padding-top: 24px;
-  padding-bottom: 25px;
-  color: #999999;
-}
-.openoAccordian_accordionmenu .closed, .openoAccordian_accordionmenu .opened {
-  padding-right: 10px;
-  background-position: 98% 50%;
-  background-repeat: no-repeat;
-}
-.openoAccordian_accordionmenu li a {
-  padding: 11px 10px 12px;
-  color: #333333;
-  margin-right: 1px;
-  margin-top: -1px;
-  text-align: left!important;
-  font-family: "Microsoft Yahei",SimSun,Arial,Tahoma;
-  font-size: 14px;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-  overflow: hidden;
-  border-top: 1px solid #e5e5e5;
-  border-bottom: 1px solid #e5e5e5;
-  /*height: 19px;*/
-}
-.openoAccordian_accordionmenu ul {
-  margin: 0;
-  padding: 0;
-  overflow: hidden;
-}
-.openoAccordian_accordionmenu a {
-  display: block;
-  text-decoration: none;
-}
-a {
-  color: #428bca;
-  text-decoration: none;
-  background: 0 0;
-}
-.bar{
-    height: 834px;
-    width: 18px;
-    background: #f8f8f8;
-    display: none;
-}
-.bar span{
-    width: 13px;
-    height: 34px;
-    background-image: url(../images/openo.png);
-  background-position: -39px 0!important;
-  display: block;
-  /*margin-top: -430px;*/
-}
-#accordionmenuid_ul_0_0_brAppTopMenuID_UL li{
-    cursor: pointer;
-}
-#puer_base_openo{
-    border: 1px solid #ddd;
-}
-.openo_accordion_selected {
-  margin-left: 0;
-  margin-right: 0;
-  background: #fafafa;
-  border-left: 3px solid #4ac9ff!important;
-  box-shadow: none;
-  position: relative;
-}
-a:hover{
-    color: #4ac9ff!important;
-}
-.openoAccordian_accordionmenu li.openo_accordion_selected a {
-  position: relative;
-  left: -3px;
-  color: #009ae7;
-}
-.openo-accordion-resizable-handle {
-  z-index: 1!important;
-  cursor: e-resize;
-  width: 7px;
-  right: -5px;
-  top: 0;
-  height: 100%;
-  position: absolute;
-  font-size: .1px;
-  display: block;
-}
-#iframeContainer iframe {
-  width: 100%;
-  height: 100%;
-  border: 0;
-}
-#accordionContent, #iframeContainer {
-  margin: 0;
-  padding: 0;
-  border: 0;
-  width: 100%;
-  height: 100%;
-}
-.openoAccordian_showHideArrow_show {
-  background-image: url(../images/openo.png);
-  background-position: -39px 0!important;
-  box-shadow: inset 1px 0 0 #e5e5e5,inset -1px 0 0 #e5e5e5;
-}
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/css/VMMain.css b/openo-portal/portal-resmgr/src/main/webapp/resmgr/css/VMMain.css
deleted file mode 100644
index e625e90..0000000
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr/css/VMMain.css
+++ /dev/null
@@ -1,653 +0,0 @@
-/* Copyright 2016, Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file 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.
- */
-
-
-body{
-    font-family: '微软雅黑';
-    font-size: 12px;
-    color: #333;
-    background: #fafafa;
-}
-button{
-    outline: none;
-}
-ul,li{
-    list-style: none;
-    padding:0;
-    margin:0;
-}
-.titleFont{
-    font-size: 16px;
-}
-.separator-line{
-    height: 1px;
-    width: 100%;
-    border:1px solid #ddd;
-    margin: 6px 0 15px 0;
-}
-.uploadBtn{
-    overflow: hidden;
-}
-.creat-btn {
-	padding: 0 14px;
-	height: 24px;
-    float: left;
-    cursor: pointer;
-    text-decoration: none;
-    outline: 0;
-    border: 1px solid #d3d3d3;
-    text-align: center;
-    box-shadow: 0 1px 1px rgba(0,0,0,.05);
-    background: #fafafa;
-    background: -moz-linear-gradient(top,#fff,#fafafa);
-    background: -webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#fafafa));
-    background: -webkit-linear-gradient(top,#fff,#fafafa);
-    background: linear-gradient(to bottom,#fff,#fafafa);
-    border-radius: 6px;
-    background: #fff url(../images/add.png) no-repeat 5px center;
-    padding-left: 20px;
-}
-.creat-btn:hover {
-	color: #009ae7;	
-	border: 1px solid #4AC9FF
-}
-.creat-btn:active {
-	color: #000;	
-	border: 1px solid #4AC9FF
-}
-/*.creat-btn{
-    background: #fff url(../image/add.png) no-repeat 5px center;
-    border: 1px solid #ddd;
-    float: left;
-}
-.creat-btn:hover{
-    background: #428bca;
-    color: #fff;
-    border:1px solid #428bca;
-}*/
-.search{
-    width: 310px;
-    height: 30px;
-    float:right;
-}
-.search-text{
-    width: 250px;
-    float: left;
-    margin-right: 6px;
-}
-.search-btn{
-    height: 30px;
-    background: #fff;
-    border: 1px solid #ddd;
-    float: left;
-}
-#ict_virtualApplication_table_div{
-    margin-top: 15px;
-}
-.table>thead>tr.active>th{
-    border: 1px solid #ddd!important;
-    border-bottom: 0;
-    background: #f0f0f0;
-}
-/*.table tbody tr:hover{
-    background: #e6fbe0!important;
-}*/
-.table tbody tr:last-child{
-    border-bottom: 1px solid #ddd;
-}
-.table-btn{
-    border: 1px solid #ccc;
-    border-radius: 3px;
-}
-.delete-btn{
-    background: url(../image/delete.png) no-repeat;
-    width: 16px;
-    height: 16px;
-    border: none;
-}
-.detail-btn{
-    background: url(../image/openo.png) no-repeat -343px -283px;
-    width: 16px;
-    height: 16px;
-    border: none;
-}
-.detail-btn.current{
-    background-position: -7px -314px; 
-}
-.detail{
-    height: 200px;
-    border: 1px solid #ddd;
-    margin-top: 60px;
-}
-
-.detail-top ul{
-    height: 50px;
-    line-height: 50px;
-    border-bottom: 1px solid #ddd;
-    padding-left: 0px;
-     background: #fafafa;
-}
-.detail-top ul li{
-    float:left;
-    width: 120px;
-    text-align: center;
-    border-right: 1px solid #ddd;
-    cursor: pointer;
-}
-.detail-top ul li.current{
-    background: #fff;
-}
-.vmapp-margin{
-    margin-bottom: 10px;
-}
-.control-label .required{
-    color: #e02222;
-    font-size: 12px;
-    padding-left: 2px;
-}
-.form-group .control-label{
-    font-size: 12px;
-    font-weight: 400;
-}
-legend{
-    font-size: 12px;
-    font-weight: bold;
-}
-.pageGro{
-    width: 250px;
-    float: right;
-}
-.pageUp,.pageDown,.pageList,.pageList li{
-    float: left;
-    cursor: pointer;
-}
-.pageUp,.pageDown{
-    width: 60px;
-    height: 30px;
-    border: 1px solid #ddd;
-    text-align: center;
-    line-height: 30px;
-}
-.pageList li{
-    width: 30px;
-    height: 30px;
-    border: 1px solid #ddd;
-    text-align: center;
-    line-height: 30px;
-    border-left: none;
-}
-.pageList li.active{
-    background: #428bca;
-    color: #fff;
-    border-color: #428bca;
-}
-.pageDown{
-    border-left: none;
-}
-.headerLinkP{
-    padding-top: 17px;
-}
-.headerLinkP span{
-    font-size: 12px;
-    color: #666;
-    font-weight: normal!important;
-}
-label{
-    font-weight: normal!important;
-}
-table.userform tbody tr td {
-  display: table-cell;
-  padding-right: 10px;
-  padding-top: 10px;
-  font-size: 12px;
-  color: #333;
-}
-.table th,.table td{
-    padding-top: 3px!important;
-    padding-bottom: 3px!important;
-}
-.openoBrowseButton_element {
-  display: table;
-}
-.openo {
-  font-family: "Microsoft Yahei",SimSun,Arial,Tahoma;
-  font-size: 12px;
-  color: #000;
-}
-.openoBrowseButton_input {
-  width: 198px;
-  position: relative;
-  border: 1px solid #c3c3c3!important;
-  height: 26px;
-  background-color: #f3f3f3;
-  border-radius: 4px 0 0 4px;
-  border-right: none;
-  padding: 0;
-}
-.buttonClassDefault, .buttonClassDefault:active {
-  cursor: pointer;
-  background-image: url(../images/openo.png);
-  background-position: -154px -7px!important;
-}
-.openoBrowseButton_button {
-  width: 27px;
-  border: 0;
-  float: right;
-  position: relative;
-  height: 26px;
-  right: 0;
-  top: 0;
-  border-radius: 0 4px 4px 0;
-  border-right: 1px solid #c3c3c3;
-  border-left: none;
-}
-.openo .openo-input, .openo.openo-input {
-  outline: 0;
-  border: 1px solid #c3c3c3;
-  box-shadow: 1px 1px #f6f6f6 inset;
-  background-color: #fff;
-  height: 26px;
-}
-.openoInput_openoDefaultText {
-  padding: 0 0 0 6px;
-  border-radius: 4px;
-  color: #000;
-  display: inline-block;
-  outline: 0;
-  box-shadow: 1px 1px #f6f6f6 inset;
-  font-size: 12px;
-  background: #fff;
-}
-div.openo-select {
-  border: 1px solid #c3c3c3;
-  border-radius: 4px;
-  background: url(../images/arrow-down-enable.png) right no-repeat #fff;
-  line-height: 24px;
-  padding-left: 3px;
-  display: block;
-}
-div.openo-select>input.openo-select-input {
-  border: none;
-  outline: 0;
-  line-height: 21px;
-  height: 21px;
-  padding-left: 3px;
-  border-right: solid 1px #c3c3c3;
-}
-.openo .openo-ellipsis, .openo.openo-ellipsis {
-  overflow: hidden;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-}
-a.openoButton_buttonClass, a.openoButton_buttonDisableClass, div.openoButton_buttonClass, div.openoButton_buttonDisableClass {
-  height: 26px;
-  float: left;
-  cursor: pointer;
-  text-decoration: none;
-  outline: 0;
-  border: 1px solid #d3d3d3;
-  text-align: center;
-  box-shadow: 0 1px 1px rgba(0,0,0,.05);
-  background: #fafafa;
-  background: -moz-linear-gradient(top,#fff,#fafafa);
-  background: -webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#fafafa));
-  background: -webkit-linear-gradient(top,#fff,#fafafa);
-  background: linear-gradient(to bottom,#fff,#fafafa);
-  border-radius: 6px;
-}
-.openoButton_buttonInnerClass{
-      padding: 0 19px;
-      border-radius: 6px;
-}
-.openoButton_buttonCenterText {
-  color: #000;
-  line-height: 24px;
-  white-space: nowrap;
-  width: auto!important;
-}
-.userHeader {
-  clear: left;
-  overflow: hidden;
-  margin-bottom: 10px;
-  padding: 10px 10px 0px 0px;
-}
-.openoButton_buttonGroupClass {
-  display: inline;
-}
-.openoButton_buttonGroupClass div.openoButton_buttonClass_parent:first-child {
-  margin-left: 0;
-}
-.openoButton_buttonLeftImg {
-  margin-right: 5px;
-}
-.openoButton_buttonLeftImg, .openoButton_buttonRightImg {
-  display: inline-block;
-  vertical-align: top;
-  width: 16px;
-  height: 16px;
-  margin-top: 4px;
-}
-.openo-table-pagination-wrapper {
-  height: 37px;
-}
-.openo-pagination {
-  display: block;
-  float: left;
-  overflow: hidden;
-  padding: 5px 0 0;
-  margin-top: 8px;
-}
-.openoPagination_openoPaginationLengthOptions:not(msie8) {
-  line-height: 24px;
-}
-.openoPagination_openoPaginationLengthOptions {
-  white-space: normal;
-  height: 24px;
-  float: left;
-  outline: 0;
-  line-height: 20px;
-  margin: 0 5px;
-}
-.openo-pagination-select {
-  height: 26px;
-  line-height: 22px;
-  text-align: center;
-  margin-right: -2px;
-  border: 1px solid #e0e0e0;
-  border-radius: 5px 0 0 5px;
-  padding: 1px;
-}
-.openoPagination_openoPaginationLengthOptions span {
-  background-color: #fff!important;
-}
-.openo-pagination-theme a, .openo-pagination-theme span {
-  float: left;
-  color: #666;
-  font: 12px Lucida Grande,Verdana,Arial,Helvetica,sans-serif;
-  line-height: 24px;
-  font-weight: 400;
-  text-align: center;
-  border: 1px solid #e0e0e0;
-  text-decoration: none!important;
-  padding: 0 7px;
-  border-radius: 3px;
-  background: #fff;
-}
-.openo-pagination-selectspan {
-  background: url(../images/ideo_default_select.png) left no-repeat!important;
-  float: right!important;
-  width: 26px;
-  height: 26px;
-  cursor: pointer;
-}
-.openo-pagination-theme label {
-  padding-top: 6px;
-  vertical-align: middle;
-  margin-right: 20px;
-  margin-top: -1px;
-  float: left;
-  display: inline-block;
-  height: 20px;
-  font: 12px Lucida Grande,Verdana,Arial,Helvetica,sans-serif;
-}
-.openo-pagination li, .openo-pagination ul {
-  list-style: none;
-  padding: 0;
-  margin: 0;
-  float: left;
-}
-dd, dl, dt, li {
-  color: #000;
-}
-.openo-pagination-theme a, .openo-pagination-theme span.current {
-  margin: 0 5px 0 0;
-}
-.openo .openo-disabled, .openo.openo-disabled {
-  border-color: #c3c3c3!important;
-  color: #666!important;
-  opacity: .3;
-  filter: alpha(opacity=30);
-}
-.openo-pagination-theme .prev {
-  background: 0 0;
-  float: left;
-}
-.openo-pagination-theme .current {
-  text-decoration: none!important;
-  float: left;
-  padding-left: 6px;
-  height: 24px;
-  color: #fff;
-  display: inline;
-  border-color: #00adf5;
-  background: #4ad2ff;
-}
-.openo-pagination-theme a, .openo-pagination-theme span {
-  float: left;
-  color: #666;
-  font: 12px Lucida Grande,Verdana,Arial,Helvetica,sans-serif;
-  line-height: 24px;
-  font-weight: 400;
-  text-align: center;
-  border: 1px solid #e0e0e0;
-  text-decoration: none!important;
-  padding: 0 7px;
-  border-radius: 3px;
-  background: #fff;
-}
-.openo-pagination-theme .prev.openo-disabled:before {
-  background: url(../images/page_left_disabled.png) 50% 45% no-repeat;
-}
-.openo-pagination-theme .prev.openo-disabled:before {
-  background: url(../images/page_left_disabled.png) 50% 45% no-repeat;
-}
-.openo-pagination-theme .prev:before {
-  background: url(../images/page_l.png) 50% 45% no-repeat;
-}
-.openo-pagination-theme .next:after, .openo-pagination-theme .prev:before {
-  display: inline-block;
-  content: "";
-  vertical-align: middle;
-  width: 10px;
-  height: 24px;
-}
-.openo-pagination-theme .prev:before {
-  background: url(../images/page_l.png) 50% 45% no-repeat;
-}
-.openo-pagination-theme .next:after, .openo-pagination-theme .prev:before {
-  display: inline-block;
-  content: "";
-  vertical-align: middle;
-  width: 10px;
-  height: 24px;
-}
-pagination ul {
-  list-style: none;
-  padding: 0;
-  margin: 0;
-  float: left;
-}
-.openo-pagination li, .openo-pagination ul {
-  list-style: none;
-  padding: 0;
-  margin: 0;
-  float: left;
-}
-.openoPagination_gototext {
-  background: #FFF;
-  outline: 0;
-  width: 29px;
-  float: left;
-  height: 26px;
-  line-height: 24px;
-  border-radius: 4px;
-  border: 1px solid #c3c3c3;
-  padding: 0 0 0 5px;
-  margin: 0;
-  color: #666;
-  min-width: 50px;
-}
-.openoPagination_gotoimage {
-  width: 29px;
-  height: 26px;
-  line-height: 26px;
-  background-color: #FFF;
-  background-image: url(/portal/themes/default/components/openo/images/openo.png);
-  padding-left: 21px;
-  float: left;
-  margin-left: 5px;
-  border: 1px solid #e0e0e0;
-  border-radius: 4px;
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  background-position: -184px -181px!important;
-}
-.openo-pagination-theme .ellipse {
-  float: left;
-  margin-left: -8px;
-  margin-right: -4px;
-  background: 0 0;
-  border: none;
-  border-radius: 0;
-  box-shadow: none;
-  font-weight: 700;
-  cursor: default;
-}
-.openo.openo-disabled {
-  border-color: #c3c3c3!important;
-  color: #666!important;
-  opacity: .3;
-  filter: alpha(opacity=30);
-}
-.openo-pagination-theme .prev {
-  background: 0 0;
-  float: left;
-}
-.openo-pagination-theme .current {
-  text-decoration: none!important;
-  float: left;
-  padding-left: 6px;
-  height: 26px;
-  color: #fff;
-  display: inline;
-  /*border-color: #00adf5;
-  background: #4ad2ff;*/
-    border: 1px solid #e0e0e0;
-}
-.openo-pagination-theme .next:after {
-  background: url(../images/page_r.png) 50% 45% no-repeat;
-}
-.openoButton_buttonGroupClass div.openoButton_buttonClass_parent, .openoButton_buttonRightImg {
-  margin-left: 5px;
-}
-
-html, body {
-  height: 99%;
-  width: 98%;
-}
-.cotentBody {
-  padding: 0px 20px 0px 20px;
-}
-
-div.openoButton_buttonClass:hover {
-  border: 1px solid #4ac9ff;
-}
-div.openoButton_button_default:hover .openoButton_buttonCenterText {
-  color: #009ae7;
-}
-.header_lineimg {
-  height: 1px;
-  width: 100%;
-  margin-top: 17px;
-}
-.openo.openo-hide {
-  display: none;
-}
-div.openo-select-popup-container {
-  position: absolute;
-  border: 1px solid #4ac9ff;
-  border-top: none;
-  border-radius: 0 0 4px 4px;
-  max-height: 202px;
-  overflow-y: auto;
-  background-color: #fff;
-  z-index: 880;
-}
-div.openo-select-popup-container>div.openo-select-item {
-  display: block;
-}
-.openo .openo-ellipsis, .openo.openo-ellipsis {
-  overflow: hidden;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-}
-div.openo-select-popup-container>div.openo-select-item>label {
-  padding-top: 3px;
-  padding-bottom: 3px;
-  line-height: 20px;
-}
-.openo .openo-ellipsis, .openo.openo-ellipsis {
-  overflow: hidden;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-}
-.openo-select-item label {
-  margin-left: 4px;
-  margin-right: 4px;
-  white-space: nowrap;
-}
-div.openo-select-popup-container>div.openo-select-item.openo-item-selected, div.openo-select-popup-container>div.openo-select-item:hover {
-  background-color: #f1f1f1;
-  color: #008fd6;
-}
-div.openo-select.openo-focus {
-  border: 1px solid #4ac9ff;
-  border-bottom-left-radius: 0;
-  border-bottom-right-radius: 0;
-  border-bottom-color: #ddd;
-}
-.openo-pagination-theme a:hover {
-  border-color: #4ac9ff;
-  cursor: pointer;
-}
-.SDBtn{
-     background: #fff; 
-     color: #333; 
-     border: 1px solid #ddd;
-}
-.SDBtn:hover{
-    color: #009ae7;	
-	border: 1px solid #4AC9FF
-}
-table tbody tr.even:hover td, table tbody tr.odd:hover td {
-  background-color: #e6fbe0;
-}
-table tr.openoTable_row_selected td {
-  background: #e8f8fe!important;
-  border-bottom: 1px solid #e8e8e8!important;
-}
-.modal-body{
-    padding: 0!important;
-}
-.form-control{
-    height: 26px!important;
-}
-.form-group .control-label {
-  margin-left: 20px;
-}
-
-.form-horizontal .control-label {
-  text-align: left;
-}
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/js/brs.js b/openo-portal/portal-resmgr/src/main/webapp/resmgr/js/brs.js
deleted file mode 100644
index 83d213c..0000000
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr/js/brs.js
+++ /dev/null
@@ -1,342 +0,0 @@
-/* Copyright 2016, Huawei Technologies Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file 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.
- */
- 
-$('.siteDeleteImg').click(function(){
-	var data = $(this).parent().parent().parent().find('td:last').find('div:last').html();
-	alert(data);
-	var jsonObj = JSON.parse(data);
-	for(var i = 0; i < jsonObj.length; i++) {
-	    var obj = jsonObj[i];
-		var rowData = [obj.tpName,obj.peName,obj.vlanId,obj.siteCidr,obj.ip];
-		$('#underlayTpDataTable').DataTable();
-		$('#underlayTpDataTable').dataTable().fnAddData(rowData);
-	}
-});
-
-
-function deleteSite(objectId){
-	var requestUrl = "http://localhost:8080/org.openo.sdno.brs/openoapi/sdnobrs/v1/sites/"+objectId;
-		        $
-				.ajax({
-					type : "DELETE",
-					url : requestUrl,
-					contentType : "application/json",
-					success : function(jsonobj) {
-						$('#site').bootstrapTable('remove', {
-		                    field: 'id',
-		                    values: [objectId]
-		                });
-						alert("Delete Site successfull !!!");
-					},
-					error : function(xhr, ajaxOptions, thrownError) {
-						alert("Error on deleting site: " + xhr.responseText); 	
-					}
-				});
-}
-function deleteLink(objectId){
-	var requestUrl = "http://localhost:8080/org.openo.sdno.brs/openoapi/sdnobrs/v1/topological-links/"+objectId;
-		        $
-				.ajax({
-					type : "DELETE",
-					url : requestUrl,
-					contentType : "application/json",
-					success : function(jsonobj) {
-						$('#link').bootstrapTable('remove', {
-		                    field: 'id',
-		                    values: [objectId]
-		                });
-						alert("Delete Link successfull !!!");
-					},
-					error : function(xhr, ajaxOptions, thrownError) {
-						alert("Error on deleting link : " + xhr.responseText); 	
-					}
-				});
-}
-
-function deleteNe(objectId){
-	var requestUrl = "http://localhost:8080/org.openo.sdno.brs/openoapi/sdnobrs/v1/managed-elements/"+objectId;
-		        $
-				.ajax({
-					type : "DELETE",
-					url : requestUrl,
-					contentType : "application/json",
-					success : function(jsonobj) {
-						$('#ne').bootstrapTable('remove', {
-		                    field: 'id',
-		                    values: [objectId]
-		                });
-						alert("Delete NE successfull !!!");
-					},
-					error : function(xhr, ajaxOptions, thrownError) {
-						alert("Error on deleting ne : " + xhr.responseText); 	
-					}
-				});
-}
-
-function deletePort(objectId){
-	var requestUrl = "http://localhost:8080/org.openo.sdno.brs/openoapi/sdnobrs/v1/logical-termination-points/"+objectId;
-		        $
-				.ajax({
-					type : "DELETE",
-					url : requestUrl,
-					contentType : "application/json",
-					success : function(jsonobj) {
-						$('#port').bootstrapTable('remove', {
-		                    field: 'id',
-		                    values: [objectId]
-		                });
-						alert("Delete Port successfull !!!");
-					},
-					error : function(xhr, ajaxOptions, thrownError) {
-						alert("Error on deleting port : " + xhr.responseText); 	
-					}
-				});
-}
-function loadSiteData(){
-	var requestUrl = "http://localhost:8080/org.openo.sdno.brs/openoapi/sdnobrs/v1/sites";
-		        $
-				.ajax({
-					type : "GET",
-					url : requestUrl,
-					contentType : "application/json",
-					success : function(jsonobj) {
-						$('#site').bootstrapTable({
-			                data: jsonobj.sites
-		                });
-					},
-					error : function(xhr, ajaxOptions, thrownError) {
-						alert("Error on getting site data : " + xhr.responseText); 	
-					}
-				});
-}
-function loadLinkData(){
-	var requestUrl = "http://localhost:8080/org.openo.sdno.brs/openoapi/sdnobrs/v1/topological-links";
-		        $
-				.ajax({
-					type : "GET",
-					url : requestUrl,
-					contentType : "application/json",
-					success : function(jsonobj) {
-						$('#link').bootstrapTable({
-			                data: jsonobj.topologicalLinks
-		                });
-					},
-					error : function(xhr, ajaxOptions, thrownError) {
-						alert("Error on getting link data : " + xhr.responseText); 	
-					}
-				});
-}
-function loadNeData(){
-	var requestUrl = "http://localhost:8080/org.openo.sdno.brs/openoapi/sdnobrs/v1/managed-elements";
-		        $
-				.ajax({
-					type : "GET",
-					url : requestUrl,
-					contentType : "application/json",
-					success : function(jsonobj) {
-						$('#ne').bootstrapTable({
-			                data: jsonobj.managedElements
-		                });
-					},
-					error : function(xhr, ajaxOptions, thrownError) {
-						alert("Error on getting ne data : " + xhr.responseText); 	
-					}
-				});
-}
-function loadPortData(){
-	var requestUrl = "http://localhost:8080/org.openo.sdno.brs/openoapi/sdnobrs/v1/logical-termination-points";
-		        $
-				.ajax({
-					type : "GET",
-					url : requestUrl,
-					contentType : "application/json",
-					success : function(jsonobj) {
-						$('#port').bootstrapTable({
-		                 data: jsonobj.logicalTerminationPoints
-		                });
-					},
-					error : function(xhr, ajaxOptions, thrownError) {
-						alert("Error on getting port data : " + xhr.responseText); 	
-					}
-				});
-}
-$(function(){
-			$('.creat-btn').click(function(){
-				$('#vmAppDialog').addClass('in').css({'display':'block'});
-				
-			});
-			$('.close,.button-previous').click(function(){
-				$('#vmAppDialog').removeClass('in').css('display','none');
-			});
-			$('.detail-top ul li').click(function(){
-				$(this).addClass('current').siblings().removeClass('current');
-			});
-			$('.para').click(function(){				
-				if($('#serviceTemplateName').val() == ''){
-					alert('Please choose the service templet！');
-					$('#flavorTab').css('display','none');
-				}else{
-					$('#flavorTab').css('display','block');
-				}
-				$('#basicTab').css('display','block');
-			});
-			$('.basic').click(function(){
-				$('#flavorTab').css('display','none');
-			});
-			
-			$('.table tbody tr').click(function(){
-				$(this).addClass('openoTable_row_selected').siblings().removeClass('openoTable_row_selected');
-			});
-			$('.table tr:odd').addClass('active');
-			$('#false').click(function(){
-				$('#vmAppDialog').addClass('in').css({'display':'block'});
-			});
-			$('.close,.button-previous').click(function(){
-				$('#vmAppDialog').removeClass('in').css('display','none');
-			});
-			$('#filterTpLogicalType').click(function(){
-				$('#filterTpLogicalType_select_popupcontainer').toggleClass('openo-hide');
-				$('#filterTpLogicalType').toggleClass('openo-focus');
-				var oLeft = $('#open_base_tpL_td6').offset().left;
-			var oTop = $('#open_base_tpL_td6').offset().top;
-			var oHeight = $('#open_base_tpL_td6').height();
-			$('#filterTpLogicalType_select_popupcontainer').css({'left':oLeft,'top':oTop + oHeight + 10});
-			});
-			$('div.openo-select-popup-container>div.openo-select-item>label').click(function(){
-				var Lvalue = $(this).html();
-				$('#filterTpLogicalType_select_input').attr('value',Lvalue);
-				$('#filterTpLogicalType_select_popupcontainer').addClass('openo-hide');
-				$('#filterTpLogicalType').removeClass('openo-focus');
-			});
-			$.fn.serializeObject = function() {
-				var o = {};
-				var a = this.serializeArray();
-				$.each(a, function() {
-					if (o[this.name] !== undefined) {
-						if (!o[this.name].push) {
-							o[this.name] = [ o[this.name] ];
-						}
-					o[this.name].push(this.value || '');
-					} else {
-						o[this.name] = this.value || '';
-					}
-				});
-			return o;
-			};
-			$('#createSite').click(function(){
-				var formData = JSON.stringify($("#vmAppForm").serializeObject());
-		        var jsonobj = JSON.parse(formData);
-		        var newJson = {"site": jsonobj};
-		        formData = JSON.stringify(newJson);
-		        var requestUrl = "http://localhost:8080/org.openo.sdno.brs/openoapi/sdnobrs/v1/sites";
-		        $
-				.ajax({
-					type : "POST",
-					url : requestUrl,
-					contentType : "application/json",
-					dataType : "json",
-					data : formData,
-					success : function(jsonResp) {
-						alert("Site saved successfully!!!");
-						jsonobj["id"]= jsonResp.site.id;
-						$('#site').bootstrapTable("append", jsonobj);
-						$('#vmAppDialog').removeClass('in').css('display','none');
-					},
-					error : function(xhr, ajaxOptions, thrownError) {
-						alert("Error on page : " + xhr.responseText); 	
-					}
-				});
-			});
-			
-			$('#createNe').click(function(){
-				var formData = JSON.stringify($("#neForm").serializeObject());
-				var jsonobj = JSON.parse(formData);
-		        var newJson = {"managedElement": jsonobj};
-		        formData = JSON.stringify(newJson);
-		        var requestUrl = "http://localhost:8080/org.openo.sdno.brs/openoapi/sdnobrs/v1/managed-elements";
-		        $
-				.ajax({
-					type : "POST",
-					url : requestUrl,
-					contentType : "application/json",
-					dataType : "json",
-					data : formData,
-					success : function(jsonResp) {
-						alert("NE saved successfully!!!");
-						jsonobj["id"]= jsonResp.managedElement.id;
-						$('#ne').bootstrapTable("append", jsonobj);
-						$('#vmAppDialog').removeClass('in').css('display','none');
-
-					},
-					error : function(xhr, ajaxOptions, thrownError) {
-						alert("Error on page : " + xhr.responseText); 	
-					}
-				});
-			});
-			
-			$('#createPort').click(function(){
-				var formData = JSON.stringify($("#portForm").serializeObject());
-				var jsonobj = JSON.parse(formData);
-		        var newJson = {"logicalTerminationPoint": jsonobj};
-		        formData = JSON.stringify(newJson);
-		        var requestUrl = "http://localhost:8080/org.openo.sdno.brs/openoapi/sdnobrs/v1/logical-termination-points";
-		        $
-				.ajax({
-					type : "POST",
-					url : requestUrl,
-					contentType : "application/json",
-					dataType : "json",
-					data : formData,
-					success : function(jsonResp) {
-						alert("Port saved successfully!!!");
-						//TODO : hide model data window.
-						jsonobj["id"]= jsonResp.logicalTerminationPoint.id;
-						$('#port').bootstrapTable("append", jsonobj);
-						$('#vmAppDialog').removeClass('in').css('display','none');
-
-					},
-					error : function(xhr, ajaxOptions, thrownError) {
-						alert("Error on page : " + xhr.responseText); 	
-					}
-				});
-			});
-			
-			$('#createLink').click(function(){
-				var formData = JSON.stringify($("#linkForm").serializeObject());
-				var jsonobj = JSON.parse(formData);
-		        var newJson = {"topologicalLink": jsonobj};
-		        formData = JSON.stringify(newJson);
-		        var requestUrl = "http://localhost:8080/org.openo.sdno.brs/openoapi/sdnobrs/v1/topological-links";
-		        $
-				.ajax({
-					type : "POST",
-					url : requestUrl,
-					contentType : "application/json",
-					dataType : "json",
-					data : formData,
-					success : function(jsonResp) {
-						alert("Link saved successfully!!!");
-						jsonobj["id"]= jsonResp.topologicalLink.id;
-						$('#link').bootstrapTable("append", jsonobj);
-						$('#vmAppDialog').removeClass('in').css('display','none');
-						
-					},
-					error : function(xhr, ajaxOptions, thrownError) {
-						alert("Error on page : " + xhr.responseText); 	
-					}
-				});
-			});
-			
-		})
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/link.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr/link.html
deleted file mode 100644
index ee24eda..0000000
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr/link.html
+++ /dev/null
@@ -1,303 +0,0 @@
-<!--
-
-    Copyright 2016, Huawei Technologies Co., Ltd.
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file 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.
-
--->
-
-<!DOCTYPE html>
-<html>
-<head>
-	<head lang="en">
-	<meta charset="UTF-8">
-	<title></title>
-	<link href="css/bootstrap.min.css" rel="stylesheet" />
-	<link href="css/VMMain.css" rel="stylesheet" />
-	<link href="css/bootstrap-table.min.css" rel="stylesheet" />
-    <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
-    <script type="text/javascript" src="js/bootstrap.min.js"></script>
-    <script type="text/javascript" src="js/brs.js"></script>
-    <script type="text/javascript" src="js/bootstrap-table.min.js"></script>	
-	<script type="text/javascript">
-	$(document).ready(function() {
-      
-  
-		var jsondata =  loadLinkData();
-
-		$('#link').bootstrapTable({
-		//Assigning data to table
-			data: jsondata
-		});
-    });
-	function operateFormatter(value, row, index) {
-        return [
-            '<img class="siteDeleteImg" src="images/delete.png" href="javascript:void(0)" style="cursor: pointer" name="title" title="Delete" />'
-        ].join('');
-        
-    }
-	 window.operateEvents = {
-         'click .siteDeleteImg': function (e, value, row, index) {
-             // TO DO ajex call for delete
-			 deleteLink(row.id);
-             console.log(value, row, index);
-         }
-     };
-	</script>
-</head>
-<body id="open_base_site_cotentBody" class="cotentBody ng-scope">
-	<div class="container-fluid ms-controller">
-		
-		<div class="uploadBtn">
-			<div id="open_base_tpL_userHeader" class="userHeader">
-            <div id="open_base_tpL_buttonGroup" class="openoButton_buttonGroupClass">
-                <div class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass defaultbutton openoButton_button_default" tabindex="0" id="false" text="res.brApp_ui_res_btn_create" icon-url="./images/add.png" cls="defaultbutton" click="clickAdd" style="display: inline-block; padding-left: 0px; padding-right: 0px;"><div class="openoButton_buttonInnerClass openo-corner-all openoButton_Image" id="false_button"><span class="openo-widget-button-image openoButton_buttonLeftImg" style="background-image: url(images/add.png);"></span><span class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Create</span><span class="openo-widget-button-image openoButton_buttonImgDefault"></span></div></div>
-
-            </div>
-        </div>
-		</div>
-		
-		<div class="row-fluid" data-name="table_zone">
-			<div id='ict_virtualApplication_table_div'>
-                <div>
-                    <div class="top">
-                        <table id="link" data-pagination="true" data-page-size="5" data-pagination-first-text="First" data-pagination-pre-text="Previous" data-pagination-next-text="Next" data-pagination-last-text="Last">
-                            <thead id="link" class="openo-table-thead">
-								<tr class="active">
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="name"data-sortable="true">
-										<div class="openo-table-th-border"></div>
-										<div class="DataTables_sort_wrapper openo-ellipsis ">
-											<span id="linkName_sorticon" class="openo-table-th-sorticon overflow_elip openoTable_sortable leftHeaderAlign  openo-table-disable-element ">Name
-                                            </span>
-					                    </div>
-					                </th>
-					                <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="logicalType" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="link_aEnd_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Type
-                                            </span>
-										</div>
-									</th>
-					                <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="layerRate" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="link_layerRate_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Layer Rate
-                                            </span>
-										</div>
-									</th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="aEnd" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="link_aEnd_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Source Port
-                                            </span>
-										</div>
-									</th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="zEnd" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="link_zEnd_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Sink Port
-                                            </span>
-										</div>
-									</th>
-									
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="aEndME" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="link_source_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Source NE
-                                            </span>
-										</div>
-									</th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="zEndME" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="link_source_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Sink NE
-                                            </span>
-										</div>
-									</th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="adminState" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="link_adminState_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Admin State
-                                            </span>
-										</div>
-									</th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="operState" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="link_operState_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Operating State
-                                            </span>
-										</div>
-									</th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="siteType" align="center" data-formatter = "operateFormatter" data-events="operateEvents">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="link_latency_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Actions
-                                            </span>
-										</div>
-									</th>
-					            </tr>
-							</thead>
-							<tbody>
-								<!-- <tr style="display: none;">
-									<td colspan="7" style="text-align: center;">NULL</td>
-								</tr>
-								<tr class="odd  openo-table-tr openo-table-disable-element" data-rowid="0" data-tableid="siteTable">
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor    " data-colid="siteName" data-tableid="siteTable">
-										<div class="openo-table-disable-element overflow_elip leftDataAlign">
-											<a class="openo-table-disable-element hyperLinkRow" href="javascript:void(0)" id="siteTable_0_siteName_link">Link1</a></div>
-									</td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element">Type</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element">15</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element">8080</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element">1234</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element">NE</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element">UP</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element">UP</div>
-                                    </td>
-                                    <td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteOperation" data-tableid="siteTable">
-                                        <div class="openo-table-disable-element overflow_elip leftDataAlign openo-table-custom-el" id="siteTable_0_siteOperation_custom_el">
-										<div>
-											<img src="images/delete.png" href="javascript:void(0)" onclick="deleteLink('this')"  opertype="siteDelete" style="cursor: pointer" title="Delete" id="bac4ff3c-d693-4f54-86cd-25af1ea22f59" rowid="0/">
-										</div></div>
-									</td>
-								</tr> -->
-							</tbody>
-                        </table>
-                    </div>
-                </div>
-            </div>
-		</div>
-		<!-- <div id="tpListopenotable_pagination_wrapper" class="openo-table-pagination-wrapper" style="display: block;"><div class="pagination-container openo-pagination-theme openo-pagination"><div class="openoPagination_openoPaginationLengthOptions" id="tpListopenotable_wrapper_div"><input readonly="true" class="openo-pagination-select openopaginationselect" value="" id="tpListopenotable_wrapper_input" actualval="20" style="width: 32px;"><span class="openo-pagination-selectspan openopaginationselectspan" id="tpListopenotable_wrapper_trigger"></span></div><label style="display: block;float:left;">Total records: 23</label><li class="active"><span class="current prev openo-disabled" id="tpListopenotable_wrapper_prev">&nbsp;</span></li><ul><li class="active"><span class="current" id="tpListopenotable_wrapper_page_link_1">1</span></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_2">2</a></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_3">3</a></li><li><a class="page-link next" id="tpListopenotable_wrapper_next">&nbsp;</a></li></ul></div></div> -->
-
-		<div id="vmAppDialog" class="modal fade" tabindex="-1" role="dialog"
-				aria-labelledby="myModalLabel" aria-hidden="false">
-				<div class="modal-dialog">
-					<div class="modal-content">						
-						<div class="content">
-							<div class="modal-header">
-								<button type="button" class="close" data-dismiss="modal" 
-					               aria-hidden="true">×
-					            </button>
-								<h4 class="modal-title" id="myModalLabel">
-					               <span>Create</span>
-					            </h4>
-							</div>
-							<form class="form-horizontal" role="form" id="linkForm">
-							<div id="wizard">
-							<div class="modal-body">							
-								<ul class="nav nav-pills nav-justified vmapp-margin">
-								</ul>
-								<div class="tab-content">
-									<div class="tab-pane active" id="basicTab">
-										<div class="form-group" ms-class="has-error:vmAppDialog.name==''">
-											<label class="col-sm-3 control-label">
-												<span>Name</span>
-												<span class="required">*</span>
-											</label>
-											<div class="col-sm-7">
-												<input type="text" id="name" name="name" class="form-control"/> 
-											</div>
-										</div>
-										<div class="form-group">
-											<label class="col-sm-3 control-label">
-												<span>Type</span>
-											</label>
-										 	<div class="col-sm-7">
-												<select class="form-control" style ="padding-top: 0px;padding-bottom: 0px;" id="logicalType" 
-												        name="logicalType">
-													<option value="fiberLink">Fiber Link</option>
-													<option value="l2Link">L2 Link</option>
-													<option value="ipLink">IP Link</option>
-													<option value="electricalLink">Electrical Link</option>
-												</select>
-											</div>
-										</div>
-										<div class="form-group" ms-class="has-error:vmAppDialog.name==''">
-											<label class="col-sm-3 control-label">
-												<span>Layer Rate</span>
-											</label>
-											<div class="col-sm-7">
-												<input type="text" id="layerRate" name="layerRate" class="form-control"/> 
-											</div>
-										</div>
-										
-										
-										<div class="form-group" ms-class="has-error:vmAppDialog.name==''">
-											<label class="col-sm-3 control-label">
-												<span>Source Port</span>
-											</label>
-											<div class="col-sm-7">
-												<input type="text" id="aEnd" name="aEnd" class="form-control"/> 
-											</div>
-										</div>
-										<div class="form-group" ms-class="has-error:vmAppDialog.name==''">
-											<label class="col-sm-3 control-label">
-												<span>Sink Port</span>
-											</label>
-											<div class="col-sm-7">
-												<input type="text" id="zEnd" name="zEnd" class="form-control"/> 
-											</div>
-										</div>
-										<div class="form-group" ms-class="has-error:vmAppDialog.name==''">
-											<label class="col-sm-3 control-label">
-												<span>Source NE</span>
-											</label>
-											<div class="col-sm-7">
-												<input type="text" id="aEndMe" name="aEndME" class="form-control"/> 
-											</div>
-										</div>
-										<div class="form-group" ms-class="has-error:vmAppDialog.name==''">
-											<label class="col-sm-3 control-label">
-												<span>Sink NE</span>
-											</label>
-											<div class="col-sm-7">
-												<input type="text" id="zEndMe" name="zEndME" class="form-control"/> 
-											</div>
-										</div>
-									</div>									
-								</div>
-							</div>
-							<div class="modal-footer">							
-								<button type="button" class="btn SDBtn" data-dismiss="modal" aria-hidden="true" id="createLink">
-									<span id="nfv-virtualApplication-iui-text-cancelBtn">OK</span>
-								</button>							
-								<button type="button" class="btn button-previous SDBtn">
-									<span id="nfv-virtualApplication-iui-text-previousBtn">Cancel</span>
-								</button>
-								
-							</div>
-						</div>				
-						</form>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div id="filterTpLogicalType_select_popupcontainer" class="openo openo-select-popup-container openo-hide" style="width: 155px; max-height: 130px; left: 628px; top: 104px; z-index: 1761;"><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_0"><label class="openo-ellipsis openo-select-blank-item" style="width: 100%; display: block; height: 20px;"></label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_1"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">ETH</label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_2"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;" title="POS">POS</label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_3"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Trunk</label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_4"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Loopback</label></div></div>
-
-
-</body>
-</html>
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/ne.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr/ne.html
deleted file mode 100644
index 301cb75..0000000
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr/ne.html
+++ /dev/null
@@ -1,295 +0,0 @@
-<!--
-
-    Copyright 2016, Huawei Technologies Co., Ltd.
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file 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.
-
--->
-
-<!DOCTYPE html>
-<html>
-<head>
-	<head lang="en">
-	<meta charset="UTF-8">
-	<title></title>
-	<link href="css/bootstrap.min.css" rel="stylesheet" />
-	<link href="css/VMMain.css" rel="stylesheet" />
-	<link href="css/bootstrap-table.min.css" rel="stylesheet" />
-    <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>	
-    <script type="text/javascript" src="js/bootstrap.min.js"></script>	
-	<script type="text/javascript" src="js/brs.js"></script>
-	<script type="text/javascript" src="js/bootstrap-table.min.js"></script>
-	<script type="text/javascript">
-	$(document).ready(function() {
-		var jsondata = [];
-		jsondata = loadNeData();
-		$('#ne').bootstrapTable({
-		//Assigning data to table
-		data: jsondata
-		});
-       
-    });	
-	function operateFormatter(value, row, index) {
-        return [
-            '<img class="siteDeleteImg" src="images/delete.png" href="javascript:void(0)" style="cursor: pointer" name="title" title="Delete" />'
-        ].join('');
-        
-    }
-	 window.operateEvents = {
-         'click .siteDeleteImg': function (e, value, row, index) {
-             // TO DO ajex call for delete
-			 var result = deleteNe(row.id, row);
-         }
-     };
-	 
-	</script>
-</head>
-<body id="open_base_site_cotentBody" class="cotentBody ng-scope">
-	<div class="container-fluid ms-controller">
-		
-
-			<div class="uploadBtn">
-			<div id="open_base_tpL_userHeader" class="userHeader">
-            <div id="open_base_tpL_buttonGroup" class="openoButton_buttonGroupClass">
-                <div class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass defaultbutton openoButton_button_default" tabindex="0" id="false" text="res.brApp_ui_res_btn_create" icon-url="./images/add.png" cls="defaultbutton" click="clickAdd" style="display: inline-block; padding-left: 0px; padding-right: 0px;"><div class="openoButton_buttonInnerClass openo-corner-all openoButton_Image" id="false_button"><span class="openo-widget-button-image openoButton_buttonLeftImg" style="background-image: url(images/add.png);"></span><span class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Create</span><span class="openo-widget-button-image openoButton_buttonImgDefault"></span></div></div>
-            </div>
-        </div>
-		</div>
-		
-		<div class="row-fluid" data-name="table_zone">
-			<div id='ict_virtualApplication_table_div'>
-                <div>
-                    <div class="top">
-                        <table id="ne" data-row-style="rowStyle" data-pagination="true" data-page-size="5" data-pagination-first-text="First" data-pagination-pre-text="Previous" data-pagination-next-text="Next" data-pagination-last-text="Last">
-                            <thead class="openo-table-thead">
-								<tr class="active">
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="name" data-sortable="true">
-										<div class="openo-table-th-border"></div>
-										<div class="DataTables_sort_wrapper openo-ellipsis ">
-											<span class="openo-table-th-sorticon overflow_elip openoTable_sortable leftHeaderAlign  openo-table-disable-element ">Name
-                                            </span>
-					                    </div>
-					                </th>
-					                <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="version" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="ne_isVersion_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Version
-                                            </span>
-										</div>
-								    </th>
-								    <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="productName" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="neproductName_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Product Name
-                                            </span>
-										</div>
-								    </th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="ipAddress" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="ne_ipAddress_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">IP Address
-                                            </span>
-										</div>
-								    </th>									
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="neRole" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="ne_neRole_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element0" >NE Role
-                                            </span>
-										</div>
-								    </th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="adminState" >
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="ne_adminState_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Admin State
-                                            </span>
-										</div>
-								    </th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="operState" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="ne_operState_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Operating State
-                                            </span>
-										</div>
-								    </th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" align="center" data-formatter = "operateFormatter" data-events="operateEvents" >
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="ne_nativeID_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Actions
-                                            </span>
-										</div>
-								    </th>
-					            </tr></thead>
-							<!-- <tbody>
-								<tr style="display: none;">
-									<td colspan="7" style="text-align: center;">NULL</td>
-								</tr>
-								<tr class="odd  openo-table-tr openo-table-disable-element" data-rowid="0" data-tableid="siteTable">
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor    " data-colid="siteName" data-tableid="siteTable">
-										<div class="openo-table-disable-element overflow_elip leftDataAlign">
-											<a class="openo-table-disable-element hyperLinkRow" href="javascript:void(0)" id="siteTable_0_siteName_link">NE</a></div>
-									</td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">1.1</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">SDN</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">192.168.100.102</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">Role</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">Admin</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">UP</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteOperation" data-tableid="siteTable">
-                                        <div class="openo-table-disable-element overflow_elip leftDataAlign openo-table-custom-el" id="siteTable_0_siteOperation_custom_el">
-										    <div>
-										    <img src="images/delete.png" href="javascript:void(0)" onclick="deleteNe('this');" opertype="siteDelete" style="cursor: pointer" title="Delete" id="bac4ff3c-d693-4f54-86cd-25af1ea22f59" rowid="0/">
-										    </div>
-										</div>
-									</td>
-								</tr>
-								<tr class="even  openo-table-tr openo-table-disable-element" data-rowid="0" data-tableid="siteTable">
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor    " data-colid="siteName" data-tableid="siteTable">
-										<div class="openo-table-disable-element overflow_elip leftDataAlign">
-											<a class="openo-table-disable-element hyperLinkRow" href="javascript:void(0)" id="siteTable_0_siteName_link">NE</a></div>
-									</td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">1.1</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">SDN</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">192.168.100.102</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">Role</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">Admin</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable">
-									    <div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" id="siteTable_0_siteType_custom_el">UP</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteOperation" data-tableid="siteTable">
-                                        <div class="openo-table-disable-element overflow_elip leftDataAlign openo-table-custom-el" id="siteTable_0_siteOperation_custom_el">
-										    <div>
-										    <img src="images/delete.png" href="javascript:void(0)" onclick="deleteNe('this');" opertype="siteDelete" style="cursor: pointer" title="Delete" id="bac4ff3c-d693-4f54-86cd-25af1ea22f59" rowid="0/">
-										    </div>
-										</div>
-									</td>
-								</tr>
-							</tbody> -->
-                        </table>
-                    </div>
-                </div>
-            </div>
-		</div>
-		<!-- <div id="tpListopenotable_pagination_wrapper" class="openo-table-pagination-wrapper" style="display: block;"><div class="pagination-container openo-pagination-theme openo-pagination"><div class="openoPagination_openoPaginationLengthOptions" id="tpListopenotable_wrapper_div"><input readonly="true" class="openo-pagination-select openopaginationselect" value="" id="tpListopenotable_wrapper_input" actualval="20" style="width: 32px;"><span class="openo-pagination-selectspan openopaginationselectspan" id="tpListopenotable_wrapper_trigger"></span></div><label style="display: block;float:left;">Total records: 23</label><li class="active"><span class="current prev openo-disabled" id="tpListopenotable_wrapper_prev">&nbsp;</span></li><ul><li class="active"><span class="current" id="tpListopenotable_wrapper_page_link_1">1</span></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_2">2</a></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_3">3</a></li><li><a class="page-link next" id="tpListopenotable_wrapper_next">&nbsp;</a></li></ul></div></div> -->
-
-		<div id="vmAppDialog" class="modal fade" tabindex="-1" role="dialog"
-				aria-labelledby="myModalLabel" aria-hidden="false">
-				<div class="modal-dialog">
-					<div class="modal-content">						
-						<div class="content">
-							<div class="modal-header">
-								<button type="button" class="close" data-dismiss="modal" 
-					               aria-hidden="true">×
-					            </button>
-								<h4 class="modal-title" id="myModalLabel">
-					               <span>Create</span>
-					            </h4>
-							</div>
-							<form class="form-horizontal" role="form" id="neForm">
-							<div id="wizard">
-							<div class="modal-body">							
-								<ul class="nav nav-pills nav-justified vmapp-margin">
-									
-								</ul>
-								<div class="tab-content">
-									<div class="tab-pane active" id="basicTab">
-										<div class="form-group" ms-class="has-error:vmAppDialog.name==''">
-											<label class="col-sm-3 control-label">
-												<span>Name</span>
-												<span class="required">*</span>
-											</label>
-											<div class="col-sm-7">
-												<input type="text" id="name" name="name" class="form-control" placeholder="Name"/> 
-											</div>
-										</div>
-										<div class="form-group" ms-class="has-error:vmAppDialog.name==''">
-											<label class="col-sm-3 control-label">
-												<span>Version</span>
-												<span class="required">*</span>
-											</label>
-											<div class="col-sm-7">
-												<input type="text" id="version" name="version" class="form-control" placeholder="1.1"/> 
-											</div>
-										</div>
-										<div class="form-group">
-											<label class="col-sm-3 control-label">
-												<span>Product Name</span>&nbsp;&nbsp;&nbsp;
-											</label>
-										 	<div class="col-sm-7">
-												<input type="text" id="productName" name="productName" class="form-control" placeholder="Product Name"/>
-											</div>
-										</div>
-										<div class="form-group">
-											<label class="col-sm-3 control-label">
-												<span>IP Address</span>&nbsp;&nbsp;&nbsp;
-											</label>
-										 	<div class="col-sm-7">
-												<input type="text" id="ipAddress" name="ipAddress" class="form-control" placeholder="255.255.255.255"/>
-											</div>
-										</div>
-										<!-- TODO : check for valid neRole									
-										<div class="form-group">
-											<label class="col-sm-3 control-label">
-												<span>NE Role</span>&nbsp;&nbsp;&nbsp;
-											</label>
-										 	<div class="col-sm-7">
-												<input type="text" id="neRole" name="neRole" class="form-control" placeholder="Role"/>
-											</div>
-										</div>
-										-->
-									</div>									
-								</div>
-							</div>
-							<div class="modal-footer">							
-								<button type="button" class="btn SDBtn" data-dismiss="modal" aria-hidden="true" id="createNe">
-									<span id="nfv-virtualApplication-iui-text-cancelBtn">OK</span>
-								</button>							
-								<button type="button" class="btn button-previous SDBtn">
-									<span id="nfv-virtualApplication-iui-text-previousBtn">Cancel</span>
-								</button>
-								
-							</div>
-						</div>				
-						</form>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div id="filterTpLogicalType_select_popupcontainer" class="openo openo-select-popup-container openo-hide" style="width: 155px; max-height: 130px; left: 628px; top: 104px; z-index: 1761;"><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_0"><label class="openo-ellipsis openo-select-blank-item" style="width: 100%; display: block; height: 20px;"></label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_1"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">ETH</label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_2"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;" title="POS">POS</label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_3"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Trunk</label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_4"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Loopback</label></div></div>
-
-
-</body>
-</html>
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/port.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr/port.html
deleted file mode 100644
index e47b30d..0000000
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr/port.html
+++ /dev/null
@@ -1,299 +0,0 @@
-<!--
-
-    Copyright 2016, Huawei Technologies Co., Ltd.
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file 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.
-
--->
-
-<!DOCTYPE html>
-<html>
-<head>
-	<head lang="en">
-	<meta charset="UTF-8">
-	<title></title>
-	<link href="css/bootstrap.min.css" rel="stylesheet" />
-	<link href="css/VMMain.css" rel="stylesheet" />
-	<link href="css/bootstrap-table.min.css" rel="stylesheet" />
-	<script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
-    <script type="text/javascript" src="js/bootstrap.min.js"></script>	
-	<script type="text/javascript" src="js/brs.js"></script>
-	<script type="text/javascript" src="js/bootstrap-table.min.js"></script>
-	<script type="text/javascript">
-	$(document).ready(function() {
-       
-       var jsondata = [];
-	   jsondata = loadPortData();
-
-		$('#port').bootstrapTable({
-		//Assigning data to table
-		data: jsondata
-		});
-    });
-	function operateFormatter(value, row, index) {
-        return [
-            '<img class="siteDeleteImg" src="images/delete.png" href="javascript:void(0)" style="cursor: pointer" name="title" title="Delete" />'
-        ].join('');
-        
-    }
-	 window.operateEvents = {
-         'click .siteDeleteImg': function (e, value, row, index) {
-             
-			 deletePort(row.id);
-             console.log(value, row, index);
-         }
-     };
-	</script>
-</head>
-<body id="open_base_site_cotentBody" class="cotentBody ng-scope">
-	
-	
-		<div class="uploadBtn">
-			<div id="open_base_tpL_userHeader" class="userHeader">
-            <div id="open_base_tpL_buttonGroup" class="openoButton_buttonGroupClass">
-                <div class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass defaultbutton openoButton_button_default" tabindex="0" id="false" text="res.brApp_ui_res_btn_create" icon-url="./images/add.png" cls="defaultbutton" click="clickAdd" style="display: inline-block; padding-left: 0px; padding-right: 0px;"><div class="openoButton_buttonInnerClass openo-corner-all openoButton_Image" id="false_button"><span class="openo-widget-button-image openoButton_buttonLeftImg" style="background-image: url(images/add.png);"></span><span class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Create</span><span class="openo-widget-button-image openoButton_buttonImgDefault"></span></div></div>
-            </div>
-        </div>
-		</div>
-		
-		<div class="row-fluid" data-name="table_zone">
-			<div id='ict_virtualApplication_table_div'>
-                <div>
-                    <div class="top">
-                        <table id="port" data-pagination="true" data-page-size="5" data-pagination-first-text="First" data-pagination-pre-text="Previous" data-pagination-next-text="Next" data-pagination-last-text="Last">
-                            <thead id="portTable_thead" class="openo-table-thead">
-								<tr class="active">
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="name" data-sortable="true">
-										<div class="openo-table-th-border"></div>
-										<div class="DataTables_sort_wrapper openo-ellipsis ">
-											<span id="portName_sorticon" class="openo-table-th-sorticon overflow_elip openoTable_sortable leftHeaderAlign  openo-table-disable-element ">Name
-                                             </span>
-					                    </div>
-					                </th>
-					                <th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="meID" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="portmeID_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">ME
-                                            </span>
-										</div>
-									</th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="logicalType" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="portLogicalType_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Type
-                                            </span>
-										</div>
-									</th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="layerRate" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="portLayerRate_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Layer Rate
-                                            </span>
-										</div>
-									</th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="isEdgePoint" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="portIsEdgePoint_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Edge Point
-                                            </span>
-										</div>
-									</th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="portIndex" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="portIndex_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Port Index
-                                            </span>
-										</div>
-									</th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="ipAddress" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="portIpAddress_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">IP Address
-                                            </span>
-										</div>
-									</th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="adminState" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="portAdminState_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Admin State
-                                            </span>
-										</div>
-									</th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" data-field="operState" data-sortable="true">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="portOperState_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Operating State
-                                            </span>
-										</div>
-									</th>
-									<th class="openo-table-state-default openo-table-th openo-table-disable-element  leftHeaderAlign" align="center" data-formatter = "operateFormatter" data-events="operateEvents">
-						                <div class="openo-table-th-border"></div>
-						                <div class="DataTables_sort_wrapper openo-ellipsis ">
-							                <span id="portAction_sorticon" class="openo-table-th-sorticon overflow_elip  leftHeaderAlign  openo-table-disable-element ">Action</span>
-										</div>
-									</th>
-					            </tr>
-						    </thead>
-							<!-- <tbody>
-								<tr style="display: none;">
-									<td colspan="7" style="text-align: center;">NULL</td>
-								</tr>
-								<tr class="odd  openo-table-tr openo-table-disable-element" data-rowid="0" data-tableid="siteTable">
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteName" data-tableid="siteTable">
-										<div class="openo-table-disable-element overflow_elip leftDataAlign">
-											<a class="openo-table-disable-element hyperLinkRow" href="javascript:void(0)" id="siteTable_0_portName_link"></a>Port1</div>
-									</td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteType" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >ME</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteTenantName" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >Type</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteTenantName" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >12</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteTenantName" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >Edge</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteTenantName" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >12345</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteTenantName" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >255.255.255.123</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteTenantName" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >UP</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteTenantName" data-tableid="siteTable"><div class="overflow_elip leftDataAlign openo-table-custom-el openo-table-disable-element" >UP</div>
-                                    </td>
-									<td class="openo-table-disable-element openo-table-td overflow_elip leftDataAlign tableHeaderTDTopBorderColor" data-colid="siteOperation" data-tableid="siteTable">
-                                        <div class="openo-table-disable-element overflow_elip leftDataAlign openo-table-custom-el" id="siteTable_0_siteOperation_custom_el">
-										    <div>
-										    	<img src="images/delete.png" href="javascript:void(0)" onclick="deletePort('this');" opertype="siteDelete" style="cursor: pointer" title="Delete" id="bac4ff3c-d693-4f54-86cd-25af1ea22f59" rowid="0/">
-											</div>
-										</div>
-									</td>
-								</tr>
-							</tbody> -->
-                        </table>
-                    </div>
-                </div>
-            </div>
-		</div>
-		<!-- <div id="tpListopenotable_pagination_wrapper" class="openo-table-pagination-wrapper" style="display: block;"><div class="pagination-container openo-pagination-theme openo-pagination"><div class="openoPagination_openoPaginationLengthOptions" id="tpListopenotable_wrapper_div"><input readonly="true" class="openo-pagination-select openopaginationselect" value="" id="tpListopenotable_wrapper_input" actualval="20" style="width: 32px;"><span class="openo-pagination-selectspan openopaginationselectspan" id="tpListopenotable_wrapper_trigger"></span></div><label style="display: block;float:left;">Total records: 23</label><li class="active"><span class="current prev openo-disabled" id="tpListopenotable_wrapper_prev">&nbsp;</span></li><ul><li class="active"><span class="current" id="tpListopenotable_wrapper_page_link_1">1</span></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_2">2</a></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_3">3</a></li><li><a class="page-link next" id="tpListopenotable_wrapper_next">&nbsp;</a></li></ul></div></div> -->
-
-		<div id="vmAppDialog" class="modal fade" tabindex="-1" role="dialog"
-				aria-labelledby="myModalLabel" aria-hidden="false">
-				<div class="modal-dialog">
-					<div class="modal-content">						
-						<div class="content">
-							<div class="modal-header">
-								<button type="button" class="close" data-dismiss="modal" 
-					               aria-hidden="true">×
-					            </button>
-								<h4 class="modal-title" id="myModalLabel">
-					               <span>Create</span>
-					            </h4>
-							</div>
-							<form class="form-horizontal" role="form" id="portForm">
-							<div id="wizard">
-							<div class="modal-body">							
-								<ul class="nav nav-pills nav-justified vmapp-margin">
-								</ul>
-								<div class="tab-content">
-									<div class="tab-pane active" id="basicTab">
-										<div class="form-group" ms-class="has-error:vmAppDialog.name==''">
-											<label class="col-sm-3 control-label">
-												<span>Name</span>
-												<span class="required">*</span>
-											</label>
-											<div class="col-sm-7">
-												<input type="text" id="name" name="name" class="form-control" placeholder="Name"/> 
-											</div>
-										</div>
-										<div class="form-group" ms-class="has-error:vmAppDialog.name==''">
-											<label class="col-sm-3 control-label">
-												<span>ME</span>
-											</label>
-											<div class="col-sm-7">
-												<input type="text" id="meID" name="meID" class="form-control" placeholder="ME"/> 
-											</div>
-										</div>
-										<div class="form-group">
-											<label class="col-sm-3 control-label">
-												<span>Type</span>												
-											</label>
-										 	<div class="col-sm-7">
-												<select class="form-control" style ="padding-top: 0px;padding-bottom: 0px;" id="logicalType" 
-												        name="logicalType">
-													<option value="ETH">ETH</option>
-													<option value="POS">POS</option>
-													<option value="Trunk">Trunk</option>
-													<option value="Loopback">Loopback</option>
-												</select>
-											</div>
-										</div>
-										<div class="form-group" ms-class="has-error:vmAppDialog.name==''">
-											<label class="col-sm-3 control-label">
-												<span>Layer Rate</span>
-											</label>
-											<div class="col-sm-7">
-												<input type="text" id="layerRate" name="layerRate" class="form-control" placeholder="Layer Rate"/> 
-											</div>
-										</div>
-										<div class="form-group">
-											<label class="col-sm-3 control-label">
-												<span>Edge Point</span>												
-											</label>
-										 	<div class="col-sm-7">
-												<select class="form-control" style ="padding-top: 0px;padding-bottom: 0px;" id="isEdgePoint" 
-												        name="isEdgePoint">
-													<option value="true">True</option>
-													<option value="false">False</option>
-												</select>
-											</div>
-										</div>
-										<div class="form-group" ms-class="has-error:vmAppDialog.name==''">
-											<label class="col-sm-3 control-label">
-												<span>Port Index</span>
-											</label>
-											<div class="col-sm-7">
-												<input type="text" id="portIndex" name="portIndex" class="form-control" placeholder="Port Index"/> 
-											</div>
-										</div>
-										
-										<div class="form-group">
-											<label class="col-sm-3 control-label">
-												<span>IP Address</span>&nbsp;&nbsp;&nbsp;
-											</label>
-										 	<div class="col-sm-7">
-												<input type="text" id="ipAddress" name="ipAddress" class="form-control" placeholder="255.255.255.255"/>
-											</div>
-										</div>
-									</div>
-								</div>
-							</div>
-							<div class="modal-footer">							
-								<button type="button" class="btn SDBtn" data-dismiss="modal" aria-hidden="true" id="createPort">
-									<span id="nfv-virtualApplication-iui-text-cancelBtn">OK</span>
-								</button>							
-								<button type="button" class="btn button-previous SDBtn">
-									<span id="nfv-virtualApplication-iui-text-previousBtn">Cancel</span>
-								</button>
-								
-							</div>
-						</div>				
-						</form>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div id="filterTpLogicalType_select_popupcontainer" class="openo openo-select-popup-container openo-hide" style="width: 155px; max-height: 130px; left: 628px; top: 104px; z-index: 1761;"><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_0"><label class="openo-ellipsis openo-select-blank-item" style="width: 100%; display: block; height: 20px;"></label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_1"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">ETH</label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_2"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;" title="POS">POS</label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_3"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Trunk</label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_4"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Loopback</label></div></div>
-
-
-</body>
-</html>
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/resource.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr/resource.html
deleted file mode 100644
index 06ddae8..0000000
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr/resource.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!--
-
-    Copyright 2016, Huawei Technologies Co., Ltd.
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file 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.
-
--->
-
-<!doctype html>
-<html>
-<head>
-<meta charset="utf-8">
-<title></title>
-	<link href="css/bootstrap.min.css" rel="stylesheet" />
-	<link href="css/RMain.css" rel="stylesheet" />
-    <script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
-    <script type="text/javascript" src="js/bootstrap.min.js"></script>
-</head>
-<script type="text/javascript">
-    $(function(){
-        $('.openo_accordion_ui-icon-expand,.header').click(function(){
-            $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL').slideToggle(500);
-            $('.openo_accordion_ui-icon-expand').toggleClass('current')
-        });
-        $('.openoAccordian_showHideArrow_hide').click(function(){
-            // $('#open_base_openo').css('margin-left','-200px');
-            // $('#open_base_openo').css('display','none');
-            // $('.bar').css('display','block');
-            if($('#accordionmenuid').width() >= 200){
-                $('#accordionmenuid').width('18px');
-                $('.openo_accordion_ui-icon-expand,.header,#accordionmenuid_ul_0_0_brAppTopMenuID_UL li a').css('display','none');
-                $('#accordionmenuid_arrow').attr('classname','openoAccordian_showHideArrow_show');
-                $('#iframeContainer').css('width','1284px');                
-            }else if($('#accordionmenuid').width() == 18){
-                $('#accordionmenuid').width('220px');
-                $('.openo_accordion_ui-icon-expand,.header,#accordionmenuid_ul_0_0_brAppTopMenuID_UL li a').css('display','block');
-                $('#accordionmenuid_arrow').attr('classname','openoAccordian_showHideArrow_hide');
-                $('#iframeContainer').css('width','1063px');
-            }
-            
-        });
-        $('.bar span').click(function(){
-            $('#open_base_openo').css('display','block');
-            $('.bar').css('display','none');
-             $('#iframeContainer').css('width','1063px');
-        });
-        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL li').click(function(){
-            $(this).addClass('openo_accordion_selected').siblings().removeClass('openo_accordion_selected');
-        });
-        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_0_brAppSiteMenuID').click(function(){
-            $('#accordionContent').attr('src','site.html');
-        });
-        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_1_brAppMeMenuID').click(function(){
-            $('#accordionContent').attr('src','ne.html');
-        });
-        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_2_brAppTpMenuID').click(function(){
-            $('#accordionContent').attr('src','port.html');
-        });
-        $('#accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_3_brAppTlMenuID').click(function(){
-            $('#accordionContent').attr('src','link.html');
-        });
-        
-    })
-</script>
-<body>
-    <div id="febDiv" style="overflow: hidden;">
-    <div id="open_base_feb">
-        <!--use for store menu come from feb service, maybe just a temple plan-->
-        <div id="app">
-            <div id="iemp_layout_container" ng-controller="resourceCtrl" class="iemp_layout_container ng-scope">
-
-                <table id="open_base_table" class="three-cols-layout">
-                    <tbody id="open_base_tbody">
-                    <tr id="open_base_tr">
-                        <td class="bar">
-                            <span></span>
-                        </td>
-                        <td id="open_base_openo" class="three-cols-column three-cols-left">
-                            <div id="accordionmenuid" allow-resize="true" dataset="dataArr" height="resHeight" listeners="callBacklisteners" resize-callback="resizehandler" current-select="currentselect" click="clickHandler" class="ng-isolate-scope accordion_parent openo_accordion_main_menu" style="height: 870px;">
-                                <div class="openo-accordion-resizable-handle" style="cursor: auto;"></div>
-                                <ul id="accordionmenuid_ul" class="openoAccordian_accordionmenu">
-                                    <li id="accordionmenuid_ul_0_0_brAppTopMenuID" nodeid="brAppTopMenuID">
-                                        <span class="openo_accordion_ui-icon-expand" style="padding-left: 20px; height: 60px;cursor: pointer;"></span>
-                                        <span class="openoAccordian_showHideArrow_hide" id="accordionmenuid_arrow" style="cursor: pointer;"></span>
-                                        <a title="brApp" class="header opened" style="padding-left: 10px; cursor: pointer;">Resource</a>
-                                        <ul id="accordionmenuid_ul_0_0_brAppTopMenuID_UL">
-                                            <li id="accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_0_brAppSiteMenuID" nodeid="brAppSiteMenuID" class="" style="display: list-item;">
-                                                <a title="Site" class="" style="padding-left: 62px;">Site</a>
-											</li>
-                                            <li id="accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_1_brAppMeMenuID" nodeid="brAppMeMenuID" style="display: list-item;">
-                                                    <a title="NE" style="padding-left: 62px;">NE</a>
-                                            </li>
-                                            <li id="accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_2_brAppTpMenuID" nodeid="brAppTpMenuID" style="display: list-item;">
-                                                    <a title="Port" style="padding-left: 62px;">Port</a>
-                                            </li>
-                                            <li id="accordionmenuid_ul_0_0_brAppTopMenuID_UL_1_3_brAppTlMenuID" nodeid="brAppTlMenuID" style="display: list-item;">
-                                                    <a title="Link" style="padding-left: 62px;">Link</a>
-                                            </li>
-                                        </ul>
-                                    </li>
-                                </ul>
-							</div>
-                        </td>
-                        <td id="open_base_iframe" class="three-cols-column three-cols-center" style="padding: 0px;">
-
-                            <div id="iframeContainer" class="frame-class" style="height: 870px;">
-                                <iframe id="accordionContent" src="" height="870px"></iframe>
-                            </div>
-                        </td>
-                    </tr>
-                    </tbody>
-                </table>
-
-            </div>
-        </div>
-    </div>
-</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/openo-portal/portal-resmgr/src/main/webapp/resmgr/site.html b/openo-portal/portal-resmgr/src/main/webapp/resmgr/site.html
deleted file mode 100644
index 9cb3e50..0000000
--- a/openo-portal/portal-resmgr/src/main/webapp/resmgr/site.html
+++ /dev/null
@@ -1,195 +0,0 @@
-<!--
-
-    Copyright 2016, Huawei Technologies Co., Ltd.
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file 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.
-
--->
-
-<!DOCTYPE html>
-<html>
-<head>
-	<head lang="en">
-	<meta charset="UTF-8">
-	<title></title>
-	<link href="css/bootstrap.min.css" rel="stylesheet" />
-	<link href="css/VMMain.css" rel="stylesheet" />
-	<link href="css/bootstrap-table.min.css" rel="stylesheet" />
-	<script type="text/javascript" src="js/jquery-1.11.2.min.js"></script>	
-    <script type="text/javascript" src="js/bootstrap.min.js"></script>
-    <script type="text/javascript" src="js/brs.js"></script>	
-    <script type="text/javascript" src="js/bootstrap-table.min.js"></script>
-    
-	<style type="text/css">
-	</style>
-	<script type="text/javascript">
-	$(document).ready(function() {
-		
-		var jsondata = [];
-		jsondata = loadSiteData();
-		$('#site').bootstrapTable({
-            //Assigning data to table
-            data: jsondata
-        });
-		
-       
-    });
-	
-	function operateFormatter(value, row, index) {
-        return [
-            '<img class="siteDeleteImg" src="images/delete.png" href="javascript:void(0)" style="cursor: pointer" name="title" title="Delete" />'
-        ].join('');
-        
-    }
-	 window.operateEvents = {
-         'click .siteDeleteImg': function (e, value, row, index) {
-             // TO DO ajex call for delete
-			 deleteSite(row.id);
-             console.log(value, row, index);
-         }
-     };
-	</script>
-</head>
-<body id="open_base_site_cotentBody" class="cotentBody ng-scope">
-	<div class="container-fluid ms-controller">
-		
-	<div class="uploadBtn">
-			<div id="open_base_tpL_userHeader" class="userHeader">
-            <div id="open_base_tpL_buttonGroup" class="openoButton_buttonGroupClass">
-                <div class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass defaultbutton openoButton_button_default" tabindex="0" id="false" text="res.brApp_ui_res_btn_create" icon-url="./images/add.png" cls="defaultbutton" click="clickAdd" style="display: inline-block; padding-left: 0px; padding-right: 0px;"><div class="openoButton_buttonInnerClass openo-corner-all openoButton_Image" id="false_button"><span class="openo-widget-button-image openoButton_buttonLeftImg" style="background-image: url(images/add.png);"></span><span class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Create</span><span class="openo-widget-button-image openoButton_buttonImgDefault"></span></div></div>
-
-
-                <div class="openo openo-widget-button openoButton_buttonClass_parent ng-isolate-scope openoButton_buttonClass undefined openoButton_button_default" tabindex="0" id="meEdit" text="res.brApp_ui_res_btn_edit" display="false" style="display: none;"><div class="openoButton_buttonInnerClass openo-corner-all" id="meEdit_button"><span class="openo-widget-button-image openoButton_buttonImgDefault"></span><span class="openoButton_buttonCenterText openoButton_buttonCenterTextFont">Edit</span><span class="openo-widget-button-image openoButton_buttonImgDefault"></span></div></div>
-
-            </div>
-        </div>
-	</div>
-		
-		<div class="row-fluid" data-name="table_zone">
-			<div id='ict_virtualApplication_table_div'>
-                <div>
-                    <div class="top">
-                        <table id="site"
-                        	data-pagination="true" data-page-size="5" data-pagination-first-text="First" data-pagination-pre-text="Previous" data-pagination-next-text="Next" data-pagination-last-text="Last">
-                             <thead>
-					            <tr class="active" >
-					                <th data-field="name"  data-sortable="true">Name</th>
-					                <th data-field="type" data-sortable="true">Type</th>
-					                <th data-field="tenantID" data-sortable="true">Tenant Name</th>
-					                <th data-field="tenantSiteIDs" data-sortable="true">Tenant Site</th>
-					                <th data-field="location" data-sortable="true">Location</th>
-					                
-					                <th align="center" data-formatter = "operateFormatter" data-events="operateEvents">Action</th>
-					            </tr>
-					            </thead>
-                        </table>
-                    </div>
-                </div>	
-            </div>
-		</div>
-		<!-- <div id="tpListopenotable_pagination_wrapper" class="openo-table-pagination-wrapper" style="display: block;"><div class="pagination-container openo-pagination-theme openo-pagination"><div class="openoPagination_openoPaginationLengthOptions" id="tpListopenotable_wrapper_div"><input readonly="true" class="openo-pagination-select openopaginationselect" value="" id="tpListopenotable_wrapper_input" actualval="20" style="width: 32px;"><span class="openo-pagination-selectspan openopaginationselectspan" id="tpListopenotable_wrapper_trigger"></span></div><label style="display: block;float:left;">Total records: 23</label><li class="active"><span class="current prev openo-disabled" id="tpListopenotable_wrapper_prev">&nbsp;</span></li><ul><li class="active"><span class="current" id="tpListopenotable_wrapper_page_link_1">1</span></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_2">2</a></li><li><a class="page-link" id="tpListopenotable_wrapper_page_link_3">3</a></li><li><a class="page-link next" id="tpListopenotable_wrapper_next">&nbsp;</a></li></ul></div></div> -->
-
-		<div id="vmAppDialog" class="modal fade" tabindex="-1" role="dialog"
-				aria-labelledby="myModalLabel" aria-hidden="false">
-				<div class="modal-dialog">
-					<div class="modal-content">						
-						<div class="content">
-							<div class="modal-header">
-								<button type="button" class="close" data-dismiss="modal" 
-					               aria-hidden="true">×
-					            </button>
-								<h4 class="modal-title" id="myModalLabel">
-					               <span>Create</span>
-					            </h4>
-							</div>
-							<form class="form-horizontal" role="form" id="vmAppForm">
-							<div id="wizard">
-							<div class="modal-body">							
-								<ul class="nav nav-pills nav-justified vmapp-margin">
-								</ul>
-								<div class="tab-content">
-									<div class="tab-pane active" id="basicTab">
-										<div class="form-group" ms-class="has-error:vmAppDialog.name==''">
-											<label class="col-sm-3 control-label">
-												<span>Name</span>
-												<span class="required">*</span>
-											</label>
-											<div class="col-sm-7">
-												<input type="text" id="name" name="name" class="form-control" placeholder="Name"/> 
-											</div>
-										</div>
-										<div class="form-group">
-											<label class="col-sm-3 control-label">
-												<span>Type</span>&nbsp;&nbsp;&nbsp;
-											</label>
-										 	
-											<div class="col-sm-7">
-												<select class="form-control" style ="padding-top: 0px;padding-bottom: 0px;" id="type" 
-												        name="type">
-													<option value="network_site">Network</option>
-													<option value="tenant_site">Tenant</option>
-												</select>
-											</div>
-										</div>
-										<!--  TODO: these field are ignored as of now
-										<div class="form-group">
-											<label class="col-sm-3 control-label">
-												<span>Tenant Name</span>&nbsp;&nbsp;&nbsp;
-											</label>
-										 	<div class="col-sm-7">
-												<input type="text" id="tenantName" name="tenantName" class="form-control" placeholder="Banglore"/>
-											</div>
-										</div>
-										<div class="form-group">
-											<label class="col-sm-3 control-label">
-												<span>Tenant Site</span>&nbsp;&nbsp;&nbsp;
-											</label>
-										 	<div class="col-sm-7">
-												<input type="text" id="tenantSite" name="tenantSite" class="form-control" placeholder="Banglore"/>
-											</div>
-										</div>
-										-->
-										<div class="form-group">
-											<label class="col-sm-3 control-label">
-												<span>Location</span>&nbsp;&nbsp;&nbsp;
-											</label>
-										 	<div class="col-sm-7">
-												<input type="text" id="location" name="location" class="form-control" placeholder="Banglore"/>
-											</div>
-										</div>
-									</div>
-									
-									
-								</div>
-							</div>
-							<div class="modal-footer">							
-								<button type="button" class="btn SDBtn" data-dismiss="modal" aria-hidden="true" id="createSite">
-									<span id="nfv-virtualApplication-iui-text-cancelBtn">OK</span>
-								</button>							
-								<button type="button" class="btn button-previous SDBtn">
-									<span id="nfv-virtualApplication-iui-text-previousBtn">Cancel</span>
-								</button>
-								
-							</div>
-						</div>				
-						</form>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
-	<div id="filterTpLogicalType_select_popupcontainer" class="openo openo-select-popup-container openo-hide" style="width: 155px; max-height: 130px; left: 628px; top: 104px; z-index: 1761;"><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_0"><label class="openo-ellipsis openo-select-blank-item" style="width: 100%; display: block; height: 20px;"></label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_1"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">ETH</label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_2"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;" title="POS">POS</label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_3"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Trunk</label></div><div class="openo-select-item openo-ellipsis  " id="filterTpLogicalType_openo-select-id_4"><label class="openo-ellipsis " style="width: 100%; display: block; height: 20px;">Loopback</label></div></div>
-
-
-</body>
-</html>
\ No newline at end of file
