You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ma...@apache.org on 2016/12/23 01:46:56 UTC

[27/50] [abbrv] incubator-atlas git commit: ATLAS-1140 All the tag's attributes are not seen while applying a tag to entity (kevalbhatt)

ATLAS-1140 All the tag's attributes are not seen while applying a tag to entity (kevalbhatt)

(cherry picked from commit a2c3faad143a284dd22557b289efa8190688abf1)


Project: http://git-wip-us.apache.org/repos/asf/incubator-atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-atlas/commit/9f5027b6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-atlas/tree/9f5027b6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-atlas/diff/9f5027b6

Branch: refs/heads/0.7-incubating
Commit: 9f5027b6b137007045e30e34d89a3e0a6457a881
Parents: b52ad64
Author: Keval Bhatt <kb...@apache.org>
Authored: Wed Aug 31 13:56:04 2016 +0530
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Thu Dec 22 15:25:05 2016 -0800

----------------------------------------------------------------------
 dashboardv2/public/css/scss/override.scss       |  2 +
 .../js/templates/tag/addTagModalView_tmpl.html  | 10 ++-
 .../public/js/views/tag/addTagModalView.js      | 65 +++++++++++++++-----
 release-log.txt                                 |  1 +
 4 files changed, 60 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/9f5027b6/dashboardv2/public/css/scss/override.scss
