Commit 6d51ddec by kevalbhatt Committed by Madhan Neethiraj

ATLAS-2600: Glossary UI update for add/update/remove of classifications to terms

parent 2237a895
......@@ -372,6 +372,21 @@ div.columnmanager-dropdown-container {
}
.stack-modal[aria-role="alertdialog"] {
&.width-600 {
width: 600px !important;
left: calc(50% - 250px) !important;
margin-left: 0 !important;
}
&.width-500 {
width: 500px !important;
left: calc(50% - 216px) !important;
margin-left: 0 !important;
}
&.width-400 {
width: 400px !important;
left: calc(50% - 183px);
margin-left: 0 !important;
}
.alert.ui-pnotify-container {
color: $color_ironside_gray_approx;
background-color: $white;
......@@ -430,6 +445,7 @@ div.columnmanager-dropdown-container {
.fa-color {
color: $color_keppel_approx
}
.w30{
.w30 {
width: 30% !important;
}
\ No newline at end of file
......@@ -47,7 +47,11 @@ define([
this.bindCommonEvents();
this.listenTo(this, 'route', this.postRouteExecute, this);
this.searchVent = new Backbone.Wreqr.EventAggregator();
this.glossaryCollection = new VGlossaryList([], {});
this.glossaryCollection = new VGlossaryList([], {
comparator: function(item) {
return item.get("displayName");
}
});
this.preFetchedCollectionLists = {
'entityDefCollection': this.entityDefCollection,
'typeHeaders': this.typeHeaders,
......@@ -221,7 +225,7 @@ define([
if (Utils.getUrlState.isTagTab()) {
App.rSideNav.currentView.RTagLayoutView.currentView.manualRender();
} else if (Utils.getUrlState.isGlossaryTab()) {
App.rSideNav.currentView.RGlossaryLayoutView.currentView.manualRender(_.extend({}, paramObj));
App.rSideNav.currentView.RGlossaryLayoutView.currentView.manualRender(_.extend({ isTrigger: true }, paramObj));
}
}
......@@ -263,7 +267,7 @@ define([
}
App.rSideNav.currentView.selectTab();
if (paramObj) {
isinitialView = (paramObj.type || (paramObj.dslChecked == "true" ? "" : paramObj.tag) || (paramObj.query ? paramObj.query.trim() : "")).length === 0;
isinitialView = (paramObj.type || (paramObj.dslChecked == "true" ? "" : (paramObj.tag || paramObj.term)) || (paramObj.query ? paramObj.query.trim() : "")).length === 0;
}
App.rNContent.show(new SearchDetailLayoutView(
_.extend({
......
......@@ -30,7 +30,7 @@
</button>
</div>
</div>
<div class="form-group">
<div class="form-group termBox">
<span class="control-label-sm-pr pull-left">Term:</span>
<div class="pull-left" data-id="termList">
<button class="btn btn-action btn-sm" title="Add Term" data-id="addTerm">
......
......@@ -18,7 +18,7 @@
<div class="form-group">
<label class="control-label col-sm-2 {{#if create}}required{{/if}}" for="name">Name</label>
<div class="col-sm-10">
<input class="form-control" name="displayName" value="{{displayName}}" data-id="displayName" placeholder="Display Name(required)" autofocus/>
<input class="form-control" name="displayName" value="{{displayName}}" data-id="displayName" placeholder="Name(required)" autofocus/>
</div>
</div>
<div class="form-group">
......
......@@ -35,6 +35,14 @@
</div>
{{#if isTermView}}
<div class="form-group clearfix">
<span class="control-label-sm-pr pull-left">Classifications:</span>
<div class="pull-left" data-id="tagList">
<button class="btn btn-action btn-sm" title="Add Classification" data-id="addTag">
<i class="fa fa-plus"> </i>
</button>
</div>
</div>
<div class="form-group clearfix">
<span class="control-label-sm-pr pull-left">Categories:</span>
<div class="pull-left" data-id="categoryList">
<button class="btn btn-action btn-sm" title="Add Category" data-id="addCategory">
......@@ -51,17 +59,35 @@
</button>
</div>
</div>
{{/if}} {{#if isTermView}}
<div class="row">
<div class="col-sm-12 default-tab">
<ul class="nav nav-tabs" data-id="tab-list">
<li role="entities" class="tab active"><a href="#tab-entities" aria-controls="tab-entities" role="tab" data-toggle="tab">Entities</a></li>
<li role="classification"><a href="#tab-tagTable" aria-controls="tab-tagTable" role="tab" data-toggle="tab">Classifications</a></li>
</ul>
</div>
</div>
{{/if}}
</div>
</div>
<div class="container-fluid gray-bg">
<div class="row">
<div class="col-sm-custom">
{{#if isTermView}}
<div class="tab-content">
<div id="tab-entities" role="entities" class="tab-pane active animated fadeIn">
<div id="r_searchResultLayoutView">
<div class="fontLoader" style="display: block;min-height: 50px;position:relative;margin-top: 25px;">
<div class="fontLoader-relative">
<i class="fa fa-refresh fa-spin-custom"></i>
</div>
</div>
</div>
<div id="tab-tagTable" role="classification" class="tab-pane animated fadeIn">
<div id="r_tagTableLayoutView">
<div class="fontLoader-relative">
<i class="fa fa-refresh fa-spin-custom"></i>
</div>
</div>
</div>
</div>
{{/if}}
</div>
\ No newline at end of file
......@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
-->
<div class="col-sm-12 add-seperator">
<div class="col-sm-12 {{#unless isAssignView}}add-seperator{{/unless}}">
<div class="row">
{{#unless isAssignView}}
<div class="col-sm-8 no-padding" style="margin-top: 5px;">
......
......@@ -36,10 +36,10 @@
<div class="srchType clearfix">
<span class="srchTitle">Search By Type</span>
<div class="">
<div class="col-sm-10 no-padding temFilter">
<div class="col-sm-10 no-padding typeFilter">
<select data-id="typeLOV"></select>
</div>
<div class="col-sm-2 no-padding temFilterBtn">
<div class="col-sm-2 no-padding typeFilterBtn">
<button type="button" class="btn btn-action btn-md pull-right typeLOV active" title="Entity Attribute Filter" data-id="typeAttrFilter"><i class="fa fa-filter"></i></button>
</div>
</div>
......@@ -55,6 +55,14 @@
</div>
</div>
</div>
<div class="srchType termBox clearfix">
<span class="srchTitle">Search By Term</span>
<div class="">
<div class="col-sm-12 no-padding">
<select data-id="termLOV"></select>
</div>
</div>
</div>
<div class="srchType">
<span class="srchTitle searchText">Search By Text</span>
<input type="text" class="form-control" data-id="searchInput" placeholder="Search by text" style="margin: 5px 0px;">
......
......@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
-->
<div class="">
<div class="position-relative">
<div class="tableOverlay"></div>
<!-- Not for table Loader its only for initial loading -->
<div class="fontLoader" style="z-index:999">
......@@ -32,21 +32,18 @@
<div class="inline" data-id="colManager"></div>
<div class="inline" data-id="containerCheckBox" style="display: none;">
<label class="checkbox-inline btn" for="historicalentities">
<input type="checkbox" data-id="checkDeletedEntity" data-value="includeDE"
id="historicalentities"/>
<input type="checkbox" data-id="checkDeletedEntity" data-value="includeDE" id="historicalentities" />
<b>Show historical entities</b></label>
</div>
{{#ifCond fromView '!==' "glossary"}}
<div class="inline" data-id="containerCheckBox" style="display: none;">
<label class="checkbox-inline btn" for="subclassifications">
<input type="checkbox" data-id="checkSubClassification" data-value="excludeSC" id="subclassifications"/>
<input type="checkbox" data-id="checkSubClassification" data-value="excludeSC" id="subclassifications" />
<b>Exclude sub-classifications</b></label>
</div>
{{/ifCond}}
{{#ifCond fromView '!==' "classification"}}
<div class="inline" data-id="containerCheckBox" style="display: none;">
<label class="checkbox-inline btn" for="subtypes">
<input type="checkbox" data-id="checkSubType" data-value="excludeST" id="subtypes"/>
<input type="checkbox" data-id="checkSubType" data-value="excludeST" id="subtypes" />
<b>Exclude sub-types</b></label>
</div>
{{/ifCond}}
......
......@@ -20,22 +20,16 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
'use strict';
var CommonViewFunction = {};
CommonViewFunction.deleteTagModel = function(options) {
var modal = new Modal({
title: options.titleMessage,
okText: options.buttonText,
htmlContent: options.msg,
cancelText: "Cancel",
allowCancel: true,
okCloses: true,
showFooter: true,
}).open();
return modal;
};
CommonViewFunction.deleteTag = function(options) {
require(['models/VTag'], function(VTag) {
var tagModel = new VTag();
if (options && options.guid && options.tagName) {
var tagModel = new VTag(),
notifyObj = {
modal: true,
text: options.msg,
title: options.titleMessage,
okText: options.okText,
ok: function(argument) {
if (options.showLoader) {
options.showLoader();
}
......@@ -66,6 +60,14 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
});
}
});
},
cancel: function(argument) {
if (options.hideLoader) {
options.hideLoader();
}
}
};
Utils.notifyConfirm(notifyObj);
}
});
};
......@@ -331,6 +333,10 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
}
queryArray.push(tagKeyValue);
}
if (value.term) {
var tagKeyValue = '<span class="key">Term:</span>&nbsp<span class="value">' + _.escape(value.term) + '</span>';
queryArray.push(tagKeyValue);
}
if (value.query) {
queryArray.push('<span class="key">Query:</span>&nbsp<span class="value">' + _.trim(_.escape(value.query)) + '</span>&nbsp');
}
......@@ -600,9 +606,24 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
"okText": model ? "Update" : "Create",
"allowCancel": true
}).open();
modal.$el.find('button.ok').attr("disabled", "true");
if (model) {
view.$('input,textarea').on('keyup', function(e) {
modal.$el.find('button.ok').attr("disabled", false);
});
} else {
view.ui.displayName.on('keyup', function(e) {
modal.$el.find('button.ok').attr("disabled", false);
});
}
view.ui.displayName.on('keyup', function(e) {
if ((e.keyCode == 8 || e.keyCode == 32 || e.keyCode == 46) && e.currentTarget.value.trim() == "") {
modal.$el.find('button.ok').attr("disabled", true);
}
});
modal.on('ok', function() {
if (isGlossaryView) {
modal.$el.find('button.ok').attr("disabled", "true");
modal.$el.find('button.ok').attr("disabled", true);
}
CommonViewFunction.createEditGlossaryCategoryTermSubmit(_.extend({ "ref": view, "modal": modal }, options));
});
......@@ -637,19 +658,29 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
messageType = "Category ";
}
var ajaxOptions = {
silent: true,
success: function(rModel, response) {
Utils.notifySuccess({
content: messageType + ref.ui.displayName.val() + Messages[model ? "editSuccessMessage" : "addSuccessMessage"]
});
if (options.callback) {
options.callback(response);
var obj = rModel;
if (isGlossaryView) {
obj = _.omit((rModel && rModel.toJSON ? rModel.toJSON() : rModel), 'terms', 'categories');
}
options.callback(obj);
}
modal.trigger('closeModal');
},
cust_error: function() {
if (isGlossaryView) {
modal.$el.find('button.ok').attr("disabled", false);
}
}
}
if (model) {
if (isGlossaryView) {
model.set(data).save(null, ajaxOptions)
model.clone().set(data, { silent: true }).save(null, ajaxOptions)
} else {
newModel[isTermView ? "createEditTerm" : "createEditCategory"](_.extend(ajaxOptions, {
guid: model.guid,
......@@ -694,12 +725,11 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
ajaxOptions = {
success: function(rModel, response) {
Utils.notifySuccess({
content: ((isCategoryView ? "Term" : "Category") + " association is removed successfully")
content: ((isCategoryView || isEntityView ? "Term" : "Category") + " association is removed successfully")
});
if (options.callback) {
options.callback();
}
modal.trigger('closeModal');
},
cust_error: function() {
if (options.hideLoader) {
......@@ -707,16 +737,12 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
}
}
},
modal = new Modal({
notifyObj = {
modal: true,
text: options.msg,
title: options.titleMessage,
okText: options.buttonText,
htmlContent: options.msg,
cancelText: "Cancel",
allowCancel: true,
okCloses: true,
showFooter: true,
}).open();
modal.on('ok', function() {
ok: function(argument) {
if (options.showLoader) {
options.showLoader();
}
......@@ -738,13 +764,10 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
data: JSON.stringify(_.extend({}, model, data)),
}));
}
});
modal.on('closeModal', function() {
modal.trigger('cancel');
if (options.onModalClose) {
options.onModalClose()
}
});
},
cancel: function(argument) {}
};
Utils.notifyConfirm(notifyObj);
}
}
CommonViewFunction.addRestCsrfCustomHeader = function(xhr, settings) {
......
......@@ -66,7 +66,7 @@ define(['require', 'utils/Utils', 'marionette', 'backgrid', 'asBreadcrumbs', 'jq
var getPopoverEl = function(e) {
return $(e.target).parent().data("bs.popover") || $(e.target).data("bs.popover") || $(e.target).parents('.popover').length;
}
$('body').on('click DOMMouseScroll mousewheel', function(e) {
$(document).on('click DOMMouseScroll mousewheel', function(e) {
if (e.originalEvent) {
// Do action if it is triggered by a human.
//e.isImmediatePropagationStopped();
......
......@@ -124,7 +124,7 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'utils/Enums',
var modal = {};
if (options && options.modal) {
var myStack = { "dir1": "down", "dir2": "right", "push": "top", 'modal': true };
modal['addclass'] = 'stack-modal';
modal['addclass'] = 'stack-modal ' + (options.modalClass ? modalClass : 'width-500');
modal['stack'] = myStack;
}
notify(_.extend({
......@@ -133,7 +133,7 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'utils/Enums',
confirm: {
confirm: true,
buttons: [{
text: 'cancel',
text: options.cancelText || 'Cancel',
addClass: 'btn-action btn-md',
click: function(notice) {
options.cancel(notice);
......@@ -141,7 +141,7 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'utils/Enums',
}
},
{
text: 'Ok',
text: options.okText || 'Ok',
addClass: 'btn-atlas btn-md',
click: function(notice) {
options.ok(notice);
......@@ -439,19 +439,19 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'utils/Enums',
return returnObj;
}
Utils.showTitleLoader = function(loaderEl, titleBoxEl) {
loaderEl.css({
loaderEl.css ? loaderEl.css({
'display': 'block',
'position': 'relative',
'height': '85px',
'marginTop': '85px',
'marginLeft': '50%',
'left': '0%'
});
titleBoxEl.hide();
}) : null;
titleBoxEl.hide ? titleBoxEl.hide() : null;
}
Utils.hideTitleLoader = function(loaderEl, titleBoxEl) {
loaderEl.hide();
titleBoxEl.fadeIn();
loaderEl.hide ? loaderEl.hide() : null;
titleBoxEl.fadeIn ? titleBoxEl.fadeIn() : null;
}
Utils.findAndMergeRefEntity = function(attributeObject, referredEntities) {
var mergeObject = function(obj) {
......@@ -477,6 +477,28 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'utils/Enums',
});
}
}
Utils.getNestedSuperTypes = function(options) {
var data = options.data,
collection = options.collection,
superTypes = [];
var getData = function(data, collection) {
superTypes = superTypes.concat(data.superTypes);
if (data.superTypes && data.superTypes.length) {
_.each(data.superTypes, function(superTypeName) {
if (collection.fullCollection) {
var collectionData = collection.fullCollection.findWhere({ name: superTypeName }).toJSON();
} else {
var collectionData = collection.findWhere({ name: superTypeName }).toJSON();
}
return getData(collectionData, collection);
});
}
}
getData(data, collection);
return _.uniq(superTypes);
}
Utils.getNestedSuperTypeObj = function(options) {
var flag = 0,
data = options.data,
......@@ -513,7 +535,7 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'utils/Enums',
}
}
getData(data, collection);
return attributeDefs
return attributeDefs;
}
Utils.getProfileTabType = function(profileData, skipData) {
......
......@@ -90,7 +90,7 @@ define(['require',
Utils.setUrl({
url: '#!/glossary/' + $(e.currentTarget).find('i').data('guid'),
mergeBrowserUrl: false,
urlParams: { gType: "term" },
urlParams: { gType: "term", viewType: "term", fromView: "entity" },
trigger: true
});
}
......@@ -118,7 +118,6 @@ define(['require',
*/
initialize: function(options) {
_.extend(this, _.pick(options, 'value', 'collection', 'id', 'entityDefCollection', 'typeHeaders', 'enumDefCollection', 'classificationDefCollection', 'glossaryCollection'));
this.bindEvents();
$('body').addClass("detail-page");
},
bindEvents: function() {
......@@ -126,6 +125,10 @@ define(['require',
this.listenTo(this.collection, 'reset', function() {
this.entityObject = this.collection.first().toJSON();
var collectionJSON = this.entityObject.entity;
if (collectionJSON && collectionJSON.typeName.startsWith("__AtlasGlossary")) {
this.$(".termBox").hide();
}
// MergerRefEntity.
Utils.findAndMergeRefEntity(collectionJSON.attributes, this.entityObject.referredEntities);
......@@ -200,6 +203,7 @@ define(['require',
fetchCollection: this.fetchCollection.bind(that),
enumDefCollection: this.enumDefCollection,
classificationDefCollection: this.classificationDefCollection,
glossaryCollection: this.glossaryCollection,
attributeDefs: (function() {
return that.getEntityDef(collectionJSON);
})()
......@@ -208,6 +212,8 @@ define(['require',
this.renderRelationshipLayoutView(obj);
this.renderAuditTableLayoutView(obj);
this.renderTagTableLayoutView(obj);
// To render profile tab check for attribute "profileData" or typeName = "hive_db","hbase_namespace"
if (collectionJSON && (!_.isUndefined(collectionJSON.attributes['profileData']) || collectionJSON.typeName === "hive_db" || collectionJSON.typeName === "hbase_namespace")) {
if (collectionJSON.typeName === "hive_db" || collectionJSON.typeName === "hbase_namespace") {
this.$('.profileTab a').text("Tables")
......@@ -221,6 +227,7 @@ define(['require',
}));
}
if (this.activeEntityDef) {
// To render Schema check attribute "schemaElementsAttribute"
var schemaOptions = this.activeEntityDef.get('options');
if (schemaOptions && schemaOptions.hasOwnProperty('schemaElementsAttribute') && schemaOptions.schemaElementsAttribute !== "") {
......@@ -237,7 +244,8 @@ define(['require',
updateTabState: true
});
}
if (this.activeEntityDef && _.contains(this.activeEntityDef.get('superTypes'), "DataSet")) {
if (_.contains(Utils.getNestedSuperTypes({ data: this.activeEntityDef.toJSON(), collection: this.entityDefCollection }), "DataSet")) {
this.$('.lineageGraph').show();
this.renderLineageLayoutView({
guid: this.id,
......@@ -263,6 +271,9 @@ define(['require',
updateTabState: true
});
}
}
}, this);
this.listenTo(this.collection, 'error', function(model, response) {
this.$('.fontLoader-relative').removeClass('show');
......@@ -275,31 +286,9 @@ define(['require',
},
onRender: function() {
var that = this;
this.bindEvents();
Utils.showTitleLoader(this.$('.page-title .fontLoader'), this.$('.entityDetail'));
this.$('.fontLoader-relative').addClass('show'); // to show tab loader
// this.ui.fullscreenPanel.on('fullscreen_done', function(e, panel) {
// var svgEl = panel.find('.panel-body svg'),
// scaleEl = svgEl.find('>g'),
// zoom = that.RLineageLayoutView.currentView.zoom,
// svg = that.RLineageLayoutView.currentView.svg,
// viewThis = that.RLineageLayoutView.currentView,
// setGraphZoomPositionCal = that.RLineageLayoutView.currentView.setGraphZoomPositionCal,
// zoomed = that.RLineageLayoutView.currentView.zoomed;;
// if (zoom) {
// setGraphZoomPositionCal.call(viewThis);
// zoomed.call(viewThis);
// if ($(e.currentTarget).find('i').hasClass('fa fa-compress')) {
// svg.call(zoom)
// .on("dblclick.zoom", null);
// } else {
// svg.call(zoom)
// .on("wheel.zoom", null)
// .on("dblclick.zoom", null);
// }
// }
// })
},
onShow: function() {
if (this.value && this.value.tabActive) {
......@@ -330,32 +319,16 @@ define(['require',
}
},
onClickTagCross: function(e) {
var tagName = $(e.currentTarget).parent().text(),
that = this;
var modal = CommonViewFunction.deleteTagModel({
var that = this,
tagName = $(e.currentTarget).parent().text();
CommonViewFunction.deleteTag(_.extend({}, {
msg: "<div class='ellipsis'>Remove: " + "<b>" + _.escape(tagName) + "</b> assignment from" + " " + "<b>" + this.name + "?</b></div>",
titleMessage: Messages.removeTag,
buttonText: "Remove"
});
if (modal) {
modal.on('ok', function() {
that.deleteTagData({
'tagName': tagName,
'guid': that.id,
'el': $(e.currentTarget)
});
});
modal.on('closeModal', function() {
modal.trigger('cancel');
});
}
},
deleteTagData: function(options) {
var that = this,
tagName = options.el.text();
Utils.showTitleLoader(this.$('.page-title .fontLoader'), this.$('.entityDetail'));
CommonViewFunction.deleteTag(_.extend({}, options, {
okText: "Remove",
showLoader: that.showLoader.bind(that),
hideLoader: that.hideLoader.bind(that),
tagName: tagName,
guid: that.id,
callback: function() {
that.fetchCollection();
}
......
......@@ -102,7 +102,7 @@ define(['require',
ajaxOptions = {
success: function(rModel, response) {
Utils.notifySuccess({
content: (that.isCategoryView ? "Term" : "Category") + " is associated successfully "
content: (that.isCategoryView || that.isEntityView ? "Term" : "Category") + " is associated successfully "
});
that.modal.trigger('closeModal');
if (that.callback) {
......
......@@ -41,7 +41,6 @@ define(['require',
/** ui selector cache */
ui: {
"qualifiedName": "[data-id='qualifiedName']",
"displayName": "[data-id='displayName']",
"shortDescription": "[data-id='shortDescription']",
"longDescription": "[data-id='longDescription']",
......
......@@ -155,6 +155,8 @@ define(['require',
.links(data.links)
.size([width, height])
.linkDistance(200)
.gravity(0.0)
.friction(0.1)
.charge(function(d) {
var charge = -500;
if (d.index === 0) charge = 100
......@@ -390,12 +392,10 @@ define(['require',
});
node.attr("transform", function(d) {
// if (d && d.value && d.value.guid == that.guid) {
// Center fixed node
// var damper = 0.1;
// d.x = (width / 2)
// d.y = (height / 2)
// }
if (d && d.value && d.value.guid == that.guid) {
d.x = (width / 2)
d.y = (height / 2)
}
return "translate(" + d.x + "," + d.y + ")";
});
}
......
......@@ -57,7 +57,7 @@ define(['require',
* @constructs
*/
initialize: function(options) {
_.extend(this, _.pick(options, 'profileData', 'guid', 'value', 'typeName', 'entityDetail', 'typeHeaders', 'entityDefCollection', 'enumDefCollection', 'classificationDefCollection'));
_.extend(this, _.pick(options, 'profileData', 'guid', 'value', 'typeName', 'entityDetail', 'typeHeaders', 'entityDefCollection', 'enumDefCollection', 'classificationDefCollection', 'glossaryCollection'));
if (this.typeName === "hive_db" || this.typeName === "hbase_namespace") {
this.profileData = { attributes: true };
}
......@@ -80,7 +80,7 @@ define(['require',
var value = _.extend({}, that.value, {
'guid': that.guid,
'searchType': 'relationship',
'profileDBView' : true,
'profileDBView': true,
'typeName': that.typeName
});
that.RProfileTableOrColumnLayoutView.show(new SearchResultLayoutView({
......@@ -89,6 +89,7 @@ define(['require',
'entityDefCollection': that.entityDefCollection,
'enumDefCollection': that.enumDefCollection,
'isDisable': true,
'glossaryCollection': that.glossaryCollection,
'classificationDefCollection': that.classificationDefCollection
}));
});
......
......@@ -283,34 +283,19 @@ define(['require',
var that = this,
tagName = $(e.target).data("name"),
guid = $(e.target).data("guid"),
assetName = $(e.target).data("assetname"),
modal = CommonViewFunction.deleteTagModel({
assetName = $(e.target).data("assetname");
CommonViewFunction.deleteTag({
tagName: tagName,
guid: guid,
msg: "<div class='ellipsis'>Remove: " + "<b>" + _.escape(tagName) + "</b> assignment from" + " " + "<b>" + assetName + " ?</b></div>",
titleMessage: Messages.removeTag,
buttonText: "Remove"
});
if (modal) {
modal.on('ok', function() {
that.deleteTagData({
'tagName': tagName,
'guid': guid
});
});
modal.on('closeModal', function() {
modal.trigger('cancel');
});
}
},
deleteTagData: function(options) {
var that = this;
CommonViewFunction.deleteTag(_.extend({}, options, {
okText: "Remove",
showLoader: that.showLoader.bind(that),
hideLoader: that.hideLoader.bind(that),
callback: function() {
that.fetchCollection();
}
}));
});
},
onCheckDeletedEntity: function(e) {
if (e.target.checked) {
......
......@@ -103,7 +103,7 @@ define(['require',
} else {
this.triggerUrl({
url: '#!/glossary/' + scope.find('i').data('termguid'),
urlParams: { gType: "term" },
urlParams: { gType: "term", viewType: "term", fromView: "entity" },
mergeBrowserUrl: false,
trigger: true,
updateTabState: null
......@@ -476,7 +476,7 @@ define(['require',
if (value.searchType) {
this.searchCollection.url = UrlLinks.searchApiUrl(value.searchType);
}
_.extend(this.searchCollection.queryParams, { 'limit': this.limit, 'offset': this.offset, 'query': _.trim(value.query), 'typeName': value.type || null, 'classification': value.tag || null, 'termName': that.termName || null });
_.extend(this.searchCollection.queryParams, { 'limit': this.limit, 'offset': this.offset, 'query': _.trim(value.query), 'typeName': value.type || null, 'classification': value.tag || null, 'termName': value.term || null });
if (value.profileDBView && value.typeName && value.guid) {
var profileParam = {};
profileParam['guid'] = value.guid;
......@@ -851,12 +851,13 @@ define(['require',
formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
fromRaw: function(rawValue, model) {
var obj = model.toJSON();
if (!(obj.typeName.startsWith("__AtlasGlossary"))) {
if (obj.status && Enums.entityStateReadOnly[obj.status]) {
return '<div class="readOnly">' + CommonViewFunction.termForTable(obj); + '</div>';
} else {
return CommonViewFunction.termForTable(obj);
}
}
}
})
};
......@@ -936,23 +937,20 @@ define(['require',
var that = this,
tagName = $(e.target).data("name"),
guid = $(e.target).data("guid"),
assetName = $(e.target).data("assetname"),
modal = CommonViewFunction.deleteTagModel({
assetName = $(e.target).data("assetname");
CommonViewFunction.deleteTag({
tagName: tagName,
guid: guid,
msg: "<div class='ellipsis'>Remove: " + "<b>" + _.escape(tagName) + "</b> assignment from" + " " + "<b>" + assetName + " ?</b></div>",
titleMessage: Messages.removeTag,
buttonText: "Remove"
});
if (modal) {
modal.on('ok', function() {
that.deleteTagData({
'tagName': tagName,
'guid': guid
});
});
modal.on('closeModal', function() {
modal.trigger('cancel');
});
okText: "Remove",
showLoader: that.showLoader.bind(that),
hideLoader: that.hideLoader.bind(that),
callback: function() {
that.fetchCollection();
}
});
},
onClickTermCross: function(e) {
var $el = $(e.target),
......@@ -979,16 +977,6 @@ define(['require',
}
});
},
deleteTagData: function(options) {
var that = this;
CommonViewFunction.deleteTag(_.extend({}, options, {
showLoader: that.showLoader.bind(that),
hideLoader: that.hideLoader.bind(that),
callback: function() {
that.fetchCollection();
}
}));
},
onClicknextData: function() {
this.offset = this.offset + this.limit;
_.extend(this.searchCollection.queryParams, {
......
......@@ -44,7 +44,7 @@ define(['require',
* @constructs
*/
initialize: function(options) {
_.extend(this, _.pick(options, 'tag', 'value', 'classificationDefCollection', 'entityDefCollection', 'typeHeaders', 'enumDefCollection'));
_.extend(this, _.pick(options, 'tag', 'value', 'glossaryCollection', 'classificationDefCollection', 'entityDefCollection', 'typeHeaders', 'enumDefCollection'));
this.collection = this.classificationDefCollection;
},
bindEvents: function() {},
......@@ -67,6 +67,7 @@ define(['require',
tagCollection: that.collection,
enumDefCollection: that.enumDefCollection,
classificationDefCollection: that.classificationDefCollection,
glossaryCollection: that.glossaryCollection,
fromView: "classification"
}));
}
......
......@@ -54,7 +54,7 @@ define(['require',
this.addModalView(e);
};
events["click " + this.ui.deleteTag] = function(e) {
this.deleteTagDataModal(e);
this.onClickTagCross(e);
};
events["click " + this.ui.editTag] = function(e) {
this.editTagDataModal(e);
......@@ -79,7 +79,7 @@ define(['require',
this.tagCollection = new VTagList();
var that = this,
tags = _.toArray(this.collectionObject.classifications);
this.tagCollection.set(tags);
this.tagCollection.fullCollection.reset(tags);
this.commonTableOptions = {
collection: this.tagCollection,
includeFilter: false,
......@@ -191,28 +191,15 @@ define(['require',
});
});
},
deleteTagDataModal: function(e) {
onClickTagCross: function(e) {
var that = this,
tagName = $(e.currentTarget).data("name"),
modal = CommonViewFunction.deleteTagModel({
tagName = $(e.currentTarget).data("name");
CommonViewFunction.deleteTag({
tagName: tagName,
guid: that.guid,
msg: "<div class='ellipsis'>Remove: " + "<b>" + _.escape(tagName) + "</b> assignment from" + " " + "<b>" + this.entityName + "?</b></div>",
titleMessage: Messages.removeTag,
buttonText: "Remove",
});
modal.on('ok', function() {
that.deleteTagData({
'tagName': tagName,
'guid': that.guid
});
});
modal.on('closeModal', function() {
modal.trigger('cancel');
});
},
deleteTagData: function(options) {
var that = this;
CommonViewFunction.deleteTag(_.extend({}, options, {
okText: "Remove",
showLoader: function() {
that.$('.fontLoader').show();
that.$('.tableOverlay').show();
......@@ -226,9 +213,8 @@ define(['require',
if (that.fetchCollection) {
that.fetchCollection();
}
}
}));
});
},
editTagDataModal: function(e) {
var that = this,
......@@ -256,12 +242,12 @@ define(['require',
unPropagatedTags = [];
e.stopPropagation();
if (e.target.checked) {
that.tagCollection.reset(tags);
that.tagCollection.fullCollection.reset(tags);
} else {
unPropagatedTags = _.filter(tags, function(val) {
return that.guid === val.entityGuid;
});
that.tagCollection.reset(unPropagatedTags);
that.tagCollection.fullCollection.reset(unPropagatedTags);
}
}
});
......
......@@ -76,7 +76,7 @@ define(['require',
tagName: null
}
};
if (this.value && this.value.viewType) {
if (Utils.getUrlState.isTagTab() && this.value && this.value.viewType) {
this.viewType = this.value.viewType;
}
this.query[this.viewType].tagName = this.tag;
......
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