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