----------------------------------------------------------------------
diff --git a/dashboardv2/public/css/scss/override.scss b/dashboardv2/public/css/scss/override.scss
index fc05f78..2db5568 100644
--- a/dashboardv2/public/css/scss/override.scss
+++ b/dashboardv2/public/css/scss/override.scss
@@ -45,6 +45,8 @@
 .modal-body {
     position: relative;
     padding: 15px;
+    max-height: 400px;
+    overflow: auto;
 }
 
 .cancel {

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/9f5027b6/dashboardv2/public/js/templates/tag/addTagModalView_tmpl.html
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/templates/tag/addTagModalView_tmpl.html b/dashboardv2/public/js/templates/tag/addTagModalView_tmpl.html
index f0826ca..3b6b429 100644
--- a/dashboardv2/public/js/templates/tag/addTagModalView_tmpl.html
+++ b/dashboardv2/public/js/templates/tag/addTagModalView_tmpl.html
@@ -20,7 +20,15 @@
         </select>
     </div>
     <div class="row modalHeight">
-        <div class="col-sm-12" data-id="tagAttribute" style="display:none">
+        <div class="col-sm-12">
+            <div class="attrLoader" style="margin-left:45%;display:none">
+                <i class="fa fa-refresh fa-spin-custom"></i>
+            </div>
+        </div>
+        <div class="col-sm-12" style="display:none">
+            <p>Tag Attributes(optional)</p>
+            <p class="tagAttributeLabel">Add attribute values for this tag</p>
+            <div data-id="tagAttribute"></div>
         </div>
     </div>
 </div>

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/9f5027b6/dashboardv2/public/js/views/tag/addTagModalView.js
----------------------------------------------------------------------
diff --git a/dashboardv2/public/js/views/tag/addTagModalView.js b/dashboardv2/public/js/views/tag/addTagModalView.js
index 2a0b004..972997c 100644
--- a/dashboardv2/public/js/views/tag/addTagModalView.js
+++ b/dashboardv2/public/js/views/tag/addTagModalView.js
@@ -48,6 +48,7 @@ define(['require',
             _.extend(this, _.pick(options, 'vent', 'modalCollection', 'guid', 'callback', 'multiple', 'showLoader'));
             this.collection = new VTagList();
             this.commonCollection = new VCommonList();
+            this.asyncAttrFetchCounter = 0;
             this.modal = new Modal({
                 title: 'Add Tag',
                 content: this,
@@ -56,6 +57,14 @@ define(['require',
                 allowCancel: true,
             }).open();
             this.on('ok', function() {
+                var tagName = this.ui.addTagOptions.val();
+                var tagAttributes = {};
+                var tagAttributeNames = this.$(".attrName");
+                tagAttributeNames.each(function(i, item) {
+                    var selection = $(item).data("key");
+                    tagAttributes[selection] = $(item).val();
+                });
+
                 if (that.multiple) {
                     that.asyncFetchCounter = 0;
                     for (var i = 0; i < that.multiple.length; i++) {
@@ -63,7 +72,8 @@ define(['require',
                             that.showLoader();
                         }
                         var obj = {
-                            tagName: this.ui.addTagOptions.val(),
+                            tagName: tagName,
+                            tagAttributes: tagAttributes,
                             guid: that.multiple[i].id.id
                         }
                         that.saveTagData(obj);
@@ -71,7 +81,8 @@ define(['require',
                 } else {
                     that.asyncFetchCounter = 0;
                     that.saveTagData({
-                        tagName: that.ui.addTagOptions.val(),
+                        tagName: tagName,
+                        tagAttributes: tagAttributes,
                         guid: that.guid
                     });
                 }
@@ -91,8 +102,13 @@ define(['require',
                 this.tagsCollection();
             }, this);
             this.listenTo(this.commonCollection, 'reset', function() {
+                --this.asyncAttrFetchCounter
                 this.subAttributeData();
             }, this);
+            this.listenTo(this.commonCollection, 'error', function() {
+                --this.asyncAttrFetchCounter
+                this.$('.attrLoader').hide();
+            }, this);
         },
         tagsCollection: function() {
             this.collection.fullCollection.comparator = function(model) {
@@ -114,45 +130,60 @@ define(['require',
             var saveBtn = this.modal.$el.find('.btn-success');
             saveBtn.prop("disabled", false);
             var tagname = this.ui.addTagOptions.val();
+            this.hideAttributeBox();
             this.fetchTagSubData(tagname);
         },
         fetchTagSubData: function(tagname) {
             this.commonCollection.url = "/api/atlas/types/" + tagname;
             this.commonCollection.modelAttrName = 'definition';
+            ++this.asyncAttrFetchCounter
             this.commonCollection.fetch({ reset: true });
         },
+        showAttributeBox: function() {
+            if (this.asyncAttrFetchCounter === 0) {
+                this.$('.attrLoader').hide();
+                if (this.ui.tagAttribute.children().length !== 0) {
+                    this.ui.tagAttribute.parent().show();
+                }
+            }
+        },
+        hideAttributeBox: function() {
+            this.ui.tagAttribute.children().empty();
+            this.ui.tagAttribute.parent().hide();
+            this.$('.attrLoader').show();
+        },
         subAttributeData: function() {
             if (this.commonCollection.models[0] && this.commonCollection.models[0].attributes && this.commonCollection.models[0].attributes.traitTypes[0].attributeDefinitions) {
-                var strAttribute = '<p>Tag Attributes(optional)</p>' +
-                    '<p class="tagAttributeLabel">Add attribute values for this tag</p>';
                 for (var i = 0; i < this.commonCollection.models[0].attributes.traitTypes[0].attributeDefinitions.length; i++) {
                     var attribute = this.commonCollection.models[0].attributes.traitTypes[0].attributeDefinitions;
-                    this.ui.tagAttribute.show();
-                    strAttribute += '<div class="form-group"><label>' + attribute[i].name + '</label>' +
+                    var strAttribute = '<div class="form-group"><label>' + attribute[i].name + '</label>' +
                         '<input type="text" class="form-control attributeInputVal attrName" data-key="' + attribute[i].name + '" ></input></div>';
-                    this.ui.tagAttribute.html(strAttribute);
+                    this.ui.tagAttribute.append(strAttribute);
                 }
                 if (this.commonCollection.models[0].attributes.traitTypes[0].superTypes.length > 0) {
                     for (var j = 0; j < this.commonCollection.models[0].attributes.traitTypes[0].superTypes.length; j++) {
                         var superTypeAttr = this.commonCollection.models[0].attributes.traitTypes[0].superTypes[j];
                         this.fetchTagSubData(superTypeAttr);
                     }
+                } else {
+                    this.showAttributeBox();
                 }
+            } else {
+                this.showAttributeBox();
             }
         },
         saveTagData: function(options) {
-            var that = this,
-                values = {};
+            var that = this;
             ++this.asyncFetchCounter;
             this.entityModel = new VEntity();
-            var name = options.tagName;
-            var tagName = this.ui.addTagOptions.val();
-            var json = {
-                "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Struct",
-                "typeName": name,
-                "values": values
-            };
-            that.entityModel.saveEntity(options.guid, {
+            var tagName = options.tagName,
+                tagAttributes = options.tagAttributes,
+                json = {
+                    "jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Struct",
+                    "typeName": tagName,
+                    "values": tagAttributes
+                };
+            this.entityModel.saveEntity(options.guid, {
                 data: JSON.stringify(json),
                 success: function(data) {
                     Utils.notifySuccess({

http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/9f5027b6/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 0f046b6..bf94411 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -31,6 +31,7 @@ ATLAS-409 Atlas will not import avro tables with schema read from a file (dosset
 ATLAS-379 Create sqoop and falcon metadata addons (venkatnrangan,bvellanki,sowmyaramesh via shwethags)
 
 ALL CHANGES:
+ATLAS-1140 All the tag's attributes are not seen while applying a tag to entity (kevalbhatt)
 ATLAS-1141 UI-Issue - Tag with spaces, when searched, then it is wrongly set in search textbox. (Kalyanikashikar via kevalbhatt)
 ATLAS-1129 Remove notification failed logs on retry and add sleep between retries (svimal2106 via sumasai)
 ATLAS-1126 Fix NPE in getSchema calls (sumasai)