Repository: incubator-atlas Updated Branches: refs/heads/master 395296ce3 -> 0901714a6
ATLAS-865 Edit description functionality for Tags (kevalbhatt18 via yhemanth) Project: http://git-wip-us.apache.org/repos/asf/incubator-atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-atlas/commit/0901714a Tree: http://git-wip-us.apache.org/repos/asf/incubator-atlas/tree/0901714a Diff: http://git-wip-us.apache.org/repos/asf/incubator-atlas/diff/0901714a Branch: refs/heads/master Commit: 0901714a6f7cd9acedaa2c23129f4bba340c58df Parents: 395296c Author: Hemanth Yamijala <[email protected]> Authored: Wed Jun 8 14:14:19 2016 +0530 Committer: Hemanth Yamijala <[email protected]> Committed: Wed Jun 8 14:14:19 2016 +0530 ---------------------------------------------------------------------- dashboardv2/public/css/scss/form.scss | 6 +- dashboardv2/public/css/scss/graph.scss | 3 +- dashboardv2/public/css/scss/main.scss | 22 +++--- dashboardv2/public/css/scss/tag.scss | 8 +-- dashboardv2/public/css/scss/tree.scss | 8 +++ .../public/js/collection/VLineageList.js | 2 +- dashboardv2/public/js/models/VLineage.js | 2 +- .../business_catalog/AddTermView_tmpl.html | 1 + .../BusinessCatalogLayoutView_tmpl.html | 4 +- .../detail_page/DetailPageLayoutView_tmpl.html | 4 +- .../templates/graph/LineageLayoutView_tmpl.html | 4 -- .../search/SearchResultLayoutView_tmpl.html | 1 + .../tag/TagAttributeDetailLayoutView_tmpl.html | 15 +++-- .../js/templates/tag/TagLayoutView_tmpl.html | 6 +- .../public/js/utils/CommonViewFunction.js | 16 ++--- dashboardv2/public/js/utils/Messages.js | 33 +++++++++ .../js/views/audit/AuditTableLayoutView.js | 2 +- .../BusinessCatalogLayoutView.js | 34 ++++++---- .../public/js/views/graph/LineageLayoutView.js | 52 ++++++++++----- .../public/js/views/search/SearchLayoutView.js | 4 +- .../js/views/search/SearchResultLayoutView.js | 2 + .../views/tag/TagAttributeDetailLayoutView.js | 70 +++++++++++++++----- .../public/js/views/tag/TagLayoutView.js | 9 ++- release-log.txt | 1 + 24 files changed, 217 insertions(+), 92 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/css/scss/form.scss ---------------------------------------------------------------------- diff --git a/dashboardv2/public/css/scss/form.scss b/dashboardv2/public/css/scss/form.scss index ace005f..29c96ed 100644 --- a/dashboardv2/public/css/scss/form.scss +++ b/dashboardv2/public/css/scss/form.scss @@ -138,7 +138,7 @@ button:focus { } } -.btn-taxanomyBack { +.btn-atlasAction { background-color: $transparent; color: $color_keppel_approx; margin-bottom: 10px; @@ -148,6 +148,10 @@ button:focus { background-color: $color_keppel_approx; color: $white; } + &:focus { + background-color: $transparent; + color: $color_keppel_approx; + } } .input-spacing { http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/css/scss/graph.scss ---------------------------------------------------------------------- diff --git a/dashboardv2/public/css/scss/graph.scss b/dashboardv2/public/css/scss/graph.scss index ec6df2d..7c6571c 100644 --- a/dashboardv2/public/css/scss/graph.scss +++ b/dashboardv2/public/css/scss/graph.scss @@ -1,4 +1,5 @@ /* graph.scss */ + /* .graph-bg svg { background-image: linear-gradient(to right, $black -10px, rgba(0, 0, 0, 0) 1px), linear-gradient($black -10px, $color_cararra_approx 1px); background-size: 10px 10px; @@ -66,7 +67,7 @@ g.type-TK > rect { } .edgePath path { - stroke: $black; + stroke: #cccccc; } .zoomButtonGroup { http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/css/scss/main.scss ---------------------------------------------------------------------- diff --git a/dashboardv2/public/css/scss/main.scss b/dashboardv2/public/css/scss/main.scss index 9aece8f..36a6517 100644 --- a/dashboardv2/public/css/scss/main.scss +++ b/dashboardv2/public/css/scss/main.scss @@ -2,7 +2,7 @@ //common color $white: #fff; -$action_gray:#ccc; +$action_gray:#999999; $color_keppel_approx: #37bb9b; $color_gallery_approx: #eee; $gray: #808080; @@ -144,6 +144,7 @@ ul { #sideNav-wrapper { color: $white; + font-size: 16px !important; } .contentLoading { @@ -157,12 +158,17 @@ ul { display: none; } -.auditCreateBtn { - background-color: #359f89; - color: white; - cursor: pointer; -} - -.aditCreateBtn { +.auditDetailBtn { + padding: 5px 10px; + font-size: 14px; + line-height: 1; + color: $color_jungle_green_approx; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 4px; + font-weight: 100; + background-color: $transparent; + border: 1px solid $color_jungle_green_approx; cursor: pointer; } http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/css/scss/tag.scss ---------------------------------------------------------------------- diff --git a/dashboardv2/public/css/scss/tag.scss b/dashboardv2/public/css/scss/tag.scss index 250bd49..9ce939e 100644 --- a/dashboardv2/public/css/scss/tag.scss +++ b/dashboardv2/public/css/scss/tag.scss @@ -1,7 +1,4 @@ //tag.scss - -/* Tree View */ - .tag-tree { padding: 0; overflow: auto; @@ -10,7 +7,7 @@ cursor: pointer; &.parent-node { position: relative; - margin-top: 10px; + margin-top: 5px; /* margin-bottom: 5px; */ border-radius: 4px; &:hover { @@ -106,7 +103,6 @@ border: 1px $tag_color solid; color: $tag_color; font-size: 14px; - text-transform: uppercase; border-radius: 4px; margin-right: 3px; margin-bottom: 3px; @@ -212,7 +208,7 @@ form-control .tagInpput { } .termTagLine { - border-top: 1px solid $action_gray; + border-top: none; } .tagTerm { http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/css/scss/tree.scss ---------------------------------------------------------------------- diff --git a/dashboardv2/public/css/scss/tree.scss b/dashboardv2/public/css/scss/tree.scss index b4755ec..139b1bb 100644 --- a/dashboardv2/public/css/scss/tree.scss +++ b/dashboardv2/public/css/scss/tree.scss @@ -131,3 +131,11 @@ padding: 8px; cursor: pointer; } + + .addTermDiable { + border-color: #FF0000 !important; + } + + .alertTerm { + color: #FF0000 !important; + } http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/collection/VLineageList.js ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/collection/VLineageList.js b/dashboardv2/public/js/collection/VLineageList.js index 5383b6d..cb18610 100644 --- a/dashboardv2/public/js/collection/VLineageList.js +++ b/dashboardv2/public/js/collection/VLineageList.js @@ -25,7 +25,7 @@ define(['require', var VLineageList = BaseCollection.extend( //Prototypal attributes { - url: Globals.baseURL + 'api/atlas/lineage/assetName/outputs/graph', + url: Globals.baseURL, model: VLineage, http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/models/VLineage.js ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/models/VLineage.js b/dashboardv2/public/js/models/VLineage.js index fa1be05..7323473 100644 --- a/dashboardv2/public/js/models/VLineage.js +++ b/dashboardv2/public/js/models/VLineage.js @@ -23,7 +23,7 @@ define(['require', 'use strict'; var VLineage = VBaseModel.extend({ - urlRoot: Globals.baseURL + 'api/atlas/lineage/assetName/outputs/graph', + urlRoot: Globals.baseURL, defaults: {}, http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/templates/business_catalog/AddTermView_tmpl.html ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/templates/business_catalog/AddTermView_tmpl.html b/dashboardv2/public/js/templates/business_catalog/AddTermView_tmpl.html index c63826b..6c729b5 100644 --- a/dashboardv2/public/js/templates/business_catalog/AddTermView_tmpl.html +++ b/dashboardv2/public/js/templates/business_catalog/AddTermView_tmpl.html @@ -18,6 +18,7 @@ <!-- <h4 style="margin-bottom:30px">Add Term</h4> --> <div class="form-group"> <input class="form-control" data-id="termName" placeholder="Add subterm" autofocus> + <p class='alertTerm' style='display:none'>Term name should not have spaces</p> </div> <div class="form-group"> <textarea class="form-control" data-id="termDetail" placeholder="Description"></textarea> http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/templates/business_catalog/BusinessCatalogLayoutView_tmpl.html ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/templates/business_catalog/BusinessCatalogLayoutView_tmpl.html b/dashboardv2/public/js/templates/business_catalog/BusinessCatalogLayoutView_tmpl.html index a48f041..5923da9 100644 --- a/dashboardv2/public/js/templates/business_catalog/BusinessCatalogLayoutView_tmpl.html +++ b/dashboardv2/public/js/templates/business_catalog/BusinessCatalogLayoutView_tmpl.html @@ -18,8 +18,8 @@ <select type="text" class="form-control" data-id="searchTermInput" placeholder="Search term"></select> </div> <div class="clearfix"> - <button class="btn btn-taxanomyBack btn-atlas pull-left" data-id="backTaxanomy"><i class="fa fa-chevron-left"></i> Back</button> - <button class="btn btn-taxanomyBack btn-atlas pull-right" data-id="refreshTaxanomy"><i class="fa fa-refresh"></i> Refresh</button> + <button class="btn btn-atlasAction btn-atlas pull-left" data-id="backTaxanomy"><i class="fa fa-chevron-left"></i> Back</button> + <button class="btn btn-atlasAction btn-atlas pull-right" onclick="this.blur();" data-id="refreshTaxanomy"><i class="fa fa-refresh"></i> Refresh</button> </div> <div class=""> <ul class="taxonomyTree"> http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/templates/detail_page/DetailPageLayoutView_tmpl.html ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/templates/detail_page/DetailPageLayoutView_tmpl.html b/dashboardv2/public/js/templates/detail_page/DetailPageLayoutView_tmpl.html index 90f77b0..ec2402a 100644 --- a/dashboardv2/public/js/templates/detail_page/DetailPageLayoutView_tmpl.html +++ b/dashboardv2/public/js/templates/detail_page/DetailPageLayoutView_tmpl.html @@ -16,7 +16,7 @@ --> <div class="page-title clearfix"> <div class="row"> - <a href="javascript:void(0);" class="backButton" data-id="backButton"><i class="fa fa-chevron-left"> Back To Result</i></a> + <a href="javascript:void(0);" class="backButton" data-id="backButton"><i class="fa fa-chevron-left"></i> Back To Result</a> </div> <h1><span data-id="title"></span><!-- <small>Bookmark</small> <button data-id="editButton" class="btn btn-default pull-right editbutton" id="editText"><i class="fa fa-pencil"></i></button> --></h1> <div data-id="editBox" style="margin-bottom:10px;"> @@ -44,7 +44,7 @@ <div class="row"> <div class="col-sm-10 col-sm-offset-1"> <div class="atlast-tabbable"> - <div class="panel panel-default lineageLayout" style="display:none"> + <div class="panel panel-default lineageLayout"> <div id="r_lineageLayoutView"></div> </div> </div> http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/templates/graph/LineageLayoutView_tmpl.html ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/templates/graph/LineageLayoutView_tmpl.html b/dashboardv2/public/js/templates/graph/LineageLayoutView_tmpl.html index bb16651..8ab545e 100644 --- a/dashboardv2/public/js/templates/graph/LineageLayoutView_tmpl.html +++ b/dashboardv2/public/js/templates/graph/LineageLayoutView_tmpl.html @@ -21,10 +21,6 @@ <i class="fa fa-refresh fa-spin-custom"></i> </div> <div class="panel-body graph-bg" align="center"> - <!-- <div class="temp"> - <i class="glyphicon glyphicon-plus"></i> - <i class="glyphicon glyphicon-minus"></i> - </div> --> <div class="graph" id="tree-container"> </div> <div style="position:relative"> http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/templates/search/SearchResultLayoutView_tmpl.html ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/templates/search/SearchResultLayoutView_tmpl.html b/dashboardv2/public/js/templates/search/SearchResultLayoutView_tmpl.html index 8032508..8d7dd6e 100644 --- a/dashboardv2/public/js/templates/search/SearchResultLayoutView_tmpl.html +++ b/dashboardv2/public/js/templates/search/SearchResultLayoutView_tmpl.html @@ -18,5 +18,6 @@ <div class="fontLoader"> <i class="fa fa-refresh fa-spin-custom"></i> </div> + <span class="searchResult" style=" font-size: 16px;"></span> <div id="r_searchResultTableLayoutView" class="searchTable"></div> </div> http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/templates/tag/TagAttributeDetailLayoutView_tmpl.html ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/templates/tag/TagAttributeDetailLayoutView_tmpl.html b/dashboardv2/public/js/templates/tag/TagAttributeDetailLayoutView_tmpl.html index 0988ac3..204f4a7 100644 --- a/dashboardv2/public/js/templates/tag/TagAttributeDetailLayoutView_tmpl.html +++ b/dashboardv2/public/js/templates/tag/TagAttributeDetailLayoutView_tmpl.html @@ -15,9 +15,16 @@ * limitations under the License. --> <div class="page-title clearfix"> - <h1><span data-id="title"></span> - <!-- <small>8 Asset</small><button data-id="editButton" class="hide btn btn-default pull-right editbutton" data-id="editText"><i class="fa fa-pencil"></i></button>--></h1> - <p data-id="description"></p> + <h1><span data-id="title"></span></h1> + <button data-id="editButton" class="btn btn-default pull-right editbutton" id="editText"><i class="fa fa-pencil"></i></button> + <p class="sub-title" data-id="description">Description</p> + <div data-id="editBox" style="margin-bottom:10px; display:none"> + <textarea class="well well-sm col-sm-12" data-id="descriptionTextArea"></textarea> + <div class="clearfix" align="right"> + <button class="btn btn-atlas cancel" data-id="cancelButton">Cancel</button> + <button class="btn btn-atlas ok" data-id="publishButton">Publish</button> + </div> + </div> <div data-id="showAttribute"> </div> <div class="dropdown addTag-dropdown" data-id="addTagListBtn"> @@ -26,6 +33,4 @@ <div class="addTagPlus" data-id="addTagPlus" style="display: none"><i class="fa fa-plus"></i></div> </div> </div> - <div data-id="editBox" style="margin-bottom:10px; display:none"> - </div> </div> http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/templates/tag/TagLayoutView_tmpl.html ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/templates/tag/TagLayoutView_tmpl.html b/dashboardv2/public/js/templates/tag/TagLayoutView_tmpl.html index b402e0f..9cfb6c1 100644 --- a/dashboardv2/public/js/templates/tag/TagLayoutView_tmpl.html +++ b/dashboardv2/public/js/templates/tag/TagLayoutView_tmpl.html @@ -14,7 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. --> -<div class="clearfix"><a href="javascript:void(0)" data-id="createTag"><i class="fa fa-plus"></i> Create Tag</a></div> +<div class="clearfix"> + <button class="btn btn-atlasAction btn-atlas pull-left" data-id="createTag"><i class="fa fa-plus"></i> Create Tag</button> + <button class="btn btn-atlasAction btn-atlas pull-right" data-id="refreshTag" onclick="this.blur();"><i class="fa fa-refresh"></i> Refresh</button> +</div> +<!-- <a href="javascript:void(0)" data-id="createTag"><i class="fa fa-plus"></i> Create Tag</a></div> --> <hr> <input type="text" class="form-control" data-id="offlineSearchTag" placeholder="Search Tags..."> <ul class="tag-tree" data-id="tagsParent"> http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/utils/CommonViewFunction.js ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/utils/CommonViewFunction.js b/dashboardv2/public/js/utils/CommonViewFunction.js index 3baeb34..d2de0dc 100644 --- a/dashboardv2/public/js/utils/CommonViewFunction.js +++ b/dashboardv2/public/js/utils/CommonViewFunction.js @@ -16,7 +16,7 @@ * limitations under the License. */ -define(['require', 'utils/Utils', 'modules/Modal'], function(require, Utils, Modal) { +define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages'], function(require, Utils, Modal, Messages) { 'use strict'; var CommonViewFunction = {}; @@ -31,7 +31,7 @@ define(['require', 'utils/Utils', 'modules/Modal'], function(require, Utils, Mod } } var modal = new Modal({ - title: 'Are you sure you want to delete ?', + title: Messages.deleteTitle, okText: 'Delete', htmlContent: msg, cancelText: "Cancel", @@ -49,20 +49,20 @@ define(['require', 'utils/Utils', 'modules/Modal'], function(require, Utils, Mod tagModel.deleteTag(options.guid, options.tagName, { beforeSend: function() {}, success: function(data) { - var msg = "Tag " + name.name + " has been deleted successfully"; + var msg = "Tag " + name.name + Messages.deleteSuccessMessage; if (data.traitName) { var tagOrTerm = Utils.checkTagOrTerm(data.traitName); if (tagOrTerm.term) { - msg = "Term " + data.traitName + " has been deleted successfully"; + msg = "Term " + data.traitName + Messages.deleteSuccessMessage; } else { - msg = "Tag " + data.traitName + " has been deleted successfully"; + msg = "Tag " + data.traitName + Messages.deleteSuccessMessage; } } else { var tagOrTerm = Utils.checkTagOrTerm(options.tagName); if (tagOrTerm.term) { - msg = "Term " + data.traitName + " has been deleted successfully"; + msg = "Term " + data.traitName + Messages.deleteSuccessMessage; } else { - msg = "Tag " + data.traitName + " has been deleted successfully"; + msg = "Tag " + data.traitName + Messages.deleteSuccessMessage; } } Utils.notifySuccess({ @@ -77,7 +77,7 @@ define(['require', 'utils/Utils', 'modules/Modal'], function(require, Utils, Mod }, error: function(error, data, status) { - var message = options.tagName + " could not be deleted"; + var message = options.tagName + Messages.deleteErrorMessage; if (data.error) { message = data.error; } http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/utils/Messages.js ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/utils/Messages.js b/dashboardv2/public/js/utils/Messages.js new file mode 100644 index 0000000..257d5e0 --- /dev/null +++ b/dashboardv2/public/js/utils/Messages.js @@ -0,0 +1,33 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +define(['require'], function(require) { + 'use strict'; + + var Messages = { + addSuccessMessage: " has been created successfully", + addErrorMessage: " could not be Created", + addTermToEntitySuccessMessage: " has been added to entity", + deleteTitle: "Are you sure you want to delete ?", + deleteSuccessMessage: " has been deleted successfully", + deleteErrorMessage: " could not be deleted", + addAttributeSuccessMessage: "Tag attribute is added successfully", + updateTagDescriptionMessage: "Tag description is updated successfully" + }; + return Messages; +}); http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/views/audit/AuditTableLayoutView.js ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/views/audit/AuditTableLayoutView.js b/dashboardv2/public/js/views/audit/AuditTableLayoutView.js index 19f3b70..5c963d3 100644 --- a/dashboardv2/public/js/views/audit/AuditTableLayoutView.js +++ b/dashboardv2/public/js/views/audit/AuditTableLayoutView.js @@ -135,7 +135,7 @@ define(['require', sortable: false, formatter: _.extend({}, Backgrid.CellFormatter.prototype, { fromRaw: function(rawValue, model) { - return '<div class="label label-success aditCreateBtn" data-id="auditCreate" data-action="' + Globals.auditAction[model.attributes.action] + '" disabled="' + that.detailBtnDisable + '" data-modalId="' + model.get('eventKey') + '">Detail</div>'; + return '<div class="label label-success auditDetailBtn" data-id="auditCreate" data-action="' + Globals.auditAction[model.attributes.action] + '" disabled="' + that.detailBtnDisable + '" data-modalId="' + model.get('eventKey') + '">Detail</div>'; } }) }, http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/views/business_catalog/BusinessCatalogLayoutView.js ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/views/business_catalog/BusinessCatalogLayoutView.js b/dashboardv2/public/js/views/business_catalog/BusinessCatalogLayoutView.js index d4b352d..92fe48a 100644 --- a/dashboardv2/public/js/views/business_catalog/BusinessCatalogLayoutView.js +++ b/dashboardv2/public/js/views/business_catalog/BusinessCatalogLayoutView.js @@ -21,8 +21,9 @@ define(['require', 'hbs!tmpl/business_catalog/BusinessCatalogLayoutView_tmpl', 'utils/Utils', 'collection/VCatalogList', - 'utils/CommonViewFunction' -], function(require, Backbone, BusinessCatalogLayoutViewTmpl, Utils, VCatalogList, CommonViewFunction) { + 'utils/CommonViewFunction', + 'utils/Messages' +], function(require, Backbone, BusinessCatalogLayoutViewTmpl, Utils, VCatalogList, CommonViewFunction, Messages) { 'use strict'; var BusinessCatalogLayoutView = Backbone.Marionette.LayoutView.extend( @@ -343,12 +344,12 @@ define(['require', model: new that.parentCollection.model() }); var modal = new Modal({ - title: 'Add Term', + title: 'Create a new subterm', content: view, okCloses: true, showFooter: true, allowCancel: true, - okText: 'Create', + okText: 'Add', }).open(); modal.$el.find('button.ok').attr('disabled', true); modal.on('ok', function() { @@ -357,8 +358,12 @@ define(['require', view.ui.termName.on('keyup', function() { if (this.value.indexOf(' ') >= 0) { modal.$el.find('button.ok').prop('disabled', true); + view.ui.termName.addClass("addTermDiable"); + view.$('.alertTerm').show(); } else { modal.$el.find('button.ok').prop('disabled', false); + view.ui.termName.removeClass("addTermDiable"); + view.$('.alertTerm').hide(); } }); @@ -380,12 +385,12 @@ define(['require', that.forwardClick(undefined, true, url); //that.fetchCollection(that.url); Utils.notifySuccess({ - content: "Term " + view.ui.termName.val() + " Created successfully" + content: "Term " + view.ui.termName.val() + Messages.addSuccessMessage }); }, error: function(model, response) { Utils.notifyError({ - content: "Term " + view.ui.termName.val() + " could not be Created" + content: "Term " + view.ui.termName.val() + Messages.addErrorMessage }); }, complete: function() { @@ -415,13 +420,13 @@ define(['require', beforeSend: function() {}, success: function(data) { Utils.notifySuccess({ - content: "Term " + termName + " has been deleted successfully" + content: "Term " + termName + Messages.deleteSuccessMessage }); var termURL = url.split("/").slice(0, -2).join("/"); that.forwardClick(undefined, true, termURL); }, error: function(error, data, status) { - var message = "Term " + termName + " could not be deleted"; + var message = "Term " + termName + Messages.deleteErrorMessage; if (data.error) { message = data.error; } @@ -537,7 +542,7 @@ define(['require', model: new that.parentCollection.model() }); var modal = new Modal({ - title: 'Default taxonomy', + title: 'Taxonomy', content: view, okCloses: true, showFooter: true, @@ -548,14 +553,17 @@ define(['require', modal.on('ok', function() { that.saveDefaultTaxonomy(view); }); - view.ui.termName.attr("placeholder", "Default taxonomy name"); + view.ui.termName.attr("placeholder", "Enter Taxonomy Name"); view.ui.termName.on('keyup', function() { if (this.value.indexOf(' ') >= 0) { modal.$el.find('button.ok').prop('disabled', true); + view.ui.termName.addClass("addTermDiable"); + view.$('.alertTerm').show(); } else { modal.$el.find('button.ok').prop('disabled', false); + view.ui.termName.removeClass("addTermDiable"); + view.$('.alertTerm').hide(); } - }); view.on('closeModal', function() { modal.trigger('cancel'); @@ -572,12 +580,12 @@ define(['require', that.fetchCollection(view.model.url, true); that.forwardClick(undefined, undefined, view.model.url); Utils.notifySuccess({ - content: "Default taxonomy" + view.ui.termName.val() + " Created successfully" + content: "Default taxonomy" + view.ui.termName.val() + Messages.addSuccessMessage }); }, error: function(error, data, status) { Utils.notifyError({ - content: "Default taxonomy " + view.ui.termName.val() + " could not be Created" + content: "Default taxonomy " + view.ui.termName.val() + Messages.addErrorMessage }); }, complete: function() { http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/views/graph/LineageLayoutView.js ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/views/graph/LineageLayoutView.js b/dashboardv2/public/js/views/graph/LineageLayoutView.js index bcfcae1..ebdeec6 100644 --- a/dashboardv2/public/js/views/graph/LineageLayoutView.js +++ b/dashboardv2/public/js/views/graph/LineageLayoutView.js @@ -66,23 +66,18 @@ define(['require', }, bindEvents: function() { this.listenTo(this.inputCollection, 'reset', function() { - $('.lineageLayout').show(); this.generateData(this.inputCollection, 'input'); this.outputCollection.fetch({ reset: true }); }, this); this.listenTo(this.outputCollection, 'reset', function() { - $('.lineageLayout').show(); this.generateData(this.outputCollection, 'output'); this.outputState = true; }, this); this.listenTo(this.outputCollection, 'error', function() { - this.$('.fontLoader').hide(); - $('.lineageLayout').hide(); - + this.addNoDataMessage(); }, this); this.listenTo(this.inputCollection, 'error', function() { - this.$('.fontLoader').hide(); - this.$('.lineageLayout').hide(); + this.addNoDataMessage(); }, this); }, onRender: function() { @@ -105,6 +100,11 @@ define(['require', fetchGraphData: function() { this.inputCollection.fetch({ reset: true }); }, + addNoDataMessage: function() { + //this.$('svg').height('100'); + this.$('svg').html('<text x="' + (this.$('svg').width() - 150) / 2 + '" y="' + this.$('svg').height() / 2 + '" fill="black">No lineage data found</text>'); + this.$('.fontLoader').hide(); + }, generateData: function(collection, type) { var that = this; @@ -140,9 +140,7 @@ define(['require', if (that.edgesAndvertices) { that.createGraph(that.edgesAndvertices, that.startingPoint); } else if (this.outputState && !that.edgesAndvertices) { - that.$('svg').height('100'); - that.$('svg').html('<text x="' + (that.$('svg').width() - 150) / 2 + '" y="' + that.$('svg').height() / 2 + '" fill="black">No lineage data found</text>'); - that.$('.fontLoader').hide(); + that.addNoDataMessage(); } } } @@ -231,7 +229,7 @@ define(['require', _.each(startingPoint, function(val, key, obj) { _.each(edgesAndvertices.edges[val], function(val1) { if (val && val1) { - that.g.setEdge(val, val1); + that.g.setEdge(val, val1, { 'arrowhead': "arrowPoint", lineInterpolate: 'basis' }); } createRemaningEdge(edgesAndvertices.edges, val1); }); @@ -241,7 +239,7 @@ define(['require', if (obj[starting] && obj[starting].length) { _.each(obj[starting], function(val, key) { if (starting && val) { - that.g.setEdge(starting, val); + that.g.setEdge(starting, val, { 'arrowhead': "arrowPoint", lineInterpolate: 'basis' }); } createRemaningEdge(obj, val); }); @@ -258,6 +256,26 @@ define(['require', if (this.outputState) { // Create the renderer var render = new dagreD3.render(); + // Add our custom arrow (a hollow-point) + render.arrows().arrowPoint = function normal(parent, id, edge, type) { + var marker = parent.append("marker") + .attr("id", id) + .attr("viewBox", "0 0 10 10") + .attr("refX", 9) + .attr("refY", 5) + .attr("markerUnits", "strokeWidth") + .attr("markerWidth", 10) + .attr("markerHeight", 8) + .attr("orient", "auto"); + + var path = marker.append("path") + .attr("d", "M 0 0 L 10 5 L 0 10 z") + .style("stroke-width", 1) + .style("stroke-dasharray", "1,0") + .style("fill", "#cccccc") + .style("stroke", "#cccccc"); + dagreD3.util.applyStyle(path, edge[type + "Style"]); + }; render.shapes().img = function circle(parent, bbox, node) { //var r = Math.max(bbox.width, bbox.height) / 2, var shapeSvg = parent.insert("image") @@ -278,17 +296,17 @@ define(['require', } } } - }).attr("x", "-20px") - .attr("y", "-20px") - .attr("width", "40px") - .attr("height", "40px"); + }).attr("x", "-12px") + .attr("y", "-12px") + .attr("width", "24px") + .attr("height", "24px"); /*shapeSvg = parent.insert("circle", ":first-child") .attr("x", 35) .attr("y", 35) .attr("r", 20);*/ node.intersect = function(point) { //return dagreD3.intersect.circle(node, points, point); - return dagreD3.intersect.circle(node, 20, point); + return dagreD3.intersect.circle(node, 13, point); }; return shapeSvg; }; http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/views/search/SearchLayoutView.js ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/views/search/SearchLayoutView.js b/dashboardv2/public/js/views/search/SearchLayoutView.js index f63c863..17ee84e 100644 --- a/dashboardv2/public/js/views/search/SearchLayoutView.js +++ b/dashboardv2/public/js/views/search/SearchLayoutView.js @@ -131,7 +131,9 @@ define(['require', });*/ } if (this.value.dslChecked == "true") { - this.ui.searchType.prop("checked", this.value.dslChecked).trigger("change") + this.ui.searchType.prop("checked", true).trigger("change") + } else { + this.ui.searchType.prop("checked", false).trigger("change") } } this.bindEvents(arr); http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/views/search/SearchResultLayoutView.js ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/views/search/SearchResultLayoutView.js b/dashboardv2/public/js/views/search/SearchResultLayoutView.js index e711017..45ffa53 100644 --- a/dashboardv2/public/js/views/search/SearchResultLayoutView.js +++ b/dashboardv2/public/js/views/search/SearchResultLayoutView.js @@ -116,6 +116,7 @@ define(['require', this.checkTableFetch(); } this.renderTableLayoutView(); + this.$('.searchResult').html(this.searchCollection.fullCollection.length + ' result for <b>' + this.searchCollection.queryParams.query + '</b>'); }, this); this.listenTo(this.searchCollection, "error", function(value, responseData) { this.$('.fontLoader').hide(); @@ -148,6 +149,7 @@ define(['require', fetchCollection: function(value) { this.$('.fontLoader').show(); this.$('.searchTable').hide(); + this.$('.searchResult').html(''); if (value) { if (value.searchType) { this.searchCollection.url = "/api/atlas/discovery/search/" + value.searchType; http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/views/tag/TagAttributeDetailLayoutView.js ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/views/tag/TagAttributeDetailLayoutView.js b/dashboardv2/public/js/views/tag/TagAttributeDetailLayoutView.js index a57102c..e686ca1 100644 --- a/dashboardv2/public/js/views/tag/TagAttributeDetailLayoutView.js +++ b/dashboardv2/public/js/views/tag/TagAttributeDetailLayoutView.js @@ -22,8 +22,9 @@ define(['require', 'utils/Utils', 'views/tag/AddTagAttributeView', 'collection/VCommonList', - 'models/VTag' -], function(require, Backbone, TagAttributeDetailLayoutViewTmpl, Utils, AddTagAttributeView, VCommonList, VTag) { + 'models/VTag', + 'utils/Messages' +], function(require, Backbone, TagAttributeDetailLayoutViewTmpl, Utils, AddTagAttributeView, VCommonList, VTag, Messages) { 'use strict'; var TagAttributeDetailLayoutView = Backbone.Marionette.LayoutView.extend( @@ -45,12 +46,27 @@ define(['require', addTagtext: '[data-id="addTagtext"]', addTagPlus: '[data-id="addTagPlus"]', description: '[data-id="description"]', + descriptionTextArea: '[data-id="descriptionTextArea"]', + publishButton: '[data-id="publishButton"]', }, /** ui events hash */ events: function() { var events = {}; + events["click " + this.ui.editButton] = function() { + this.ui.editButton.hide(); + this.ui.description.hide(); + this.ui.editBox.show(); + this.ui.descriptionTextArea.focus(); + this.ui.publishButton.prop('disabled', true); + if (this.ui.description.text().length) { + this.ui.descriptionTextArea.val(this.ui.description.text()); + } + }; + events["keyup " + this.ui.descriptionTextArea] = 'textAreaChangeEvent'; + events["click " + this.ui.cancelButton] = 'onCancelButtonClick'; events["click " + this.ui.addAttrBtn] = 'onClickAddAttribute'; events["click " + this.ui.addTagListBtn] = 'onClickAddTagBtn'; + events["click " + this.ui.publishButton] = 'onPublishClick'; return events; }, /** @@ -97,26 +113,17 @@ define(['require', onRender: function() { this.ui.title.html('<span>' + this.tag + '</span>'); this.ui.saveButton.attr("disabled", "true"); + this.ui.publishButton.prop('disabled', true); }, - onSaveButton: function(ref) { + onSaveButton: function(saveObject, message) { var that = this, - tagModel = new VTag(), - attributeName = $(ref.el).find("input").val(); - this.tagCollection.first().get('traitTypes')[0].attributeDefinitions.push({ - "name": attributeName, - "dataTypeName": "string", - "multiplicity": "optional", - "isComposite": false, - "isUnique": false, - "isIndexable": true, - "reverseAttributeName": null - }); - tagModel.set(this.tagCollection.first().toJSON()).save(null, { + tagModel = new VTag(); + tagModel.set(saveObject).save(null, { type: "PUT", success: function(model, response) { that.tagCollection.fetch({ reset: true }); Utils.notifySuccess({ - content: " Attribute has been Updated" + content: message }); }, error: function(model, response) { @@ -144,12 +151,41 @@ define(['require', allowCancel: true, }).open(); modal.on('ok', function() { - that.onSaveButton(view); + var attributeName = $(view.el).find("input").val(); + that.tagCollection.first().get('traitTypes')[0].attributeDefinitions.push({ + "name": attributeName, + "dataTypeName": "string", + "multiplicity": "optional", + "isComposite": false, + "isUniquvar e": false, + "isIndexable": true, + "reverseAttributeName": null + }); + that.onSaveButton(that.tagCollection.first().toJSON(), Messages.addAttributeSuccessMessage); }); modal.on('closeModal', function() { modal.trigger('cancel'); }); }); + }, + onCancelButtonClick: function() { + this.ui.description.show(); + this.ui.editButton.show(); + this.ui.editBox.hide(); + }, + textAreaChangeEvent: function() { + if (this.tagCollection.first().get('traitTypes')[0].typeDescription == this.ui.descriptionTextArea.val()) { + this.ui.publishButton.prop('disabled', true); + } else { + this.ui.publishButton.prop('disabled', false); + } + }, + onPublishClick: function() { + this.tagCollection.first().get('traitTypes')[0].typeDescription = this.ui.descriptionTextArea.val(); + this.onSaveButton(this.tagCollection.first().toJSON(), Messages.updateTagDescriptionMessage); + this.ui.description.show(); + this.ui.editButton.show(); + this.ui.editBox.hide(); } }); return TagAttributeDetailLayoutView; http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/dashboardv2/public/js/views/tag/TagLayoutView.js ---------------------------------------------------------------------- diff --git a/dashboardv2/public/js/views/tag/TagLayoutView.js b/dashboardv2/public/js/views/tag/TagLayoutView.js index dd982de..42b8078 100644 --- a/dashboardv2/public/js/views/tag/TagLayoutView.js +++ b/dashboardv2/public/js/views/tag/TagLayoutView.js @@ -22,7 +22,8 @@ define(['require', 'collection/VTagList', 'collection/VEntityList', 'utils/Utils', -], function(require, Backbone, TagLayoutViewTmpl, VTagList, VEntityList, Utils) { + 'utils/Messages' +], function(require, Backbone, TagLayoutViewTmpl, VTagList, VEntityList, Utils, Messages) { 'use strict'; var TagLayoutView = Backbone.Marionette.LayoutView.extend( @@ -41,7 +42,8 @@ define(['require', createTag: "[data-id='createTag']", tags: "[data-id='tags']", offLineSearchTag: "[data-id='offlineSearchTag']", - deleteTerm: "[data-id='deleteTerm']" + deleteTerm: "[data-id='deleteTerm']", + refreshTag: '[data-id="refreshTag"]' }, /** ui events hash */ @@ -55,6 +57,7 @@ define(['require', // events["click " + this.ui.referesh] = 'refereshClick'; events["keyup " + this.ui.offLineSearchTag] = 'offlineSearchTag'; events["click " + this.ui.deleteTerm] = 'onDeleteTerm'; + events['click ' + this.ui.refreshTag] = 'fetchCollections'; return events; }, /** @@ -228,7 +231,7 @@ define(['require', that.fetchCollections(); that.setUrl('#!/tag/tagAttribute/' + ref.ui.tagName.val(), true); Utils.notifySuccess({ - content: that.name + " has been created" + content: "Tag " + that.name + Messages.addSuccessMessage }); that.collection.reset([]); }, http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/0901714a/release-log.txt ---------------------------------------------------------------------- diff --git a/release-log.txt b/release-log.txt index dde46a8..ff1890c 100644 --- a/release-log.txt +++ b/release-log.txt @@ -22,6 +22,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-865 Edit description functionality for Tags (kevalbhatt18 via yhemanth) ATLAS-820 Kerberized env: Authentication failing (nixonrodrigues via yhemanth) ATLAS-852 Change Default landing page to taxonomy (kevalbhatt18 via yhemanth) ATLAS-858 Unable to delete terms via API which are 3 or more levels deep (jspeidel via sumasai)
