Commit 19d344cd by Kalyani Committed by kevalbhatt

ATLAS-1737: UI - Delete tag(classification) from UI.

parent 3a70d11d
......@@ -40,7 +40,7 @@ define(['require',
/*************************
* Non - CRUD operations
*************************/
deleteTag: function(guid, name, options) {
deleteAssociation: function(guid, name, options) {
var url = UrlLinks.entitiesApiUrl(guid, name);
options = _.extend({
contentType: 'application/json',
......@@ -48,6 +48,14 @@ define(['require',
}, options);
return this.constructor.nonCrudOperation.call(this, url, 'DELETE', options);
},
deleteTag: function(options) {
var url = UrlLinks.typesClassicationApiUrl();
options = _.extend({
contentType: 'application/json',
dataType: 'json'
}, options);
return this.constructor.nonCrudOperation.call(this, url, 'DELETE', options);
},
saveTagAttribute: function(options) {
var url = UrlLinks.typesClassicationApiUrl();
options = _.extend({
......
......@@ -39,7 +39,7 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
if (options.showLoader) {
options.showLoader();
}
tagModel.deleteTag(options.guid, options.tagName, {
tagModel.deleteAssociation(options.guid, options.tagName, {
skipDefaultError: true,
success: function(data) {
var msg = "Tag " + name.name + Messages.removeSuccessMessage;
......
......@@ -94,10 +94,12 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'pnotify.button
history: false
}
}, options)).get().on('pnotify.confirm', function() {
$('.ui-pnotify-modal-overlay').remove().fadeOut();
if (options.ok) {
options.ok();
}
}).on('pnotify.cancel', function() {
$('.ui-pnotify-modal-overlay').remove().fadeOut();
if (options.cancel) {
options.cancel();
}
......@@ -229,8 +231,11 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'pnotify.button
};
Utils.getUrlState = {
getQueryUrl: function() {
getQueryUrl: function(url) {
var hashValue = window.location.hash;
if (url) {
hashValue = url;
}
return {
firstValue: hashValue.split('/')[1],
hash: hashValue,
......@@ -259,8 +264,8 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'pnotify.button
getFirstValue: function() {
return this.getQueryUrl().firstValue;
},
getQueryParams: function() {
var qs = this.getQueryUrl().queyParams[1];
getQueryParams: function(url) {
var qs = this.getQueryUrl(url).queyParams[1];
if (typeof qs == "string") {
qs = qs.split('+').join(' ');
var params = {},
......
......@@ -97,7 +97,8 @@ define(['require',
require(['views/tag/TagLayoutView'], function(TagLayoutView) {
that.RTagLayoutView.show(new TagLayoutView({
collection: that.collection,
tag: that.tag
tag: that.tag,
typeHeaders: that.typeHeaders
}));
});
},
......
......@@ -22,8 +22,9 @@ define(['require',
'utils/Utils',
'utils/Messages',
'utils/Globals',
'utils/UrlLinks'
], function(require, Backbone, TagLayoutViewTmpl, Utils, Messages, Globals, UrlLinks) {
'utils/UrlLinks',
'models/VTag'
], function(require, Backbone, TagLayoutViewTmpl, Utils, Messages, Globals, UrlLinks, VTag) {
'use strict';
var TagLayoutView = Backbone.Marionette.LayoutView.extend(
......@@ -58,11 +59,11 @@ define(['require',
* @constructs
*/
initialize: function(options) {
_.extend(this, _.pick(options, 'tag', 'collection'));
_.extend(this, _.pick(options, 'tag', 'collection', 'typeHeaders'));
},
bindEvents: function() {
var that = this;
this.listenTo(this.collection, "reset add", function() {
this.listenTo(this.collection, "reset add remove", function() {
this.tagsAndTypeGenerator('collection');
}, this);
this.ui.tagsParent.on('click', 'li.parent-node a', function() {
......@@ -163,7 +164,6 @@ define(['require',
if (this.createTag) {
this.createTag = false;
}
},
onClickCreateTag: function(e) {
var that = this;
......@@ -257,8 +257,6 @@ define(['require',
duplicateAttributeList.push(obj.name);
}
});
var notifyObj = {
confirm: {
confirm: true,
......@@ -288,7 +286,6 @@ define(['require',
Utils.notifyConfirm(notifyObj);
return false;
}
}
this.json = {
classificationDefs: [{
......@@ -312,6 +309,7 @@ define(['require',
content: "Tag " + that.name + Messages.addSuccessMessage
});
modal.trigger('cancel');
that.typeHeaders.fetch({ reset: true });
}
});
},
......@@ -342,7 +340,8 @@ define(['require',
container: 'body',
content: function() {
return "<ul class='tagPopoverList'>" +
"<li class='listTerm' ><i class='fa fa-search'></i> <a href='javascript:void(0)' data-fn='onSearchTerm'>Search Tag</a></li>" +
"<li class='listTerm' ><i class='fa fa-search'></i> <a href='javascript:void(0)' data-fn='onSearchTag'>Search Tag</a></li>" +
"<li class='listTerm' ><i class='fa fa-trash-o'></i> <a href='javascript:void(0)' data-fn='onDeleteTag'>Delete Tag</a></li>" +
"</ul>";
}
});
......@@ -353,7 +352,7 @@ define(['require',
$(this).popover('toggle');
});
},
onSearchTerm: function() {
onSearchTag: function() {
Utils.setUrl({
url: '#!/search/searchResult',
urlParams: {
......@@ -367,6 +366,65 @@ define(['require',
mergeBrowserUrl: false,
trigger: true
});
},
onDeleteTag: function() {
var that = this;
this.tagName = this.ui.tagsParent.find('li.active').find("a").data('name');
this.tagDeleteData = this.ui.tagsParent.find('li.active');
var notifyObj = {
ok: function(argument) {
that.onNotifyOk();
},
cancel: function(argument) {}
}
var text = "Are you sure you want to delete the tag"
notifyObj['text'] = text;
notifyObj['stack'] = {
'dir1': 'down',
'dir2': 'right',
'modal': true
};
Utils.notifyConfirm(notifyObj);
},
onNotifyOk: function(data) {
var that = this,
deleteTagData = this.collection.fullCollection.findWhere({ name: this.tagName }),
classificationData = deleteTagData.toJSON(),
deleteJson = {
classificationDefs: [classificationData],
entityDefs: [],
enumDefs: [],
structDefs: []
};
deleteTagData.deleteTag({
data: JSON.stringify(deleteJson),
success: function() {
Utils.notifySuccess({
content: "Tag " + that.tagName + Messages.deleteSuccessMessage
});
var searchUrl = Globals.saveApplicationState.tabState.searchUrl;
var urlObj = Utils.getUrlState.getQueryParams(searchUrl);
if (urlObj && urlObj.tag && urlObj.tag === that.tagName) {
Globals.saveApplicationState.tabState.searchUrl = "#!/search";
}
that.ui.tagsParent.find('li.active').removeClass('active');
if (that.tagDeleteData.prev().length === 0) {
that.tagDeleteData.next().addClass('active');
} else {
that.tagDeleteData.prev().addClass('active');
}
Utils.setUrl({
url: that.ui.tagsParent.find('li.active').find("a").attr("href"),
mergeBrowserUrl: false,
trigger: true,
updateTabState: function() {
return { tagUrl: that.url, stateChanged: true };
}
});
that.collection.remove(deleteTagData);
that.typeHeaders.fetch({ reset: true });
}
});
}
});
return TagLayoutView;
......
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