blob: b01ff1f992166ddd0447cc69ccada86dad19ea9f [file] [log] [blame]
/**
* 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",
"hbs!tmpl/search/tree/GlossaryTreeLayoutView_tmpl",
"utils/Utils",
'utils/Messages',
"utils/Globals",
"utils/UrlLinks",
"utils/CommonViewFunction",
"collection/VSearchList",
"collection/VGlossaryList",
"jstree"
], function(require, GlossaryTreeLayoutView_tmpl, Utils, Messages, Globals, UrlLinks, CommonViewFunction, VSearchList, VGlossaryList) {
"use strict";
var GlossaryTreeLayoutView = Marionette.LayoutView.extend({
template: GlossaryTreeLayoutView_tmpl,
regions: {},
ui: {
refreshTree: '[data-id="refreshTree"]',
termSearchTree: '[data-id="termSearchTree"]',
createGlossary: '[data-id="createGlossary"]',
showGlossaryType: '[data-id="showGlossaryType"]',
importGlossary: "[data-id='importGlossary']",
downloadTemplate: "[data-id='downloadTemplate']",
glossaryTreeLoader: ".glossary-tree-loader"
},
templateHelpers: function() {
return {
apiBaseUrl: UrlLinks.apiBaseUrl,
importTmplUrl: UrlLinks.glossaryImportTempUrl()
};
},
events: function() {
var events = {},
that = this;
events["click " + this.ui.refreshTree] = function(e) {
that.changeLoaderState(true);
that.ui.refreshTree.attr("disabled", true).tooltip("hide");
var type = $(e.currentTarget).data("type");
e.stopPropagation();
that.refresh({ type: type });
};
events["click " + this.ui.createGlossary] = function(e) {
var that = this;
e.stopPropagation();
CommonViewFunction.createEditGlossaryCategoryTerm({
isGlossaryView: true,
collection: that.glossaryCollection,
callback: function(rModel) {
that.glossaryCollection.fullCollection.add(rModel);
},
onModalClose: function() {}
})
};
events["click " + this.ui.showGlossaryType] = function(e) {
var getTreeData, displayText;
e.stopPropagation();
this.isTermView = !this.isTermView;
this.glossarySwitchBtnUpdate();
};
events["click " + this.ui.importGlossary] = function(e) {
e.stopPropagation();
var $target = $(e.target);
if ($target.parents(".disable-list-option").length == 0 && $target.hasClass("disable-list-option") == false) {
that.onClickImportGlossary();
}
};
events['click ' + this.ui.downloadTemplate] = function(e) {
e.stopPropagation();
};
return events;
},
bindEvents: function() {
var that = this;
this.listenTo(
this.glossaryCollection.fullCollection, "reset add change",
function(skip) {
if (this.ui.termSearchTree.jstree(true)) {
that.isGlossaryTree = true; //To Keep the selection of Term after any new Glossary is Created.
this.ui.termSearchTree.jstree(true).refresh();
} else {
this.renderGlossaryTree();
}
that.changeLoaderState();
that.ui.refreshTree.attr("disabled", false);
},
this
);
if (this.options.categoryEvent) {
this.options.categoryEvent.on("Success:TermRename", function(options) {
that.refresh();
})
}
$('body').on('click', '.termPopoverOptions li, .categoryPopoverOptions li', function(e) {
that.$('.termPopover,.categoryPopover').popover('hide');
that[$(this).find('a').data('fn')](e)
});
},
glossarySwitchBtnUpdate: function() {
var tooltipTitle = (this.isTermView ? "Show Category" : "Show Term");
this.ui.showGlossaryType.attr({ "data-original-title": tooltipTitle, "title": tooltipTitle });
this.ui.showGlossaryType.tooltip('hide');
this.ui.showGlossaryType.find("i").toggleClass("switch-button");
if (this.isTermView) {
this.ui.importGlossary.removeClass("disable-list-option").find('a').attr("href", "javascript:void(0)");
this.ui.downloadTemplate.removeClass("disable-list-option").find('a').attr("href", UrlLinks.glossaryImportTempUrl());
} else {
this.ui.importGlossary.addClass("disable-list-option").find('a').removeAttr("href");
this.ui.downloadTemplate.addClass("disable-list-option").find('a').removeAttr("href");
}
this.ui.termSearchTree.jstree(true).refresh();
},
initialize: function(options) {
this.options = options;
_.extend(
this,
_.pick(
options,
"typeHeaders",
"searchVent",
"entityDefCollection",
"enumDefCollection",
"classificationDefCollection",
"searchTableColumns",
"searchTableFilters",
"metricCollection",
"query",
"categoryEvent"
)
);
this.glossaryTermId = this.glossaryId = null;
this.glossaryCollection = new VGlossaryList([], {
comparator: function(item) {
return item.get("name");
}
});
this.getViewType();
this.bindEvents();
//To stop the trigger Search event, if the node is selected in Old UI and swicthed to New UI.
this.isGlossaryTree = this.isGlossryTreeview();
},
isGlossryTreeview: function() {
var queryParams = Utils.getUrlState.getQueryParams();
if (queryParams && (queryParams.gType === "term" || queryParams.gType === "category")) {
return true;
}
},
onRender: function() {
this.changeLoaderState(true);
this.fetchGlossary();
},
changeLoaderState: function(showLoader) {
if (showLoader) {
this.ui.termSearchTree.hide();
this.ui.glossaryTreeLoader.show();
} else {
this.ui.termSearchTree.show();
this.ui.glossaryTreeLoader.hide();
}
},
onBeforeDestroy: function() {
this.options.categoryEvent.off("Success:TermRename")
},
getViewType: function() {
if (Utils.getUrlState.isGlossaryTab()) {
this.isTermView = this.options.value.viewType ? this.options.value.viewType == "term" ? true : false : true;
} else {
this.isTermView = true;
}
},
manualRender: function(options) {
var that = this;
_.extend(this.options, options);
if (this.options.value === undefined) {
this.options.value = {};
}
if (!this.options.value.term && this.options.value.gType != 'category') {
if (this.ui.termSearchTree.jstree(true)) {
this.ui.termSearchTree.jstree(true).deselect_all();
}
this.glossaryTermId = null;
} else {
if (this.options.value.term) {
var glossaryName = this.options.value.term.split('@')[1],
termName = this.options.value.term.split('@')[0],
dataFound = this.glossaryCollection.fullCollection.find(function(obj) {
return obj.get("name") === glossaryName;
});
if (dataFound) {
var terms = dataFound.get('terms');
var terModel = _.find(terms, function(model) {
return model.displayText === termName;
});
if (terModel) {
if ((this.glossaryTermId && this.glossaryTermId !== terModel.termGuid) || this.glossaryTermId === null) {
if (this.glossaryTermId) {
this.ui.termSearchTree.jstree(true).deselect_node(this.glossaryTermId);
}
this.ui.termSearchTree.jstree(true).deselect_all();
this.glossaryTermId = terModel.termGuid;
this.fromManualRender = true;
this.ui.termSearchTree.jstree(true).select_node(terModel.termGuid);
}
}
}
}
}
},
fetchGlossary: function() {
this.glossaryCollection.fetch({ reset: true });
},
renderGlossaryTree: function() {
this.generateSearchTree({
$el: this.ui.termSearchTree
});
this.createTermAction();
},
onNodeSelect: function(options, showCategory) {
var nodeType = options.node.original.type;
if (this.isGlossaryTree && (nodeType === "GlossaryTerm" || nodeType === "GlossaryCategory")) {
//To stop the trigger Search event,if the node is selected in Old UI and swicthed to New UI.
this.isGlossaryTree = false;
return;
}
var name, type, selectedNodeId, that = this,
glossaryType = options.node.original.gType;
if (glossaryType == "category") {
selectedNodeId = options.node.id;
if (that.glossaryTermId != selectedNodeId) {
that.glossaryTermId = selectedNodeId;
that.onViewEdit();
} else {
that.glossaryTermId = null;
that.showDefaultPage();
}
} else if (glossaryType == "term") {
if (options) {
name = _.unescape(options.node.original.name);
selectedNodeId = options.node.id;
}
var termValue = null,
params = {
searchType: "basic"
};
if (this.options.value) {
if (this.options.value.isCF) {
this.options.value.isCF = null;
}
}
if (that.glossaryTermId != selectedNodeId) {
that.glossaryTermId = selectedNodeId;
termValue = options ? name + '@' + options.node.original.parent.name : this.options.value.term;
params['term'] = termValue;
params['gtype'] = 'term';
params['viewType'] = 'term';
params['guid'] = selectedNodeId;
} else {
that.glossaryTermId = params["term"] = null;
that.ui.termSearchTree.jstree(true).deselect_all(true);
if (!that.options.value.type && !that.options.value.tag && !that.options.value.query) {
that.showDefaultPage();
return;
}
}
that.glossaryId = null;
var searchParam = _.extend({}, that.options.value, params);
this.triggerSearch(searchParam);
if (that.searchVent) {
that.searchVent.trigger("Success:Category");
}
} else if (glossaryType = "glossary") { //This condition is added to setUrl after click on Glossary for highlighting issue from New UI to Old UI.
that.glossaryTermId = null;
if (that.glossaryId != options.node.id) {
that.glossaryId = options.node.id;
var params = {
"gId": that.glossaryId,
"gType": options.node.original.gType,
"viewType": (this.isTermView) ? "term" : "category"
};
Utils.setUrl({
url: '#!/glossary/' + that.glossaryId,
urlParams: params,
mergeBrowserUrl: false,
trigger: false,
updateTabState: true
});
} else {
that.glossaryId = null;
that.ui.termSearchTree.jstree(true).deselect_all(true);
this.showDefaultPage();
}
} else {
that.glossaryTermId = null;
if (that.glossaryId != options.node.id) {
that.glossaryId = options.node.id;
} else {
that.glossaryId = null;
that.ui.termSearchTree.jstree(true).deselect_all(true);
}
}
},
triggerSearch: function(params, url) {
var serachUrl = url ? url : '#!/search/searchResult';
Utils.setUrl({
url: serachUrl,
urlParams: params,
mergeBrowserUrl: false,
trigger: true,
updateTabState: true
});
},
showDefaultPage: function() {
Utils.setUrl({
url: '!/search',
mergeBrowserUrl: false,
trigger: true,
updateTabState: true
});
},
generateCategoryData: function(options) {
var that = this,
isSelected = false;
return _.map(options.data, function(obj) {
return {
"text": _.escape(obj.displayText),
"icon": "fa fa-files-o",
"guid": obj.categoryGuid,
"id": obj.categoryGuid,
"glossaryId": options.node.glossaryId,
"glossaryName": options.node.glossaryName,
"model": obj,
"type": "GlossaryCategory",
"gType": "category",
"children": true
}
});
},
getCategory: function(options) {
var that = this;
this.glossaryCollection.getCategory({
"guid": options.node.guid,
"related": true,
"ajaxOptions": {
success: function(data) {
if (data && data.children) {
options.callback(that.generateCategoryData(_.extend({}, { "data": data.children }, options)));
} else {
options.callback([]);
}
},
cust_error: function() {
options.callback([]);
}
}
});
},
getGlossaryTree: function(options) {
var that = this,
collection = (options && options.collection) || this.glossaryCollection.fullCollection,
listOfParents = [],
type = "term",
queryParams = Utils.getUrlState.getQueryParams(),
glossaryGuid = queryParams ? queryParams.gId : null,
gType = queryParams ? queryParams.gType : "term";
return this.glossaryCollection.fullCollection.map(function(model, i) {
var obj = model.toJSON(),
parent = {
text: _.escape(obj.name),
name: _.escape(obj.name),
icon: "fa fa-folder-o",
guid: obj.guid,
id: obj.guid,
model: obj,
type: obj.typeName ? obj.typeName : "GLOSSARY",
gType: "glossary",
children: [],
state: {
opened: true,
selected: (model.id === glossaryGuid && gType === "glossary") ? true : false
}
},
openGlossaryNodesState = function(treeDate) {
if (treeDate.length == 1) {
_.each(treeDate, function(model) {
model.state['opeaned'] = true;
})
}
},
generateNode = function(nodeOptions, model, isTermView, parentNode) {
var nodeStructure = {
text: _.escape(model.displayText),
name: _.escape(model.displayText),
type: nodeOptions.type,
gType: that.isTermView ? "term" : "category",
guid: nodeOptions.guid,
id: nodeOptions.guid,
parent: parentNode ? parentNode : obj,
glossaryName: parentNode ? parentNode.name ? parentNode.name : parentNode.displayText : obj.name,
glossaryId: parentNode ? parentNode.guid ? parentNode.guid : parentNode.categoryGuid : obj.guid,
model: model,
icon: "fa fa-file-o"
};
return nodeStructure;
};
if (!that.isTermView && obj.categories && !that.isTermView) {
var isSelected = false,
parentGuid = obj.guid,
parentCategoryGuid = null,
categoryList = [],
catrgoryRelation = [];
_.each(obj.categories, function(category) {
if (that.options.value) {
isSelected = that.options.value.guid ? that.options.value.guid == category.categoryGuid : false;
}
var typeName = category.typeName || "GlossaryCategory",
guid = category.categoryGuid,
categoryObj = {
id: guid,
guid: guid,
text: _.escape(category.displayText),
type: typeName,
gType: "category",
glossaryId: obj.guid,
glossaryName: obj.name,
children: [],
model: category,
icon: "fa fa-files-o"
};
if (category.parentCategoryGuid) {
catrgoryRelation.push({ parent: category.parentCategoryGuid, child: guid })
}
categoryList.push(categoryObj);
});
_.each(categoryList, function(category) {
var getRelation = _.find(catrgoryRelation, function(catrgoryObj) {
if (catrgoryObj.child == category.guid) return catrgoryObj;
})
if (getRelation) {
_.map(categoryList, function(catrgoryObj) {
if (catrgoryObj.guid == getRelation.parent) {
catrgoryObj["children"].push(category);
};
})
} else {
parent.children.push(category)
}
})
}
if (that.isTermView && obj.terms) {
var isSelected = false;
_.each(obj.terms, function(term) {
if (that.options.value) {
isSelected = that.options.value.term ? that.options.value.term.split('@')[0] == term.displayText : false;
}
var parentNodeDetails = {
type: term.typeName || "GlossaryTerm",
guid: term.termGuid
},
parentNodeProperties = {},
getParentNodeDetails = generateNode(parentNodeDetails, term, that.isTermView),
termParentNode = (_.extend(parentNodeProperties, getParentNodeDetails));
parent.children.push(termParentNode);
});
}
openGlossaryNodesState(parent);
return parent;
});
},
createTermAction: function() {
var that = this;
Utils.generatePopover({
el: this.$el,
contentClass: 'termPopoverOptions',
popoverOptions: {
selector: '.termPopover',
content: function() {
var type = $(this).data('detail'),
liString = "";
if (type == "glossary") {
liString = "<li data-type=" + type + " class='listTerm'><i class='fa fa-plus'></i> <a href='javascript:void(0)' data-fn='createSubNode'>Create Term</a></li>" +
"<li data-type=" + type + " class='listTerm'><i class='fa fa-list-alt'></i><a href='javascript:void(0)' data-fn='onViewEdit'>View/Edit Glossary</a></li>" +
"<li data-type=" + type + " class='listTerm'><i class='fa fa-trash-o'></i><a href='javascript:void(0)' data-fn='deleteNode'>Delete Glossary</a></li>"
} else {
liString = "<li data-type=" + type + " class='listTerm'><i class='fa fa-list-alt'></i><a href='javascript:void(0)' data-fn='onViewEdit'>View/Edit Term</a></li>" +
"<li data-type=" + type + " class='listTerm'><i class='fa fa-search'></i><a href='javascript:void(0)' data-fn='searchSelectedTerm'>Search</a></li>" +
"<li data-type=" + type + " class='listTerm'><i class='fa fa-trash-o'></i><a href='javascript:void(0)' data-fn='deleteNode'>Delete Term</a></li>"
}
return "<ul>" + liString + "</ul>";
}
}
});
},
createCategoryAction: function() {
var that = this;
Utils.generatePopover({
el: this.$('.categoryPopover'),
contentClass: 'categoryPopoverOptions',
popoverOptions: {
content: function() {
var type = $(this).data('detail'),
liString = "";
if (type == "glossary") {
liString = "<li data-type=" + type + " class='listTerm'><i class='fa fa-plus'></i> <a href='javascript:void(0)' data-fn='createSubNode'>Create Category</a></li>";
} else {
liString = "<li data-type=" + type + " class='listTerm'><i class='fa fa-list-alt'></i><a href='javascript:void(0)' data-fn='createSubNode'>Create Sub-Category</a></li>";
}
return "<ul>" + liString + "</ul>";
},
viewFixedPopover: true,
}
});
},
createSubNode: function(opt) {
var that = this,
selectednode = that.ui.termSearchTree.jstree("get_selected", true);
if ((selectednode[0].original.type == "GLOSSARY" || selectednode[0].original.type == "GlossaryCategory") && !this.isTermView) {
CommonViewFunction.createEditGlossaryCategoryTerm({
"isCategoryView": true,
"collection": that.glossaryCollection,
"callback": function(updateCollection) {
var updatedObj = {
categoryGuid: updateCollection.guid,
displayText: updateCollection.name,
relationGuid: updateCollection.anchor ? updateCollection.anchor.relationGuid : null
},
glossary = that.glossaryCollection.fullCollection.findWhere({ guid: updateCollection.anchor.glossaryGuid });
if (updateCollection.parentCategory) {
updatedObj["parentCategoryGuid"] = updateCollection.parentCategory.categoryGuid;
}
if (glossary) {
var glossaryAttributes = glossary.attributes || null;
if (glossaryAttributes) {
if (glossaryAttributes.categories) {
glossaryAttributes['categories'].push(updatedObj);
} else {
glossaryAttributes['categories'] = [updatedObj];
}
}
}
that.ui.termSearchTree.jstree(true).refresh();
},
"node": selectednode[0].original
})
} else {
CommonViewFunction.createEditGlossaryCategoryTerm({
"isTermView": true,
"callback": function() {
that.fetchGlossary();
that.options.categoryEvent.trigger("Success:Term", true);
},
"collection": that.glossaryCollection,
"node": selectednode[0].original
})
}
},
searchSelectedTerm: function() {
var params = {
searchType: "basic",
dslChecked: false,
term: this.options.value.term
};
this.triggerSearch(params);
},
deleteNode: function(opt) {
var that = this,
messageType = "",
selectednode = this.ui.termSearchTree.jstree("get_selected", true),
type = selectednode[0].original.type,
guid = selectednode[0].original.guid,
gId = selectednode[0].original.parent && selectednode[0].original.parent.guid,
options = {
success: function(rModel, response) {
var searchParam = null;
if (!gId) {
gId = guid;
}
var glossary = that.glossaryCollection.fullCollection.get(gId);
if (type == "GlossaryTerm") {
glossary.set('terms', _.reject(glossary.get('terms'), function(obj) {
return obj.termGuid == guid;
}), { silent: true });
}
Utils.notifySuccess({
content: messageType + Messages.getAbbreviationMsg(false, 'deleteSuccessMessage')
});
that.ui.termSearchTree.jstree(true).refresh();
var params = {
searchType: "basic",
term: null
};
that.glossaryTermId = null;
if (that.options.value.gType == "category") {
that.showDefaultPage();
} else {
searchParam = _.extend({}, that.options.value, params);
that.triggerSearch(searchParam);
}
},
complete: function() {
that.notificationModal.hideButtonLoader();
that.notificationModal.remove();
}
},
notifyObj = {
modal: true,
ok: function(obj) {
that.notificationModal = obj;
obj.showButtonLoader();
if (type == "Glossary" || type == "GLOSSARY") {
that.glossaryCollection.fullCollection.get(guid).destroy(options, { silent: true, reset: false });
} else if (type == "GlossaryCategory") {
new that.glossaryCollection.model().deleteCategory(guid, options);
} else if (type == "GlossaryTerm") {
new that.glossaryCollection.model().deleteTerm(guid, options);
}
},
okCloses: false,
cancel: function(argument) {}
};
if (type == "Glossary" || type == "GLOSSARY") {
messageType = "Glossary";
} else if (type == "GlossaryCategory") {
messageType = "Category"
} else if (type == "GlossaryTerm") {
messageType = "Term";
}
notifyObj['text'] = "Are you sure you want to delete the " + messageType;;
Utils.notifyConfirm(notifyObj);
},
onViewEdit: function() {
var that = this,
selectednode = this.ui.termSearchTree.jstree("get_selected", true),
type = selectednode[0].original.type,
guid = selectednode[0].original.guid,
gId = selectednode[0].original.parent && selectednode[0].original.parent.guid,
isGlossaryView = (type == 'GlossaryTerm' || type == 'GlossaryCategory') ? false : true,
model = this.glossaryCollection.fullCollection.get(guid),
termModel = this.glossaryCollection.fullCollection.get(gId);
if (isGlossaryView) {
CommonViewFunction.createEditGlossaryCategoryTerm({
"model": model,
"isGlossaryView": true,
"collection": this.glossaryCollection,
"callback": function(sModel) {
var data = sModel.toJSON();
model.set(data, { silent: true }); // update glossaryCollection
that.ui.termSearchTree.jstree(true).refresh();
}
});
} else {
var glossaryId = selectednode[0].original.glossaryId,
getSelectedParent = null,
params = null;
if (selectednode[0].parents.length > 2) {
getSelectedParent = selectednode[0].parents[selectednode[0].parents.length - 3];
} else {
getSelectedParent = selectednode[0].id;
}
params = {
gId: glossaryId,
guid: getSelectedParent,
gType: that.isTermView ? 'term' : 'category',
viewType: that.isTermView ? 'term' : 'category',
searchType: "basic"
}
if (type === "GlossaryTerm") {
//Below condition is used to keep the selection or Highlight after clicking on the viewEdit option on term.
params['term'] = selectednode[0].original.name + '@' + selectednode[0].original.parent.name;
}
var serachUrl = '#!/glossary/' + guid;
this.triggerSearch(params, serachUrl);
if (!this.isTermView && this.options.categoryEvent) {
that.options.categoryEvent.trigger("Success:Category", true);
}
}
},
generateSearchTree: function(options) {
var $el = options && options.$el,
data = options && options.data,
type = options && options.type,
that = this,
createAction = function(options) {
that.isTermView ? that.createTermAction() : that.createCategoryAction();
},
getEntityTreeConfig = function(opt) {
return {
plugins: ["search", "core", "sort", "conditionalselect", "changed", "wholerow", "node_customize"],
state: { opened: true },
search: {
show_only_matches: true,
case_sensitive: false
},
node_customize: {
default: function(el, node) {
var aTerm = $(el).find(">a.jstree-anchor");
aTerm.append("<span class='tree-tooltip'>" + _.escape(aTerm.text()) + "</span>");
var popoverClass = that.isTermView ? "fa fa-ellipsis-h termPopover " : "fa fa-ellipsis-h categoryPopover";
$(el).append('<div class="tools" data-type=' + node.original.gType + '><i class="' + popoverClass + '"rel="popover" data-detail=' + node.original.gType + '></i></div>');
}
},
core: {
data: function(node, cb) {
if (node.id === "#") {
cb(that.getGlossaryTree());
} else {
that.getCategory({ "node": node.original, "callback": cb });
}
},
multiple: false
}
};
};
$el.jstree(
getEntityTreeConfig({
type: ""
})
).on("load_node.jstree", function(e, data) {}).on("open_node.jstree", function(e, data) {}).on("select_node.jstree", function(e, data) {
if (that.fromManualRender !== true) {
that.onNodeSelect(data);
if (that.glossaryId === data.node.original.id) {
//This condition is to reset the Glossary ID to null after clicking on the Logo.
that.glossaryId = null;
}
} else {
that.fromManualRender = false;
}
createAction(_.extend({}, options, data));
})
.on("open_node.jstree", function(e, data) {
createAction(_.extend({}, options, data));
})
.on("search.jstree", function(nodes, str, res) {
if (str.nodes.length === 0) {
$el.jstree(true).hide_all();
$el.parents(".panel").addClass("hide");
} else {
$el.parents(".panel").removeClass("hide");
}
}).on('loaded.jstree', function() {
if (that.options.value) {
if (that.options.value.term) {
that.selectDefaultNode();
}
if (!that.isTermView) {
that.selectDefaultNode();
that.options.categoryEvent.trigger("Success:Category", true);
}
}
//Below condition is for switching the the Show Term/Show Category toggle button on switching from Old to New UI.
if (that.isTermView === false) {
that.glossarySwitchBtnUpdate();
}
}).on("hover_node.jstree", function(nodes, str, res) {
var aTerm = that.$("#" + str.node.a_attr.id),
termOffset = aTerm.find(">.jstree-icon").offset();
that.$(".tree-tooltip").removeClass("show");
setTimeout(function() {
if (aTerm.hasClass("jstree-hovered") && termOffset.top && termOffset.left) {
aTerm.find(">span.tree-tooltip").css({
top: "calc(" + termOffset.top + "px - 45px)",
left: "24px"
}).addClass("show");
}
}, 1200);
}).on("dehover_node.jstree", function(nodes, str, res) {
that.$(".tree-tooltip").removeClass("show");
});
},
selectDefaultNode: function() {
this.ui.termSearchTree.jstree(true).select_node(this.options.value.guid);
},
refresh: function(options) {
this.glossaryTermId = null;
this.fetchGlossary();
this.isGlossaryTree = true;
},
onClickImportGlossary: function() {
var that = this;
require([
'views/import/ImportLayoutView'
], function(ImportLayoutView) {
var view = new ImportLayoutView({
callback: function() {
that.refresh();
},
isGlossary: true
});
});
}
});
return GlossaryTreeLayoutView;
});