Commit 0901714a by Hemanth Yamijala

ATLAS-865 Edit description functionality for Tags (kevalbhatt18 via yhemanth)

parent 395296ce
...@@ -138,7 +138,7 @@ button:focus { ...@@ -138,7 +138,7 @@ button:focus {
} }
} }
.btn-taxanomyBack { .btn-atlasAction {
background-color: $transparent; background-color: $transparent;
color: $color_keppel_approx; color: $color_keppel_approx;
margin-bottom: 10px; margin-bottom: 10px;
...@@ -148,6 +148,10 @@ button:focus { ...@@ -148,6 +148,10 @@ button:focus {
background-color: $color_keppel_approx; background-color: $color_keppel_approx;
color: $white; color: $white;
} }
&:focus {
background-color: $transparent;
color: $color_keppel_approx;
}
} }
.input-spacing { .input-spacing {
......
/* graph.scss */ /* graph.scss */
/* .graph-bg svg { /* .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-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; background-size: 10px 10px;
...@@ -66,7 +67,7 @@ g.type-TK > rect { ...@@ -66,7 +67,7 @@ g.type-TK > rect {
} }
.edgePath path { .edgePath path {
stroke: $black; stroke: #cccccc;
} }
.zoomButtonGroup { .zoomButtonGroup {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
//common color //common color
$white: #fff; $white: #fff;
$action_gray:#ccc; $action_gray:#999999;
$color_keppel_approx: #37bb9b; $color_keppel_approx: #37bb9b;
$color_gallery_approx: #eee; $color_gallery_approx: #eee;
$gray: #808080; $gray: #808080;
...@@ -144,6 +144,7 @@ ul { ...@@ -144,6 +144,7 @@ ul {
#sideNav-wrapper { #sideNav-wrapper {
color: $white; color: $white;
font-size: 16px !important;
} }
.contentLoading { .contentLoading {
...@@ -157,12 +158,17 @@ ul { ...@@ -157,12 +158,17 @@ ul {
display: none; display: none;
} }
.auditCreateBtn { .auditDetailBtn {
background-color: #359f89; padding: 5px 10px;
color: white; font-size: 14px;
cursor: pointer; line-height: 1;
} color: $color_jungle_green_approx;
text-align: center;
.aditCreateBtn { white-space: nowrap;
vertical-align: baseline;
border-radius: 4px;
font-weight: 100;
background-color: $transparent;
border: 1px solid $color_jungle_green_approx;
cursor: pointer; cursor: pointer;
} }
//tag.scss //tag.scss
/* Tree View */
.tag-tree { .tag-tree {
padding: 0; padding: 0;
overflow: auto; overflow: auto;
...@@ -10,7 +7,7 @@ ...@@ -10,7 +7,7 @@
cursor: pointer; cursor: pointer;
&.parent-node { &.parent-node {
position: relative; position: relative;
margin-top: 10px; margin-top: 5px;
/* margin-bottom: 5px; */ /* margin-bottom: 5px; */
border-radius: 4px; border-radius: 4px;
&:hover { &:hover {
...@@ -106,7 +103,6 @@ ...@@ -106,7 +103,6 @@
border: 1px $tag_color solid; border: 1px $tag_color solid;
color: $tag_color; color: $tag_color;
font-size: 14px; font-size: 14px;
text-transform: uppercase;
border-radius: 4px; border-radius: 4px;
margin-right: 3px; margin-right: 3px;
margin-bottom: 3px; margin-bottom: 3px;
...@@ -212,7 +208,7 @@ form-control .tagInpput { ...@@ -212,7 +208,7 @@ form-control .tagInpput {
} }
.termTagLine { .termTagLine {
border-top: 1px solid $action_gray; border-top: none;
} }
.tagTerm { .tagTerm {
......
...@@ -131,3 +131,11 @@ ...@@ -131,3 +131,11 @@
padding: 8px; padding: 8px;
cursor: pointer; cursor: pointer;
} }
.addTermDiable {
border-color: #FF0000 !important;
}
.alertTerm {
color: #FF0000 !important;
}
...@@ -25,7 +25,7 @@ define(['require', ...@@ -25,7 +25,7 @@ define(['require',
var VLineageList = BaseCollection.extend( var VLineageList = BaseCollection.extend(
//Prototypal attributes //Prototypal attributes
{ {
url: Globals.baseURL + 'api/atlas/lineage/assetName/outputs/graph', url: Globals.baseURL,
model: VLineage, model: VLineage,
......
...@@ -23,7 +23,7 @@ define(['require', ...@@ -23,7 +23,7 @@ define(['require',
'use strict'; 'use strict';
var VLineage = VBaseModel.extend({ var VLineage = VBaseModel.extend({
urlRoot: Globals.baseURL + 'api/atlas/lineage/assetName/outputs/graph', urlRoot: Globals.baseURL,
defaults: {}, defaults: {},
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
<!-- <h4 style="margin-bottom:30px">Add Term</h4> --> <!-- <h4 style="margin-bottom:30px">Add Term</h4> -->
<div class="form-group"> <div class="form-group">
<input class="form-control" data-id="termName" placeholder="Add subterm" autofocus> <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>
<div class="form-group"> <div class="form-group">
<textarea class="form-control" data-id="termDetail" placeholder="Description"></textarea> <textarea class="form-control" data-id="termDetail" placeholder="Description"></textarea>
......
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
<select type="text" class="form-control" data-id="searchTermInput" placeholder="Search term"></select> <select type="text" class="form-control" data-id="searchTermInput" placeholder="Search term"></select>
</div> </div>
<div class="clearfix"> <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-atlasAction 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-right" onclick="this.blur();" data-id="refreshTaxanomy"><i class="fa fa-refresh"></i> Refresh</button>
</div> </div>
<div class=""> <div class="">
<ul class="taxonomyTree"> <ul class="taxonomyTree">
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
--> -->
<div class="page-title clearfix"> <div class="page-title clearfix">
<div class="row"> <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> </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> <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;"> <div data-id="editBox" style="margin-bottom:10px;">
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
<div class="row"> <div class="row">
<div class="col-sm-10 col-sm-offset-1"> <div class="col-sm-10 col-sm-offset-1">
<div class="atlast-tabbable"> <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 id="r_lineageLayoutView"></div>
</div> </div>
</div> </div>
......
...@@ -21,10 +21,6 @@ ...@@ -21,10 +21,6 @@
<i class="fa fa-refresh fa-spin-custom"></i> <i class="fa fa-refresh fa-spin-custom"></i>
</div> </div>
<div class="panel-body graph-bg" align="center"> <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 class="graph" id="tree-container">
</div> </div>
<div style="position:relative"> <div style="position:relative">
......
...@@ -18,5 +18,6 @@ ...@@ -18,5 +18,6 @@
<div class="fontLoader"> <div class="fontLoader">
<i class="fa fa-refresh fa-spin-custom"></i> <i class="fa fa-refresh fa-spin-custom"></i>
</div> </div>
<span class="searchResult" style=" font-size: 16px;"></span>
<div id="r_searchResultTableLayoutView" class="searchTable"></div> <div id="r_searchResultTableLayoutView" class="searchTable"></div>
</div> </div>
...@@ -15,9 +15,16 @@ ...@@ -15,9 +15,16 @@
* limitations under the License. * limitations under the License.
--> -->
<div class="page-title clearfix"> <div class="page-title clearfix">
<h1><span data-id="title"></span> <h1><span data-id="title"></span></h1>
<!-- <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> <button data-id="editButton" class="btn btn-default pull-right editbutton" id="editText"><i class="fa fa-pencil"></i></button>
<p data-id="description"></p> <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 data-id="showAttribute">
</div> </div>
<div class="dropdown addTag-dropdown" data-id="addTagListBtn"> <div class="dropdown addTag-dropdown" data-id="addTagListBtn">
...@@ -26,6 +33,4 @@ ...@@ -26,6 +33,4 @@
<div class="addTagPlus" data-id="addTagPlus" style="display: none"><i class="fa fa-plus"></i></div> <div class="addTagPlus" data-id="addTagPlus" style="display: none"><i class="fa fa-plus"></i></div>
</div> </div>
</div> </div>
<div data-id="editBox" style="margin-bottom:10px; display:none">
</div>
</div> </div>
...@@ -14,7 +14,11 @@ ...@@ -14,7 +14,11 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * 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> <hr>
<input type="text" class="form-control" data-id="offlineSearchTag" placeholder="Search Tags..."> <input type="text" class="form-control" data-id="offlineSearchTag" placeholder="Search Tags...">
<ul class="tag-tree" data-id="tagsParent"> <ul class="tag-tree" data-id="tagsParent">
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
* limitations under the License. * 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'; 'use strict';
var CommonViewFunction = {}; var CommonViewFunction = {};
...@@ -31,7 +31,7 @@ define(['require', 'utils/Utils', 'modules/Modal'], function(require, Utils, Mod ...@@ -31,7 +31,7 @@ define(['require', 'utils/Utils', 'modules/Modal'], function(require, Utils, Mod
} }
} }
var modal = new Modal({ var modal = new Modal({
title: 'Are you sure you want to delete ?', title: Messages.deleteTitle,
okText: 'Delete', okText: 'Delete',
htmlContent: msg, htmlContent: msg,
cancelText: "Cancel", cancelText: "Cancel",
...@@ -49,20 +49,20 @@ define(['require', 'utils/Utils', 'modules/Modal'], function(require, Utils, Mod ...@@ -49,20 +49,20 @@ define(['require', 'utils/Utils', 'modules/Modal'], function(require, Utils, Mod
tagModel.deleteTag(options.guid, options.tagName, { tagModel.deleteTag(options.guid, options.tagName, {
beforeSend: function() {}, beforeSend: function() {},
success: function(data) { success: function(data) {
var msg = "Tag " + name.name + " has been deleted successfully"; var msg = "Tag " + name.name + Messages.deleteSuccessMessage;
if (data.traitName) { if (data.traitName) {
var tagOrTerm = Utils.checkTagOrTerm(data.traitName); var tagOrTerm = Utils.checkTagOrTerm(data.traitName);
if (tagOrTerm.term) { if (tagOrTerm.term) {
msg = "Term " + data.traitName + " has been deleted successfully"; msg = "Term " + data.traitName + Messages.deleteSuccessMessage;
} else { } else {
msg = "Tag " + data.traitName + " has been deleted successfully"; msg = "Tag " + data.traitName + Messages.deleteSuccessMessage;
} }
} else { } else {
var tagOrTerm = Utils.checkTagOrTerm(options.tagName); var tagOrTerm = Utils.checkTagOrTerm(options.tagName);
if (tagOrTerm.term) { if (tagOrTerm.term) {
msg = "Term " + data.traitName + " has been deleted successfully"; msg = "Term " + data.traitName + Messages.deleteSuccessMessage;
} else { } else {
msg = "Tag " + data.traitName + " has been deleted successfully"; msg = "Tag " + data.traitName + Messages.deleteSuccessMessage;
} }
} }
Utils.notifySuccess({ Utils.notifySuccess({
...@@ -77,7 +77,7 @@ define(['require', 'utils/Utils', 'modules/Modal'], function(require, Utils, Mod ...@@ -77,7 +77,7 @@ define(['require', 'utils/Utils', 'modules/Modal'], function(require, Utils, Mod
}, },
error: function(error, data, status) { error: function(error, data, status) {
var message = options.tagName + " could not be deleted"; var message = options.tagName + Messages.deleteErrorMessage;
if (data.error) { if (data.error) {
message = data.error; message = data.error;
} }
......
/**
* 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;
});
...@@ -135,7 +135,7 @@ define(['require', ...@@ -135,7 +135,7 @@ define(['require',
sortable: false, sortable: false,
formatter: _.extend({}, Backgrid.CellFormatter.prototype, { formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
fromRaw: function(rawValue, model) { 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>';
} }
}) })
}, },
......
...@@ -21,8 +21,9 @@ define(['require', ...@@ -21,8 +21,9 @@ define(['require',
'hbs!tmpl/business_catalog/BusinessCatalogLayoutView_tmpl', 'hbs!tmpl/business_catalog/BusinessCatalogLayoutView_tmpl',
'utils/Utils', 'utils/Utils',
'collection/VCatalogList', 'collection/VCatalogList',
'utils/CommonViewFunction' 'utils/CommonViewFunction',
], function(require, Backbone, BusinessCatalogLayoutViewTmpl, Utils, VCatalogList, CommonViewFunction) { 'utils/Messages'
], function(require, Backbone, BusinessCatalogLayoutViewTmpl, Utils, VCatalogList, CommonViewFunction, Messages) {
'use strict'; 'use strict';
var BusinessCatalogLayoutView = Backbone.Marionette.LayoutView.extend( var BusinessCatalogLayoutView = Backbone.Marionette.LayoutView.extend(
...@@ -343,12 +344,12 @@ define(['require', ...@@ -343,12 +344,12 @@ define(['require',
model: new that.parentCollection.model() model: new that.parentCollection.model()
}); });
var modal = new Modal({ var modal = new Modal({
title: 'Add Term', title: 'Create a new subterm',
content: view, content: view,
okCloses: true, okCloses: true,
showFooter: true, showFooter: true,
allowCancel: true, allowCancel: true,
okText: 'Create', okText: 'Add',
}).open(); }).open();
modal.$el.find('button.ok').attr('disabled', true); modal.$el.find('button.ok').attr('disabled', true);
modal.on('ok', function() { modal.on('ok', function() {
...@@ -357,8 +358,12 @@ define(['require', ...@@ -357,8 +358,12 @@ define(['require',
view.ui.termName.on('keyup', function() { view.ui.termName.on('keyup', function() {
if (this.value.indexOf(' ') >= 0) { if (this.value.indexOf(' ') >= 0) {
modal.$el.find('button.ok').prop('disabled', true); modal.$el.find('button.ok').prop('disabled', true);
view.ui.termName.addClass("addTermDiable");
view.$('.alertTerm').show();
} else { } else {
modal.$el.find('button.ok').prop('disabled', false); modal.$el.find('button.ok').prop('disabled', false);
view.ui.termName.removeClass("addTermDiable");
view.$('.alertTerm').hide();
} }
}); });
...@@ -380,12 +385,12 @@ define(['require', ...@@ -380,12 +385,12 @@ define(['require',
that.forwardClick(undefined, true, url); that.forwardClick(undefined, true, url);
//that.fetchCollection(that.url); //that.fetchCollection(that.url);
Utils.notifySuccess({ Utils.notifySuccess({
content: "Term " + view.ui.termName.val() + " Created successfully" content: "Term " + view.ui.termName.val() + Messages.addSuccessMessage
}); });
}, },
error: function(model, response) { error: function(model, response) {
Utils.notifyError({ Utils.notifyError({
content: "Term " + view.ui.termName.val() + " could not be Created" content: "Term " + view.ui.termName.val() + Messages.addErrorMessage
}); });
}, },
complete: function() { complete: function() {
...@@ -415,13 +420,13 @@ define(['require', ...@@ -415,13 +420,13 @@ define(['require',
beforeSend: function() {}, beforeSend: function() {},
success: function(data) { success: function(data) {
Utils.notifySuccess({ Utils.notifySuccess({
content: "Term " + termName + " has been deleted successfully" content: "Term " + termName + Messages.deleteSuccessMessage
}); });
var termURL = url.split("/").slice(0, -2).join("/"); var termURL = url.split("/").slice(0, -2).join("/");
that.forwardClick(undefined, true, termURL); that.forwardClick(undefined, true, termURL);
}, },
error: function(error, data, status) { error: function(error, data, status) {
var message = "Term " + termName + " could not be deleted"; var message = "Term " + termName + Messages.deleteErrorMessage;
if (data.error) { if (data.error) {
message = data.error; message = data.error;
} }
...@@ -537,7 +542,7 @@ define(['require', ...@@ -537,7 +542,7 @@ define(['require',
model: new that.parentCollection.model() model: new that.parentCollection.model()
}); });
var modal = new Modal({ var modal = new Modal({
title: 'Default taxonomy', title: 'Taxonomy',
content: view, content: view,
okCloses: true, okCloses: true,
showFooter: true, showFooter: true,
...@@ -548,14 +553,17 @@ define(['require', ...@@ -548,14 +553,17 @@ define(['require',
modal.on('ok', function() { modal.on('ok', function() {
that.saveDefaultTaxonomy(view); 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() { view.ui.termName.on('keyup', function() {
if (this.value.indexOf(' ') >= 0) { if (this.value.indexOf(' ') >= 0) {
modal.$el.find('button.ok').prop('disabled', true); modal.$el.find('button.ok').prop('disabled', true);
view.ui.termName.addClass("addTermDiable");
view.$('.alertTerm').show();
} else { } else {
modal.$el.find('button.ok').prop('disabled', false); modal.$el.find('button.ok').prop('disabled', false);
view.ui.termName.removeClass("addTermDiable");
view.$('.alertTerm').hide();
} }
}); });
view.on('closeModal', function() { view.on('closeModal', function() {
modal.trigger('cancel'); modal.trigger('cancel');
...@@ -572,12 +580,12 @@ define(['require', ...@@ -572,12 +580,12 @@ define(['require',
that.fetchCollection(view.model.url, true); that.fetchCollection(view.model.url, true);
that.forwardClick(undefined, undefined, view.model.url); that.forwardClick(undefined, undefined, view.model.url);
Utils.notifySuccess({ 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) { error: function(error, data, status) {
Utils.notifyError({ Utils.notifyError({
content: "Default taxonomy " + view.ui.termName.val() + " could not be Created" content: "Default taxonomy " + view.ui.termName.val() + Messages.addErrorMessage
}); });
}, },
complete: function() { complete: function() {
......
...@@ -66,23 +66,18 @@ define(['require', ...@@ -66,23 +66,18 @@ define(['require',
}, },
bindEvents: function() { bindEvents: function() {
this.listenTo(this.inputCollection, 'reset', function() { this.listenTo(this.inputCollection, 'reset', function() {
$('.lineageLayout').show();
this.generateData(this.inputCollection, 'input'); this.generateData(this.inputCollection, 'input');
this.outputCollection.fetch({ reset: true }); this.outputCollection.fetch({ reset: true });
}, this); }, this);
this.listenTo(this.outputCollection, 'reset', function() { this.listenTo(this.outputCollection, 'reset', function() {
$('.lineageLayout').show();
this.generateData(this.outputCollection, 'output'); this.generateData(this.outputCollection, 'output');
this.outputState = true; this.outputState = true;
}, this); }, this);
this.listenTo(this.outputCollection, 'error', function() { this.listenTo(this.outputCollection, 'error', function() {
this.$('.fontLoader').hide(); this.addNoDataMessage();
$('.lineageLayout').hide();
}, this); }, this);
this.listenTo(this.inputCollection, 'error', function() { this.listenTo(this.inputCollection, 'error', function() {
this.$('.fontLoader').hide(); this.addNoDataMessage();
this.$('.lineageLayout').hide();
}, this); }, this);
}, },
onRender: function() { onRender: function() {
...@@ -105,6 +100,11 @@ define(['require', ...@@ -105,6 +100,11 @@ define(['require',
fetchGraphData: function() { fetchGraphData: function() {
this.inputCollection.fetch({ reset: true }); 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) { generateData: function(collection, type) {
var that = this; var that = this;
...@@ -140,9 +140,7 @@ define(['require', ...@@ -140,9 +140,7 @@ define(['require',
if (that.edgesAndvertices) { if (that.edgesAndvertices) {
that.createGraph(that.edgesAndvertices, that.startingPoint); that.createGraph(that.edgesAndvertices, that.startingPoint);
} else if (this.outputState && !that.edgesAndvertices) { } else if (this.outputState && !that.edgesAndvertices) {
that.$('svg').height('100'); that.addNoDataMessage();
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();
} }
} }
} }
...@@ -231,7 +229,7 @@ define(['require', ...@@ -231,7 +229,7 @@ define(['require',
_.each(startingPoint, function(val, key, obj) { _.each(startingPoint, function(val, key, obj) {
_.each(edgesAndvertices.edges[val], function(val1) { _.each(edgesAndvertices.edges[val], function(val1) {
if (val && val1) { if (val && val1) {
that.g.setEdge(val, val1); that.g.setEdge(val, val1, { 'arrowhead': "arrowPoint", lineInterpolate: 'basis' });
} }
createRemaningEdge(edgesAndvertices.edges, val1); createRemaningEdge(edgesAndvertices.edges, val1);
}); });
...@@ -241,7 +239,7 @@ define(['require', ...@@ -241,7 +239,7 @@ define(['require',
if (obj[starting] && obj[starting].length) { if (obj[starting] && obj[starting].length) {
_.each(obj[starting], function(val, key) { _.each(obj[starting], function(val, key) {
if (starting && val) { if (starting && val) {
that.g.setEdge(starting, val); that.g.setEdge(starting, val, { 'arrowhead': "arrowPoint", lineInterpolate: 'basis' });
} }
createRemaningEdge(obj, val); createRemaningEdge(obj, val);
}); });
...@@ -258,6 +256,26 @@ define(['require', ...@@ -258,6 +256,26 @@ define(['require',
if (this.outputState) { if (this.outputState) {
// Create the renderer // Create the renderer
var render = new dagreD3.render(); 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) { render.shapes().img = function circle(parent, bbox, node) {
//var r = Math.max(bbox.width, bbox.height) / 2, //var r = Math.max(bbox.width, bbox.height) / 2,
var shapeSvg = parent.insert("image") var shapeSvg = parent.insert("image")
...@@ -278,17 +296,17 @@ define(['require', ...@@ -278,17 +296,17 @@ define(['require',
} }
} }
} }
}).attr("x", "-20px") }).attr("x", "-12px")
.attr("y", "-20px") .attr("y", "-12px")
.attr("width", "40px") .attr("width", "24px")
.attr("height", "40px"); .attr("height", "24px");
/*shapeSvg = parent.insert("circle", ":first-child") /*shapeSvg = parent.insert("circle", ":first-child")
.attr("x", 35) .attr("x", 35)
.attr("y", 35) .attr("y", 35)
.attr("r", 20);*/ .attr("r", 20);*/
node.intersect = function(point) { node.intersect = function(point) {
//return dagreD3.intersect.circle(node, points, point); //return dagreD3.intersect.circle(node, points, point);
return dagreD3.intersect.circle(node, 20, point); return dagreD3.intersect.circle(node, 13, point);
}; };
return shapeSvg; return shapeSvg;
}; };
......
...@@ -131,7 +131,9 @@ define(['require', ...@@ -131,7 +131,9 @@ define(['require',
});*/ });*/
} }
if (this.value.dslChecked == "true") { 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); this.bindEvents(arr);
......
...@@ -116,6 +116,7 @@ define(['require', ...@@ -116,6 +116,7 @@ define(['require',
this.checkTableFetch(); this.checkTableFetch();
} }
this.renderTableLayoutView(); this.renderTableLayoutView();
this.$('.searchResult').html(this.searchCollection.fullCollection.length + ' result for <b>' + this.searchCollection.queryParams.query + '</b>');
}, this); }, this);
this.listenTo(this.searchCollection, "error", function(value, responseData) { this.listenTo(this.searchCollection, "error", function(value, responseData) {
this.$('.fontLoader').hide(); this.$('.fontLoader').hide();
...@@ -148,6 +149,7 @@ define(['require', ...@@ -148,6 +149,7 @@ define(['require',
fetchCollection: function(value) { fetchCollection: function(value) {
this.$('.fontLoader').show(); this.$('.fontLoader').show();
this.$('.searchTable').hide(); this.$('.searchTable').hide();
this.$('.searchResult').html('');
if (value) { if (value) {
if (value.searchType) { if (value.searchType) {
this.searchCollection.url = "/api/atlas/discovery/search/" + value.searchType; this.searchCollection.url = "/api/atlas/discovery/search/" + value.searchType;
......
...@@ -22,8 +22,9 @@ define(['require', ...@@ -22,8 +22,9 @@ define(['require',
'utils/Utils', 'utils/Utils',
'views/tag/AddTagAttributeView', 'views/tag/AddTagAttributeView',
'collection/VCommonList', 'collection/VCommonList',
'models/VTag' 'models/VTag',
], function(require, Backbone, TagAttributeDetailLayoutViewTmpl, Utils, AddTagAttributeView, VCommonList, VTag) { 'utils/Messages'
], function(require, Backbone, TagAttributeDetailLayoutViewTmpl, Utils, AddTagAttributeView, VCommonList, VTag, Messages) {
'use strict'; 'use strict';
var TagAttributeDetailLayoutView = Backbone.Marionette.LayoutView.extend( var TagAttributeDetailLayoutView = Backbone.Marionette.LayoutView.extend(
...@@ -45,12 +46,27 @@ define(['require', ...@@ -45,12 +46,27 @@ define(['require',
addTagtext: '[data-id="addTagtext"]', addTagtext: '[data-id="addTagtext"]',
addTagPlus: '[data-id="addTagPlus"]', addTagPlus: '[data-id="addTagPlus"]',
description: '[data-id="description"]', description: '[data-id="description"]',
descriptionTextArea: '[data-id="descriptionTextArea"]',
publishButton: '[data-id="publishButton"]',
}, },
/** ui events hash */ /** ui events hash */
events: function() { events: function() {
var events = {}; 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.addAttrBtn] = 'onClickAddAttribute';
events["click " + this.ui.addTagListBtn] = 'onClickAddTagBtn'; events["click " + this.ui.addTagListBtn] = 'onClickAddTagBtn';
events["click " + this.ui.publishButton] = 'onPublishClick';
return events; return events;
}, },
/** /**
...@@ -97,26 +113,17 @@ define(['require', ...@@ -97,26 +113,17 @@ define(['require',
onRender: function() { onRender: function() {
this.ui.title.html('<span>' + this.tag + '</span>'); this.ui.title.html('<span>' + this.tag + '</span>');
this.ui.saveButton.attr("disabled", "true"); this.ui.saveButton.attr("disabled", "true");
this.ui.publishButton.prop('disabled', true);
}, },
onSaveButton: function(ref) { onSaveButton: function(saveObject, message) {
var that = this, var that = this,
tagModel = new VTag(), tagModel = new VTag();
attributeName = $(ref.el).find("input").val(); tagModel.set(saveObject).save(null, {
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, {
type: "PUT", type: "PUT",
success: function(model, response) { success: function(model, response) {
that.tagCollection.fetch({ reset: true }); that.tagCollection.fetch({ reset: true });
Utils.notifySuccess({ Utils.notifySuccess({
content: " Attribute has been Updated" content: message
}); });
}, },
error: function(model, response) { error: function(model, response) {
...@@ -144,12 +151,41 @@ define(['require', ...@@ -144,12 +151,41 @@ define(['require',
allowCancel: true, allowCancel: true,
}).open(); }).open();
modal.on('ok', function() { 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.on('closeModal', function() {
modal.trigger('cancel'); 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; return TagAttributeDetailLayoutView;
......
...@@ -22,7 +22,8 @@ define(['require', ...@@ -22,7 +22,8 @@ define(['require',
'collection/VTagList', 'collection/VTagList',
'collection/VEntityList', 'collection/VEntityList',
'utils/Utils', 'utils/Utils',
], function(require, Backbone, TagLayoutViewTmpl, VTagList, VEntityList, Utils) { 'utils/Messages'
], function(require, Backbone, TagLayoutViewTmpl, VTagList, VEntityList, Utils, Messages) {
'use strict'; 'use strict';
var TagLayoutView = Backbone.Marionette.LayoutView.extend( var TagLayoutView = Backbone.Marionette.LayoutView.extend(
...@@ -41,7 +42,8 @@ define(['require', ...@@ -41,7 +42,8 @@ define(['require',
createTag: "[data-id='createTag']", createTag: "[data-id='createTag']",
tags: "[data-id='tags']", tags: "[data-id='tags']",
offLineSearchTag: "[data-id='offlineSearchTag']", offLineSearchTag: "[data-id='offlineSearchTag']",
deleteTerm: "[data-id='deleteTerm']" deleteTerm: "[data-id='deleteTerm']",
refreshTag: '[data-id="refreshTag"]'
}, },
/** ui events hash */ /** ui events hash */
...@@ -55,6 +57,7 @@ define(['require', ...@@ -55,6 +57,7 @@ define(['require',
// events["click " + this.ui.referesh] = 'refereshClick'; // events["click " + this.ui.referesh] = 'refereshClick';
events["keyup " + this.ui.offLineSearchTag] = 'offlineSearchTag'; events["keyup " + this.ui.offLineSearchTag] = 'offlineSearchTag';
events["click " + this.ui.deleteTerm] = 'onDeleteTerm'; events["click " + this.ui.deleteTerm] = 'onDeleteTerm';
events['click ' + this.ui.refreshTag] = 'fetchCollections';
return events; return events;
}, },
/** /**
...@@ -228,7 +231,7 @@ define(['require', ...@@ -228,7 +231,7 @@ define(['require',
that.fetchCollections(); that.fetchCollections();
that.setUrl('#!/tag/tagAttribute/' + ref.ui.tagName.val(), true); that.setUrl('#!/tag/tagAttribute/' + ref.ui.tagName.val(), true);
Utils.notifySuccess({ Utils.notifySuccess({
content: that.name + " has been created" content: "Tag " + that.name + Messages.addSuccessMessage
}); });
that.collection.reset([]); that.collection.reset([]);
}, },
......
...@@ -22,6 +22,7 @@ ATLAS-409 Atlas will not import avro tables with schema read from a file (dosset ...@@ -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) ATLAS-379 Create sqoop and falcon metadata addons (venkatnrangan,bvellanki,sowmyaramesh via shwethags)
ALL CHANGES: ALL CHANGES:
ATLAS-865 Edit description functionality for Tags (kevalbhatt18 via yhemanth)
ATLAS-820 Kerberized env: Authentication failing (nixonrodrigues via yhemanth) ATLAS-820 Kerberized env: Authentication failing (nixonrodrigues via yhemanth)
ATLAS-852 Change Default landing page to taxonomy (kevalbhatt18 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) ATLAS-858 Unable to delete terms via API which are 3 or more levels deep (jspeidel via sumasai)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment