You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by nb...@apache.org on 2021/03/10 07:57:56 UTC
[atlas] branch master updated (8f820e6 -> e5e4be4)
This is an automated email from the ASF dual-hosted git repository.
nbonte pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git.
from 8f820e6 ATLAS-4186 :- Fix black icons on Apache Atlas lineage UI in case of space in the type name of the entity (#124)
new 4880939 ATLAS-4154:UI Glossary changes & improvements fixed V1
new e71eee7 ATLAS-3349:UI: Unable to edit AtlasServer entity with custom Required fields.fixed
new 122be98 ATLAS-4178:UI:V1 Save and Cancel buttons do not disappear after closing their respective sections in Entity Details page fixed.
new e5e4be4 ATLAS-4012:UI:Atlas - Upgrade bootstrap to 3.4.1 or 4.3.1 fixed
The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
dashboardv2/package-lock.json | 4 +--
dashboardv2/package.json | 2 +-
dashboardv2/public/css/scss/override.scss | 3 ++
.../entity/EntityBusinessMetaDataView_tmpl.html | 4 +--
.../entity/EntityLabelDefineView_tmpl.html | 6 ++--
.../entity/EntityUserDefineView_tmpl.html | 6 ++--
.../glossary/GlossaryLayoutView_tmpl.html | 2 +-
dashboardv2/public/js/templates/site/Header.html | 2 +-
dashboardv2/public/js/utils/Utils.js | 3 +-
.../js/views/entity/CreateEntityLayoutView.js | 32 ++++++++++++++--------
.../js/views/entity/EntityBusinessMetaDataView.js | 21 +++++++++++++-
.../js/views/entity/EntityLabelDefineView.js | 17 +++++++++++-
.../public/js/views/entity/EntityUserDefineView.js | 17 +++++++++++-
.../js/views/glossary/AssignTermLayoutView.js | 12 ++++++--
.../public/js/views/glossary/GlossaryLayoutView.js | 21 +++++++++++++-
.../public/js/views/import/ImportLayoutView.js | 8 +++---
dashboardv3/package-lock.json | 4 +--
dashboardv3/package.json | 2 +-
dashboardv3/public/css/scss/leftsidebar.scss | 11 ++++++++
dashboardv3/public/css/scss/override.scss | 4 +++
.../entity/EntityBusinessMetaDataView_tmpl.html | 4 +--
.../entity/EntityLabelDefineView_tmpl.html | 6 ++--
.../entity/EntityUserDefineView_tmpl.html | 6 ++--
.../search/tree/GlossaryTreeLayoutView_tmpl.html | 2 +-
dashboardv3/public/js/utils/Utils.js | 3 +-
.../js/views/entity/CreateEntityLayoutView.js | 29 +++++++++++++-------
.../js/views/entity/EntityBusinessMetaDataView.js | 21 +++++++++++++-
.../js/views/entity/EntityLabelDefineView.js | 17 +++++++++++-
.../public/js/views/entity/EntityUserDefineView.js | 17 +++++++++++-
.../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 +++++++-
33 files changed, 264 insertions(+), 72 deletions(-)
[atlas] 01/04: ATLAS-4154:UI Glossary changes & improvements fixed
V1
Posted by nb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
nbonte pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git
commit 4880939d4fd1f48508b981de46d55db8e5bc02be
Author: prasad pawar <pr...@freestoneinfotech.com>
AuthorDate: Mon Feb 15 17:56:32 2021 +0530
ATLAS-4154:UI Glossary changes & improvements fixed V1
Signed-off-by: Nikhil Bonte <nb...@apache.org>
---
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) {
[atlas] 04/04: ATLAS-4012:UI:Atlas - Upgrade bootstrap to 3.4.1 or
4.3.1 fixed
Posted by nb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
nbonte pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git
commit e5e4be43cdde92fa15ff8afcdf1909c49572ae51
Author: prasad pawar <pr...@freestoneinfotech.com>
AuthorDate: Thu Feb 25 09:28:20 2021 +0530
ATLAS-4012:UI:Atlas - Upgrade bootstrap to 3.4.1 or 4.3.1 fixed
Signed-off-by: Nikhil Bonte <nb...@apache.org>
---
dashboardv2/package-lock.json | 4 ++--
dashboardv2/package.json | 2 +-
dashboardv2/public/js/utils/Utils.js | 3 ++-
dashboardv3/package-lock.json | 4 ++--
dashboardv3/package.json | 2 +-
dashboardv3/public/js/utils/Utils.js | 3 ++-
6 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/dashboardv2/package-lock.json b/dashboardv2/package-lock.json
index 001de7d..44a0c4e 100644
--- a/dashboardv2/package-lock.json
+++ b/dashboardv2/package-lock.json
@@ -352,8 +352,8 @@
}
},
"bootstrap": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz",
"integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E="
},
"bootstrap-daterangepicker": {
diff --git a/dashboardv2/package.json b/dashboardv2/package.json
index 5e20147..2cc1d4b 100644
--- a/dashboardv2/package.json
+++ b/dashboardv2/package.json
@@ -28,7 +28,7 @@
"backgrid-paginator": "0.3.9",
"backgrid-select-all": "0.3.5",
"backgrid-sizeable-columns": "0.1.1",
- "bootstrap": "3.3.7",
+ "bootstrap": "3.4.1",
"bootstrap-daterangepicker": "3.1.0",
"d3": "5.14.2",
"d3-tip": "^0.7.1",
diff --git a/dashboardv2/public/js/utils/Utils.js b/dashboardv2/public/js/utils/Utils.js
index bd80629..04f6fdc 100644
--- a/dashboardv2/public/js/utils/Utils.js
+++ b/dashboardv2/public/js/utils/Utils.js
@@ -28,7 +28,8 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'utils/Enums',
placement: 'auto bottom',
html: true,
animation: false,
- container: 'body'
+ container: 'body',
+ sanitize: false
};
if (options.viewFixedPopover || options.contentClass) {
defaultObj.template = '<div class="popover ' + (options.viewFixedPopover ? 'fixed-popover' : '') + ' fade bottom"><div class="arrow"></div><h3 class="popover-title"></h3><div class="' + (options.contentClass ? options.contentClass : '') + ' popover-content"></div></div>';
diff --git a/dashboardv3/package-lock.json b/dashboardv3/package-lock.json
index f681b6d..5b49299 100644
--- a/dashboardv3/package-lock.json
+++ b/dashboardv3/package-lock.json
@@ -352,8 +352,8 @@
}
},
"bootstrap": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz",
"integrity": "sha1-WjiTlFSfIzMIdaOxUGVldPip63E="
},
"bootstrap-daterangepicker": {
diff --git a/dashboardv3/package.json b/dashboardv3/package.json
index 10ff43c..49fd9df 100644
--- a/dashboardv3/package.json
+++ b/dashboardv3/package.json
@@ -28,7 +28,7 @@
"backgrid-paginator": "0.3.9",
"backgrid-select-all": "0.3.5",
"backgrid-sizeable-columns": "0.1.1",
- "bootstrap": "3.3.7",
+ "bootstrap": "3.4.1",
"bootstrap-daterangepicker": "3.1.0",
"d3": "5.14.2",
"d3-tip": "^0.7.1",
diff --git a/dashboardv3/public/js/utils/Utils.js b/dashboardv3/public/js/utils/Utils.js
index eca406b..b46be20 100644
--- a/dashboardv3/public/js/utils/Utils.js
+++ b/dashboardv3/public/js/utils/Utils.js
@@ -28,7 +28,8 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'utils/Enums',
placement: 'auto bottom',
html: true,
animation: false,
- container: 'body'
+ container: 'body',
+ sanitize: false
};
if (options.viewFixedPopover || options.contentClass) {
defaultObj.template = '<div class="popover ' + (options.viewFixedPopover ? 'fixed-popover' : '') + ' fade bottom"><div class="arrow"></div><h3 class="popover-title"></h3><div class="' + (options.contentClass ? options.contentClass : '') + ' popover-content"></div></div>';
[atlas] 02/04: ATLAS-3349:UI: Unable to edit AtlasServer entity
with custom Required fields.fixed
Posted by nb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
nbonte pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git
commit e71eee708538b054e4e42764992f5aef87eeb0d2
Author: prasad pawar <pr...@freestoneinfotech.com>
AuthorDate: Tue Mar 9 10:26:39 2021 +0530
ATLAS-3349:UI: Unable to edit AtlasServer entity with custom Required fields.fixed
Signed-off-by: Nikhil Bonte <nb...@apache.org>
---
.../js/views/entity/CreateEntityLayoutView.js | 32 ++++++++++++++--------
.../js/views/entity/CreateEntityLayoutView.js | 29 +++++++++++++-------
2 files changed, 39 insertions(+), 22 deletions(-)
diff --git a/dashboardv2/public/js/views/entity/CreateEntityLayoutView.js b/dashboardv2/public/js/views/entity/CreateEntityLayoutView.js
index ec06a75..5e53475 100644
--- a/dashboardv2/public/js/views/entity/CreateEntityLayoutView.js
+++ b/dashboardv2/public/js/views/entity/CreateEntityLayoutView.js
@@ -57,8 +57,7 @@ define(['require',
toggleRequired: 'input[name="toggleRequired"]',
assetName: "[data-id='assetName']",
entityInput: "[data-id='entityInput']",
- entitySelectionBox: "[data-id='entitySelectionBox']",
-
+ entitySelectionBox: "[data-id='entitySelectionBox']"
},
/** ui events hash */
events: function() {
@@ -434,23 +433,31 @@ define(['require',
that.initilizeElements();
},
initilizeElements: function() {
- var that = this;
+ var that = this,
+ $createTime = this.modal.$el.find('input[name="createTime"]'),
+ dateObj = {
+ "singleDatePicker": true,
+ "showDropdowns": true,
+ "startDate": new Date(),
+ locale: {
+ format: Globals.dateFormat
+ }
+ };
this.$('input[data-type="date"]').each(function() {
if (!$(this).data('daterangepicker')) {
- var dateObj = {
- "singleDatePicker": true,
- "showDropdowns": true,
- "startDate": new Date(),
- locale: {
- format: Globals.dateFormat
- }
- };
if (that.guid && this.value.length) {
dateObj["startDate"] = new Date(Number(this.value));
}
+ if ($(this).attr('name') === "modifiedTime") {
+ dateObj["minDate"] = $createTime.val();
+ }
$(this).daterangepicker(dateObj);
}
});
+ modifiedDateObj = _.extend({}, dateObj);
+ $createTime.on('apply.daterangepicker', function(ev, picker) {
+ that.modal.$el.find('input[name="modifiedTime"]').daterangepicker(_.extend(modifiedDateObj, { "minDate": $createTime.val() }));
+ });
this.initializeValidation();
if (this.ui.entityInputData.find('fieldset').length > 0 && this.ui.entityInputData.find('select.true,input.true').length === 0) {
this.requiredAllToggle(this.ui.entityInputData.find('select.true,input.true').length === 0);
@@ -588,6 +595,7 @@ define(['require',
' data-attribute="' + isAttribute + '"' +
' data-relation="' + isRelation + '"' +
' placeholder="' + name + '"' +
+ ' name="' + name + '"' +
' data-id="entityInput">';
},
getElement: function(object) {
@@ -849,7 +857,7 @@ define(['require',
if (that.guid) {
var dataValue = that.entityData.get("entity").attributes[keyData],
entities = that.entityData.get("entity").attributes,
- relationshipType = that.entityData.get("entity").relationshipAttributes[keyData],
+ relationshipType = that.entityData.get("entity").relationshipAttributes ? that.entityData.get("entity").relationshipAttributes[keyData] : null,
referredEntities = that.entityData.get("referredEntities"),
selectedValue = [],
select2Options = [];
diff --git a/dashboardv3/public/js/views/entity/CreateEntityLayoutView.js b/dashboardv3/public/js/views/entity/CreateEntityLayoutView.js
index d05fe69..0532164 100644
--- a/dashboardv3/public/js/views/entity/CreateEntityLayoutView.js
+++ b/dashboardv3/public/js/views/entity/CreateEntityLayoutView.js
@@ -437,23 +437,31 @@ define(['require',
that.initilizeElements();
},
initilizeElements: function() {
- var that = this;
+ var that = this,
+ $createTime = this.modal.$el.find('input[name="createTime"]'),
+ dateObj = {
+ "singleDatePicker": true,
+ "showDropdowns": true,
+ "startDate": new Date(),
+ locale: {
+ format: Globals.dateFormat
+ }
+ };
this.$('input[data-type="date"]').each(function() {
if (!$(this).data('daterangepicker')) {
- var dateObj = {
- "singleDatePicker": true,
- "showDropdowns": true,
- "startDate": new Date(),
- locale: {
- format: Globals.dateFormat
- }
- };
if (that.guid && this.value.length) {
dateObj["startDate"] = new Date(Number(this.value));
}
+ if ($(this).attr('name') === "modifiedTime") {
+ dateObj["minDate"] = $createTime.val();
+ }
$(this).daterangepicker(dateObj);
}
});
+ modifiedDateObj = _.extend({}, dateObj);
+ $createTime.on('apply.daterangepicker', function(ev, picker) {
+ that.modal.$el.find('input[name="modifiedTime"]').daterangepicker(_.extend(modifiedDateObj, { "minDate": $createTime.val() }));
+ });
this.initializeValidation();
if (this.ui.entityInputData.find('fieldset').length > 0 && this.ui.entityInputData.find('select.true,input.true').length === 0) {
this.requiredAllToggle(this.ui.entityInputData.find('select.true,input.true').length === 0);
@@ -591,6 +599,7 @@ define(['require',
' data-attribute="' + isAttribute + '"' +
' data-relation="' + isRelation + '"' +
' placeholder="' + name + '"' +
+ ' name="' + name + '"' +
' data-id="entityInput">';
},
getElement: function(object) {
@@ -854,7 +863,7 @@ define(['require',
if (that.guid) {
var dataValue = that.entityData.get("entity").attributes[keyData],
entities = that.entityData.get("entity").attributes,
- relationshipType = that.entityData.get("entity").relationshipAttributes[keyData],
+ relationshipType = that.entityData.get("entity").relationshipAttributes ? that.entityData.get("entity").relationshipAttributes[keyData] : null,
referredEntities = that.entityData.get("referredEntities"),
selectedValue = [],
select2Options = [];
[atlas] 03/04: ATLAS-4178:UI:V1 Save and Cancel buttons do not
disappear after closing their respective sections in Entity Details page
fixed.
Posted by nb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
nbonte pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git
commit 122be98b6f2348951e860aead8d7e0bf1b88de79
Author: prasad pawar <pr...@freestoneinfotech.com>
AuthorDate: Tue Mar 9 09:58:59 2021 +0530
ATLAS-4178:UI:V1 Save and Cancel buttons do not disappear after closing their respective sections in Entity Details page fixed.
Signed-off-by: Nikhil Bonte <nb...@apache.org>
---
.../entity/EntityBusinessMetaDataView_tmpl.html | 4 ++--
.../entity/EntityLabelDefineView_tmpl.html | 6 +++---
.../templates/entity/EntityUserDefineView_tmpl.html | 6 +++---
.../js/views/entity/EntityBusinessMetaDataView.js | 21 ++++++++++++++++++++-
.../public/js/views/entity/EntityLabelDefineView.js | 17 ++++++++++++++++-
.../public/js/views/entity/EntityUserDefineView.js | 17 ++++++++++++++++-
.../entity/EntityBusinessMetaDataView_tmpl.html | 4 ++--
.../entity/EntityLabelDefineView_tmpl.html | 6 +++---
.../templates/entity/EntityUserDefineView_tmpl.html | 6 +++---
.../js/views/entity/EntityBusinessMetaDataView.js | 21 ++++++++++++++++++++-
.../public/js/views/entity/EntityLabelDefineView.js | 17 ++++++++++++++++-
.../public/js/views/entity/EntityUserDefineView.js | 17 ++++++++++++++++-
12 files changed, 120 insertions(+), 22 deletions(-)
diff --git a/dashboardv2/public/js/templates/entity/EntityBusinessMetaDataView_tmpl.html b/dashboardv2/public/js/templates/entity/EntityBusinessMetaDataView_tmpl.html
index 1d0ccb0..4904c28 100644
--- a/dashboardv2/public/js/templates/entity/EntityBusinessMetaDataView_tmpl.html
+++ b/dashboardv2/public/js/templates/entity/EntityBusinessMetaDataView_tmpl.html
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
-->
-<div class="panel panel-default custom-panel expand_collapse_panel-icon">
+<div class="panel panel-default custom-panel expand_collapse_panel-icon businessMetaDataPanel" style="position:relative;">
<div class="panel-heading main-parent collapsed" data-toggle="collapse" href="#businessMetadataCollapse" aria-expanded="false" style="width: 70%;">
<h4 class="panel-title">
<a>Business Metadata</a>
@@ -24,7 +24,7 @@
</div>
</div>
{{#ifCond readOnlyEntity "===" false}}
- <div class="panel-actions">
+ <div class="panel-actions detailpage-panel-button">
<button class="btn btn-action btn-sm" data-id="addBusinessMetadata">Add</button>
<button class="btn btn-action btn-sm" style="display: none;" data-id="saveBusinessMetadata">Save</button>
<button class="btn btn-action btn-sm" style="display: none;" data-id="cancel">Cancel</button>
diff --git a/dashboardv2/public/js/templates/entity/EntityLabelDefineView_tmpl.html b/dashboardv2/public/js/templates/entity/EntityLabelDefineView_tmpl.html
index a6fe8e0..0b54481 100644
--- a/dashboardv2/public/js/templates/entity/EntityLabelDefineView_tmpl.html
+++ b/dashboardv2/public/js/templates/entity/EntityLabelDefineView_tmpl.html
@@ -15,9 +15,9 @@
* limitations under the License.
-->
<div class="panel-group" id="accordion">
- <div class="panel panel-default custom-panel expand_collapse_panel-icon" data-id="userDefineLabel">
+ <div class="panel panel-default custom-panel expand_collapse_panel-icon labelsPanel" data-id="userDefineLabel" style="position:relative;">
{{#ifCond labels.length "===" 0}}
- <div class="panel-heading collapsed" data-toggle="collapse" href={{div_1.anchor}} {{#ifCond swapItem "===" true}} aria-expanded="true" {{else}} aria-expanded="false" {{/ifCond}} style="width: 70%">
+ <div class="panel-heading" data-toggle="collapse" href={{div_1.anchor}} {{#ifCond swapItem "===" true}} aria-expanded="true" {{else}} aria-expanded="false" {{/ifCond}} style="width: 70%">
<h4 class="panel-title">
<a>Labels </a>
</h4>
@@ -36,7 +36,7 @@
</div>
{{/ifCond}}
{{#ifCond readOnlyEntity "===" false}}
- <div class="panel-actions">
+ <div class="panel-actions detailpage-panel-button">
{{#ifCond swapItem "!==" true}}
<button class="btn btn-action btn-sm" data-id="addLabels">
{{#ifCond labels.length "===" 0}} Add {{else}} Edit {{/ifCond}}
diff --git a/dashboardv2/public/js/templates/entity/EntityUserDefineView_tmpl.html b/dashboardv2/public/js/templates/entity/EntityUserDefineView_tmpl.html
index d1a9128..c0fd384 100644
--- a/dashboardv2/public/js/templates/entity/EntityUserDefineView_tmpl.html
+++ b/dashboardv2/public/js/templates/entity/EntityUserDefineView_tmpl.html
@@ -15,9 +15,9 @@
* limitations under the License.
-->
<div class="panel-group" id="accordion">
- <div class="panel panel-default custom-panel expand_collapse_panel-icon" data-id="userDefine">
+ <div class="panel panel-default custom-panel expand_collapse_panel-icon userDefinePanel" data-id="userDefine" style="position:relative;">
{{#ifCond customAttibutes.length "===" 0}}
- <div class="panel-heading collapsed" data-toggle="collapse" href={{divId_1.anchor}} {{#ifCond swapItem "===" true}} aria-expanded="true" {{else}} aria-expanded="false" {{/ifCond}} style="width: 70%">
+ <div class="panel-heading" data-toggle="collapse" href={{divId_1.anchor}} {{#ifCond swapItem "===" true}} aria-expanded="true" {{else}} aria-expanded="false" {{/ifCond}} style="width: 70%">
<h4 class="panel-title">
<a>User-defined properties </a>
</h4>
@@ -36,7 +36,7 @@
</div>
{{/ifCond}}
{{#ifCond readOnlyEntity "===" false}}
- <div class="panel-actions">
+ <div class="panel-actions detailpage-panel-button">
{{#ifCond swapItem "!==" true}}
<button class="btn btn-action btn-sm" data-id="addAttr">
{{#ifCond customAttibutes.length "===" 0}} Add {{else}} Edit {{/ifCond}}
diff --git a/dashboardv2/public/js/views/entity/EntityBusinessMetaDataView.js b/dashboardv2/public/js/views/entity/EntityBusinessMetaDataView.js
index a61772f..3e61f3a 100644
--- a/dashboardv2/public/js/views/entity/EntityBusinessMetaDataView.js
+++ b/dashboardv2/public/js/views/entity/EntityBusinessMetaDataView.js
@@ -55,7 +55,8 @@ define([
addBusinessMetadata: "[data-id='addBusinessMetadata']",
saveBusinessMetadata: "[data-id='saveBusinessMetadata']",
businessMetadataTree: "[data-id='businessMetadataTree']",
- cancel: "[data-id='cancel']"
+ cancel: "[data-id='cancel']",
+ businessMetadataHeader: ".businessMetaDataPanel .panel-heading.main-parent"
},
events: function() {
var events = {};
@@ -63,6 +64,7 @@ define([
events["click " + this.ui.addBusinessMetadata] = "onAddBusinessMetadata";
events["click " + this.ui.saveBusinessMetadata] = "onSaveBusinessMetadata";
events["click " + this.ui.cancel] = "onCancel";
+ events["click " + this.ui.businessMetadataHeader] = "onHeaderClick";
return events;
},
initialize: function(options) {
@@ -89,6 +91,23 @@ define([
this.collection = new Backbone.Collection();
this.entityModel = new VEntity();
},
+ onHeaderClick: function() {
+ var that = this;
+ $('.businessMetaDataPanel').on("hidden.bs.collapse", function(e) {
+ that.ui.cancel.hide();
+ that.ui.saveBusinessMetadata.hide();
+ that.ui.addBusinessMetadata.show();
+ that.editMode = false;
+ that.ui.businessMetadataTree.show();
+ that.$(".editBox").hide();
+ that.updateToActualData();
+ if (that.collection && that.collection.length === 0) {
+ that.ui.addBusinessMetadata.text("Add");
+ } else {
+ that.ui.addBusinessMetadata.text("Edit");
+ }
+ });
+ },
updateToActualData: function(options) {
var silent = options && options.silent || false;
this.collection.reset($.extend(true, [], this.actualCollection.toJSON()), { silent: silent });
diff --git a/dashboardv2/public/js/views/entity/EntityLabelDefineView.js b/dashboardv2/public/js/views/entity/EntityLabelDefineView.js
index 39b5775..4cb4891 100644
--- a/dashboardv2/public/js/views/entity/EntityLabelDefineView.js
+++ b/dashboardv2/public/js/views/entity/EntityLabelDefineView.js
@@ -45,7 +45,8 @@ define(['require',
addLabelOptions: "[data-id='addLabelOptions']",
addLabels: "[data-id='addLabels']",
saveLabels: "[data-id='saveLabels']",
- cancel: "[data-id='cancel']"
+ cancel: "[data-id='cancel']",
+ labelsHeader: ".labelsPanel .panel-heading"
},
events: function() {
var events = {};
@@ -53,6 +54,7 @@ define(['require',
events["click " + this.ui.addLabels] = 'handleBtnClick';
events["click " + this.ui.saveLabels] = 'saveUserDefinedLabels';
events["click " + this.ui.cancel] = 'onCancelClick';
+ events["click " + this.ui.labelsHeader] = 'onHeaderClick';
return events;
},
initialize: function(options) {
@@ -69,6 +71,19 @@ define(['require',
this.populateLabelOptions();
},
bindEvents: function() {},
+ onHeaderClick: function() {
+ var that = this;
+ $(".labelsPanel").on("hidden.bs.collapse", function() {
+ that.labels = that.entityModel.get("labels") || [];
+ that.swapItem = false;
+ that.saveLabels = false;
+ that.render();
+ if (that.labels.length > 0) {
+ $('.labelsPanel').find(that.ui.labelsHeader.attr('href')).removeClass('in');
+ that.ui.labelsHeader.addClass('collapsed').attr('aria-expanded', false);
+ }
+ });
+ },
populateLabelOptions: function() {
var that = this,
str = this.labels.map(function(label) {
diff --git a/dashboardv2/public/js/views/entity/EntityUserDefineView.js b/dashboardv2/public/js/views/entity/EntityUserDefineView.js
index c76000b..311fbe5 100644
--- a/dashboardv2/public/js/views/entity/EntityUserDefineView.js
+++ b/dashboardv2/public/js/views/entity/EntityUserDefineView.js
@@ -44,7 +44,8 @@ define(['require',
addAttr: "[data-id='addAttr']",
saveAttrItems: "[data-id='saveAttrItems']",
cancel: "[data-id='cancel']",
- addItem: "[data-id='addItem']"
+ addItem: "[data-id='addItem']",
+ userDefineHeader: ".userDefinePanel .panel-heading"
},
events: function() {
var events = {};
@@ -52,6 +53,7 @@ define(['require',
events["click " + this.ui.addItem] = 'onAddAttrClick';
events["click " + this.ui.saveAttrItems] = 'onEditAttrClick';
events["click " + this.ui.cancel] = 'onCancelClick';
+ events["click " + this.ui.userDefineHeader] = 'onHeaderClick';
return events;
},
initialize: function(options) {
@@ -80,6 +82,19 @@ define(['require',
});
this.renderEntityUserDefinedItems();
},
+ onHeaderClick: function() {
+ var that = this;
+ $(".userDefinePanel").on("hidden.bs.collapse", function() {
+ that.swapItem = false;
+ that.saveAttrItems = false;
+ that.initialCall = false;
+ that.render();
+ if (that.customAttibutes.length > 0) {
+ $('.userDefinePanel').find(that.ui.userDefineHeader.attr('href')).removeClass('in');
+ that.ui.userDefineHeader.addClass('collapsed').attr('aria-expanded', false);
+ }
+ });
+ },
onAddAttrClick: function() {
this.swapItem = !this.swapItem;
if (this.customFilter === undefined) {
diff --git a/dashboardv3/public/js/templates/entity/EntityBusinessMetaDataView_tmpl.html b/dashboardv3/public/js/templates/entity/EntityBusinessMetaDataView_tmpl.html
index 1d0ccb0..4904c28 100644
--- a/dashboardv3/public/js/templates/entity/EntityBusinessMetaDataView_tmpl.html
+++ b/dashboardv3/public/js/templates/entity/EntityBusinessMetaDataView_tmpl.html
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
-->
-<div class="panel panel-default custom-panel expand_collapse_panel-icon">
+<div class="panel panel-default custom-panel expand_collapse_panel-icon businessMetaDataPanel" style="position:relative;">
<div class="panel-heading main-parent collapsed" data-toggle="collapse" href="#businessMetadataCollapse" aria-expanded="false" style="width: 70%;">
<h4 class="panel-title">
<a>Business Metadata</a>
@@ -24,7 +24,7 @@
</div>
</div>
{{#ifCond readOnlyEntity "===" false}}
- <div class="panel-actions">
+ <div class="panel-actions detailpage-panel-button">
<button class="btn btn-action btn-sm" data-id="addBusinessMetadata">Add</button>
<button class="btn btn-action btn-sm" style="display: none;" data-id="saveBusinessMetadata">Save</button>
<button class="btn btn-action btn-sm" style="display: none;" data-id="cancel">Cancel</button>
diff --git a/dashboardv3/public/js/templates/entity/EntityLabelDefineView_tmpl.html b/dashboardv3/public/js/templates/entity/EntityLabelDefineView_tmpl.html
index a6fe8e0..0b54481 100644
--- a/dashboardv3/public/js/templates/entity/EntityLabelDefineView_tmpl.html
+++ b/dashboardv3/public/js/templates/entity/EntityLabelDefineView_tmpl.html
@@ -15,9 +15,9 @@
* limitations under the License.
-->
<div class="panel-group" id="accordion">
- <div class="panel panel-default custom-panel expand_collapse_panel-icon" data-id="userDefineLabel">
+ <div class="panel panel-default custom-panel expand_collapse_panel-icon labelsPanel" data-id="userDefineLabel" style="position:relative;">
{{#ifCond labels.length "===" 0}}
- <div class="panel-heading collapsed" data-toggle="collapse" href={{div_1.anchor}} {{#ifCond swapItem "===" true}} aria-expanded="true" {{else}} aria-expanded="false" {{/ifCond}} style="width: 70%">
+ <div class="panel-heading" data-toggle="collapse" href={{div_1.anchor}} {{#ifCond swapItem "===" true}} aria-expanded="true" {{else}} aria-expanded="false" {{/ifCond}} style="width: 70%">
<h4 class="panel-title">
<a>Labels </a>
</h4>
@@ -36,7 +36,7 @@
</div>
{{/ifCond}}
{{#ifCond readOnlyEntity "===" false}}
- <div class="panel-actions">
+ <div class="panel-actions detailpage-panel-button">
{{#ifCond swapItem "!==" true}}
<button class="btn btn-action btn-sm" data-id="addLabels">
{{#ifCond labels.length "===" 0}} Add {{else}} Edit {{/ifCond}}
diff --git a/dashboardv3/public/js/templates/entity/EntityUserDefineView_tmpl.html b/dashboardv3/public/js/templates/entity/EntityUserDefineView_tmpl.html
index d1a9128..c0fd384 100644
--- a/dashboardv3/public/js/templates/entity/EntityUserDefineView_tmpl.html
+++ b/dashboardv3/public/js/templates/entity/EntityUserDefineView_tmpl.html
@@ -15,9 +15,9 @@
* limitations under the License.
-->
<div class="panel-group" id="accordion">
- <div class="panel panel-default custom-panel expand_collapse_panel-icon" data-id="userDefine">
+ <div class="panel panel-default custom-panel expand_collapse_panel-icon userDefinePanel" data-id="userDefine" style="position:relative;">
{{#ifCond customAttibutes.length "===" 0}}
- <div class="panel-heading collapsed" data-toggle="collapse" href={{divId_1.anchor}} {{#ifCond swapItem "===" true}} aria-expanded="true" {{else}} aria-expanded="false" {{/ifCond}} style="width: 70%">
+ <div class="panel-heading" data-toggle="collapse" href={{divId_1.anchor}} {{#ifCond swapItem "===" true}} aria-expanded="true" {{else}} aria-expanded="false" {{/ifCond}} style="width: 70%">
<h4 class="panel-title">
<a>User-defined properties </a>
</h4>
@@ -36,7 +36,7 @@
</div>
{{/ifCond}}
{{#ifCond readOnlyEntity "===" false}}
- <div class="panel-actions">
+ <div class="panel-actions detailpage-panel-button">
{{#ifCond swapItem "!==" true}}
<button class="btn btn-action btn-sm" data-id="addAttr">
{{#ifCond customAttibutes.length "===" 0}} Add {{else}} Edit {{/ifCond}}
diff --git a/dashboardv3/public/js/views/entity/EntityBusinessMetaDataView.js b/dashboardv3/public/js/views/entity/EntityBusinessMetaDataView.js
index cbc0320..0735cf4 100644
--- a/dashboardv3/public/js/views/entity/EntityBusinessMetaDataView.js
+++ b/dashboardv3/public/js/views/entity/EntityBusinessMetaDataView.js
@@ -55,7 +55,8 @@ define([
addBusinessMetadata: "[data-id='addBusinessMetadata']",
saveBusinessMetadata: "[data-id='saveBusinessMetadata']",
businessMetadataTree: "[data-id='businessMetadataTree']",
- cancel: "[data-id='cancel']"
+ cancel: "[data-id='cancel']",
+ businessMetadataHeader: ".businessMetaDataPanel .panel-heading.main-parent"
},
events: function() {
var events = {};
@@ -63,6 +64,7 @@ define([
events["click " + this.ui.addBusinessMetadata] = "onAddBusinessMetadata";
events["click " + this.ui.saveBusinessMetadata] = "onSaveBusinessMetadata";
events["click " + this.ui.cancel] = "onCancel";
+ events["click " + this.ui.businessMetadataHeader] = "onHeaderClick";
return events;
},
initialize: function(options) {
@@ -89,6 +91,23 @@ define([
this.collection = new Backbone.Collection();
this.entityModel = new VEntity();
},
+ onHeaderClick: function() {
+ var that = this;
+ $('.businessMetaDataPanel').on("hidden.bs.collapse", function(e) {
+ that.ui.cancel.hide();
+ that.ui.saveBusinessMetadata.hide();
+ that.ui.addBusinessMetadata.show();
+ that.editMode = false;
+ that.ui.businessMetadataTree.show();
+ that.$(".editBox").hide();
+ that.updateToActualData();
+ if (that.collection && that.collection.length === 0) {
+ that.ui.addBusinessMetadata.text("Add");
+ } else {
+ that.ui.addBusinessMetadata.text("Edit");
+ }
+ });
+ },
updateToActualData: function(options) {
var silent = options && options.silent || false;
this.collection.reset($.extend(true, [], this.actualCollection.toJSON()), { silent: silent });
diff --git a/dashboardv3/public/js/views/entity/EntityLabelDefineView.js b/dashboardv3/public/js/views/entity/EntityLabelDefineView.js
index 9dee7d7..c9c26ab 100644
--- a/dashboardv3/public/js/views/entity/EntityLabelDefineView.js
+++ b/dashboardv3/public/js/views/entity/EntityLabelDefineView.js
@@ -45,7 +45,8 @@ define(['require',
addLabelOptions: "[data-id='addLabelOptions']",
addLabels: "[data-id='addLabels']",
saveLabels: "[data-id='saveLabels']",
- cancel: "[data-id='cancel']"
+ cancel: "[data-id='cancel']",
+ labelsHeader: ".labelsPanel .panel-heading"
},
events: function() {
var events = {};
@@ -53,6 +54,7 @@ define(['require',
events["click " + this.ui.addLabels] = 'handleBtnClick';
events["click " + this.ui.saveLabels] = 'saveUserDefinedLabels';
events["click " + this.ui.cancel] = 'onCancelClick';
+ events["click " + this.ui.labelsHeader] = 'onHeaderClick';
return events;
},
initialize: function(options) {
@@ -69,6 +71,19 @@ define(['require',
this.populateLabelOptions();
},
bindEvents: function() {},
+ onHeaderClick: function() {
+ var that = this;
+ $(".labelsPanel").on("hidden.bs.collapse", function() {
+ that.labels = that.entityModel.get("labels") || [];
+ that.swapItem = false;
+ that.saveLabels = false;
+ that.render();
+ if (that.labels.length > 0) {
+ $('.labelsPanel').find(that.ui.labelsHeader.attr('href')).removeClass('in');
+ that.ui.labelsHeader.addClass('collapsed').attr('aria-expanded', false);
+ }
+ });
+ },
populateLabelOptions: function() {
var that = this,
str = this.labels.map(function(label) {
diff --git a/dashboardv3/public/js/views/entity/EntityUserDefineView.js b/dashboardv3/public/js/views/entity/EntityUserDefineView.js
index c76000b..311fbe5 100644
--- a/dashboardv3/public/js/views/entity/EntityUserDefineView.js
+++ b/dashboardv3/public/js/views/entity/EntityUserDefineView.js
@@ -44,7 +44,8 @@ define(['require',
addAttr: "[data-id='addAttr']",
saveAttrItems: "[data-id='saveAttrItems']",
cancel: "[data-id='cancel']",
- addItem: "[data-id='addItem']"
+ addItem: "[data-id='addItem']",
+ userDefineHeader: ".userDefinePanel .panel-heading"
},
events: function() {
var events = {};
@@ -52,6 +53,7 @@ define(['require',
events["click " + this.ui.addItem] = 'onAddAttrClick';
events["click " + this.ui.saveAttrItems] = 'onEditAttrClick';
events["click " + this.ui.cancel] = 'onCancelClick';
+ events["click " + this.ui.userDefineHeader] = 'onHeaderClick';
return events;
},
initialize: function(options) {
@@ -80,6 +82,19 @@ define(['require',
});
this.renderEntityUserDefinedItems();
},
+ onHeaderClick: function() {
+ var that = this;
+ $(".userDefinePanel").on("hidden.bs.collapse", function() {
+ that.swapItem = false;
+ that.saveAttrItems = false;
+ that.initialCall = false;
+ that.render();
+ if (that.customAttibutes.length > 0) {
+ $('.userDefinePanel').find(that.ui.userDefineHeader.attr('href')).removeClass('in');
+ that.ui.userDefineHeader.addClass('collapsed').attr('aria-expanded', false);
+ }
+ });
+ },
onAddAttrClick: function() {
this.swapItem = !this.swapItem;
if (this.customFilter === undefined) {