This is an automated email from the ASF dual-hosted git repository.

kbhatt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git


The following commit(s) were added to refs/heads/master by this push:
     new 5e8b7f3  ATLAS-3851:- UI: Remove hourglass icon from in progress entity
5e8b7f3 is described below

commit 5e8b7f34a75e7b433ff9404fbb973cea04d8f2d4
Author: kevalbhatt <[email protected]>
AuthorDate: Thu Jun 18 00:01:30 2020 +0530

    ATLAS-3851:- UI: Remove hourglass icon from in progress entity
---
 dashboardv2/public/css/scss/business-metadata.scss | 29 +++++++
 dashboardv2/public/css/scss/common.scss            | 34 ++++++---
 dashboardv2/public/css/scss/theme.scss             | 88 ----------------------
 .../detail_page/DetailPageLayoutView_tmpl.html     |  2 +-
 .../EntityBusinessMetaDataItemView_tmpl.html       |  2 +-
 .../js/templates/graph/LineageLayoutView_tmpl.html |  1 -
 dashboardv2/public/js/utils/CommonViewFunction.js  | 16 ++--
 .../BusinessMetadataAttributeItemView.js           |  4 +-
 .../BusinessMetadataDetailLayoutView.js            |  2 +-
 .../BusinessMetadataTableLayoutView.js             |  4 +-
 .../CreateBusinessMetadataLayoutView.js            |  2 +-
 .../business_metadata/EnumCreateUpdateItemView.js  |  6 +-
 .../js/views/detail_page/DetailPageLayoutView.js   | 17 ++---
 .../js/views/entity/CreateEntityLayoutView.js      |  6 +-
 .../views/entity/EntityBusinessMetaDataItemView.js | 39 +++++-----
 .../js/views/entity/EntityBusinessMetaDataView.js  | 10 +--
 .../js/views/entity/EntityLabelDefineView.js       |  6 +-
 .../js/views/entity/EntityUserDefineItemView.js    |  2 +-
 .../js/views/glossary/GlossaryDetailLayoutView.js  | 12 +--
 .../public/js/views/glossary/GlossaryLayoutView.js |  2 +-
 .../glossary/TermRelationAttributeLayoutView.js    |  2 +-
 dashboardv2/public/js/views/graph/LineageUtils.js  | 12 ---
 .../js/views/graph/PropagationPropertyModal.js     |  2 +-
 .../js/views/graph/RelationshipLayoutView.js       | 16 ++--
 .../public/js/views/schema/SchemaLayoutView.js     |  4 +-
 .../public/js/views/search/SearchLayoutView.js     |  4 +-
 .../js/views/search/SearchResultLayoutView.js      | 18 ++---
 dashboardv2/public/js/views/site/Header.js         |  3 +-
 dashboardv2/public/js/views/tag/AddTagModalView.js |  6 +-
 .../js/views/tag/TagAttributeDetailLayoutView.js   |  2 +-
 .../js/views/tag/TagDetailTableLayoutView.js       |  2 +-
 dashboardv2/public/js/views/tag/TagLayoutView.js   |  2 +-
 dashboardv3/public/css/scss/business-metadata.scss | 29 +++++++
 dashboardv3/public/css/scss/common.scss            | 29 ++++---
 dashboardv3/public/css/scss/theme.scss             | 84 ---------------------
 .../detail_page/DetailPageLayoutView_tmpl.html     |  2 +-
 .../EntityBusinessMetaDataItemView_tmpl.html       |  2 +-
 .../js/templates/graph/LineageLayoutView_tmpl.html |  1 -
 dashboardv3/public/js/utils/CommonViewFunction.js  | 16 ++--
 .../BusinessMetadataAttributeItemView.js           |  4 +-
 .../BusinessMetadataDetailLayoutView.js            |  2 +-
 .../BusinessMetadataTableLayoutView.js             |  4 +-
 .../CreateBusinessMetadataLayoutView.js            |  2 +-
 .../business_metadata/EnumCreateUpdateItemView.js  |  6 +-
 .../js/views/detail_page/DetailPageLayoutView.js   | 17 ++---
 .../js/views/entity/CreateEntityLayoutView.js      |  6 +-
 .../views/entity/EntityBusinessMetaDataItemView.js | 39 +++++-----
 .../js/views/entity/EntityBusinessMetaDataView.js  |  8 +-
 .../js/views/entity/EntityLabelDefineView.js       |  6 +-
 .../js/views/entity/EntityUserDefineItemView.js    |  2 +-
 .../js/views/glossary/GlossaryDetailLayoutView.js  | 12 +--
 .../glossary/TermRelationAttributeLayoutView.js    |  2 +-
 dashboardv3/public/js/views/graph/LineageUtils.js  | 12 ---
 .../js/views/graph/PropagationPropertyModal.js     |  2 +-
 .../js/views/graph/RelationshipLayoutView.js       | 15 ++--
 .../public/js/views/schema/SchemaLayoutView.js     |  4 +-
 .../js/views/search/GlobalSearchLayoutView.js      |  4 +-
 .../js/views/search/SearchDefaultLayoutView.js     |  2 +-
 .../views/search/SearchFilterBrowseLayoutView.js   | 11 +--
 .../js/views/search/SearchResultLayoutView.js      | 18 ++---
 .../search/tree/ClassificationTreeLayoutView.js    |  2 +-
 .../search/tree/CustomFilterTreeLayoutView.js      |  2 +-
 dashboardv3/public/js/views/tag/AddTagModalView.js |  6 +-
 .../js/views/tag/TagAttributeDetailLayoutView.js   |  2 +-
 .../js/views/tag/TagDetailTableLayoutView.js       |  2 +-
 65 files changed, 284 insertions(+), 428 deletions(-)

diff --git a/dashboardv2/public/css/scss/business-metadata.scss 
b/dashboardv2/public/css/scss/business-metadata.scss
index 9507b83..6ed774d 100644
--- a/dashboardv2/public/css/scss/business-metadata.scss
+++ b/dashboardv2/public/css/scss/business-metadata.scss
@@ -21,6 +21,7 @@
 
     >li:first-child {
         font-weight: 600;
+        word-break: break-all;
     }
 
     .business-metadata-tree-child {
@@ -38,6 +39,26 @@
         margin-top: 10px;
         font-weight: 100;
     }
