Commit 3b75d56d by kevalbhatt Committed by Madhan Neethiraj

ATLAS-2678: UI - term-to-term association attribute values are not saved

parent cbca591d
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2" for="name">{{@key}}</label> <label class="control-label col-sm-2" for="name">{{@key}}</label>
<div class="col-sm-10"> <div class="col-sm-10">
<input class="form-control" name="{{@key}}" value="" data-id="displayName" placeholder="{{@key}}" /> <input class="form-control" name="{{@key}}" data-id="displayName" placeholder="{{@key}}" />
</div> </div>
</div> </div>
{{/each}} {{/each}}
......
...@@ -622,9 +622,7 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum ...@@ -622,9 +622,7 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
} }
}); });
modal.on('ok', function() { 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)); CommonViewFunction.createEditGlossaryCategoryTermSubmit(_.extend({ "ref": view, "modal": modal }, options));
}); });
modal.on('closeModal', function() { modal.on('closeModal', function() {
...@@ -669,9 +667,7 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum ...@@ -669,9 +667,7 @@ define(['require', 'utils/Utils', 'modules/Modal', 'utils/Messages', 'utils/Enum
modal.trigger('closeModal'); modal.trigger('closeModal');
}, },
cust_error: function() { cust_error: function() {
if (isGlossaryView) { modal.$el.find('button.ok').attr("disabled", false);
modal.$el.find('button.ok').attr("disabled", false);
}
} }
} }
if (model) { if (model) {
......
...@@ -47,7 +47,6 @@ define(['require', ...@@ -47,7 +47,6 @@ define(['require',
/** ui selector cache */ /** ui selector cache */
ui: { ui: {
termAttributeForm: '[data-id="termAttributeForm"]',
wizard: '[data-id="wizard"]' wizard: '[data-id="wizard"]'
}, },
/** ui events hash */ /** ui events hash */
...@@ -178,7 +177,7 @@ define(['require', ...@@ -178,7 +177,7 @@ define(['require',
} }
model.assignCategoryToTerm(_.extend(ajaxOptions, { data: JSON.stringify(data), guid: data.guid })); model.assignCategoryToTerm(_.extend(ajaxOptions, { data: JSON.stringify(data), guid: data.guid }));
} else if (this.isAttributeRelationView) { } else if (this.isAttributeRelationView) {
termAttributeFormData = this.ui.termAttributeForm.serializeArray().reduce(function(obj, item) { termAttributeFormData = this.$('[data-id="termAttributeForm"]').serializeArray().reduce(function(obj, item) {
obj[item.name] = item.value; obj[item.name] = item.value;
return obj; return obj;
}, {}), }, {}),
......
...@@ -78,12 +78,13 @@ define(['require', ...@@ -78,12 +78,13 @@ define(['require',
this.onClickRemoveAssociationBtn(e); this.onClickRemoveAssociationBtn(e);
} else { } else {
var guid = $(e.currentTarget).data('guid'), var guid = $(e.currentTarget).data('guid'),
gId = this.data.anchor && this.data.anchor.glossaryGuid,
categoryObj = _.find(this.data.categories, { "categoryGuid": guid }); categoryObj = _.find(this.data.categories, { "categoryGuid": guid });
this.glossary.selectedItem = { "type": "GlossaryCategory", "guid": guid, "model": categoryObj }; this.glossary.selectedItem = { "type": "GlossaryCategory", "guid": guid, "model": categoryObj };
Utils.setUrl({ Utils.setUrl({
url: '#!/glossary/' + guid, url: '#!/glossary/' + guid,
mergeBrowserUrl: false, mergeBrowserUrl: false,
urlParams: { gType: "category", viewType: "category", fromView: "glossary" }, urlParams: { gType: "category", viewType: "category", fromView: "glossary", gId: gId },
trigger: true, trigger: true,
updateTabState: true updateTabState: true
}); });
...@@ -94,12 +95,13 @@ define(['require', ...@@ -94,12 +95,13 @@ define(['require',
this.onClickRemoveAssociationBtn(e); this.onClickRemoveAssociationBtn(e);
} else { } else {
var guid = $(e.currentTarget).data('guid'), var guid = $(e.currentTarget).data('guid'),
gId = this.data.anchor && this.data.anchor.glossaryGuid,
termObj = _.find(this.data.terms, { "termGuid": guid }); termObj = _.find(this.data.terms, { "termGuid": guid });
this.glossary.selectedItem = { "type": "GlossaryTerm", "guid": guid, "model": termObj }; this.glossary.selectedItem = { "type": "GlossaryTerm", "guid": guid, "model": termObj };
Utils.setUrl({ Utils.setUrl({
url: '#!/glossary/' + guid, url: '#!/glossary/' + guid,
mergeBrowserUrl: false, mergeBrowserUrl: false,
urlParams: { gType: "term", viewType: "term", fromView: "glossary" }, urlParams: { gType: "term", viewType: "term", fromView: "glossary", gId: gId },
trigger: true, trigger: true,
updateTabState: true updateTabState: true
}); });
...@@ -427,15 +429,18 @@ define(['require', ...@@ -427,15 +429,18 @@ define(['require',
renderTagTableLayoutView: function(options) { renderTagTableLayoutView: function(options) {
var that = this; var that = this;
require(['views/tag/TagDetailTableLayoutView'], function(TagDetailTableLayoutView) { require(['views/tag/TagDetailTableLayoutView'], function(TagDetailTableLayoutView) {
that.RTagTableLayoutView.show(new TagDetailTableLayoutView(_.extend({}, options, { if (that.RTagTableLayoutView) {
"entityName": that.ui.title.text(), that.RTagTableLayoutView.show(new TagDetailTableLayoutView(_.extend({}, options, {
"fetchCollection": that.getData.bind(that), "entityName": that.ui.title.text(),
"entity": that.data "fetchCollection": that.getData.bind(that),
}))); "entity": that.data
})));
}
}); });
}, },
renderSearchResultLayoutView: function(options) { renderSearchResultLayoutView: function(options) {
var that = this; var that = this;
require(['views/search/SearchResultLayoutView'], function(SearchResultLayoutView) { require(['views/search/SearchResultLayoutView'], function(SearchResultLayoutView) {
var value = { var value = {
'tag': "PII", 'tag': "PII",
...@@ -452,11 +457,13 @@ define(['require', ...@@ -452,11 +457,13 @@ define(['require',
renderRelationLayoutView: function(options) { renderRelationLayoutView: function(options) {
var that = this; var that = this;
require(['views/glossary/TermRelationAttributeLayoutView'], function(TermRelationAttributeLayoutView) { require(['views/glossary/TermRelationAttributeLayoutView'], function(TermRelationAttributeLayoutView) {
that.RRelationLayoutView.show(new TermRelationAttributeLayoutView(_.extend({}, options, { if (that.RRelationLayoutView) {
"entityName": that.ui.title.text(), that.RRelationLayoutView.show(new TermRelationAttributeLayoutView(_.extend({}, options, {
"fetchCollection": that.getData.bind(that), "entityName": that.ui.title.text(),
"data": that.data "fetchCollection": that.getData.bind(that),
}))); "data": that.data
})));
}
}); });
}, },
}); });
......
...@@ -120,6 +120,7 @@ define(['require', ...@@ -120,6 +120,7 @@ define(['require',
var $tree = this.ui[this.viewType == "term" ? "termTree" : "categoryTree"]; var $tree = this.ui[this.viewType == "term" ? "termTree" : "categoryTree"];
if ($tree.jstree(true).refresh) { if ($tree.jstree(true).refresh) {
$tree.jstree(true).refresh(); $tree.jstree(true).refresh();
this.setValues({ trigger: false });
} }
} }
}, this); }, this);
...@@ -141,18 +142,18 @@ define(['require', ...@@ -141,18 +142,18 @@ define(['require',
this.getGlossary(); this.getGlossary();
} }
}, },
setValues: function() { setValues: function(options) {
if (this.viewType == "category") { if (this.viewType == "category") {
if (!this.ui.glossaryView.prop("checked")) { if (!this.ui.glossaryView.prop("checked")) {
this.ui.glossaryView.prop("checked", true).trigger("change"); this.ui.glossaryView.prop("checked", true).trigger("change", options);
} }
} else { } else {
if (this.ui.glossaryView.prop("checked")) { if (this.ui.glossaryView.prop("checked")) {
this.ui.glossaryView.prop("checked", false).trigger("change"); this.ui.glossaryView.prop("checked", false).trigger("change", options);
} }
} }
}, },
glossaryViewToggle: function(e) { glossaryViewToggle: function(e, options) {
var that = this; var that = this;
if (e.currentTarget.checked) { if (e.currentTarget.checked) {
this.$('.category-view').show(); this.$('.category-view').show();
...@@ -179,6 +180,7 @@ define(['require', ...@@ -179,6 +180,7 @@ define(['require',
guid: model.guid, guid: model.guid,
id: model.guid, id: model.guid,
model: model, model: model,
text: model.displayName,
gType: "glossary" gType: "glossary"
} }
} }
...@@ -188,22 +190,20 @@ define(['require', ...@@ -188,22 +190,20 @@ define(['require',
if (obj.guid) { if (obj.guid) {
var node = $tree.jstree(true).get_node(obj.guid); var node = $tree.jstree(true).get_node(obj.guid);
if (node) { if (node) {
$tree.jstree('activate_node', obj.guid);
this.glossary.selectedItem = node.original; this.glossary.selectedItem = node.original;
} else { $tree.jstree('activate_node', obj.guid);
setDefaultSelector();
} }
} else { } else {
setDefaultSelector(); setDefaultSelector();
$tree.jstree('activate_node', that.glossary.selectedItem.guid); $tree.jstree('activate_node', that.glossary.selectedItem.guid);
} }
this.query[this.viewType] = _.extend(obj, _.pick(this.glossary.selectedItem, 'model', 'guid', 'gType'), { "viewType": this.viewType, "isNodeNotFoundAtLoad": this.query[this.viewType].isNodeNotFoundAtLoad }); this.query[this.viewType] = _.extend(obj, _.pick(this.glossary.selectedItem, 'model', 'guid', 'gType', 'type'), { "viewType": this.viewType, "isNodeNotFoundAtLoad": this.query[this.viewType].isNodeNotFoundAtLoad });
var url = _.isEmpty(this.glossary.selectedItem) ? '#!/glossary' : '#!/glossary/' + this.glossary.selectedItem.guid; var url = _.isEmpty(this.glossary.selectedItem) ? '#!/glossary' : '#!/glossary/' + this.glossary.selectedItem.guid;
Utils.setUrl({ Utils.setUrl({
"url": url, "url": url,
"urlParams": _.extend({}, _.omit(obj, 'guid', 'model', 'type', 'isNodeNotFoundAtLoad')), "urlParams": _.extend({}, _.omit(obj, 'guid', 'model', 'type', 'isNodeNotFoundAtLoad')),
"mergeBrowserUrl": false, "mergeBrowserUrl": false,
"trigger": false, "trigger": (options && !_.isUndefined(options.trigger) ? options.trigger : true),
"updateTabState": true "updateTabState": true
}); });
} }
...@@ -369,10 +369,11 @@ define(['require', ...@@ -369,10 +369,11 @@ define(['require',
var $tree = this.ui[this.viewType == "term" ? "termTree" : "categoryTree"], var $tree = this.ui[this.viewType == "term" ? "termTree" : "categoryTree"],
node = $tree.jstree(true).get_node(this.guid); node = $tree.jstree(true).get_node(this.guid);
if (node) { if (node) {
$tree.jstree('activate_node', this.guid); $tree.jstree('activate_node', this.guid, { skipTrigger: true });
delete this.value.fromView; delete this.value.fromView;
delete this.value.updateView; delete this.value.updateView;
this.glossary.selectedItem = node.original; this.glossary.selectedItem = node.original;
this.query[this.viewType] = _.extend({}, _.pick(this.glossary.selectedItem, 'model', 'guid', 'gType', 'type'), { "viewType": this.viewType });
Utils.setUrl({ Utils.setUrl({
url: '#!/glossary/' + this.guid, url: '#!/glossary/' + this.guid,
urlParams: this.value, urlParams: this.value,
...@@ -458,21 +459,29 @@ define(['require', ...@@ -458,21 +459,29 @@ define(['require',
createAction(_.extend({}, options, data)); createAction(_.extend({}, options, data));
}) })
.on("select_node.jstree", function(e, data) { .on("select_node.jstree", function(e, data) {
that.glossary.selectedItem = data.node.original; if (that.isAssignView) {
var popoverClassName = (type == "term" ? '.termPopover' : '.categoryPopover'), that.glossary.selectedItem = data.node.original;
currentClickedPopoverEl = ""; } else {
if (data.event) { var popoverClassName = (type == "term" ? '.termPopover' : '.categoryPopover'),
if ($(data.event.currentTarget).parent().hasClass('jstree-leaf')) { currentClickedPopoverEl = "";
currentClickedPopoverEl = $(data.event.currentTarget).parent().find(popoverClassName); if (data.event) {
} else { if ($(data.event.currentTarget).parent().hasClass('jstree-leaf')) {
currentClickedPopoverEl = $(data.event.currentTarget).parent().find(">div " + popoverClassName); currentClickedPopoverEl = $(data.event.currentTarget).parent().find(popoverClassName);
} else {
currentClickedPopoverEl = $(data.event.currentTarget).parent().find(">div " + popoverClassName);
}
$(popoverClassName).not(currentClickedPopoverEl).popover('hide');
}
if (that.query[type].isNodeNotFoundAtLoad == true) {
that.query[type].isNodeNotFoundAtLoad = false;
} else if (type == that.viewType) {
if (data && data.event && data.event.skipTrigger) {
return;
} else if (that.glossary.selectedItem.guid !== data.node.original.guid) {
that.glossary.selectedItem = data.node.original;
that.triggerUrl();
}
} }
$(popoverClassName).not(currentClickedPopoverEl).popover('hide');
}
if (that.query[type].isNodeNotFoundAtLoad == true) {
that.query[type].isNodeNotFoundAtLoad = false;
} else if (type == that.viewType) {
that.triggerUrl();
} }
}).on("search.jstree", function(e, data) { }).on("search.jstree", function(e, data) {
createAction(_.extend({}, options, data)); createAction(_.extend({}, options, data));
...@@ -530,7 +539,7 @@ define(['require', ...@@ -530,7 +539,7 @@ define(['require',
contentClass: 'termPopoverOptions', contentClass: 'termPopoverOptions',
popoverOptions: { popoverOptions: {
content: function() { content: function() {
var node = that.glossary.selectedItem, var node = that.query[that.viewType],
liString = ""; liString = "";
if (node.type == "Glossary") { if (node.type == "Glossary") {
liString = "<li data-type=" + node.type + " class='listTerm'><i class='fa fa-plus'></i> <a href='javascript:void(0)' data-fn='createSubNode'>Create Term</a></li>" + liString = "<li data-type=" + node.type + " class='listTerm'><i class='fa fa-plus'></i> <a href='javascript:void(0)' data-fn='createSubNode'>Create Term</a></li>" +
...@@ -550,7 +559,7 @@ define(['require', ...@@ -550,7 +559,7 @@ define(['require',
contentClass: 'categoryPopoverOptions', contentClass: 'categoryPopoverOptions',
popoverOptions: { popoverOptions: {
content: function() { content: function() {
var node = that.glossary.selectedItem, var node = that.query[that.viewType],
liString = ""; liString = "";
if (node.type == "Glossary") { if (node.type == "Glossary") {
liString = "<li data-type=" + node.type + " class='listTerm'><i class='fa fa-plus'></i> <a href='javascript:void(0)' data-fn='createSubNode'>Create Category</a></li>" + liString = "<li data-type=" + node.type + " class='listTerm'><i class='fa fa-plus'></i> <a href='javascript:void(0)' data-fn='createSubNode'>Create Category</a></li>" +
...@@ -678,16 +687,17 @@ define(['require', ...@@ -678,16 +687,17 @@ define(['require',
var selectedItem = this.glossary.selectedItem; var selectedItem = this.glossary.selectedItem;
if (this.glossaryCollection.length && (_.isEmpty(selectedItem) || this.query[this.viewType].isNodeNotFoundAtLoad)) { if (this.glossaryCollection.length && (_.isEmpty(selectedItem) || this.query[this.viewType].isNodeNotFoundAtLoad)) {
var model = selectedItem.model var model = selectedItem.model
if (model && !(model.parentCategory || model.parentCategoryGuid)) { if (model && !_.isUndefined(model.parentCategory || model.parentCategoryGuid)) {
selectedItem = { "model": this.glossaryCollection.first().toJSON() }; selectedItem = { "model": this.glossaryCollection.first().toJSON() };
selectedItem.guid = selectedItem.model.guid; selectedItem.guid = selectedItem.model.guid;
selectedItem.type = "Glossary"; selectedItem.type = "Glossary";
selectedItem.gType = "glossary";
selectedItem.text = model.displayName;
this.glossary.selectedItem = selectedItem; this.glossary.selectedItem = selectedItem;
this.query[this.viewType].model = selectedItem.model; this.query[this.viewType].model = selectedItem.model;
this.query[this.viewType].gType = "glossary" this.query[this.viewType].gType = "glossary";
this.query[this.viewType].type = "Glossary";
delete this.query[this.viewType].gId; delete this.query[this.viewType].gId;
} else {
this.query[this.viewType].isNodeNotFoundAtLoad = false;
} }
} }
if (_.isEmpty(selectedItem)) { if (_.isEmpty(selectedItem)) {
......
...@@ -231,7 +231,7 @@ define(['require', ...@@ -231,7 +231,7 @@ define(['require',
getTerms: function(key) { getTerms: function(key) {
var terms = _.map(that.data[key], function(obj) { var terms = _.map(that.data[key], function(obj) {
var name = _.escape(obj.displayText); var name = _.escape(obj.displayText);
return '<span class="btn btn-action btn-sm btn-icon btn-blue" title=' + _.escape(name) + ' data-id="termClick"><span>' + name + '</span><i class="fa fa-close" data-id="deleteAttribute" data-attributename="' + key + '" data-termguid="' + obj.termGuid + '" data-type="term" title="Remove Term"></i></span>'; return '<span data-guid="' + obj.termGuid + '" class="btn btn-action btn-sm btn-icon btn-blue" title=' + _.escape(name) + ' data-id="termClick"><span>' + name + '</span><i class="fa fa-close" data-id="deleteAttribute" data-attributename="' + key + '" data-termguid="' + obj.termGuid + '" data-type="term" title="Remove Term"></i></span>';
}).join(""), }).join(""),
attributeButtons = ""; attributeButtons = "";
if (terms.length) { if (terms.length) {
......
...@@ -102,9 +102,11 @@ define(['require', ...@@ -102,9 +102,11 @@ define(['require',
var that = this; var that = this;
require(['utils/TableLayout'], function(TableLayout) { require(['utils/TableLayout'], function(TableLayout) {
var cols = new Backgrid.Columns(that.getSchemaTableColumns()); var cols = new Backgrid.Columns(that.getSchemaTableColumns());
that.RTagTableLayoutView.show(new TableLayout(_.extend({}, that.commonTableOptions, { if (that.RTagTableLayoutView) {
columns: cols that.RTagTableLayoutView.show(new TableLayout(_.extend({}, that.commonTableOptions, {
}))); columns: cols
})));
}
}); });
}, },
getSchemaTableColumns: function(options) { getSchemaTableColumns: function(options) {
......
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