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

nbonte pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/atlas.git

commit 2c4587800a057562454eaad85583c246f3015766
Author: prasad pawar <[email protected]>
AuthorDate: Mon Feb 15 17:56:32 2021 +0530

    ATLAS-4154:UI Glossary changes & improvements fixed V1
    
    Signed-off-by: Nikhil Bonte <[email protected]>
    (cherry picked from commit 4880939d4fd1f48508b981de46d55db8e5bc02be)
---
 dashboardv2/public/css/scss/override.scss           |  3 +++
 .../templates/glossary/GlossaryLayoutView_tmpl.html |  2 +-
 dashboardv2/public/js/templates/site/Header.html    |  2 +-
 .../js/views/glossary/AssignTermLayoutView.js       | 12 +++++++++---
 .../public/js/views/glossary/GlossaryLayoutView.js  | 21 ++++++++++++++++++++-
 .../public/js/views/import/ImportLayoutView.js      |  8 ++++----
 dashboardv3/public/css/scss/leftsidebar.scss        | 11 +++++++++++
 dashboardv3/public/css/scss/override.scss           |  4 ++++
 .../search/tree/GlossaryTreeLayoutView_tmpl.html    |  2 +-
 .../js/views/glossary/AssignTermLayoutView.js       | 12 +++++++++---
 .../public/js/views/glossary/GlossaryLayoutView.js  | 18 +++++++++++++++++-
 .../public/js/views/import/ImportLayoutView.js      |  8 ++++----
 .../js/views/search/tree/GlossaryTreeLayoutView.js  | 12 +++++++++++-
 13 files changed, 95 insertions(+), 20 deletions(-)

diff --git a/dashboardv2/public/css/scss/override.scss 
b/dashboardv2/public/css/scss/override.scss
index 188ac1a..69ac36d 100644
--- a/dashboardv2/public/css/scss/override.scss
+++ b/dashboardv2/public/css/scss/override.scss
@@ -549,4 +549,7 @@ div.columnmanager-dropdown-container {
             border-color: $color_havelock_blue_approx;
         }
     }
+}
+.dropzone .dz-preview .dz-details .dz-filename {
+    padding-top: 20px;
 }
\ No newline at end of file
diff --git 
a/dashboardv2/public/js/templates/glossary/GlossaryLayoutView_tmpl.html 
b/dashboardv2/public/js/templates/glossary/GlossaryLayoutView_tmpl.html
index 67488f8..f3e8797 100644
--- a/dashboardv2/public/js/templates/glossary/GlossaryLayoutView_tmpl.html
+++ b/dashboardv2/public/js/templates/glossary/GlossaryLayoutView_tmpl.html
@@ -32,7 +32,7 @@
                 <button type="button" data-toggle="dropdown" class="btn 
btn-action btn-md dropdown-toggle" type="button"><i class="fa 
fa-paperclip"></i></button>
                 <ul class="dropdown-menu">
                     <li><a href="{{importTmplUrl}}">Download Import 
template</a></li>
-                    <li><a href="javascript:void(0)" 
data-id="importGlossary">Import Glossary</a></li>
+                    <li><a href="javascript:void(0)" 
data-id="importGlossary">Import Glossary Term</a></li>
                 </ul>
             </div>
             <!--  -->
diff --git a/dashboardv2/public/js/templates/site/Header.html 
b/dashboardv2/public/js/templates/site/Header.html
index 48aa247..c2835ca 100644
--- a/dashboardv2/public/js/templates/site/Header.html
+++ b/dashboardv2/public/js/templates/site/Header.html
@@ -55,7 +55,7 @@
                                             <a tabindex="-1" 
href="javascript:void(0)">Glossary</span></a>
                                             <ul class="dropdown-menu">
                                                 <li><a 
href="{{glossaryImportTempUrl}}">Download Import template</a></li>
-                                                <li 
data-id='glossaryImport'><a href="javascript:void(0)">Import Glossary</a></li>
+                                                <li 
data-id='glossaryImport'><a href="javascript:void(0)">Import Glossary 
Term</a></li>
                                             </ul>
                                         </li>
                                     </ul>