+
+    .custom-table {
+        &:not(.bm-create) {
+            .custom-tr {
+
+                .custom-col-1 {
+                    width: calc(50% - 55px);
+
+                    .select2-selection--multiple .select2-selection__rendered {
+                        overflow: scroll;
+                    }
+                }
+
+                .custom-col-2 {
+                    width: 45px;
+                }
+            }
+        }
+    }
+
 }
 
 .business-metadata-options.dropdown {
@@ -165,6 +186,8 @@
 
         .panel-title {
             font-size: 14px;
+            word-break: break-all;
+            width: inherit;
 
             a:hover {
                 color: #686868 !important;
@@ -176,4 +199,10 @@
     .btn-group>button {
         color: #686868 !important;
     }
+
+    .business-metadata-detail-attr-key {
+        width: 30%;
+        word-break: break-word;
+
+    }
 }
\ No newline at end of file
diff --git a/dashboardv2/public/css/scss/common.scss 
b/dashboardv2/public/css/scss/common.scss
index 0844124..9e3c904 100644
--- a/dashboardv2/public/css/scss/common.scss
+++ b/dashboardv2/public/css/scss/common.scss
@@ -14,9 +14,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-
 /* common.scss */
-
 .readOnly {
 
     span,
@@ -221,10 +219,18 @@ pre {
 
 .custom-table {
     width: 100%;
+    display: flex;
+
+    tbody {
+        display: flex;
+        flex-flow: column;
+        width: 100%;
+    }
 
     .custom-tr {
         margin-left: 15px;
-        margin-right: 15px;
+        display: flex;
+        width: calc(100% - 15px);
 
         .custom-col-0,
         .custom-col-1,
@@ -242,20 +248,30 @@ pre {
 
 
         .custom-col-0 {
-            text-align: center;
-            vertical-align: middle;
             line-height: 31px;
-            width: 3%;
+            width: 9px;
+            padding: 0px 2px;
         }
 
         .custom-col-1 {
-            width: 39%;
+            width: calc(50% - 90px);
+            flex-grow: 2;
+
+            &:first-child {
+                width: 30% !important;
+                flex-grow: 1;
+            }
         }
 
         .custom-col-2 {
             text-align: center;
-            width: 17%;
-            margin-left: 1%;
+            width: 80px;
+            padding-left: 10px;
+
+            &>button {
+                padding: 7px 10px;
+                margin-bottom: 10px;
+            }
         }
     }
 }
diff --git a/dashboardv2/public/css/scss/theme.scss 
b/dashboardv2/public/css/scss/theme.scss
index 6646a45..045a461 100644
--- a/dashboardv2/public/css/scss/theme.scss
+++ b/dashboardv2/public/css/scss/theme.scss
@@ -546,94 +546,6 @@ hr[size="10"] {
     border-bottom-color: #000;
 }
 
-td.searchTableName:hover {
-    .isIncomplete {
-        &.show.search-result-page {
-            i {
-                left: 7px;
-            }
-        }
-    }
-}
-
-.globalsearchImgItem.isIncomplete {
-    display: inline-block !important;
-    position: relative;
-
-    i.fa {
-        left: 10px;
-        top: 7px;
-        font-size: 12px;
-    }
-}
-
-.isIncomplete {
-    &.show {
-        img {
-            opacity: .2;
-            //animation: blink 2.5s infinite;
-        }
-
-        i.fa {
-            display: block;
-        }
-
-        .entity-icon-box {
-            background: none;
-
-            i.fa {
-                top: 27px;
-                font-size: 18px;
-            }
-        }
-
-
-        foreignObject {
-            display: block;
-
-            i.fa {
-                font-size: 15px;
-                top: 17px;
-                left: 18.5px;
-            }
-        }
-
-        image,
-        circle {
-            opacity: 0.2;
-            //animation: blink 2.5s infinite;
-        }
-
-        &.search-result-page {
-            position: relative;
-
-            i {
-                left: 13px;
-                font-size: 9px;
-                top: 5px;
-            }
-
-        }
-
-    }
-
-    foreignObject {
-        display: none;
-    }
-
-    i.fa {
-        color: #898989;
-        display: none;
-        text-align: center;
-        font-size: 16px;
-        top: 0;
-        position: absolute;
-        z-index: 1;
-        left: calc(50% - 8px);
-    }
-}
-
-
 .dropdown-menu.multi-level {
     .dropdown-submenu {
         position: relative;
diff --git 
a/dashboardv2/public/js/templates/detail_page/DetailPageLayoutView_tmpl.html 
b/dashboardv2/public/js/templates/detail_page/DetailPageLayoutView_tmpl.html
index 3747f8e..824dbdc 100644
--- a/dashboardv2/public/js/templates/detail_page/DetailPageLayoutView_tmpl.html
+++ b/dashboardv2/public/js/templates/detail_page/DetailPageLayoutView_tmpl.html
@@ -19,7 +19,7 @@
         <i class="fa fa-refresh fa-spin-custom"></i>
     </div>
     <div class="entityDetail form-horizontal col-sm-12">
-        <h1 class="title isIncomplete">
+        <h1 class="title">
             <div data-id="entityIcon" class="entity-icon-box 
position-relative"></div>
             <span data-id="title"></span>
         </h1> {{#if entityUpdate}}
diff --git 
a/dashboardv2/public/js/templates/entity/EntityBusinessMetaDataItemView_tmpl.html
 
b/dashboardv2/public/js/templates/entity/EntityBusinessMetaDataItemView_tmpl.html
index 3338fd5..0b92cb1 100644
--- 
a/dashboardv2/public/js/templates/entity/EntityBusinessMetaDataItemView_tmpl.html
+++ 
b/dashboardv2/public/js/templates/entity/EntityBusinessMetaDataItemView_tmpl.html
@@ -15,7 +15,7 @@
  * limitations under the License.
 -->
 {{#ifCond model "has" "isNew"}}
-<table class="custom-table" style="font-weight: 100;">
+<table class="custom-table bm-create" style="font-weight: 100;">
     <tr class="custom-tr">
         <td class="custom-col-1">
             {{{callmyfunction getBusinessMetadataDroupdown 
businessMetadataCollection}}}
diff --git a/dashboardv2/public/js/templates/graph/LineageLayoutView_tmpl.html 
b/dashboardv2/public/js/templates/graph/LineageLayoutView_tmpl.html
index f14abba..8679c3b 100644
--- a/dashboardv2/public/js/templates/graph/LineageLayoutView_tmpl.html
+++ b/dashboardv2/public/js/templates/graph/LineageLayoutView_tmpl.html
@@ -139,7 +139,6 @@
     </div>
     <div class="legends pull-left" style="height: 25px; padding: 2px;">
         <span style="margin-right: 8px; color:#fb4200;"><i class="fa 
fa-circle-o fa-fw"></i>Current Entity</span>
-        <span style="margin-right: 8px;"><i class="fa fa-hourglass-half 
fa-fw"></i>In Progress</span>
         <span style="margin-right: 8px; color:#df9b00;"><i class="fa 
fa-long-arrow-right fa-fw"></i>Lineage</span>
         <span style="margin-right: 8px; color:#fb4200;"><i class="fa 
fa-long-arrow-right fa-fw"></i>Impact</span>
     </div>
diff --git a/dashboardv2/public/js/utils/CommonViewFunction.js 
b/dashboardv2/public/js/utils/CommonViewFunction.js
index d99dd2c..a1c5ad3 100644
--- a/dashboardv2/public/js/utils/CommonViewFunction.js
+++ b/dashboardv2/public/js/utils/CommonViewFunction.js
@@ -221,9 +221,9 @@ define(['require', 'utils/Utils', 'modules/Modal', 
'utils/Messages', 'utils/Enum
                             tempLink += '<div data-id="' + fetchId + '"><div 
class="value-loader"></div></div>';
                         } else {
                             if (inputOutputField.typeName == 
"AtlasGlossaryTerm") {
-                                tempLink += '<a href="#!/glossary/' + id + 
'?guid=' + id + '&gType=term&viewType=term&fromView=entity">' + getValue(name) 
+ '</a>'
+                                tempLink += '<a href="#!/glossary/' + id + 
'?guid=' + id + '&gType=term&viewType=term&fromView=entity">' + name + '</a>'
                             } else {
-                                tempLink += '<a href="#!/detailPage/' + id + 
'">' + getValue(name) + '</a>'
+                                tempLink += '<a href="#!/detailPage/' + id + 
'">' + name + '</a>'
                             }
                         }
                     }
@@ -254,7 +254,6 @@ define(['require', 'utils/Utils', 'modules/Modal', 
'utils/Messages', 'utils/Enum
             valueObjectKeysList = _.sortBy(valueObjectKeysList);
         }
         valueObjectKeysList.map(function(key) {
-            key = _.escape(key);
             if (key == "profileData") {
                 return;
             }
@@ -276,8 +275,6 @@ define(['require', 'utils/Utils', 'modules/Modal', 
'utils/Messages', 'utils/Enum
             var val = "";
             if (_.isObject(valueObject[key])) {
                 val = keyValue
-            } else if (Utils.isUrl(keyValue)) {
-                val = '<a target="_blank" class="blue-link" href="' + 
_.escape(keyValue) + '">' + getValue(keyValue) + '</a>';
             } else if (key === 'guid' || key === "__guid") {
                 if (options.fromAdminAudit) {
                     val = getValue(keyValue);
@@ -322,9 +319,9 @@ define(['require', 'utils/Utils', 'modules/Modal', 
'utils/Messages', 'utils/Enum
                 var className = "btn btn-action btn-sm btn-blue btn-icon",
                     deleteIcon = "";
                 if (obj.guid === tag.entityGuid) {
-                    deleteIcon = '<i class="fa fa-times" data-id="delete"  
data-assetname="' + entityName + '"data-name="' + tag.typeName + '" 
data-type="tag" data-guid="' + obj.guid + '" ></i>';
+                    deleteIcon = '<i class="fa fa-times" data-id="delete"  
data-assetname="' + entityName + '" data-name="' + tag.typeName + '" 
data-type="tag" data-guid="' + obj.guid + '" ></i>';
                 } else if (obj.guid !== tag.entityGuid && tag.entityStatus === 
"DELETED") {
-                    deleteIcon = '<i class="fa fa-times" data-id="delete"  
data-assetname="' + entityName + '"data-name="' + tag.typeName + '" 
data-type="tag" data-entityguid="' + tag.entityGuid + '" data-guid="' + 
obj.guid + '" ></i>';
+                    deleteIcon = '<i class="fa fa-times" data-id="delete"  
data-assetname="' + entityName + '" data-name="' + tag.typeName + '" 
data-type="tag" data-entityguid="' + tag.entityGuid + '" data-guid="' + 
obj.guid + '" ></i>';
                 } else {
                     className += " propagte-classification";
                 }
@@ -358,9 +355,10 @@ define(['require', 'utils/Utils', 'modules/Modal', 
'utils/Messages', 'utils/Enum
             entityName = Utils.getName(obj);
         if (terms) {
             terms.map(function(term) {
+                var displayText = _.escape(term.displayText);
                 var className = "btn btn-action btn-sm btn-blue btn-icon",
-                    deleteIcon = '<i class="fa fa-times" data-id="delete"  
data-assetname="' + entityName + '"data-name="' + term.displayText + '" 
data-type="term" data-guid="' + obj.guid + '" data-termGuid="' + term.termGuid 
+ '" ></i>',
-                    termString = '<a class="' + className + '" 
data-id="termClick"><span title="' + _.escape(term.displayText) + '">' + 
_.escape(term.displayText) + '</span>' + deleteIcon + '</a>';
+                    deleteIcon = '<i class="fa fa-times" data-id="delete"  
data-assetname="' + entityName + '" data-name="' + displayText + '" 
data-type="term" data-guid="' + obj.guid + '" data-termGuid="' + term.termGuid 
+ '" ></i>',
+                    termString = '<a class="' + className + '" 
data-id="termClick"><span title="' + displayText + '">' + displayText + 
'</span>' + deleteIcon + '</a>';
                 if (count >= 1) {
                     popTerm += termString;
                 } else {
diff --git 
a/dashboardv2/public/js/views/business_metadata/BusinessMetadataAttributeItemView.js
 
b/dashboardv2/public/js/views/business_metadata/BusinessMetadataAttributeItemView.js
index f22dd05..5190db0 100644
--- 
a/dashboardv2/public/js/views/business_metadata/BusinessMetadataAttributeItemView.js
+++ 
b/dashboardv2/public/js/views/business_metadata/BusinessMetadataAttributeItemView.js
@@ -233,8 +233,8 @@ define(['require',
                     selectedEnumValues = selectedEnum ? 
selectedEnum.get('elementDefs') : null,
                     savedValues = [];
                 _.each(selectedEnumValues, function(enumVal, index) {
-                    selectedValues.push(_.unescape(enumVal.value));
-                    enumValues += "<option>" + enumVal.value + "</option>";
+                    selectedValues.push(enumVal.value);
+                    enumValues += "<option>" + _.escape(enumVal.value) + 
"</option>";
                 });
                 this.ui.enumValueSelector.empty();
                 this.ui.enumValueSelector.append(enumValues);
diff --git 
a/dashboardv2/public/js/views/business_metadata/BusinessMetadataDetailLayoutView.js
 
b/dashboardv2/public/js/views/business_metadata/BusinessMetadataDetailLayoutView.js
index 02cc503..422808b 100644
--- 
a/dashboardv2/public/js/views/business_metadata/BusinessMetadataDetailLayoutView.js
+++ 
b/dashboardv2/public/js/views/business_metadata/BusinessMetadataDetailLayoutView.js
@@ -53,7 +53,7 @@ define(['require',
             renderDetail: function() {
                 this.ui.title.html('<span>' + this.model.get('name') + 
'</span>');
                 if (this.model.get('description')) {
-                    this.ui.description.text((this.model.get('description')));
+                    this.ui.description.text(this.model.get('description'));
                 }
             },
             onDestroy: function() {
diff --git 
a/dashboardv2/public/js/views/business_metadata/BusinessMetadataTableLayoutView.js
 
b/dashboardv2/public/js/views/business_metadata/BusinessMetadataTableLayoutView.js
index 329b5bb..ce1c892 100644
--- 
a/dashboardv2/public/js/views/business_metadata/BusinessMetadataTableLayoutView.js
+++ 
b/dashboardv2/public/js/views/business_metadata/BusinessMetadataTableLayoutView.js
@@ -296,7 +296,7 @@ define(['require',
                         editable: false,
                         formatter: _.extend({}, 
Backgrid.CellFormatter.prototype, {
                             fromRaw: function(rawValue, model) {
-                                return model.get('description');
+                                return _.escape(model.get('description'));
                             }
                         })
                     },
@@ -351,7 +351,7 @@ define(['require',
                         editable: false,
                         formatter: _.extend({}, 
Backgrid.CellFormatter.prototype, {
                             fromRaw: function(rawValue, model) {
-                                return "<button type='button' 
data-id='addAttribute' data-guid='" + model.get('guid') + "'' title='' 
class='btn btn-action btn-sm ' style='margin-bottom: 10px;' 
data-action='createAttr' data-original-title='Add Business Metadata 
attribute'><i class='fa fa-plus'></i> Attributes</button>";
+                                return "<button type='button' 
data-id='addAttribute' data-guid='" + model.get('guid') + "' class='btn 
btn-action btn-sm' style='margin-bottom: 10px;' data-action='createAttr' 
data-original-title='Add Business Metadata attribute'><i class='fa 
fa-plus'></i> Attributes</button>";
                             }
                         })
                     }
diff --git 
a/dashboardv2/public/js/views/business_metadata/CreateBusinessMetadataLayoutView.js
 
b/dashboardv2/public/js/views/business_metadata/CreateBusinessMetadataLayoutView.js
index 761ef55..6261585 100644
--- 
a/dashboardv2/public/js/views/business_metadata/CreateBusinessMetadataLayoutView.js
+++ 
b/dashboardv2/public/js/views/business_metadata/CreateBusinessMetadataLayoutView.js
@@ -223,7 +223,7 @@ define(['require',
                 };
                 this.loaderStatus(true);
                 var name = this.ui.name.val(),
-                    description = _.escape(this.ui.description.val());
+                    description = this.ui.description.val();
                 var attributeObj = this.collection.toJSON();
                 if (this.collection.length === 1 && 
this.collection.first().get("name") === "") {
                     attributeObj = [];
diff --git 
a/dashboardv2/public/js/views/business_metadata/EnumCreateUpdateItemView.js 
b/dashboardv2/public/js/views/business_metadata/EnumCreateUpdateItemView.js
index 08960a6..9cbebbe 100644
--- a/dashboardv2/public/js/views/business_metadata/EnumCreateUpdateItemView.js
+++ b/dashboardv2/public/js/views/business_metadata/EnumCreateUpdateItemView.js
@@ -104,8 +104,8 @@ define(["require", "backbone", 
"hbs!tmpl/business_metadata/EnumCreateUpdateItemV
                     selectedEnum = 
this.enumDefCollection.fullCollection.findWhere({ name: enumName }),
                     selectedEnumValues = selectedEnum ? 
selectedEnum.get("elementDefs") : null;
                 _.each(selectedEnumValues, function(enumVal, index) {
-                    selectedValues.push(_.unescape(enumVal.value));
-                    enumValues += "<option>" + enumVal.value + "</option>";
+                    selectedValues.push(enumVal.value);
+                    enumValues += "<option>" + _.escape(enumVal.value) + 
"</option>";
                 });
 
                 this.ui.enumCancleBtn.removeAttr("disabled");
@@ -197,7 +197,7 @@ define(["require", "backbone", 
"hbs!tmpl/business_metadata/EnumCreateUpdateItemV
                 _.each(selectedEnumValues, function(inputEnumVal, index) {
                     elementValues.push({
                         ordinal: index + 1,
-                        value: _.escape(inputEnumVal)
+                        value: inputEnumVal
                     });
                 });
 
diff --git a/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js 
b/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js
index 1bc0a42..e23f57a 100644
--- a/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js
+++ b/dashboardv2/public/js/views/detail_page/DetailPageLayoutView.js
@@ -202,10 +202,7 @@ define(['require',
                                 } else {
                                     this.ui.entityIcon.removeClass('disabled');
                                 }
-                                if (collectionJSON.isIncomplete === true) {
-                                    this.$(".isIncomplete").addClass("show");
-                                }
-                                this.ui.entityIcon.attr('title', 
_.escape(collectionJSON.typeName)).html('<img src="' + 
Utils.getEntityIconPath({ entityData: entityData }) + '"/><i class="fa 
fa-hourglass-half"></i>').find("img").on('error', function() {
+                                this.ui.entityIcon.attr('title', 
_.escape(collectionJSON.typeName)).html('<img src="' + 
Utils.getEntityIconPath({ entityData: entityData }) + 
'"/>').find("img").on('error', function() {
                                     this.src = Utils.getEntityIconPath({ 
entityData: entityData, errorUrl: this.src });
                                 });
                             } else {
@@ -378,7 +375,7 @@ define(['require',
                 CommonViewFunction.deleteTag(_.extend({}, {
                     guid: that.id,
                     associatedGuid: that.id != entityGuid ? entityGuid : null,
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from" + " " + "<b>" + this.name + 
"?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from <b>" + this.name + "?</b></div>",
                     titleMessage: Messages.removeTag,
                     okText: "Remove",
                     showLoader: that.showLoader.bind(that),
@@ -405,7 +402,7 @@ define(['require',
                         relationshipGuid: termObj.relationshipGuid
                     },
                     collection: that.glossaryCollection,
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(termName) + "</b> assignment from" + " " + "<b>" + this.name + 
"?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(termName) + "</b> assignment from <b>" + this.name + "?</b></div>",
                     titleMessage: Messages.glossary.removeTermfromEntity,
                     isEntityView: true,
                     buttonText: "Remove",
@@ -428,11 +425,11 @@ define(['require',
                     val.entityGuid === that.id ? tag['self'].push(val) : 
tag['propagated'].push(val);
                 });
                 _.each(tag.self, function(val) {
-                    tagData += '<span class="btn btn-action btn-sm btn-icon 
btn-blue" data-id="tagClick"><span title=' + val.typeName + ' >' + val.typeName 
+ '</span><i class="fa fa-close" data-id="deleteTag" data-type="tag" 
title="Remove Classification"></i></span>';
+                    tagData += '<span class="btn btn-action btn-sm btn-icon 
btn-blue" data-id="tagClick"><span>' + val.typeName + '</span><i class="fa 
fa-close" data-id="deleteTag" data-type="tag" title="Remove 
Classification"></i></span>';
                 });
                 _.each(tag.propagated, function(val) {
                     var crossButton = '<i class="fa fa-close" 
data-id="deleteTag" data-entityguid="' + val.entityGuid + '" data-type="tag" 
title="Remove Classification"></i>';
-                    propagatedTagListData += '<span class="btn btn-action 
btn-sm btn-icon btn-blue" title=' + val.typeName + ' data-id="tagClick"><span>' 
+ val.typeName + '</span>' + ((that.id !== val.entityGuid && val.entityStatus 
=== "DELETED") ? crossButton : "") + '</span>';
+                    propagatedTagListData += '<span class="btn btn-action 
btn-sm btn-icon btn-blue" data-id="tagClick"><span>' + val.typeName + '</span>' 
+ ((that.id !== val.entityGuid && val.entityStatus === "DELETED") ? crossButton 
: "") + '</span>';
                 });
                 propagatedTagListData !== "" ? this.ui.propagatedTagDiv.show() 
: this.ui.propagatedTagDiv.hide();
                 this.ui.tagList.find("span.btn").remove();
@@ -445,9 +442,7 @@ define(['require',
                 var that = this,
                     termData = "";
                 _.each(data, function(val) {
-                    // if (val.relationshipStatus == "ACTIVE") {
-                    termData += '<span class="btn btn-action btn-sm btn-icon 
btn-blue" data-id="termClick"><span title=' + _.escape(val.displayText) + '>' + 
_.escape(val.displayText) + '</span><i class="' + (val.relationshipStatus == 
"ACTIVE" ? 'fa fa-close' : "") + '" data-id="deleteTerm" data-guid="' + 
val.guid + '" data-type="term" title="Remove Term"></i></span>';
-                    // }
+                    termData += '<span class="btn btn-action btn-sm btn-icon 
btn-blue" data-id="termClick"><span>' + _.escape(val.displayText) + '</span><i 
class="' + (val.relationshipStatus == "ACTIVE" ? 'fa fa-close' : "") + '" 
data-id="deleteTerm" data-guid="' + val.guid + '" data-type="term" 
title="Remove Term"></i></span>';
                 });
                 this.ui.termList.find("span.btn").remove();
                 this.ui.termList.prepend(termData);
diff --git a/dashboardv2/public/js/views/entity/CreateEntityLayoutView.js 
b/dashboardv2/public/js/views/entity/CreateEntityLayoutView.js
index 2a70b36..dec160f 100644
--- a/dashboardv2/public/js/views/entity/CreateEntityLayoutView.js
+++ b/dashboardv2/public/js/views/entity/CreateEntityLayoutView.js
@@ -513,7 +513,7 @@ define(['require',
             },
             getSelect: function(object) {
                 var value = object.value,
-                    entityValue = object.entityValue,
+                    entityValue = _.escape(object.entityValue),
                     isAttribute = object.isAttribute,
                     isRelation = object.isRelation;
                 if (value.typeName === "boolean") {
@@ -543,7 +543,7 @@ define(['require',
             },
             getTextArea: function(object) {
                 var value = object.value,
-                    setValue = object.entityValue,
+                    setValue = _.escape(object.entityValue),
                     isAttribute = object.isAttribute,
                     isRelation = object.isRelation,
                     structType = object.structType;
@@ -567,7 +567,7 @@ define(['require',
             },
             getInput: function(object) {
                 var value = object.value,
-                    entityValue = object.entityValue,
+                    entityValue = _.escape(object.entityValue),
                     isAttribute = object.isAttribute,
                     isRelation = object.isRelation;
                 return '<input class="form-control entityInputBox ' + 
(value.isOptional === true ? "false" : "true") + '"' +
diff --git 
a/dashboardv2/public/js/views/entity/EntityBusinessMetaDataItemView.js 
b/dashboardv2/public/js/views/entity/EntityBusinessMetaDataItemView.js
index 0220173..45b0890 100644
--- a/dashboardv2/public/js/views/entity/EntityBusinessMetaDataItemView.js
+++ b/dashboardv2/public/js/views/entity/EntityBusinessMetaDataItemView.js
@@ -153,7 +153,8 @@ define(['require',
                     val = options.val.value,
                     isMultiValued = typeName && typeName.indexOf("array<") === 
0,
                     businessMetadata = options.businessMetadata,
-                    allowOnlyNum = false;
+                    allowOnlyNum = false,
+                    isEnum = false;
                 var elType = isMultiValued ? "select" : "input";
                 if (!isMultiValued && !_.isEmpty(val)) {
                     val = _.escape(val);
@@ -175,7 +176,7 @@ define(['require',
                     }
                 }
                 if (typeName.indexOf("string") > -1) {
-                    returnEL = '<' + elType + ' type="text" data-key="' + key 
+ '" data-businessMetadata="' + businessMetadata + '" data-typename="' + 
typeName + '" data-multi="' + isMultiValued + '" data-tags="true"  
placeholder="Enter String" class="form-control" ' + (!_.isUndefinedNull(val) ? 
'value="' + val + '"' : "") + '></' + elType + '>';
+                    returnEL = '<' + elType + ' type="text" data-key="' + key 
+ '" data-businessMetadata="' + businessMetadata + '" data-typename="' + 
typeName + '" data-multi="' + isMultiValued + '" data-tags="true"  
placeholder="Enter String" class="form-control" ' + (isMultiValued === false && 
!_.isUndefinedNull(val) ? 'value="' + val + '"' : "") + '></' + elType + '>';
                 } else if (typeName.indexOf("boolean") > -1) {
                     returnEL = '<select data-key="' + key + '" 
data-businessMetadata="' + businessMetadata + '" data-typename="' + typeName + 
'" data-multi="' + isMultiValued + '" class="form-control">' + (isMultiValued ? 
"" : '<option value="">--Select Value--</option>') + '<option value="true" ' + 
(!_.isUndefinedNull(val) && val == "true" ? "selected" : "") + 
'>true</option><option value="false" ' + (!_.isUndefinedNull(val) && val == 
"false" ? "selected" : "") + '>false</option></select>';
                 } else if (typeName.indexOf("date") > -1) {
@@ -198,6 +199,7 @@ define(['require',
                     allowOnlyNum = true;
                     returnEL = '<' + elType + ' data-key="' + key + '" 
data-businessMetadata="' + businessMetadata + '" data-typename="' + typeName + 
'" type="number" data-multi="' + isMultiValued + '" data-tags="true" 
placeholder="Enter Number" class="form-control" ' + (!_.isUndefinedNull(val) ? 
'value="' + val + '"' : "") + '></' + elType + '>';
                 } else if (typeName) {
+                    isEnum = true;
                     var modTypeName = typeName;
                     if (isMultiValued) {
                         var multipleType = typeName.match("array<(.*)>");
@@ -209,30 +211,31 @@ define(['require',
                     if (foundEnumType) {
                         var enumOptions = "";
                         _.forEach(foundEnumType.get("elementDefs"), 
function(obj) {
-                            enumOptions += '<option value="' + obj.value + 
'">' + obj.value + '</option>'
+                            enumOptions += '<option value="' + 
_.escape(obj.value) + '">' + _.escape(obj.value) + '</option>'
                         });
-                        returnEL = '<select data-key="' + key + '" 
data-businessMetadata="' + businessMetadata + '" data-typename="' + typeName + 
'" data-multi="' + isMultiValued + '" >' + enumOptions + '</select>';
+                        returnEL = '<select data-key="' + key + '" 
data-businessMetadata="' + businessMetadata + '" data-typename="' + typeName + 
'" data-multi="' + isMultiValued + '" data-enum="true">' + enumOptions + 
'</select>';
                     }
-                    setTimeout(function() {
-                        if (!isMultiValued) {
-                            var selectEl = 
that.$el.find('.custom-col-1[data-id="value"] select[data-key="' + key + '"]');
-                            selectEl.val((val || ""));
-                            selectEl.select2();
-                        }
-                    }, 0);
                 }
-                if (isMultiValued) {
+                if (isEnum || elType === "select") {
                     setTimeout(function() {
-                        var selectEl = 
that.$el.find('.custom-col-1[data-id="value"] select[data-key="' + key + 
'"][data-multi="true"]');
-                        var data = val && val.length && (_.isArray(val) ? val 
: val.split(",")) || [];
+                        var selectEl = 
that.$el.find('.custom-col-1[data-id="value"] select[data-key="' + key + '"]');
+                        var data = [];
+                        if (selectEl.data("multi")) {
+                            data = val && val.length && (_.isArray(val) ? val 
: val.split(",")) || [];
+                        } else {
+                            data = _.unescape(val);
+                        }
                         if (allowOnlyNum) {
                             selectEl.parent().addClass("select2_only_number");
                         }
-                        selectEl.select2({
+                        var opt = {
                             tags: selectEl.data("tags") ? true : false,
-                            multiple: true,
-                            data: data
-                        });
+                            multiple: selectEl.data("multi")
+                        }
+                        if (!selectEl.data("enum")) {
+                            opt.data = data;
+                        }
+                        selectEl.select2(opt);
                         selectEl.val(data).trigger("change");
                     }, 0);
                 }
diff --git a/dashboardv2/public/js/views/entity/EntityBusinessMetaDataView.js 
b/dashboardv2/public/js/views/entity/EntityBusinessMetaDataView.js
index 5dab509..fe13f01 100644
--- a/dashboardv2/public/js/views/entity/EntityBusinessMetaDataView.js
+++ b/dashboardv2/public/js/views/entity/EntityBusinessMetaDataView.js
@@ -25,9 +25,9 @@ define([
     "utils/Utils",
     "utils/Messages",
     "utils/CommonViewFunction",
-    'utils/Globals',
-    'moment'
-], function(require, Backbone, EntityBusinessMetaDataView_tmpl, 
EntityBusinessMetaDataItemView, VEntity, Utils, Messages, CommonViewFunction, 
Globals, moment) {
+    "moment",
+    "utils/Globals"
+], function(require, Backbone, EntityBusinessMetaDataView_tmpl, 
EntityBusinessMetaDataItemView, VEntity, Utils, Messages, CommonViewFunction, 
moment, Globals) {
     "use strict";
 
     return Backbone.Marionette.CompositeView.extend({
@@ -237,7 +237,7 @@ define([
                             }
 
                         }
-                        attrLi += "<tr><td>" + _.escape(key) + " (" + 
_.escape(val.typeName) + ")</td><td>" + _.escape(newVal) + "</td></tr>";
+                        attrLi += "<tr><td 
class='business-metadata-detail-attr-key'>" + _.escape(key) + " (" + 
_.escape(val.typeName) + ")</td><td>" + _.escape(newVal) + "</td></tr>";
                     }
                 });
                 li += that.associateAttributePanel(obj, attrLi);
@@ -250,7 +250,7 @@ define([
         },
         associateAttributePanel: function(obj, tableBody) {
             return '<div class="panel panel-default custom-panel 
expand_collapse_panel-icon no-border business-metadata-detail-attr">' +
-                '<div class="panel-heading" data-toggle="collapse" href="#' + 
_.escape(obj.get("__internal_UI_businessMetadataName")) + '" 
aria-expanded="true" style="width: 70%;">' +
+                '<div class="panel-heading" data-toggle="collapse" href="#' + 
_.escape(obj.get("__internal_UI_businessMetadataName")) + '" 
aria-expanded="true" style="width: 90%;">' +
                 '<h4 class="panel-title"> <a>' + 
_.escape(obj.get("__internal_UI_businessMetadataName")) + '</a></h4>' +
                 '<div class="btn-group pull-left"> <button type="button" 
title="Collapse"><i class="ec-icon fa"></i></button></div>' +
                 '</div>' +
diff --git a/dashboardv2/public/js/views/entity/EntityLabelDefineView.js 
b/dashboardv2/public/js/views/entity/EntityLabelDefineView.js
index 23bcc9f..69c83df 100644
--- a/dashboardv2/public/js/views/entity/EntityLabelDefineView.js
+++ b/dashboardv2/public/js/views/entity/EntityLabelDefineView.js
@@ -72,7 +72,7 @@ define(['require',
         populateLabelOptions: function() {
             var that = this,
                 str = this.labels.map(function(label) {
-                    return "<option selected > " + label + " </option>";
+                    return "<option selected > " + _.escape(label) + " 
</option>";
                 });
             this.ui.addLabelOptions.html(str);
             var getLabelData = function(data, selectedData) {
@@ -104,7 +104,7 @@ define(['require',
                     delay: 250,
                     data: function(params) {
                         return {
-                            prefixString: _.escape(params.term), // search term
+                            prefixString: params.term, // search term
                             fieldName: '__labels'
                         };
                     },
@@ -131,7 +131,7 @@ define(['require',
             }
         },
         onChangeLabelChange: function() {
-            this.labels = this.ui.addLabelOptions.val().map(function(v) { 
return _.escape(v) });
+            this.labels = this.ui.addLabelOptions.val();
         },
         handleBtnClick: function() {
             this.swapItem = !this.swapItem;
diff --git a/dashboardv2/public/js/views/entity/EntityUserDefineItemView.js 
b/dashboardv2/public/js/views/entity/EntityUserDefineItemView.js
index bcc0845..3a6bd63 100644
--- a/dashboardv2/public/js/views/entity/EntityUserDefineItemView.js
+++ b/dashboardv2/public/js/views/entity/EntityUserDefineItemView.js
@@ -99,7 +99,7 @@ define(['require',
             var el = e.currentTarget;
             this.handleCharSupport(el);
             if (!el.value.trim().includes(':')) {
-                this.items[el.dataset.index].value = _.escape(el.value.trim());
+                this.items[el.dataset.index].value = el.value.trim();
             }
         },
         handleCharSupport: function(el) {
diff --git a/dashboardv2/public/js/views/glossary/GlossaryDetailLayoutView.js 
b/dashboardv2/public/js/views/glossary/GlossaryDetailLayoutView.js
index a99dfaa..63c58e0 100644
--- a/dashboardv2/public/js/views/glossary/GlossaryDetailLayoutView.js
+++ b/dashboardv2/public/js/views/glossary/GlossaryDetailLayoutView.js
@@ -281,7 +281,7 @@ define(['require',
                     categories = "";
                 _.each(data, function(val) {
                     var name = _.escape(val.displayText);
-                    categories += '<span data-guid="' + val.categoryGuid + '"" 
class="btn btn-action btn-sm btn-icon btn-blue" data-id="categoryClick"><span 
title=' + name + '>' + name + '</span><i class="fa fa-close" 
data-id="removeCategory" data-type="category" title="Remove 
Category"></i></span>';
+                    categories += '<span data-guid="' + val.categoryGuid + '" 
class="btn btn-action btn-sm btn-icon btn-blue" data-id="categoryClick"><span>' 
+ name + '</span><i class="fa fa-close" data-id="removeCategory" 
data-type="category" title="Remove Category"></i></span>';
                 });
                 this.ui.categoryList.find("span.btn").remove();
                 this.ui.categoryList.prepend(categories);
@@ -291,7 +291,7 @@ define(['require',
                     terms = "";
                 _.each(data, function(val) {
                     var name = _.escape(val.displayText);
-                    terms += '<span data-guid="' + val.termGuid + '"" 
class="btn btn-action btn-sm btn-icon btn-blue" data-id="termClick"><span 
title=' + name + '>' + name + '</span><i class="fa fa-close" 
data-id="removeTerm" data-type="term" title="Remove Term"></i></span>';
+                    terms += '<span data-guid="' + val.termGuid + '" 
class="btn btn-action btn-sm btn-icon btn-blue" data-id="termClick"><span>' + 
name + '</span><i class="fa fa-close" data-id="removeTerm" data-type="term" 
title="Remove Term"></i></span>';
                 });
                 this.ui.termList.find("span.btn").remove();
                 this.ui.termList.prepend(terms);
@@ -301,7 +301,7 @@ define(['require',
                 var that = this,
                     tagData = "";
                 _.each(tagObject, function(val) {
-                    tagData += '<span class="btn btn-action btn-sm btn-icon 
btn-blue"  data-id="tagClickTerm"><span title=' + val.typeName + '>' + 
val.typeName + '</span><i class="fa fa-close" data-id="removeTagTerm" 
data-type="tag" title="Remove Classification"></i></span>';
+                    tagData += '<span class="btn btn-action btn-sm btn-icon 
btn-blue" data-id="tagClickTerm"><span>' + val.typeName + '</span><i class="fa 
fa-close" data-id="removeTagTerm" data-type="tag" title="Remove 
Classification"></i></span>';
                 });
                 this.ui.tagList.find("span.btn").remove();
                 this.ui.tagList.prepend(tagData);
@@ -389,7 +389,7 @@ define(['require',
                     tagName = $(e.currentTarget).text(),
                     termName = this.data.name;
                 CommonViewFunction.deleteTag(_.extend({}, {
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from" + " " + "<b>" + _.escape(termName) 
+ "?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from <b>" + _.escape(termName) + 
"?</b></div>",
                     titleMessage: Messages.removeTag,
                     okText: "Remove",
                     showLoader: that.showLoader.bind(that),
@@ -410,7 +410,7 @@ define(['require',
                     selectedGuid: guid,
                     model: that.data,
                     collection: that.glossaryCollection,
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(name) + "</b> assignment from" + " " + "<b>" + 
_.escape(that.data.name) + "?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(name) + "</b> assignment from <b>" + _.escape(that.data.name) + 
"?</b></div>",
                     titleMessage: Messages.glossary[that.isTermView ? 
"removeCategoryfromTerm" : "removeTermfromCategory"],
                     isCategoryView: that.isCategoryView,
                     isTermView: that.isTermView,
@@ -433,7 +433,7 @@ define(['require',
                 require(['views/tag/TagDetailTableLayoutView'], 
function(TagDetailTableLayoutView) {
                     if (that.RTagTableLayoutView) {
                         that.RTagTableLayoutView.show(new 
TagDetailTableLayoutView(_.extend({}, options, {
-                            "entityName": that.ui.title.text(),
+                            "entityName": _.escape(that.ui.title.text()),
                             "fetchCollection": that.getData.bind(that),
                             "entity": that.data
                         })));
diff --git a/dashboardv2/public/js/views/glossary/GlossaryLayoutView.js 
b/dashboardv2/public/js/views/glossary/GlossaryLayoutView.js
index 799acf6..ed01560 100644
--- a/dashboardv2/public/js/views/glossary/GlossaryLayoutView.js
+++ b/dashboardv2/public/js/views/glossary/GlossaryLayoutView.js
@@ -85,7 +85,7 @@ define(['require',
                 };
                 events["click " + this.ui.importGlossary] = 
'onClickImportGlossary';
                 events["keyup " + this.ui.searchTerm] = function() {
-                    this.ui.termTree.jstree("search", 
this.ui.searchTerm.val());
+                    this.ui.termTree.jstree("search", 
_.escape(this.ui.searchTerm.val()));
                 };
                 events["keyup " + this.ui.searchCategory] = function() {
                     this.ui.categoryTree.jstree("search", 
this.ui.searchCategory.val());
diff --git 
a/dashboardv2/public/js/views/glossary/TermRelationAttributeLayoutView.js 
b/dashboardv2/public/js/views/glossary/TermRelationAttributeLayoutView.js
index bf9757b..ded1ab9 100644
--- a/dashboardv2/public/js/views/glossary/TermRelationAttributeLayoutView.js
+++ b/dashboardv2/public/js/views/glossary/TermRelationAttributeLayoutView.js
@@ -231,7 +231,7 @@ define(['require',
                     getTerms: function(key) {
                         var terms = _.map(that.data[key], function(obj) {
                                 var name = _.escape(obj.displayText);
-                                return '<span data-guid="' + obj.termGuid + '" 
class="btn btn-action btn-sm btn-icon btn-blue" title=' + _.escape(name) + ' 
data-id="termClick"><span>' + name + '</span><i class="fa fa-close" 
data-id="deleteAttribute" data-attributename="' + key + '" data-termguid="' + 
obj.termGuid + '" data-type="term" title="Remove Term"></i></span>';
+                                return '<span data-guid="' + obj.termGuid + '" 
class="btn btn-action btn-sm btn-icon btn-blue" data-id="termClick"><span>' + 
name + '</span><i class="fa fa-close" data-id="deleteAttribute" 
data-attributename="' + key + '" data-termguid="' + obj.termGuid + '" 
data-type="term" title="Remove Term"></i></span>';
                             }).join(""),
                             attributeButtons = "";
                         if (terms.length) {
diff --git a/dashboardv2/public/js/views/graph/LineageUtils.js 
b/dashboardv2/public/js/views/graph/LineageUtils.js
index ed66782..bd85d77 100644
--- a/dashboardv2/public/js/views/graph/LineageUtils.js
+++ b/dashboardv2/public/js/views/graph/LineageUtils.js
@@ -326,18 +326,6 @@ define(['require', 'utils/Utils'], function(require, 
Utils) {
             shapeSvg.attr("stroke", "#fb4200")
         }
 
-        if (node.isIncomplete === true) {
-            parent.attr("class", "node isIncomplete show");
-            parent.insert("foreignObject")
-                .attr("x", "-25")
-                .attr("y", "-25")
-                .attr("width", "50")
-                .attr("height", "50")
-                .append("xhtml:div")
-                .insert("i")
-                .attr("class", "fa fa-hourglass-half");
-        }
-
         if ($defs.select('pattern[id="img_' + imgName + '"]').empty()) {
             var $pattern = $defs.append("pattern")
                 .attr("x", "0%")
diff --git a/dashboardv2/public/js/views/graph/PropagationPropertyModal.js 
b/dashboardv2/public/js/views/graph/PropagationPropertyModal.js
index a90115c..5839959 100644
--- a/dashboardv2/public/js/views/graph/PropagationPropertyModal.js
+++ b/dashboardv2/public/js/views/graph/PropagationPropertyModal.js
@@ -151,7 +151,7 @@ define(['require',
                 fromEntity = this.lineageData.guidEntityMap[obj.fromEntityId],
                 toEntity = this.lineageData.guidEntityMap[obj.toEntityId];
             if (fromEntity && toEntity) {
-                this.ui.edgeDetailName.html(fromEntity.displayText + " <span 
class='navigation-font'><i class='fa fa-long-arrow-right fa-color'></i></span> 
" + toEntity.displayText);
+                this.ui.edgeDetailName.html(_.escape(fromEntity.displayText) + 
" <span class='navigation-font'><i class='fa fa-long-arrow-right 
fa-color'></i></span> " + _.escape(toEntity.displayText));
             }
             if (obj && obj.relationshipId) {
                 this.showLoader();
diff --git a/dashboardv2/public/js/views/graph/RelationshipLayoutView.js 
b/dashboardv2/public/js/views/graph/RelationshipLayoutView.js
index 3379a66..5b2d48f 100644
--- a/dashboardv2/public/js/views/graph/RelationshipLayoutView.js
+++ b/dashboardv2/public/js/views/graph/RelationshipLayoutView.js
@@ -142,12 +142,12 @@ define(['require',
             updateRelationshipDetails: function(options) {
                 var data = options.obj.value,
                     typeName = data.typeName || options.obj.name,
-                    searchString = options.searchString,
+                    searchString = _.escape(options.searchString),
                     listString = "",
                     getEntityTypelist = function(options) {
                         var activeEntityColor = "#4a90e2",
                             deletedEntityColor = "#BB5838",
-                            entityTypeHtml = '',
+                            entityTypeHtml = '<pre>',
                             getdefault = function(obj) {
                                 var options = obj.options,
                                     status = 
(Enums.entityStateReadOnly[options.entityStatus || options.status] ? " 
deleted-relation" : ''),
@@ -155,7 +155,6 @@ define(['require',
                                     entityColor = obj.color,
                                     name = obj.name,
                                     typeName = options.typeName;
-
                                 if (typeName === "AtlasGlossaryTerm") {
                                     return '<li class=' + status + '>' +
                                         '<a style="color:' + entityColor + '" 
href="#!/glossary/' + guid + '?guid=' + guid + 
'&gType=term&viewType=term&fromView=entity">' + name + ' (' + typeName + 
')</a>' +
@@ -194,13 +193,13 @@ define(['require',
                                 entityTypeHtml = getdefault({
                                     "color": activeEntityColor,
                                     "options": options,
-                                    "name": _.escape(name)
+                                    "name": name
                                 });
                             } else if (options.relationshipStatus == 
"DELETED") {
                                 entityTypeHtml = getWithButton({
                                     "color": activeEntityColor,
                                     "options": options,
-                                    "name": _.escape(name),
+                                    "name": name,
                                     "relationship": true
                                 })
                             }
@@ -208,18 +207,17 @@ define(['require',
                             entityTypeHtml = getWithButton({
                                 "color": deletedEntityColor,
                                 "options": options,
-                                "name": _.escape(name),
+                                "name": name,
                                 "entity": true
                             })
                         } else {
-
                             entityTypeHtml = getdefault({
                                 "color": activeEntityColor,
                                 "options": options,
-                                "name": _.escape(name)
+                                "name": name
                             });
                         }
-                        return entityTypeHtml;
+                        return entityTypeHtml + '</pre>';
                     };
                 this.ui.searchNode.hide();
                 this.$("[data-id='typeName']").text(typeName);
diff --git a/dashboardv2/public/js/views/schema/SchemaLayoutView.js 
b/dashboardv2/public/js/views/schema/SchemaLayoutView.js
index 37e1e96..ab776e9 100644
--- a/dashboardv2/public/js/views/schema/SchemaLayoutView.js
+++ b/dashboardv2/public/js/views/schema/SchemaLayoutView.js
@@ -207,7 +207,7 @@ define(['require',
                                 className: "searchTableName",
                                 formatter: _.extend({}, 
Backgrid.CellFormatter.prototype, {
                                     fromRaw: function(rawValue, model) {
-                                        var value = 
model.get('attributes')[key];
+                                        var value = 
_.escape(model.get('attributes')[key]);
                                         if (key === "name" && 
model.get('guid')) {
                                             var nameHtml = '<a 
href="#!/detailPage/' + model.get('guid') + '">' + value + '</a>';
                                             if (model.get('status') && 
Enums.entityStateReadOnly[model.get('status')]) {
@@ -288,7 +288,7 @@ define(['require',
                 CommonViewFunction.deleteTag({
                     tagName: tagName,
                     guid: guid,
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from" + " " + "<b>" + assetName + " 
?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from <b>" + _.escape(assetName) + " 
?</b></div>",
                     titleMessage: Messages.removeTag,
                     okText: "Remove",
                     showLoader: that.showLoader.bind(that),
diff --git a/dashboardv2/public/js/views/search/SearchLayoutView.js 
b/dashboardv2/public/js/views/search/SearchLayoutView.js
index e740d8d..c9eae6b 100644
--- a/dashboardv2/public/js/views/search/SearchLayoutView.js
+++ b/dashboardv2/public/js/views/search/SearchLayoutView.js
@@ -621,7 +621,7 @@ define(['require',
                     _.each(dataList, function(obj) {
                         if (obj) {
                             if (obj.guid) {
-                                obj['id'] = Utils.getName(obj, 
'qualifiedName');
+                                obj['id'] = obj.attributes['qualifiedName'];
                             }
                             foundOptions.push(obj);
                         }
@@ -705,7 +705,7 @@ define(['require',
                         }
 
                         if (this.value.term) {
-                            this.ui.termLov.append('<option value="' + 
this.value.term + '" selected="selected">' + this.value.term + '</option>');
+                            this.ui.termLov.append('<option value="' + 
_.escape(this.value.term) + '" selected="selected">' + 
_.escape(this.value.term) + '</option>');
                         }
                         if (this.ui.termLov.data('select2')) {
                             if (this.ui.termLov.val() !== this.value.term) {
diff --git a/dashboardv2/public/js/views/search/SearchResultLayoutView.js 
b/dashboardv2/public/js/views/search/SearchResultLayoutView.js
index 88b4474..5000701 100644
--- a/dashboardv2/public/js/views/search/SearchResultLayoutView.js
+++ b/dashboardv2/public/js/views/search/SearchResultLayoutView.js
@@ -710,12 +710,8 @@ define(['require',
                                         }
                                     });
                             }
-                            var img = "",
-                                isIncompleteClass = "isIncomplete 
search-result-page";
-                            if (obj.isIncomplete === true) {
-                                isIncompleteClass += " show";
-                            }
-                            img = "<div class='" + isIncompleteClass + "'><img 
data-imgGuid='" + obj.guid + "' class='searchTableLogoLoader'><i class='fa 
fa-hourglass-half'></i></div>";
+                            var img = "";
+                            img = "<div><img data-imgGuid='" + obj.guid + "' 
class='searchTableLogoLoader'></div>";
                             getImageData({ imagePath: 
Utils.getEntityIconPath({ entityData: obj }) });
                             return (img + nameHtml);
                         }
@@ -879,7 +875,7 @@ define(['require',
                                                         if 
(values[values.length - 1] === "") { values.pop(); }
                                                         if (values[0] === "") 
{ values.shift(); }
                                                         _.each(values, 
function(names) {
-                                                            
valueOfArray.push('<span class="json-string"><a class="btn btn-action btn-sm 
btn-blue btn-icon" ><span title="" data-original-title="' + names + '" >' + 
names + '</span></a></span>');
+                                                            
valueOfArray.push('<span class="json-string"><a class="btn btn-action btn-sm 
btn-blue btn-icon" ><span>' + _.escape(names) + '</span></a></span>');
                                                         });
                                                         return 
valueOfArray.join(' ');
                                                     }
@@ -889,7 +885,7 @@ define(['require',
                                                         valueOfArray = [];
                                                     if (customAttributes) {
                                                         
_.each(Object.keys(customAttributes), function(value, index) {
-                                                            
valueOfArray.push('<span class="json-string"><a class="btn btn-action btn-sm 
btn-blue btn-icon" ><span title="" data-original-title="' + value + ' : ' + 
Object.values(customAttributes)[index] + '" ><span>' + value + '</span> : 
<span>' + Object.values(customAttributes)[index] + '</span></span></a></span>');
+                                                            
valueOfArray.push('<span class="json-string"><a class="btn btn-action btn-sm 
btn-blue btn-icon" ><span><span>' + _.escape(value) + '</span> : <span>' + 
_.escape(Object.values(customAttributes)[index]) + '</span></span></a></span>');
                                                         });
                                                         return 
valueOfArray.join(' ');
                                                     }
@@ -949,7 +945,7 @@ define(['require',
                                     var modelObj = model.toJSON();
                                     if (key == "name") {
                                         var nameHtml = "",
-                                            name = modelObj[key];
+                                            name = _.escape(modelObj[key]);
                                         if (modelObj.guid) {
                                             nameHtml = '<a title="' + name + 
'" href="#!/detailPage/' + modelObj.guid + (that.fromView ? "?from=" + 
that.fromView : "") + '">' + name + '</a>';
                                         } else {
@@ -1139,7 +1135,7 @@ define(['require',
                     tagName: tagName,
                     guid: guid,
                     associatedGuid: guid != entityGuid ? entityGuid : null,
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from" + " " + "<b>" + assetName + " 
?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from <b>" + _.escape(assetName) + " 
?</b></div>",
                     titleMessage: Messages.removeTag,
                     okText: "Remove",
                     showLoader: that.showLoader.bind(that),
@@ -1166,7 +1162,7 @@ define(['require',
                         relationshipGuid: termObj.relationGuid
                     },
                     collection: that.glossaryCollection,
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(termName) + "</b> assignment from" + " " + "<b>" + assetname + 
"?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(termName) + "</b> assignment from <b>" + _.escape(assetname) + 
"?</b></div>",
                     titleMessage: Messages.glossary.removeTermfromEntity,
                     isEntityView: true,
                     buttonText: "Remove",
diff --git a/dashboardv2/public/js/views/site/Header.js 
b/dashboardv2/public/js/views/site/Header.js
index ee8a01c..2d6b55d 100644
--- a/dashboardv2/public/js/views/site/Header.js
+++ b/dashboardv2/public/js/views/site/Header.js
@@ -276,10 +276,9 @@ define(['require',
                                     }
                                     item.serviceType = 
Globals.serviceTypeMap[item.typeName];
                                     options.entityData = item;
-                                    var imgEl = $('<img src="' + 
Utils.getEntityIconPath(options) + '">').on("error", function(error, s) {
+                                    var img = $('<img src="' + 
Utils.getEntityIconPath(options) + '">').on("error", function(error, s) {
                                         this.src = 
Utils.getEntityIconPath(_.extend(options, { errorUrl: this.src }));
                                     });
-                                    var img = $('<div 
class="globalsearchImgItem isIncomplete ' + (item.isIncomplete ? "show" : "") + 
'"><i class="fa fa-hourglass-half"></i><div>').prepend(imgEl);
                                     var span = $("<span>" + 
(getHighlightedTerm(item.itemText)) + "</span>")
                                         .prepend(img);
                                     li = $("<li class='with-icon'>")
diff --git a/dashboardv2/public/js/views/tag/AddTagModalView.js 
b/dashboardv2/public/js/views/tag/AddTagModalView.js
index df280fb..2e3df3f 100644
--- a/dashboardv2/public/js/views/tag/AddTagModalView.js
+++ b/dashboardv2/public/js/views/tag/AddTagModalView.js
@@ -355,7 +355,7 @@ define(['require',
                         var str = '<option value=""' + (!that.tagModel ? 
'selected' : '') + '>-- Select ' + typeName + " --</option>";
                         var enumValue = typeNameValue.get('elementDefs');
                         _.each(enumValue, function(key, value) {
-                            str += '<option ' + ((that.tagModel && key.value 
=== that.tagModel.attributes[name]) ? 'selected' : '') + '>' + key.value + 
'</option>';
+                            str += '<option ' + ((that.tagModel && key.value 
=== that.tagModel.attributes[name]) ? 'selected' : '') + '>' + 
_.escape(key.value) + '</option>';
                         })
                         that.ui.tagAttribute.append('<div 
class="form-group"><label>' + name + '</label>' + ' (' + typeName + ')' +
                             '<select class="form-control attributeInputVal 
attrName" data-key="' + name + '">' + str + '</select></div>');
@@ -393,7 +393,7 @@ define(['require',
             }
         },
         getElement: function(labelName, typeName) {
-            var value = this.tagModel && this.tagModel.attributes ? 
(this.tagModel.attributes[labelName] || "") : "",
+            var value = this.tagModel && this.tagModel.attributes ? 
(this.tagModel.attributes[_.unescape(labelName)] || "") : "",
                 isTypeNumber = typeName === "int" || typeName === "byte" || 
typeName === "short" || typeName === "double" || typeName === "float",
                 inputClassName = "form-control attributeInputVal attrName";
             if (isTypeNumber) {
@@ -405,7 +405,7 @@ define(['require',
                     '<option value="true">true</option>' +
                     '<option value="false">false</option></select>';
             } else {
-                return '<input type="text" value="' + value + '" class="' + 
inputClassName + '" data-key="' + labelName + '" data-type="' + typeName + 
'"/>';
+                return '<input type="text" value="' + _.escape(value) + '" 
class="' + inputClassName + '" data-key="' + labelName + '" data-type="' + 
typeName + '"/>';
             }
 
         },
diff --git a/dashboardv2/public/js/views/tag/TagAttributeDetailLayoutView.js 
b/dashboardv2/public/js/views/tag/TagAttributeDetailLayoutView.js
index ac61f3d..00861f5 100644
--- a/dashboardv2/public/js/views/tag/TagAttributeDetailLayoutView.js
+++ b/dashboardv2/public/js/views/tag/TagAttributeDetailLayoutView.js
@@ -228,7 +228,7 @@ define(['require',
                                     return activeTagObj.name.toLowerCase() === 
obj.name.toLowerCase();
                                 });
                                 if (duplicateCheck) {
-                                    duplicateAttributeList.push(obj.name);
+                                    
duplicateAttributeList.push(_.escape(obj.name));
                                 } else {
                                     saveObj.attributeDefs.push(obj);
                                 }
diff --git a/dashboardv2/public/js/views/tag/TagDetailTableLayoutView.js 
b/dashboardv2/public/js/views/tag/TagDetailTableLayoutView.js
index c018274..7422363 100644
--- a/dashboardv2/public/js/views/tag/TagDetailTableLayoutView.js
+++ b/dashboardv2/public/js/views/tag/TagDetailTableLayoutView.js
@@ -207,7 +207,7 @@ define(['require',
                     tagName: tagName,
                     guid: that.guid,
                     associatedGuid: that.guid != entityGuid ? entityGuid : 
null,
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from" + " " + "<b>" + this.entityName + 
"?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from <b>" + this.entityName + 
"?</b></div>",
                     titleMessage: Messages.removeTag,
                     okText: "Remove",
                     showLoader: function() {
diff --git a/dashboardv2/public/js/views/tag/TagLayoutView.js 
b/dashboardv2/public/js/views/tag/TagLayoutView.js
index 5e2b523..a9af2e1 100644
--- a/dashboardv2/public/js/views/tag/TagLayoutView.js
+++ b/dashboardv2/public/js/views/tag/TagLayoutView.js
@@ -447,7 +447,7 @@ define(['require',
                             return activeTagObj.name.toLowerCase() === 
obj.name.toLowerCase();
                         });
                         if (duplicateCheck) {
-                            duplicateAttributeList.push(obj.name);
+                            duplicateAttributeList.push(_.escape(obj.name));
                         }
                     });
                     var notifyObj = {
diff --git a/dashboardv3/public/css/scss/business-metadata.scss 
b/dashboardv3/public/css/scss/business-metadata.scss
index 543f3d6..989dd79 100644
--- a/dashboardv3/public/css/scss/business-metadata.scss
+++ b/dashboardv3/public/css/scss/business-metadata.scss
@@ -21,6 +21,7 @@
 
     >li:first-child {
         font-weight: 600;
+        word-break: break-all;
     }
 
     .business-metadata-tree-child {
@@ -38,6 +39,26 @@
         margin-top: 10px;
         font-weight: 100;
     }
+
+    .custom-table {
+        &:not(.bm-create) {
+            .custom-tr {
+
+                .custom-col-1 {
+                    width: calc(50% - 55px);
+
+                    .select2-selection--multiple .select2-selection__rendered {
+                        overflow: scroll;
+                    }
+                }
+
+                .custom-col-2 {
+                    width: 45px;
+                }
+            }
+        }
+    }
+
 }
 
 .business-metadata-options.dropdown {
@@ -165,6 +186,8 @@
 
         .panel-title {
             font-size: 14px;
+            word-break: break-all;
+            width: inherit;
 
             a:hover {
                 color: #686868 !important;
@@ -176,4 +199,10 @@
     .btn-group>button {
         color: #686868 !important;
     }
+
+    .business-metadata-detail-attr-key {
+        width: 30%;
+        word-break: break-word;
+
+    }
 }
\ No newline at end of file
diff --git a/dashboardv3/public/css/scss/common.scss 
b/dashboardv3/public/css/scss/common.scss
index 69fcfc1..59f9bcc 100644
--- a/dashboardv3/public/css/scss/common.scss
+++ b/dashboardv3/public/css/scss/common.scss
@@ -219,10 +219,18 @@ pre {
 
 .custom-table {
     width: 100%;
+    display: flex;
+
+    tbody {
+        display: flex;
+        flex-flow: column;
+        width: 100%;
+    }
 
     .custom-tr {
         margin-left: 15px;
-        margin-right: 15px;
+        display: flex;
+        width: calc(100% - 15px);
 
         .custom-col-0,
         .custom-col-1,
@@ -239,22 +247,25 @@ pre {
 
 
         .custom-col-0 {
-            text-align: center;
-            vertical-align: middle;
             line-height: 31px;
-            width: 3%;
+            width: 9px;
+            padding: 0px 2px;
         }
 
         .custom-col-1 {
-            width: 39%;
-            margin-bottom: 10px;
+            width: calc(50% - 90px);
+            flex-grow: 2;
+
+            &:first-child {
+                width: 30% !important;
+                flex-grow: 1;
+            }
         }
 
         .custom-col-2 {
             text-align: center;
-            width: 17%;
-            padding-left: 1%;
-            margin-bottom: 10px;
+            width: 80px;
+            padding-left: 10px;
 
             &>button {
                 padding: 7px 10px;
diff --git a/dashboardv3/public/css/scss/theme.scss 
b/dashboardv3/public/css/scss/theme.scss
index dbb225b..abbde7a 100644
--- a/dashboardv3/public/css/scss/theme.scss
+++ b/dashboardv3/public/css/scss/theme.scss
@@ -684,90 +684,6 @@ hr[size="10"] {
     border-bottom-color: #000;
 }
 
-td.searchTableName:hover {
-    .isIncomplete {
-        &.show.search-result-page {
-            i {
-                left: 7px;
-            }
-        }
-    }
-}
-
-.globalsearchImgItem.isIncomplete {
-    display: inline-block !important;
-    position: relative;
-
-    i.fa {
-        left: 10px;
-        top: 7px;
-        font-size: 12px;
-    }
-}
-
-.isIncomplete {
-    &.show {
-        img {
-            opacity: 0.2;
-            //animation: blink 2.5s infinite;
-        }
-
-        i.fa {
-            display: block;
-        }
-
-        .entity-icon-box {
-            background: none;
-
-            i.fa {
-                top: 27px;
-                font-size: 18px;
-            }
-        }
-
-        foreignObject {
-            display: block;
-
-            i.fa {
-                font-size: 15px;
-                top: 17px;
-                left: 18.5px;
-            }
-        }
-
-        image,
-        circle {
-            opacity: 0.2;
-            //animation: blink 2.5s infinite;
-        }
-
-        &.search-result-page {
-            position: relative;
-
-            i {
-                left: 13px;
-                font-size: 9px;
-                top: 5px;
-            }
-        }
-    }
-
-    foreignObject {
-        display: none;
-    }
-
-    i.fa {
-        color: #898989;
-        display: none;
-        text-align: center;
-        font-size: 16px;
-        top: 0;
-        position: absolute;
-        z-index: 1;
-        left: calc(50% - 8px);
-    }
-}
-
 .dropdown-menu.multi-level {
     .dropdown-submenu {
         position: relative;
diff --git 
a/dashboardv3/public/js/templates/detail_page/DetailPageLayoutView_tmpl.html 
b/dashboardv3/public/js/templates/detail_page/DetailPageLayoutView_tmpl.html
index 1182a49..17a8d10 100644
--- a/dashboardv3/public/js/templates/detail_page/DetailPageLayoutView_tmpl.html
+++ b/dashboardv3/public/js/templates/detail_page/DetailPageLayoutView_tmpl.html
@@ -22,7 +22,7 @@
         <i class="fa fa-refresh fa-spin-custom"></i>
     </div>
     <div class="entityDetail form-horizontal col-sm-12">
-        <h1 class="title isIncomplete">
+        <h1 class="title">
             <div data-id="entityIcon" class="entity-icon-box 
position-relative"></div>
             <span data-id="title"></span>
         </h1> {{#if entityUpdate}}
diff --git 
a/dashboardv3/public/js/templates/entity/EntityBusinessMetaDataItemView_tmpl.html
 
b/dashboardv3/public/js/templates/entity/EntityBusinessMetaDataItemView_tmpl.html
index 3338fd5..0b92cb1 100644
--- 
a/dashboardv3/public/js/templates/entity/EntityBusinessMetaDataItemView_tmpl.html
+++ 
b/dashboardv3/public/js/templates/entity/EntityBusinessMetaDataItemView_tmpl.html
@@ -15,7 +15,7 @@
  * limitations under the License.
 -->
 {{#ifCond model "has" "isNew"}}
-<table class="custom-table" style="font-weight: 100;">
+<table class="custom-table bm-create" style="font-weight: 100;">
     <tr class="custom-tr">
         <td class="custom-col-1">
             {{{callmyfunction getBusinessMetadataDroupdown 
businessMetadataCollection}}}
diff --git a/dashboardv3/public/js/templates/graph/LineageLayoutView_tmpl.html 
b/dashboardv3/public/js/templates/graph/LineageLayoutView_tmpl.html
index f14abba..8679c3b 100644
--- a/dashboardv3/public/js/templates/graph/LineageLayoutView_tmpl.html
+++ b/dashboardv3/public/js/templates/graph/LineageLayoutView_tmpl.html
@@ -139,7 +139,6 @@
     </div>
     <div class="legends pull-left" style="height: 25px; padding: 2px;">
         <span style="margin-right: 8px; color:#fb4200;"><i class="fa 
fa-circle-o fa-fw"></i>Current Entity</span>
-        <span style="margin-right: 8px;"><i class="fa fa-hourglass-half 
fa-fw"></i>In Progress</span>
         <span style="margin-right: 8px; color:#df9b00;"><i class="fa 
fa-long-arrow-right fa-fw"></i>Lineage</span>
         <span style="margin-right: 8px; color:#fb4200;"><i class="fa 
fa-long-arrow-right fa-fw"></i>Impact</span>
     </div>
diff --git a/dashboardv3/public/js/utils/CommonViewFunction.js 
b/dashboardv3/public/js/utils/CommonViewFunction.js
index bdf3bd0..dd3818b 100644
--- a/dashboardv3/public/js/utils/CommonViewFunction.js
+++ b/dashboardv3/public/js/utils/CommonViewFunction.js
@@ -221,9 +221,9 @@ define(['require', 'utils/Utils', 'modules/Modal', 
'utils/Messages', 'utils/Enum
                             tempLink += '<div data-id="' + fetchId + '"><div 
class="value-loader"></div></div>';
                         } else {
                             if (inputOutputField.typeName == 
"AtlasGlossaryTerm") {
-                                tempLink += '<a href="#!/glossary/' + id + 
'?guid=' + id + '&gType=term&viewType=term">' + getValue(name) + '</a>'
+                                tempLink += '<a href="#!/glossary/' + id + 
'?guid=' + id + '&gType=term&viewType=term">' + name + '</a>'
                             } else {
-                                tempLink += '<a href="#!/detailPage/' + id + 
'">' + getValue(name) + '</a>'
+                                tempLink += '<a href="#!/detailPage/' + id + 
'">' + name + '</a>'
                             }
                         }
                     }
@@ -254,7 +254,6 @@ define(['require', 'utils/Utils', 'modules/Modal', 
'utils/Messages', 'utils/Enum
             valueObjectKeysList = _.sortBy(valueObjectKeysList);
         }
         valueObjectKeysList.map(function(key) {
-            key = _.escape(key);
             if (key == "profileData") {
                 return;
             }
@@ -276,8 +275,6 @@ define(['require', 'utils/Utils', 'modules/Modal', 
'utils/Messages', 'utils/Enum
             var val = "";
             if (_.isObject(valueObject[key])) {
                 val = keyValue
-            } else if (Utils.isUrl(keyValue)) {
-                val = '<a target="_blank" class="blue-link" href="' + 
_.escape(keyValue) + '">' + getValue(keyValue) + '</a>';
             } else if (key === 'guid' || key === "__guid") {
                 if (options.fromAdminAudit) {
                     val = getValue(keyValue);
@@ -322,9 +319,9 @@ define(['require', 'utils/Utils', 'modules/Modal', 
'utils/Messages', 'utils/Enum
                 var className = "btn btn-action btn-sm btn-blue btn-icon",
                     deleteIcon = "";
                 if (obj.guid === tag.entityGuid) {
-                    deleteIcon = '<i class="fa fa-times" data-id="delete"  
data-assetname="' + entityName + '"data-name="' + tag.typeName + '" 
data-type="tag" data-guid="' + obj.guid + '" ></i>';
+                    deleteIcon = '<i class="fa fa-times" data-id="delete"  
data-assetname="' + entityName + '" data-name="' + tag.typeName + '" 
data-type="tag" data-guid="' + obj.guid + '" ></i>';
                 } else if (obj.guid !== tag.entityGuid && tag.entityStatus === 
"DELETED") {
-                    deleteIcon = '<i class="fa fa-times" data-id="delete"  
data-assetname="' + entityName + '"data-name="' + tag.typeName + '" 
data-type="tag" data-entityguid="' + tag.entityGuid + '" data-guid="' + 
obj.guid + '" ></i>';
+                    deleteIcon = '<i class="fa fa-times" data-id="delete"  
data-assetname="' + entityName + '" data-name="' + tag.typeName + '" 
data-type="tag" data-entityguid="' + tag.entityGuid + '" data-guid="' + 
obj.guid + '" ></i>';
                 } else {
                     className += " propagte-classification";
                 }
@@ -358,9 +355,10 @@ define(['require', 'utils/Utils', 'modules/Modal', 
'utils/Messages', 'utils/Enum
             entityName = Utils.getName(obj);
         if (terms) {
             terms.map(function(term) {
+                var displayText = _.escape(term.displayText);
                 var className = "btn btn-action btn-sm btn-blue btn-icon",
-                    deleteIcon = '<i class="fa fa-times" data-id="delete"  
data-assetname="' + entityName + '"data-name="' + term.displayText + '" 
data-type="term" data-guid="' + obj.guid + '" data-termGuid="' + term.termGuid 
+ '" ></i>',
-                    termString = '<a class="' + className + '" 
data-id="termClick"><span title="' + _.escape(term.displayText) + '">' + 
_.escape(term.displayText) + '</span>' + deleteIcon + '</a>';
+                    deleteIcon = '<i class="fa fa-times" data-id="delete"  
data-assetname="' + entityName + '" data-name="' + displayText + '" 
data-type="term" data-guid="' + obj.guid + '" data-termGuid="' + term.termGuid 
+ '" ></i>',
+                    termString = '<a class="' + className + '" 
data-id="termClick"><span title="' + displayText + '">' + displayText + 
'</span>' + deleteIcon + '</a>';
                 if (count >= 1) {
                     popTerm += termString;
                 } else {
diff --git 
a/dashboardv3/public/js/views/business_metadata/BusinessMetadataAttributeItemView.js
 
b/dashboardv3/public/js/views/business_metadata/BusinessMetadataAttributeItemView.js
index f22dd05..5190db0 100644
--- 
a/dashboardv3/public/js/views/business_metadata/BusinessMetadataAttributeItemView.js
+++ 
b/dashboardv3/public/js/views/business_metadata/BusinessMetadataAttributeItemView.js
@@ -233,8 +233,8 @@ define(['require',
                     selectedEnumValues = selectedEnum ? 
selectedEnum.get('elementDefs') : null,
                     savedValues = [];
                 _.each(selectedEnumValues, function(enumVal, index) {
-                    selectedValues.push(_.unescape(enumVal.value));
-                    enumValues += "<option>" + enumVal.value + "</option>";
+                    selectedValues.push(enumVal.value);
+                    enumValues += "<option>" + _.escape(enumVal.value) + 
"</option>";
                 });
                 this.ui.enumValueSelector.empty();
                 this.ui.enumValueSelector.append(enumValues);
diff --git 
a/dashboardv3/public/js/views/business_metadata/BusinessMetadataDetailLayoutView.js
 
b/dashboardv3/public/js/views/business_metadata/BusinessMetadataDetailLayoutView.js
index 90d9d6d..ee5b84b 100644
--- 
a/dashboardv3/public/js/views/business_metadata/BusinessMetadataDetailLayoutView.js
+++ 
b/dashboardv3/public/js/views/business_metadata/BusinessMetadataDetailLayoutView.js
@@ -56,7 +56,7 @@ define(['require',
             renderDetail: function() {
                 this.ui.title.html('<span>' + this.model.get('name') + 
'</span>');
                 if (this.model.get('description')) {
-                    this.ui.description.text((this.model.get('description')));
+                    this.ui.description.text(this.model.get('description'));
                 }
             }
         });
diff --git 
a/dashboardv3/public/js/views/business_metadata/BusinessMetadataTableLayoutView.js
 
b/dashboardv3/public/js/views/business_metadata/BusinessMetadataTableLayoutView.js
index cef16bf..0bd8d67 100644
--- 
a/dashboardv3/public/js/views/business_metadata/BusinessMetadataTableLayoutView.js
+++ 
b/dashboardv3/public/js/views/business_metadata/BusinessMetadataTableLayoutView.js
@@ -296,7 +296,7 @@ define(['require',
                         editable: false,
                         formatter: _.extend({}, 
Backgrid.CellFormatter.prototype, {
                             fromRaw: function(rawValue, model) {
-                                return model.get('description');
+                                return _.escape(model.get('description'));
                             }
                         })
                     },
@@ -351,7 +351,7 @@ define(['require',
                         editable: false,
                         formatter: _.extend({}, 
Backgrid.CellFormatter.prototype, {
                             fromRaw: function(rawValue, model) {
-                                return "<button type='button' 
data-id='addAttribute' data-guid='" + model.get('guid') + "'' title='' 
class='btn btn-action btn-xs ' style='margin-bottom: 10px;' 
data-action='createAttr' data-original-title='Add Business Metadata 
attribute'><i class='fa fa-plus'></i> Attributes</button>";
+                                return "<button type='button' 
data-id='addAttribute' data-guid='" + model.get('guid') + "' class='btn 
btn-action btn-sm' style='margin-bottom: 10px;' data-action='createAttr' 
data-original-title='Add Business Metadata attribute'><i class='fa 
fa-plus'></i> Attributes</button>";
                             }
                         })
                     }
diff --git 
a/dashboardv3/public/js/views/business_metadata/CreateBusinessMetadataLayoutView.js
 
b/dashboardv3/public/js/views/business_metadata/CreateBusinessMetadataLayoutView.js
index 761ef55..6261585 100644
--- 
a/dashboardv3/public/js/views/business_metadata/CreateBusinessMetadataLayoutView.js
+++ 
b/dashboardv3/public/js/views/business_metadata/CreateBusinessMetadataLayoutView.js
@@ -223,7 +223,7 @@ define(['require',
                 };
                 this.loaderStatus(true);
                 var name = this.ui.name.val(),
-                    description = _.escape(this.ui.description.val());
+                    description = this.ui.description.val();
                 var attributeObj = this.collection.toJSON();
                 if (this.collection.length === 1 && 
this.collection.first().get("name") === "") {
                     attributeObj = [];
diff --git 
a/dashboardv3/public/js/views/business_metadata/EnumCreateUpdateItemView.js 
b/dashboardv3/public/js/views/business_metadata/EnumCreateUpdateItemView.js
index 08960a6..9cbebbe 100644
--- a/dashboardv3/public/js/views/business_metadata/EnumCreateUpdateItemView.js
+++ b/dashboardv3/public/js/views/business_metadata/EnumCreateUpdateItemView.js
@@ -104,8 +104,8 @@ define(["require", "backbone", 
"hbs!tmpl/business_metadata/EnumCreateUpdateItemV
                     selectedEnum = 
this.enumDefCollection.fullCollection.findWhere({ name: enumName }),
                     selectedEnumValues = selectedEnum ? 
selectedEnum.get("elementDefs") : null;
                 _.each(selectedEnumValues, function(enumVal, index) {
-                    selectedValues.push(_.unescape(enumVal.value));
-                    enumValues += "<option>" + enumVal.value + "</option>";
+                    selectedValues.push(enumVal.value);
+                    enumValues += "<option>" + _.escape(enumVal.value) + 
"</option>";
                 });
 
                 this.ui.enumCancleBtn.removeAttr("disabled");
@@ -197,7 +197,7 @@ define(["require", "backbone", 
"hbs!tmpl/business_metadata/EnumCreateUpdateItemV
                 _.each(selectedEnumValues, function(inputEnumVal, index) {
                     elementValues.push({
                         ordinal: index + 1,
-                        value: _.escape(inputEnumVal)
+                        value: inputEnumVal
                     });
                 });
 
diff --git a/dashboardv3/public/js/views/detail_page/DetailPageLayoutView.js 
b/dashboardv3/public/js/views/detail_page/DetailPageLayoutView.js
index 35ee6bf..41cf400 100644
--- a/dashboardv3/public/js/views/detail_page/DetailPageLayoutView.js
+++ b/dashboardv3/public/js/views/detail_page/DetailPageLayoutView.js
@@ -206,10 +206,7 @@ define(['require',
                                 } else {
                                     this.ui.entityIcon.removeClass('disabled');
                                 }
-                                if (collectionJSON.isIncomplete === true) {
-                                    this.$(".isIncomplete").addClass("show");
-                                }
-                                this.ui.entityIcon.attr('title', 
_.escape(collectionJSON.typeName)).html('<img src="' + 
Utils.getEntityIconPath({ entityData: entityData }) + '"/><i class="fa 
fa-hourglass-half"></i>').find("img").on('error', function() {
+                                this.ui.entityIcon.attr('title', 
_.escape(collectionJSON.typeName)).html('<img src="' + 
Utils.getEntityIconPath({ entityData: entityData }) + 
'"/>').find("img").on('error', function() {
                                     this.src = Utils.getEntityIconPath({ 
entityData: entityData, errorUrl: this.src });
                                 });
                             } else {
@@ -382,7 +379,7 @@ define(['require',
                 CommonViewFunction.deleteTag(_.extend({}, {
                     guid: that.id,
                     associatedGuid: that.id != entityGuid ? entityGuid : null,
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from" + " " + "<b>" + this.name + 
"?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from <b>" + this.name + "?</b></div>",
                     titleMessage: Messages.removeTag,
                     okText: "Remove",
                     showLoader: that.showLoader.bind(that),
@@ -409,7 +406,7 @@ define(['require',
                         relationshipGuid: termObj.relationshipGuid
                     },
                     collection: that.glossaryCollection,
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(termName) + "</b> assignment from" + " " + "<b>" + this.name + 
"?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(termName) + "</b> assignment from <b>" + this.name + "?</b></div>",
                     titleMessage: Messages.glossary.removeTermfromEntity,
                     isEntityView: true,
                     buttonText: "Remove",
@@ -432,11 +429,11 @@ define(['require',
                     val.entityGuid === that.id ? tag['self'].push(val) : 
tag['propagated'].push(val);
                 });
                 _.each(tag.self, function(val) {
-                    tagData += '<span class="btn btn-action btn-sm btn-icon 
btn-blue" data-id="tagClick"><span title=' + val.typeName + ' >' + val.typeName 
+ '</span><i class="fa fa-close" data-id="deleteTag" data-type="tag" 
title="Remove Classification"></i></span>';
+                    tagData += '<span class="btn btn-action btn-sm btn-icon 
btn-blue" data-id="tagClick"><span>' + val.typeName + '</span><i class="fa 
fa-close" data-id="deleteTag" data-type="tag" title="Remove 
Classification"></i></span>';
                 });
                 _.each(tag.propagated, function(val) {
                     var crossButton = '<i class="fa fa-close" 
data-id="deleteTag" data-entityguid="' + val.entityGuid + '" data-type="tag" 
title="Remove Classification"></i>';
-                    propagatedTagListData += '<span class="btn btn-action 
btn-sm btn-icon btn-blue" title=' + val.typeName + ' data-id="tagClick"><span>' 
+ val.typeName + '</span>' + ((that.id !== val.entityGuid && val.entityStatus 
=== "DELETED") ? crossButton : "") + '</span>';
+                    propagatedTagListData += '<span class="btn btn-action 
btn-sm btn-icon btn-blue" data-id="tagClick"><span>' + val.typeName + '</span>' 
+ ((that.id !== val.entityGuid && val.entityStatus === "DELETED") ? crossButton 
: "") + '</span>';
                 });
                 propagatedTagListData !== "" ? this.ui.propagatedTagDiv.show() 
: this.ui.propagatedTagDiv.hide();
                 this.ui.tagList.find("span.btn").remove();
@@ -449,9 +446,7 @@ define(['require',
                 var that = this,
                     termData = "";
                 _.each(data, function(val) {
-                    // if (val.relationshipStatus == "ACTIVE") {
-                    termData += '<span class="btn btn-action btn-sm btn-icon 
btn-blue" data-id="termClick"><span title=' + _.escape(val.displayText) + '>' + 
_.escape(val.displayText) + '</span><i class="' + (val.relationshipStatus == 
"ACTIVE" ? 'fa fa-close' : "") + '" data-id="deleteTerm" data-guid="' + 
val.guid + '" data-type="term" title="Remove Term"></i></span>';
-                    // }
+                    termData += '<span class="btn btn-action btn-sm btn-icon 
btn-blue" data-id="termClick"><span>' + _.escape(val.displayText) + '</span><i 
class="' + (val.relationshipStatus == "ACTIVE" ? 'fa fa-close' : "") + '" 
data-id="deleteTerm" data-guid="' + val.guid + '" data-type="term" 
title="Remove Term"></i></span>';
                 });
                 this.ui.termList.find("span.btn").remove();
                 this.ui.termList.prepend(termData);
diff --git a/dashboardv3/public/js/views/entity/CreateEntityLayoutView.js 
b/dashboardv3/public/js/views/entity/CreateEntityLayoutView.js
index 6492a6c..e84a9ed 100644
--- a/dashboardv3/public/js/views/entity/CreateEntityLayoutView.js
+++ b/dashboardv3/public/js/views/entity/CreateEntityLayoutView.js
@@ -516,7 +516,7 @@ define(['require',
             },
             getSelect: function(object) {
                 var value = object.value,
-                    entityValue = object.entityValue,
+                    entityValue = _.escape(object.entityValue),
                     isAttribute = object.isAttribute,
                     isRelation = object.isRelation;
                 if (value.typeName === "boolean") {
@@ -546,7 +546,7 @@ define(['require',
             },
             getTextArea: function(object) {
                 var value = object.value,
-                    setValue = object.entityValue,
+                    setValue = _.escape(object.entityValue),
                     isAttribute = object.isAttribute,
                     isRelation = object.isRelation,
                     structType = object.structType;
@@ -570,7 +570,7 @@ define(['require',
             },
             getInput: function(object) {
                 var value = object.value,
-                    entityValue = object.entityValue,
+                    entityValue = _.escape(object.entityValue),
                     isAttribute = object.isAttribute,
                     isRelation = object.isRelation;
                 return '<input class="form-control entityInputBox ' + 
(value.isOptional === true ? "false" : "true") + '"' +
diff --git 
a/dashboardv3/public/js/views/entity/EntityBusinessMetaDataItemView.js 
b/dashboardv3/public/js/views/entity/EntityBusinessMetaDataItemView.js
index 0220173..45b0890 100644
--- a/dashboardv3/public/js/views/entity/EntityBusinessMetaDataItemView.js
+++ b/dashboardv3/public/js/views/entity/EntityBusinessMetaDataItemView.js
@@ -153,7 +153,8 @@ define(['require',
                     val = options.val.value,
                     isMultiValued = typeName && typeName.indexOf("array<") === 
0,
                     businessMetadata = options.businessMetadata,
-                    allowOnlyNum = false;
+                    allowOnlyNum = false,
+                    isEnum = false;
                 var elType = isMultiValued ? "select" : "input";
                 if (!isMultiValued && !_.isEmpty(val)) {
                     val = _.escape(val);
@@ -175,7 +176,7 @@ define(['require',
                     }
                 }
                 if (typeName.indexOf("string") > -1) {
-                    returnEL = '<' + elType + ' type="text" data-key="' + key 
+ '" data-businessMetadata="' + businessMetadata + '" data-typename="' + 
typeName + '" data-multi="' + isMultiValued + '" data-tags="true"  
placeholder="Enter String" class="form-control" ' + (!_.isUndefinedNull(val) ? 
'value="' + val + '"' : "") + '></' + elType + '>';
+                    returnEL = '<' + elType + ' type="text" data-key="' + key 
+ '" data-businessMetadata="' + businessMetadata + '" data-typename="' + 
typeName + '" data-multi="' + isMultiValued + '" data-tags="true"  
placeholder="Enter String" class="form-control" ' + (isMultiValued === false && 
!_.isUndefinedNull(val) ? 'value="' + val + '"' : "") + '></' + elType + '>';
                 } else if (typeName.indexOf("boolean") > -1) {
                     returnEL = '<select data-key="' + key + '" 
data-businessMetadata="' + businessMetadata + '" data-typename="' + typeName + 
'" data-multi="' + isMultiValued + '" class="form-control">' + (isMultiValued ? 
"" : '<option value="">--Select Value--</option>') + '<option value="true" ' + 
(!_.isUndefinedNull(val) && val == "true" ? "selected" : "") + 
'>true</option><option value="false" ' + (!_.isUndefinedNull(val) && val == 
"false" ? "selected" : "") + '>false</option></select>';
                 } else if (typeName.indexOf("date") > -1) {
@@ -198,6 +199,7 @@ define(['require',
                     allowOnlyNum = true;
                     returnEL = '<' + elType + ' data-key="' + key + '" 
data-businessMetadata="' + businessMetadata + '" data-typename="' + typeName + 
'" type="number" data-multi="' + isMultiValued + '" data-tags="true" 
placeholder="Enter Number" class="form-control" ' + (!_.isUndefinedNull(val) ? 
'value="' + val + '"' : "") + '></' + elType + '>';
                 } else if (typeName) {
+                    isEnum = true;
                     var modTypeName = typeName;
                     if (isMultiValued) {
                         var multipleType = typeName.match("array<(.*)>");
@@ -209,30 +211,31 @@ define(['require',
                     if (foundEnumType) {
                         var enumOptions = "";
                         _.forEach(foundEnumType.get("elementDefs"), 
function(obj) {
-                            enumOptions += '<option value="' + obj.value + 
'">' + obj.value + '</option>'
+                            enumOptions += '<option value="' + 
_.escape(obj.value) + '">' + _.escape(obj.value) + '</option>'
                         });
-                        returnEL = '<select data-key="' + key + '" 
data-businessMetadata="' + businessMetadata + '" data-typename="' + typeName + 
'" data-multi="' + isMultiValued + '" >' + enumOptions + '</select>';
+                        returnEL = '<select data-key="' + key + '" 
data-businessMetadata="' + businessMetadata + '" data-typename="' + typeName + 
'" data-multi="' + isMultiValued + '" data-enum="true">' + enumOptions + 
'</select>';
                     }
-                    setTimeout(function() {
-                        if (!isMultiValued) {
-                            var selectEl = 
that.$el.find('.custom-col-1[data-id="value"] select[data-key="' + key + '"]');
-                            selectEl.val((val || ""));
-                            selectEl.select2();
-                        }
-                    }, 0);
                 }
-                if (isMultiValued) {
+                if (isEnum || elType === "select") {
                     setTimeout(function() {
-                        var selectEl = 
that.$el.find('.custom-col-1[data-id="value"] select[data-key="' + key + 
'"][data-multi="true"]');
-                        var data = val && val.length && (_.isArray(val) ? val 
: val.split(",")) || [];
+                        var selectEl = 
that.$el.find('.custom-col-1[data-id="value"] select[data-key="' + key + '"]');
+                        var data = [];
+                        if (selectEl.data("multi")) {
+                            data = val && val.length && (_.isArray(val) ? val 
: val.split(",")) || [];
+                        } else {
+                            data = _.unescape(val);
+                        }
                         if (allowOnlyNum) {
                             selectEl.parent().addClass("select2_only_number");
                         }
-                        selectEl.select2({
+                        var opt = {
                             tags: selectEl.data("tags") ? true : false,
-                            multiple: true,
-                            data: data
-                        });
+                            multiple: selectEl.data("multi")
+                        }
+                        if (!selectEl.data("enum")) {
+                            opt.data = data;
+                        }
+                        selectEl.select2(opt);
                         selectEl.val(data).trigger("change");
                     }, 0);
                 }
diff --git a/dashboardv3/public/js/views/entity/EntityBusinessMetaDataView.js 
b/dashboardv3/public/js/views/entity/EntityBusinessMetaDataView.js
index 75d210e..fe13f01 100644
--- a/dashboardv3/public/js/views/entity/EntityBusinessMetaDataView.js
+++ b/dashboardv3/public/js/views/entity/EntityBusinessMetaDataView.js
@@ -25,8 +25,8 @@ define([
     "utils/Utils",
     "utils/Messages",
     "utils/CommonViewFunction",
-    'moment',
-    'utils/Globals'
+    "moment",
+    "utils/Globals"
 ], function(require, Backbone, EntityBusinessMetaDataView_tmpl, 
EntityBusinessMetaDataItemView, VEntity, Utils, Messages, CommonViewFunction, 
moment, Globals) {
     "use strict";
 
@@ -237,7 +237,7 @@ define([
                             }
 
                         }
-                        attrLi += "<tr><td>" + _.escape(key) + " (" + 
_.escape(val.typeName) + ")</td><td>" + _.escape(newVal) + "</td></tr>";
+                        attrLi += "<tr><td 
class='business-metadata-detail-attr-key'>" + _.escape(key) + " (" + 
_.escape(val.typeName) + ")</td><td>" + _.escape(newVal) + "</td></tr>";
                     }
                 });
                 li += that.associateAttributePanel(obj, attrLi);
@@ -250,7 +250,7 @@ define([
         },
         associateAttributePanel: function(obj, tableBody) {
             return '<div class="panel panel-default custom-panel 
expand_collapse_panel-icon no-border business-metadata-detail-attr">' +
-                '<div class="panel-heading" data-toggle="collapse" href="#' + 
_.escape(obj.get("__internal_UI_businessMetadataName")) + '" 
aria-expanded="true" style="width: 70%;">' +
+                '<div class="panel-heading" data-toggle="collapse" href="#' + 
_.escape(obj.get("__internal_UI_businessMetadataName")) + '" 
aria-expanded="true" style="width: 90%;">' +
                 '<h4 class="panel-title"> <a>' + 
_.escape(obj.get("__internal_UI_businessMetadataName")) + '</a></h4>' +
                 '<div class="btn-group pull-left"> <button type="button" 
title="Collapse"><i class="ec-icon fa"></i></button></div>' +
                 '</div>' +
diff --git a/dashboardv3/public/js/views/entity/EntityLabelDefineView.js 
b/dashboardv3/public/js/views/entity/EntityLabelDefineView.js
index 5e5fd6e..d3ddf55 100644
--- a/dashboardv3/public/js/views/entity/EntityLabelDefineView.js
+++ b/dashboardv3/public/js/views/entity/EntityLabelDefineView.js
@@ -72,7 +72,7 @@ define(['require',
         populateLabelOptions: function() {
             var that = this,
                 str = this.labels.map(function(label) {
-                    return "<option selected > " + label + " </option>";
+                    return "<option selected > " + _.escape(label) + " 
</option>";
                 });
             this.ui.addLabelOptions.html(str);
             var getLabelData = function(data, selectedData) {
@@ -104,7 +104,7 @@ define(['require',
                     delay: 250,
                     data: function(params) {
                         return {
-                            prefixString: _.escape(params.term), // search term
+                            prefixString: params.term, // search term
                             fieldName: '__labels'
                         };
                     },
@@ -131,7 +131,7 @@ define(['require',
             }
         },
         onChangeLabelChange: function() {
-            this.labels = this.ui.addLabelOptions.val().map(function(v) { 
return _.escape(v) });
+            this.labels = this.ui.addLabelOptions.val();
         },
         handleBtnClick: function() {
             this.swapItem = !this.swapItem;
diff --git a/dashboardv3/public/js/views/entity/EntityUserDefineItemView.js 
b/dashboardv3/public/js/views/entity/EntityUserDefineItemView.js
index bcc0845..3a6bd63 100644
--- a/dashboardv3/public/js/views/entity/EntityUserDefineItemView.js
+++ b/dashboardv3/public/js/views/entity/EntityUserDefineItemView.js
@@ -99,7 +99,7 @@ define(['require',
             var el = e.currentTarget;
             this.handleCharSupport(el);
             if (!el.value.trim().includes(':')) {
-                this.items[el.dataset.index].value = _.escape(el.value.trim());
+                this.items[el.dataset.index].value = el.value.trim();
             }
         },
         handleCharSupport: function(el) {
diff --git a/dashboardv3/public/js/views/glossary/GlossaryDetailLayoutView.js 
b/dashboardv3/public/js/views/glossary/GlossaryDetailLayoutView.js
index be480bf..65af810 100644
--- a/dashboardv3/public/js/views/glossary/GlossaryDetailLayoutView.js
+++ b/dashboardv3/public/js/views/glossary/GlossaryDetailLayoutView.js
@@ -296,7 +296,7 @@ define(['require',
                     categories = "";
                 _.each(data, function(val) {
                     var name = _.escape(val.displayText);
-                    categories += '<span data-guid="' + val.categoryGuid + '"" 
class="btn btn-action btn-sm btn-icon btn-blue" data-id="categoryClick"><span  
title=' + name + '>' + name + '</span><i class="fa fa-close" 
data-id="removeCategory" data-type="category" title="Remove 
Category"></i></span>';
+                    categories += '<span data-guid="' + val.categoryGuid + '" 
class="btn btn-action btn-sm btn-icon btn-blue" data-id="categoryClick"><span>' 
+ name + '</span><i class="fa fa-close" data-id="removeCategory" 
data-type="category" title="Remove Category"></i></span>';
                 });
                 this.ui.categoryList.find("span.btn").remove();
                 this.ui.categoryList.prepend(categories);
@@ -306,7 +306,7 @@ define(['require',
                     terms = "";
                 _.each(data, function(val) {
                     var name = _.escape(val.displayText);
-                    terms += '<span data-guid="' + val.termGuid + '"" 
class="btn btn-action btn-sm btn-icon btn-blue" data-id="termClick"><span 
title=' + name + '>' + name + '</span><i class="fa fa-close" 
data-id="removeTerm" data-type="term" title="Remove Term"></i></span>';
+                    terms += '<span data-guid="' + val.termGuid + '" 
class="btn btn-action btn-sm btn-icon btn-blue" data-id="termClick"><span>' + 
name + '</span><i class="fa fa-close" data-id="removeTerm" data-type="term" 
title="Remove Term"></i></span>';
                 });
                 this.ui.termList.find("span.btn").remove();
                 this.ui.termList.prepend(terms);
@@ -316,7 +316,7 @@ define(['require',
                 var that = this,
                     tagData = "";
                 _.each(tagObject, function(val) {
-                    tagData += '<span class="btn btn-action btn-sm btn-icon 
btn-blue" data-id="tagClickTerm"><span title=' + val.typeName + '>' + 
val.typeName + '</span><i class="fa fa-close" data-id="removeTagTerm" 
data-type="tag" title="Remove Classification"></i></span>';
+                    tagData += '<span class="btn btn-action btn-sm btn-icon 
btn-blue" data-id="tagClickTerm"><span>' + val.typeName + '</span><i class="fa 
fa-close" data-id="removeTagTerm" data-type="tag" title="Remove 
Classification"></i></span>';
                 });
                 this.ui.tagList.find("span.btn").remove();
                 this.ui.tagList.prepend(tagData);
@@ -407,7 +407,7 @@ define(['require',
                     tagName = $(e.currentTarget).text(),
                     termName = this.data.name;
                 CommonViewFunction.deleteTag(_.extend({}, {
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from" + " " + "<b>" + _.escape(termName) 
+ "?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from <b>" + _.escape(termName) + 
"?</b></div>",
                     titleMessage: Messages.removeTag,
                     okText: "Remove",
                     showLoader: that.showLoader.bind(that),
@@ -431,7 +431,7 @@ define(['require',
                     selectedGuid: guid,
                     model: that.data,
                     collection: that.glossaryCollection,
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(name) + "</b> assignment from" + " " + "<b>" + 
_.escape(that.data.name) + "?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(name) + "</b> assignment from <b>" + _.escape(that.data.name) + 
"?</b></div>",
                     titleMessage: Messages.glossary[that.isTermView ? 
"removeCategoryfromTerm" : "removeTermfromCategory"],
                     isCategoryView: that.isCategoryView,
                     isTermView: that.isTermView,
@@ -454,7 +454,7 @@ define(['require',
                 require(['views/tag/TagDetailTableLayoutView'], 
function(TagDetailTableLayoutView) {
                     if (that.RTagTableLayoutView) {
                         that.RTagTableLayoutView.show(new 
TagDetailTableLayoutView(_.extend({}, options, {
-                            "entityName": that.ui.title.text(),
+                            "entityName": _.escape(that.ui.title.text()),
                             "fetchCollection": that.getData.bind(that),
                             "entity": that.data
                         })));
diff --git 
a/dashboardv3/public/js/views/glossary/TermRelationAttributeLayoutView.js 
b/dashboardv3/public/js/views/glossary/TermRelationAttributeLayoutView.js
index bf9757b..ded1ab9 100644
--- a/dashboardv3/public/js/views/glossary/TermRelationAttributeLayoutView.js
+++ b/dashboardv3/public/js/views/glossary/TermRelationAttributeLayoutView.js
@@ -231,7 +231,7 @@ define(['require',
                     getTerms: function(key) {
                         var terms = _.map(that.data[key], function(obj) {
                                 var name = _.escape(obj.displayText);
-                                return '<span data-guid="' + obj.termGuid + '" 
class="btn btn-action btn-sm btn-icon btn-blue" title=' + _.escape(name) + ' 
data-id="termClick"><span>' + name + '</span><i class="fa fa-close" 
data-id="deleteAttribute" data-attributename="' + key + '" data-termguid="' + 
obj.termGuid + '" data-type="term" title="Remove Term"></i></span>';
+                                return '<span data-guid="' + obj.termGuid + '" 
class="btn btn-action btn-sm btn-icon btn-blue" data-id="termClick"><span>' + 
name + '</span><i class="fa fa-close" data-id="deleteAttribute" 
data-attributename="' + key + '" data-termguid="' + obj.termGuid + '" 
data-type="term" title="Remove Term"></i></span>';
                             }).join(""),
                             attributeButtons = "";
                         if (terms.length) {
diff --git a/dashboardv3/public/js/views/graph/LineageUtils.js 
b/dashboardv3/public/js/views/graph/LineageUtils.js
index ed66782..bd85d77 100644
--- a/dashboardv3/public/js/views/graph/LineageUtils.js
+++ b/dashboardv3/public/js/views/graph/LineageUtils.js
@@ -326,18 +326,6 @@ define(['require', 'utils/Utils'], function(require, 
Utils) {
             shapeSvg.attr("stroke", "#fb4200")
         }
 
-        if (node.isIncomplete === true) {
-            parent.attr("class", "node isIncomplete show");
-            parent.insert("foreignObject")
-                .attr("x", "-25")
-                .attr("y", "-25")
-                .attr("width", "50")
-                .attr("height", "50")
-                .append("xhtml:div")
-                .insert("i")
-                .attr("class", "fa fa-hourglass-half");
-        }
-
         if ($defs.select('pattern[id="img_' + imgName + '"]').empty()) {
             var $pattern = $defs.append("pattern")
                 .attr("x", "0%")
diff --git a/dashboardv3/public/js/views/graph/PropagationPropertyModal.js 
b/dashboardv3/public/js/views/graph/PropagationPropertyModal.js
index a90115c..5839959 100644
--- a/dashboardv3/public/js/views/graph/PropagationPropertyModal.js
+++ b/dashboardv3/public/js/views/graph/PropagationPropertyModal.js
@@ -151,7 +151,7 @@ define(['require',
                 fromEntity = this.lineageData.guidEntityMap[obj.fromEntityId],
                 toEntity = this.lineageData.guidEntityMap[obj.toEntityId];
             if (fromEntity && toEntity) {
-                this.ui.edgeDetailName.html(fromEntity.displayText + " <span 
class='navigation-font'><i class='fa fa-long-arrow-right fa-color'></i></span> 
" + toEntity.displayText);
+                this.ui.edgeDetailName.html(_.escape(fromEntity.displayText) + 
" <span class='navigation-font'><i class='fa fa-long-arrow-right 
fa-color'></i></span> " + _.escape(toEntity.displayText));
             }
             if (obj && obj.relationshipId) {
                 this.showLoader();
diff --git a/dashboardv3/public/js/views/graph/RelationshipLayoutView.js 
b/dashboardv3/public/js/views/graph/RelationshipLayoutView.js
index 8c58faf..06a3bfb 100644
--- a/dashboardv3/public/js/views/graph/RelationshipLayoutView.js
+++ b/dashboardv3/public/js/views/graph/RelationshipLayoutView.js
@@ -146,12 +146,12 @@ define(['require',
             updateRelationshipDetails: function(options) {
                 var data = options.obj.value,
                     typeName = data.typeName || options.obj.name,
-                    searchString = options.searchString,
+                    searchString = _.escape(options.searchString),
                     listString = "",
                     getEntityTypelist = function(options) {
                         var activeEntityColor = "#4a90e2",
                             deletedEntityColor = "#BB5838",
-                            entityTypeHtml = '',
+                            entityTypeHtml = '<pre>',
                             getdefault = function(obj) {
                                 var options = obj.options,
                                     status = 
(Enums.entityStateReadOnly[options.entityStatus || options.status] ? " 
deleted-relation" : ''),
@@ -197,13 +197,13 @@ define(['require',
                                 entityTypeHtml = getdefault({
                                     "color": activeEntityColor,
                                     "options": options,
-                                    "name": _.escape(name)
+                                    "name": name
                                 });
                             } else if (options.relationshipStatus == 
"DELETED") {
                                 entityTypeHtml = getWithButton({
                                     "color": activeEntityColor,
                                     "options": options,
-                                    "name": _.escape(name),
+                                    "name": name,
                                     "relationship": true
                                 })
                             }
@@ -211,18 +211,17 @@ define(['require',
                             entityTypeHtml = getWithButton({
                                 "color": deletedEntityColor,
                                 "options": options,
-                                "name": _.escape(name),
+                                "name": name,
                                 "entity": true
                             })
                         } else {
-
                             entityTypeHtml = getdefault({
                                 "color": activeEntityColor,
                                 "options": options,
-                                "name": _.escape(name)
+                                "name": name
                             });
                         }
-                        return entityTypeHtml;
+                        return entityTypeHtml + '</pre>';
                     };
                 this.ui.searchNode.hide();
                 this.$("[data-id='typeName']").text(typeName);
diff --git a/dashboardv3/public/js/views/schema/SchemaLayoutView.js 
b/dashboardv3/public/js/views/schema/SchemaLayoutView.js
index 579c373..79ddc57 100644
--- a/dashboardv3/public/js/views/schema/SchemaLayoutView.js
+++ b/dashboardv3/public/js/views/schema/SchemaLayoutView.js
@@ -207,7 +207,7 @@ define(['require',
                                 className: "searchTableName",
                                 formatter: _.extend({}, 
Backgrid.CellFormatter.prototype, {
                                     fromRaw: function(rawValue, model) {
-                                        var value = 
model.get('attributes')[key];
+                                        var value = 
_.escape(model.get('attributes')[key]);
                                         if (key === "name" && 
model.get('guid')) {
                                             var nameHtml = '<a 
href="#!/detailPage/' + model.get('guid') + '">' + value + '</a>';
                                             if (model.get('status') && 
Enums.entityStateReadOnly[model.get('status')]) {
@@ -291,7 +291,7 @@ define(['require',
                 CommonViewFunction.deleteTag({
                     tagName: tagName,
                     guid: guid,
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from" + " " + "<b>" + assetName + " 
?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from <b>" + _.escape(assetName) + " 
?</b></div>",
                     titleMessage: Messages.removeTag,
                     okText: "Remove",
                     showLoader: that.showLoader.bind(that),
diff --git a/dashboardv3/public/js/views/search/GlobalSearchLayoutView.js 
b/dashboardv3/public/js/views/search/GlobalSearchLayoutView.js
index afae712..88dd418 100644
--- a/dashboardv3/public/js/views/search/GlobalSearchLayoutView.js
+++ b/dashboardv3/public/js/views/search/GlobalSearchLayoutView.js
@@ -305,12 +305,10 @@ define(["require",
                                             }
                                             item.serviceType = 
Globals.serviceTypeMap[item.typeName];
                                             options.entityData = item;
-                                            var imgEl = $('<img src="' + 
Utils.getEntityIconPath(options) + '">').on("error", function(error, s) {
+                                            var img = $('<img src="' + 
Utils.getEntityIconPath(options) + '">').on("error", function(error, s) {
                                                 this.src = 
Utils.getEntityIconPath(_.extend(options, { errorUrl: this.src }));
                                             });
 
-                                            var img = $('<div 
class="globalsearchImgItem isIncomplete ' + (item.isIncomplete ? "show" : "") + 
'"><i class="fa fa-hourglass-half"></i><div>').prepend(imgEl);
-
                                             var span = $("<span>" + 
getHighlightedTerm(item.itemText) + "</span>").prepend(img);
                                             li = $("<li 
class='with-icon'>").append(span);
                                         } else {
diff --git a/dashboardv3/public/js/views/search/SearchDefaultLayoutView.js 
b/dashboardv3/public/js/views/search/SearchDefaultLayoutView.js
index c588a8d..bae01bf 100644
--- a/dashboardv3/public/js/views/search/SearchDefaultLayoutView.js
+++ b/dashboardv3/public/js/views/search/SearchDefaultLayoutView.js
@@ -311,7 +311,7 @@ define(["require", "backbone", "utils/Globals", 
"hbs!tmpl/search/SearchDefaultLa
                             attrObj: attrTypeObj
                         }), this.RQueryBuilderEntity);
 
-                        this.ui.entityName.html(that.options.value.type);
+                        
this.ui.entityName.html(_.escape(that.options.value.type));
                     }
                 }
 
diff --git a/dashboardv3/public/js/views/search/SearchFilterBrowseLayoutView.js 
b/dashboardv3/public/js/views/search/SearchFilterBrowseLayoutView.js
index 1ce52ce..86916f4 100644
--- a/dashboardv3/public/js/views/search/SearchFilterBrowseLayoutView.js
+++ b/dashboardv3/public/js/views/search/SearchFilterBrowseLayoutView.js
@@ -40,7 +40,6 @@ define([
             RBusinessMetadataTreeRender: 
'[data-id="r_businessMetadataTreeRender"]'
         },
         ui: {
-            //search
             searchNode: '[data-id="searchNode"]',
             sliderBar: '[data-id="sliderBar"]',
             menuItems: ".menu-items"
@@ -66,16 +65,9 @@ define([
             };
 
             events["keyup " + this.ui.searchNode] = function(e) {
-                // var type = $(e.currentTarget).data("type");
-                // var showEmpty = false;
-                // 
this.RClassificationTreeRender.currentView.onSearchClassificationNode(showEmpty);
-                // 
this.REntityTreeRender.currentView.onSearchEntityNode(showEmpty);
-                var searchString = e.target.value;
+                var searchString = _.escape(e.target.value);
                 if (searchString.trim() === "") {
                     this.$(".panel").removeClass("hide");
-                    // showEmpty = true;
-                    // 
this.RClassificationTreeRender.currentView.onSearchClassificationNode(showEmpty);
-                    // 
this.REntityTreeRender.currentView.onSearchEntityNode(showEmpty);
                 }
                 this.entitySearchTree = this.$('[data-id="entitySearchTree"]');
                 this.classificationSearchTree = 
this.$('[data-id="classificationSearchTree"]');
@@ -99,7 +91,6 @@ define([
 
             events["click " + this.ui.menuItems] = function(e) {
                 e.stopPropagation();
-                //this.$('.menu-items').removeClass('open');
             };
             return events;
         },
diff --git a/dashboardv3/public/js/views/search/SearchResultLayoutView.js 
b/dashboardv3/public/js/views/search/SearchResultLayoutView.js
index 2528174..ee6be8c 100644
--- a/dashboardv3/public/js/views/search/SearchResultLayoutView.js
+++ b/dashboardv3/public/js/views/search/SearchResultLayoutView.js
@@ -723,12 +723,8 @@ define(['require',
                                         }
                                     });
                             }
-                            var img = "",
-                                isIncompleteClass = "isIncomplete 
search-result-page";
-                            if (obj.isIncomplete === true) {
-                                isIncompleteClass += " show";
-                            }
-                            img = "<div class='" + isIncompleteClass + "'><img 
data-imgGuid='" + obj.guid + "' class='searchTableLogoLoader'><i class='fa 
fa-hourglass-half'></i></div>";
+                            var img = "";
+                            img = "<div><img data-imgGuid='" + obj.guid + "' 
class='searchTableLogoLoader'></div>";
                             getImageData({ imagePath: 
Utils.getEntityIconPath({ entityData: obj }) });
                             return (img + nameHtml);
                         }
@@ -890,7 +886,7 @@ define(['require',
                                                         if 
(values[values.length - 1] === "") { values.pop(); }
                                                         if (values[0] === "") 
{ values.shift(); }
                                                         _.each(values, 
function(names) {
-                                                            
valueOfArray.push('<span class="json-string"><a class="btn btn-action btn-sm 
btn-blue btn-icon" ><span title="" data-original-title="' + names + '" >' + 
names + '</span></a></span>');
+                                                            
valueOfArray.push('<span class="json-string"><a class="btn btn-action btn-sm 
btn-blue btn-icon" ><span>' + _.escape(names) + '</span></a></span>');
                                                         });
                                                         return 
valueOfArray.join(' ');
                                                     }
@@ -900,7 +896,7 @@ define(['require',
                                                         valueOfArray = [];
                                                     if (customAttributes) {
                                                         
_.each(Object.keys(customAttributes), function(value, index) {
-                                                            
valueOfArray.push('<span class="json-string"><a class="btn btn-action btn-sm 
btn-blue btn-icon" ><span title="" data-original-title="' + value + ' : ' + 
Object.values(customAttributes)[index] + '" ><span>' + value + '</span> : 
<span>' + Object.values(customAttributes)[index] + '</span></span></a></span>');
+                                                            
valueOfArray.push('<span class="json-string"><a class="btn btn-action btn-sm 
btn-blue btn-icon" ><span><span>' + _.escape(value) + '</span> : <span>' + 
_.escape(Object.values(customAttributes)[index]) + '</span></span></a></span>');
                                                         });
                                                         return 
valueOfArray.join(' ');
                                                     }
@@ -960,7 +956,7 @@ define(['require',
                                     var modelObj = model.toJSON();
                                     if (key == "name") {
                                         var nameHtml = "",
-                                            name = modelObj[key];
+                                            name = _.escape(modelObj[key]);
                                         if (modelObj.guid) {
                                             nameHtml = '<a title="' + name + 
'" href="#!/detailPage/' + modelObj.guid + (that.fromView ? "?from=" + 
that.fromView : "") + '">' + name + '</a>';
                                         } else {
@@ -1154,7 +1150,7 @@ define(['require',
                     tagName: tagName,
                     guid: guid,
                     associatedGuid: guid != entityGuid ? entityGuid : null,
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from" + " " + "<b>" + assetName + " 
?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from <b>" + _.escape(assetName) + " 
?</b></div>",
                     titleMessage: Messages.removeTag,
                     okText: "Remove",
                     showLoader: that.showLoader.bind(that),
@@ -1184,7 +1180,7 @@ define(['require',
                         relationshipGuid: termObj.relationGuid
                     },
                     collection: that.glossaryCollection,
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(termName) + "</b> assignment from" + " " + "<b>" + assetname + 
"?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(termName) + "</b> assignment from <b>" + _.escape(assetname) + 
"?</b></div>",
                     titleMessage: Messages.glossary.removeTermfromEntity,
                     isEntityView: true,
                     buttonText: "Remove",
diff --git 
a/dashboardv3/public/js/views/search/tree/ClassificationTreeLayoutView.js 
b/dashboardv3/public/js/views/search/tree/ClassificationTreeLayoutView.js
index 67ac7c6..0b2227f 100644
--- a/dashboardv3/public/js/views/search/tree/ClassificationTreeLayoutView.js
+++ b/dashboardv3/public/js/views/search/tree/ClassificationTreeLayoutView.js
@@ -724,7 +724,7 @@ define([
                         return activeTagObj.name.toLowerCase() === 
obj.name.toLowerCase();
                     });
                     if (duplicateCheck) {
-                        duplicateAttributeList.push(obj.name);
+                        duplicateAttributeList.push(_.escape(obj.name));
                     }
                 });
                 var notifyObj = {
diff --git 
a/dashboardv3/public/js/views/search/tree/CustomFilterTreeLayoutView.js 
b/dashboardv3/public/js/views/search/tree/CustomFilterTreeLayoutView.js
index 585ec98..53e9da8 100644
--- a/dashboardv3/public/js/views/search/tree/CustomFilterTreeLayoutView.js
+++ b/dashboardv3/public/js/views/search/tree/CustomFilterTreeLayoutView.js
@@ -429,7 +429,7 @@ define([
                 var notifyObj = {
                     modal: true,
                     html: true,
-                    text: Messages.conformation.deleteMessage + "<b>" + 
options.model.get('name') + "</b>" + " ?",
+                    text: Messages.conformation.deleteMessage + "<b>" + 
_.escape(options.model.get('name')) + "</b>" + " ?",
                     ok: function(argument) {
                         that.onDeleteNotifyOk(options);
                     },
diff --git a/dashboardv3/public/js/views/tag/AddTagModalView.js 
b/dashboardv3/public/js/views/tag/AddTagModalView.js
index df280fb..2e3df3f 100644
--- a/dashboardv3/public/js/views/tag/AddTagModalView.js
+++ b/dashboardv3/public/js/views/tag/AddTagModalView.js
@@ -355,7 +355,7 @@ define(['require',
                         var str = '<option value=""' + (!that.tagModel ? 
'selected' : '') + '>-- Select ' + typeName + " --</option>";
                         var enumValue = typeNameValue.get('elementDefs');
                         _.each(enumValue, function(key, value) {
-                            str += '<option ' + ((that.tagModel && key.value 
=== that.tagModel.attributes[name]) ? 'selected' : '') + '>' + key.value + 
'</option>';
+                            str += '<option ' + ((that.tagModel && key.value 
=== that.tagModel.attributes[name]) ? 'selected' : '') + '>' + 
_.escape(key.value) + '</option>';
                         })
                         that.ui.tagAttribute.append('<div 
class="form-group"><label>' + name + '</label>' + ' (' + typeName + ')' +
                             '<select class="form-control attributeInputVal 
attrName" data-key="' + name + '">' + str + '</select></div>');
@@ -393,7 +393,7 @@ define(['require',
             }
         },
         getElement: function(labelName, typeName) {
-            var value = this.tagModel && this.tagModel.attributes ? 
(this.tagModel.attributes[labelName] || "") : "",
+            var value = this.tagModel && this.tagModel.attributes ? 
(this.tagModel.attributes[_.unescape(labelName)] || "") : "",
                 isTypeNumber = typeName === "int" || typeName === "byte" || 
typeName === "short" || typeName === "double" || typeName === "float",
                 inputClassName = "form-control attributeInputVal attrName";
             if (isTypeNumber) {
@@ -405,7 +405,7 @@ define(['require',
                     '<option value="true">true</option>' +
                     '<option value="false">false</option></select>';
             } else {
-                return '<input type="text" value="' + value + '" class="' + 
inputClassName + '" data-key="' + labelName + '" data-type="' + typeName + 
'"/>';
+                return '<input type="text" value="' + _.escape(value) + '" 
class="' + inputClassName + '" data-key="' + labelName + '" data-type="' + 
typeName + '"/>';
             }
 
         },
diff --git a/dashboardv3/public/js/views/tag/TagAttributeDetailLayoutView.js 
b/dashboardv3/public/js/views/tag/TagAttributeDetailLayoutView.js
index 60f3b6d..4800241 100644
--- a/dashboardv3/public/js/views/tag/TagAttributeDetailLayoutView.js
+++ b/dashboardv3/public/js/views/tag/TagAttributeDetailLayoutView.js
@@ -232,7 +232,7 @@ define(['require',
                                     return activeTagObj.name.toLowerCase() === 
obj.name.toLowerCase();
                                 });
                                 if (duplicateCheck) {
-                                    duplicateAttributeList.push(obj.name);
+                                    
duplicateAttributeList.push(_.escape(obj.name));
                                 } else {
                                     saveObj.attributeDefs.push(obj);
                                 }
diff --git a/dashboardv3/public/js/views/tag/TagDetailTableLayoutView.js 
b/dashboardv3/public/js/views/tag/TagDetailTableLayoutView.js
index 1545a65..fd84dbb 100644
--- a/dashboardv3/public/js/views/tag/TagDetailTableLayoutView.js
+++ b/dashboardv3/public/js/views/tag/TagDetailTableLayoutView.js
@@ -207,7 +207,7 @@ define(['require',
                     tagName: tagName,
                     guid: that.guid,
                     associatedGuid: that.guid != entityGuid ? entityGuid : 
null,
-                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from" + " " + "<b>" + this.entityName + 
"?</b></div>",
+                    msg: "<div class='ellipsis-with-margin'>Remove: " + "<b>" 
+ _.escape(tagName) + "</b> assignment from <b>" + this.entityName + 
"?</b></div>",
                     titleMessage: Messages.removeTag,
                     okText: "Remove",
                     showLoader: function() {

Reply via email to