diff --git a/dashboardv2/public/js/views/glossary/AssignTermLayoutView.js 
b/dashboardv2/public/js/views/glossary/AssignTermLayoutView.js
index e9da313..e9c4a71 100644
--- a/dashboardv2/public/js/views/glossary/AssignTermLayoutView.js
+++ b/dashboardv2/public/js/views/glossary/AssignTermLayoutView.js
@@ -137,7 +137,12 @@ define(['require',
                             return isMatch
                         },
                         onFinished: function(event, currentIndex) {
-                            that.assignTerm();
+                            var $assignBtn = $(this).find('a[href="#finish"]');
+                            if(!$assignBtn.attr('disabled')){
+                                $assignBtn.attr('disabled', 
true).showButtonLoader();
+                                
$assignBtn.parent().attr('aria-disabled','true').addClass('disabled');
+                                that.assignTerm();
+                            }
                         },
                         onCanceled: function(event) {
                             that.modal.trigger('cancel');
@@ -146,7 +151,6 @@ define(['require',
                 }
             },
             assignTerm: function() {
-                this.modal.$el.find('button.ok').showButtonLoader();
                 this.assignTermError = false;
                 var that = this,
                     data = [],
@@ -165,7 +169,9 @@ define(['require',
                             }
                         },
                         cust_error: function() {
-                            
that.modal.$el.find('button.ok').hideButtonLoader();
+                            var $assignBtn = 
that.$el.find('a[href="#finish"]');
+                            
$assignBtn.removeAttr('disabled').hideButtonLoader();
+                            
$assignBtn.parent().attr('aria-disabled','false').removeClass('disabled');
                             that.assignTermError = true;
                         }
                     },
diff --git a/dashboardv2/public/js/views/glossary/GlossaryLayoutView.js 
b/dashboardv2/public/js/views/glossary/GlossaryLayoutView.js
index a5d0e70..5d9ba74 100644
--- a/dashboardv2/public/js/views/glossary/GlossaryLayoutView.js
+++ b/dashboardv2/public/js/views/glossary/GlossaryLayoutView.js
@@ -156,6 +156,7 @@ define(['require',
                 }
                 if (this.isAssignView && 
this.glossaryCollection.fullCollection.length) {
                     this.generateTree();
+                    this.disableNodesList = this.getDisableNodes();
                 } else {
                     this.getGlossary();
                 }
@@ -186,10 +187,12 @@ define(['require',
                     this.$('.category-view').show();
                     this.$('.term-view').hide();
                     this.viewType = "category";
+                    this.$('.dropdown-toggle').attr('disabled', 'disabled');
                 } else {
                     this.$('.term-view').show();
                     this.$('.category-view').hide();
                     this.viewType = "term";
+                    this.$('.dropdown-toggle').removeAttr('disabled');
                 }
                 var setDefaultSelector = function() {
                     if (!that.value) {
@@ -439,6 +442,17 @@ define(['require',
                     this.triggerUrl();
                 }
             },
+            getDisableNodes: function() {
+                var disableNodesSelection = [];
+                if (this.options && 
this.options.isAssignAttributeRelationView) {
+                    var disableTerms = (this.options.termData && 
this.options.selectedTermAttribute) ? 
this.options.termData[this.options.selectedTermAttribute] : null;
+                    disableNodesSelection = _.map(disableTerms, function(obj) {
+                        return obj.termGuid;
+                    });
+                    disableNodesSelection.push(this.options.termData.guid);
+                }
+                return disableNodesSelection;
+            },
             generateTree: function() {
                 var $termTree = this.ui.termTree,
                     $categoryTree = this.ui.categoryTree,
@@ -453,7 +467,11 @@ define(['require',
                                     return;
                                 }
                                 if (that.isAssignView) {
-                                    return obj != "Glossary" ? true : false;
+                                    var isDisableNode = false;
+                                    if (that.disableNodesList) {
+                                        isDisableNode = 
(that.disableNodesList.indexOf(node.original.guid) > -1) ? true : false;
+                                    }
+                                    return (obj != "Glossary" && 
!isDisableNode) ? true : false;
                                 } else {
                                     return obj != "NoAction" ? true : false;
                                 }
@@ -545,6 +563,7 @@ define(['require',
                                 treeLoaded({ "$el": $el, "type": type });
                             });
                     },
+
                     initializeTermTree = function() {
                         if ($termTree.data('jstree')) {
                             $('.termPopover').popover('destroy');
diff --git a/dashboardv2/public/js/views/import/ImportLayoutView.js 
b/dashboardv2/public/js/views/import/ImportLayoutView.js
index 159e779..8f7524e 100644
--- a/dashboardv2/public/js/views/import/ImportLayoutView.js
+++ b/dashboardv2/public/js/views/import/ImportLayoutView.js
@@ -55,10 +55,10 @@ define([
                 _.extend(this, _.pick(options, "callback", "isGlossary"));
                 var that = this;
                 this.modal = new Modal({
-                    title: this.isGlossary ? "Import Glossary" : "Import 
Business Metadata",
+                    title: this.isGlossary ? "Import Glossary Term" : "Import 
Business Metadata",
                     content: this,
                     cancelText: "Cancel",
-                    okText: "upload",
+                    okText: "Upload",
                     allowCancel: true,
                     okCloses: false,
                     mainClass: "dropzone-modal"
@@ -75,7 +75,7 @@ define([
             bindEvents: function() {
                 var that = this;
                 $('body').on('click', '.importBackBtn', function() {
-                    var modalTitle = that.isGlossary ? "Import Glossary" : 
"Import Business Metadata";
+                    var modalTitle = that.isGlossary ? "Import Glossary Term" 
: "Import Business Metadata";
                     that.toggleErrorAndDropZoneView({ title: modalTitle, 
isErrorView: false });
                 });
             },
@@ -143,7 +143,7 @@ define([
                         Utils.defaultErrorHandler(null, responseObj, { 
defaultErrorMessage: (response.errorMessage) || response });
                         that.modal.$el.find("button.ok").attr("disabled", 
false);
                     },
-                    dictDefaultMessage: "Drop files here or click to upload.",
+                    dictDefaultMessage: "Drop files here or click to 
upload(.csv, .xls, .xlsx).",
                     headers: headers
                 });
             },
diff --git a/dashboardv3/public/css/scss/leftsidebar.scss 
b/dashboardv3/public/css/scss/leftsidebar.scss
index d547f39..44235ba 100644
--- a/dashboardv3/public/css/scss/leftsidebar.scss
+++ b/dashboardv3/public/css/scss/leftsidebar.scss
@@ -253,6 +253,17 @@
                 }
             }
 
+            .disable-list-option {
+
+                &,
+                &:focus,
+                &:hover * {
+                    background-color: transparent !important;
+                    color: $gray !important;
+                    cursor: not-allowed;
+                }
+            }
+
             .clear-icon {
                 color: $color_ironside_gray_approx !important;
                 position: absolute;
diff --git a/dashboardv3/public/css/scss/override.scss 
b/dashboardv3/public/css/scss/override.scss
index 2003bf0..8a89b48 100644
--- a/dashboardv3/public/css/scss/override.scss
+++ b/dashboardv3/public/css/scss/override.scss
@@ -551,4 +551,8 @@ div.columnmanager-dropdown-container {
             border-color: $color_havelock_blue_approx;
         }
     }
+}
+
+.dropzone .dz-preview .dz-details .dz-filename {
+    padding-top: 20px;
 }
\ No newline at end of file
diff --git 
a/dashboardv3/public/js/templates/search/tree/GlossaryTreeLayoutView_tmpl.html 
b/dashboardv3/public/js/templates/search/tree/GlossaryTreeLayoutView_tmpl.html
index 0d9994e..50716a8 100644
--- 
a/dashboardv3/public/js/templates/search/tree/GlossaryTreeLayoutView_tmpl.html
+++ 
b/dashboardv3/public/js/templates/search/tree/GlossaryTreeLayoutView_tmpl.html
@@ -32,7 +32,7 @@
                     </li>
                     <li data-id="downloadTemplate" data-type="term"><i 
class="fa fa-download"></i> <span><a href="{{importTmplUrl}}"><span>Download 
Import template</span></a></span>
                     </li>
-                    <li data-id="importGlossary" data-type="term"> <i 
class="fa fa-upload"></i><a href="javascript:void(0)"><span>Import 
Glossary</span></a>
+                    <li data-id="importGlossary" data-type="term"> <i 
class="fa fa-upload"></i><a href="javascript:void(0)"><span>Import Glossary 
Term</span></a>
                     </li>
                 </ul>
             </button>
diff --git a/dashboardv3/public/js/views/glossary/AssignTermLayoutView.js 
b/dashboardv3/public/js/views/glossary/AssignTermLayoutView.js
index e9da313..e9c4a71 100644
--- a/dashboardv3/public/js/views/glossary/AssignTermLayoutView.js
+++ b/dashboardv3/public/js/views/glossary/AssignTermLayoutView.js
@@ -137,7 +137,12 @@ define(['require',
                             return isMatch
                         },
                         onFinished: function(event, currentIndex) {
-                            that.assignTerm();
+                            var $assignBtn = $(this).find('a[href="#finish"]');
+                            if(!$assignBtn.attr('disabled')){
+                                $assignBtn.attr('disabled', 
true).showButtonLoader();
+                                
$assignBtn.parent().attr('aria-disabled','true').addClass('disabled');
+                                that.assignTerm();
+                            }
                         },
                         onCanceled: function(event) {
                             that.modal.trigger('cancel');
@@ -146,7 +151,6 @@ define(['require',
                 }
             },
             assignTerm: function() {
-                this.modal.$el.find('button.ok').showButtonLoader();
                 this.assignTermError = false;
                 var that = this,
                     data = [],
@@ -165,7 +169,9 @@ define(['require',
                             }
                         },
                         cust_error: function() {
-                            
that.modal.$el.find('button.ok').hideButtonLoader();
+                            var $assignBtn = 
that.$el.find('a[href="#finish"]');
+                            
$assignBtn.removeAttr('disabled').hideButtonLoader();
+                            
$assignBtn.parent().attr('aria-disabled','false').removeClass('disabled');
                             that.assignTermError = true;
                         }
                     },
diff --git a/dashboardv3/public/js/views/glossary/GlossaryLayoutView.js 
b/dashboardv3/public/js/views/glossary/GlossaryLayoutView.js
index 9b386f3..e1aec21 100644
--- a/dashboardv3/public/js/views/glossary/GlossaryLayoutView.js
+++ b/dashboardv3/public/js/views/glossary/GlossaryLayoutView.js
@@ -138,6 +138,7 @@ define(['require',
                 }
                 if (this.isAssignView && 
this.glossaryCollection.fullCollection.length) {
                     this.generateTree();
+                    this.disableNodesList = this.getDisableNodes();
                 } else {
                     this.getGlossary();
                 }
@@ -409,6 +410,17 @@ define(['require',
                     this.triggerUrl();
                 }
             },
+            getDisableNodes: function() {
+                var disableNodesSelection = [];
+                if (this.options && 
this.options.isAssignAttributeRelationView) {
+                    var disableTerms = (this.options.termData && 
this.options.selectedTermAttribute) ? 
this.options.termData[this.options.selectedTermAttribute] : null;
+                    disableNodesSelection = _.map(disableTerms, function(obj) {
+                        return obj.termGuid;
+                    });
+                    disableNodesSelection.push(this.options.termData.guid);
+                }
+                return disableNodesSelection;
+            },
             generateTree: function() {
                 var $termTree = this.ui.termTree,
                     $categoryTree = this.ui.categoryTree,
@@ -423,7 +435,11 @@ define(['require',
                                     return;
                                 }
                                 if (that.isAssignView) {
-                                    return obj != "Glossary" ? true : false;
+                                    var isDisableNode = false;
+                                    if (that.disableNodesList) {
+                                        isDisableNode = 
(that.disableNodesList.indexOf(node.original.guid) > -1) ? true : false;
+                                    }
+                                    return (obj != "Glossary" && 
!isDisableNode) ? true : false;
                                 } else {
                                     return obj != "NoAction" ? true : false;
                                 }
diff --git a/dashboardv3/public/js/views/import/ImportLayoutView.js 
b/dashboardv3/public/js/views/import/ImportLayoutView.js
index 159e779..8f7524e 100644
--- a/dashboardv3/public/js/views/import/ImportLayoutView.js
+++ b/dashboardv3/public/js/views/import/ImportLayoutView.js
@@ -55,10 +55,10 @@ define([
                 _.extend(this, _.pick(options, "callback", "isGlossary"));
                 var that = this;
                 this.modal = new Modal({
-                    title: this.isGlossary ? "Import Glossary" : "Import 
Business Metadata",
+                    title: this.isGlossary ? "Import Glossary Term" : "Import 
Business Metadata",
                     content: this,
                     cancelText: "Cancel",
-                    okText: "upload",
+                    okText: "Upload",
                     allowCancel: true,
                     okCloses: false,
                     mainClass: "dropzone-modal"
@@ -75,7 +75,7 @@ define([
             bindEvents: function() {
                 var that = this;
                 $('body').on('click', '.importBackBtn', function() {
-                    var modalTitle = that.isGlossary ? "Import Glossary" : 
"Import Business Metadata";
+                    var modalTitle = that.isGlossary ? "Import Glossary Term" 
: "Import Business Metadata";
                     that.toggleErrorAndDropZoneView({ title: modalTitle, 
isErrorView: false });
                 });
             },
@@ -143,7 +143,7 @@ define([
                         Utils.defaultErrorHandler(null, responseObj, { 
defaultErrorMessage: (response.errorMessage) || response });
                         that.modal.$el.find("button.ok").attr("disabled", 
false);
                     },
-                    dictDefaultMessage: "Drop files here or click to upload.",
+                    dictDefaultMessage: "Drop files here or click to 
upload(.csv, .xls, .xlsx).",
                     headers: headers
                 });
             },
diff --git a/dashboardv3/public/js/views/search/tree/GlossaryTreeLayoutView.js 
b/dashboardv3/public/js/views/search/tree/GlossaryTreeLayoutView.js
index c96b03b..4a327d8 100644
--- a/dashboardv3/public/js/views/search/tree/GlossaryTreeLayoutView.js
+++ b/dashboardv3/public/js/views/search/tree/GlossaryTreeLayoutView.js
@@ -80,7 +80,10 @@ define([
             };
             events["click " + this.ui.importGlossary] = function(e) {
                 e.stopPropagation();
-                that.onClickImportGlossary();
+                var $target = $(e.target);
+                if ($target.parents(".disable-list-option").length == 0 && 
$target.hasClass("disable-list-option") == false) {
+                    that.onClickImportGlossary();
+                }
             };
             events['click ' + this.ui.downloadTemplate] = function(e) {
                 e.stopPropagation();
@@ -117,6 +120,13 @@ define([
             this.ui.showGlossaryType.attr("data-original-title", 
(this.isTermView ? "Show Category" : "Show Term"));
             this.ui.showGlossaryType.tooltip('hide');
             this.ui.showGlossaryType.find("i").toggleClass("switch-button");
+            if (this.isTermView) {
+                
this.ui.importGlossary.removeClass("disable-list-option").find('a').attr("href",
 "javascript:void(0)");
+                
this.ui.downloadTemplate.removeClass("disable-list-option").find('a').attr("href",
 UrlLinks.glossaryImportTempUrl());
+            } else {
+                
this.ui.importGlossary.addClass("disable-list-option").find('a').removeAttr("href");
+                
this.ui.downloadTemplate.addClass("disable-list-option").find('a').removeAttr("href");
+            }
             this.ui.termSearchTree.jstree(true).refresh();
         },
         initialize: function(options) {

Reply via email to