Commit fc7d3009 by kevalbhatt Committed by Madhan Neethiraj

ATLAS-1756: UI update to allow user to edit tag attribute values

parent b2bee2cc
...@@ -188,6 +188,9 @@ ul { ...@@ -188,6 +188,9 @@ ul {
background-color: $transparent; background-color: $transparent;
border: 1px solid $color_jungle_green_approx; border: 1px solid $color_jungle_green_approx;
cursor: pointer; cursor: pointer;
&+.auditDetailBtn {
margin-left: 5px;
}
} }
.add-seperator { .add-seperator {
...@@ -315,6 +318,10 @@ ul { ...@@ -315,6 +318,10 @@ ul {
&.editbutton[data-id="editButton"] { &.editbutton[data-id="editButton"] {
display: none !important; display: none !important;
} }
&[data-id="delete"],
&[data-id="edit"] {
display: none;
}
} }
} }
...@@ -340,3 +347,39 @@ ul { ...@@ -340,3 +347,39 @@ ul {
.no-padding { .no-padding {
padding: 0px !important; padding: 0px !important;
} }
.no-padding-bottom {
padding-bottom: 0px !important;
}
.no-padding-top {
padding-top: 0px !important;
}
.no-padding-left {
padding-left: 0px !important;
}
.no-padding-right {
padding-right: 0px !important;
}
.no-margin {
margin: 0px !important;
}
.no-margin-bottom {
margin-bottom: 0px !important;
}
.no-margin-top {
margin-top: 0px !important;
}
.no-margin-left {
margin-left: 0px !important;
}
.no-margin-right {
margin-right: 0px !important;
}
...@@ -168,15 +168,19 @@ require(['App', ...@@ -168,15 +168,19 @@ require(['App',
'select2' 'select2'
], function(App, Router, CommonViewFunction, Globals, UrlLinks, VEntityList, VTagList) { ], function(App, Router, CommonViewFunction, Globals, UrlLinks, VEntityList, VTagList) {
var that = this; var that = this;
this.asyncFetchCounter = 3; this.asyncFetchCounter = 4;
this.entityDefCollection = new VEntityList(); this.entityDefCollection = new VEntityList();
this.entityDefCollection.url = UrlLinks.entitiesDefApiUrl(); this.entityDefCollection.url = UrlLinks.entitiesDefApiUrl();
this.typeHeaders = new VTagList(); this.typeHeaders = new VTagList();
this.typeHeaders.url = UrlLinks.typesApiUrl(); this.typeHeaders.url = UrlLinks.typesApiUrl();
this.enumDefCollection = new VTagList();
this.enumDefCollection.url = UrlLinks.enumDefApiUrl();
this.enumDefCollection.modelAttrName = "enumDefs";
App.appRouter = new Router({ App.appRouter = new Router({
entityDefCollection: this.entityDefCollection, entityDefCollection: this.entityDefCollection,
typeHeaders: this.typeHeaders typeHeaders: this.typeHeaders,
enumDefCollection: this.enumDefCollection
}); });
var startApp = function() { var startApp = function() {
...@@ -228,4 +232,11 @@ require(['App', ...@@ -228,4 +232,11 @@ require(['App',
startApp(); startApp();
} }
}); });
this.enumDefCollection.fetch({
skipDefaultError: true,
complete: function() {
--that.asyncFetchCounter;
startApp();
}
});
}); });
...@@ -52,8 +52,8 @@ define(['require', ...@@ -52,8 +52,8 @@ define(['require',
return this.constructor.nonCrudOperation.call(this, url, 'GET', options); return this.constructor.nonCrudOperation.call(this, url, 'GET', options);
}, },
saveTraitsEntity: function(options) { saveTraitsEntity: function(token, options) {
var url = UrlLinks.entitiesTraitsApiUrl(); var url = UrlLinks.entitiesTraitsApiUrl(token);
options = _.extend({ options = _.extend({
contentType: 'application/json', contentType: 'application/json',
dataType: 'json' dataType: 'json'
......
...@@ -42,12 +42,17 @@ define([ ...@@ -42,12 +42,17 @@ define([
'*actions': 'defaultAction' '*actions': 'defaultAction'
}, },
initialize: function(options) { initialize: function(options) {
_.extend(this, _.pick(options, 'entityDefCollection', 'typeHeaders')); _.extend(this, _.pick(options, 'entityDefCollection', 'typeHeaders', 'enumDefCollection'));
this.showRegions(); this.showRegions();
this.bindCommonEvents(); this.bindCommonEvents();
this.listenTo(this, 'route', this.postRouteExecute, this); this.listenTo(this, 'route', this.postRouteExecute, this);
this.tagCollection = new VTagList(); this.tagCollection = new VTagList();
this.searchVent = new Backbone.Wreqr.EventAggregator(); this.searchVent = new Backbone.Wreqr.EventAggregator();
this.preFetchedCollectionLists = {
'entityDefCollection': this.entityDefCollection,
'typeHeaders': this.typeHeaders,
'enumDefCollection': this.enumDefCollection
}
}, },
bindCommonEvents: function() { bindCommonEvents: function() {
var that = this; var that = this;
...@@ -110,17 +115,29 @@ define([ ...@@ -110,17 +115,29 @@ define([
var paramObj = Utils.getUrlState.getQueryParams(); var paramObj = Utils.getUrlState.getQueryParams();
this.collection = new VCatalogList(); this.collection = new VCatalogList();
this.collection.url = url; this.collection.url = url;
App.rNHeader.show(new BusinessCatalogHeader({ 'url': url, 'collection': this.collection })); App.rNHeader.show(new BusinessCatalogHeader(
_.extend({
'url': url,
'collection': this.collection
}, that.preFetchedCollectionLists)
));
if (!App.rSideNav.currentView) { if (!App.rSideNav.currentView) {
App.rSideNav.show(new SideNavLayoutView({ 'url': url, 'collection': that.tagCollection, 'typeHeaders': that.typeHeaders })); App.rSideNav.show(new SideNavLayoutView(
_.extend({
'url': url,
'collection': that.tagCollection
}, that.preFetchedCollectionLists)
));
} else { } else {
App.rSideNav.currentView.RBusinessCatalogLayoutView.currentView.manualRender("/" + url); App.rSideNav.currentView.RBusinessCatalogLayoutView.currentView.manualRender("/" + url);
App.rSideNav.currentView.selectTab(); App.rSideNav.currentView.selectTab();
} }
App.rNContent.show(new BusinessCatalogDetailLayoutView({ App.rNContent.show(new BusinessCatalogDetailLayoutView(
'url': url, _.extend({
'collection': this.collection 'url': url,
})); 'collection': this.collection
}, that.preFetchedCollectionLists)
));
this.collection.fetch({ reset: true }); this.collection.fetch({ reset: true });
} else { } else {
that.defaultAction() that.defaultAction()
...@@ -139,16 +156,18 @@ define([ ...@@ -139,16 +156,18 @@ define([
this.entityCollection = new VEntityList([], {}); this.entityCollection = new VEntityList([], {});
App.rNHeader.show(new Header()); App.rNHeader.show(new Header());
if (!App.rSideNav.currentView) { if (!App.rSideNav.currentView) {
App.rSideNav.show(new SideNavLayoutView({ 'collection': that.tagCollection, 'typeHeaders': that.typeHeaders })); App.rSideNav.show(new SideNavLayoutView(
_.extend({
'collection': that.tagCollection,
}, that.preFetchedCollectionLists)
));
} else { } else {
App.rSideNav.currentView.selectTab(); App.rSideNav.currentView.selectTab();
} }
App.rNContent.show(new DetailPageLayoutView({ App.rNContent.show(new DetailPageLayoutView(_.extend({
'collection': this.entityCollection, 'collection': this.entityCollection,
'id': id, 'id': id,
'entityDefCollection': that.entityDefCollection, }, that.preFetchedCollectionLists)));
'typeHeaders': that.typeHeaders
}));
this.entityCollection.url = UrlLinks.entitiesApiUrl(id); this.entityCollection.url = UrlLinks.entitiesApiUrl(id);
this.entityCollection.fetch({ reset: true }); this.entityCollection.fetch({ reset: true });
}); });
...@@ -164,23 +183,24 @@ define([ ...@@ -164,23 +183,24 @@ define([
], function(Header, BusinessCatalogLayoutView, SideNavLayoutView, TagDetailLayoutView) { ], function(Header, BusinessCatalogLayoutView, SideNavLayoutView, TagDetailLayoutView) {
App.rNHeader.show(new Header()); App.rNHeader.show(new Header());
if (!App.rSideNav.currentView) { if (!App.rSideNav.currentView) {
App.rSideNav.show(new SideNavLayoutView({ App.rSideNav.show(new SideNavLayoutView(
'tag': tagName, _.extend({
'typeHeaders': that.typeHeaders, 'tag': tagName,
'collection': that.tagCollection 'collection': that.tagCollection
})); }, that.preFetchedCollectionLists)
));
} else { } else {
App.rSideNav.currentView.RTagLayoutView.currentView.manualRender(tagName); App.rSideNav.currentView.RTagLayoutView.currentView.manualRender(tagName);
App.rSideNav.currentView.selectTab(); App.rSideNav.currentView.selectTab();
} }
if (tagName) { if (tagName) {
App.rNContent.show(new TagDetailLayoutView({ App.rNContent.show(new TagDetailLayoutView(
'tag': tagName, _.extend({
'entityDefCollection': that.entityDefCollection, 'tag': tagName,
'collection': that.tagCollection, 'collection': that.tagCollection,
'typeHeaders': that.typeHeaders }, that.preFetchedCollectionLists)
})); ));
} }
}); });
}, },
...@@ -195,10 +215,11 @@ define([ ...@@ -195,10 +215,11 @@ define([
var paramObj = Utils.getUrlState.getQueryParams(); var paramObj = Utils.getUrlState.getQueryParams();
App.rNHeader.show(new Header()); App.rNHeader.show(new Header());
if (!App.rSideNav.currentView) { if (!App.rSideNav.currentView) {
App.rSideNav.show(new SideNavLayoutView({ App.rSideNav.show(new SideNavLayoutView(
'collection': that.tagCollection, _.extend({
'typeHeaders': that.typeHeaders 'collection': that.tagCollection
})); }, that.preFetchedCollectionLists)
));
} else { } else {
App.rSideNav.currentView.selectTab(); App.rSideNav.currentView.selectTab();
if (Utils.getUrlState.isTagTab()) { if (Utils.getUrlState.isTagTab()) {
...@@ -208,12 +229,12 @@ define([ ...@@ -208,12 +229,12 @@ define([
} }
} }
if (Globals.entityCreate && Utils.getUrlState.isSearchTab()) { if (Globals.entityCreate && Utils.getUrlState.isSearchTab()) {
App.rNContent.show(new SearchDetailLayoutView({ App.rNContent.show(new SearchDetailLayoutView(
'value': paramObj, _.extend({
'entityDefCollection': that.entityDefCollection, 'value': paramObj,
'initialView': true, 'initialView': true
'typeHeaders': that.typeHeaders }, that.preFetchedCollectionLists)
})) ));
} else { } else {
App.rNContent.$el.html(""); App.rNContent.$el.html("");
App.rNContent.destroy(); App.rNContent.destroy();
...@@ -231,23 +252,24 @@ define([ ...@@ -231,23 +252,24 @@ define([
var paramObj = Utils.getUrlState.getQueryParams(); var paramObj = Utils.getUrlState.getQueryParams();
App.rNHeader.show(new Header()); App.rNHeader.show(new Header());
if (!App.rSideNav.currentView) { if (!App.rSideNav.currentView) {
App.rSideNav.show(new SideNavLayoutView({ App.rSideNav.show(new SideNavLayoutView(
'value': paramObj, _.extend({
'collection': that.tagCollection, 'value': paramObj,
'searchVent': that.searchVent, 'collection': that.tagCollection,
'typeHeaders': that.typeHeaders 'searchVent': that.searchVent
})); }, that.preFetchedCollectionLists)
));
} else { } else {
App.rSideNav.currentView.RSearchLayoutView.currentView.manualRender(paramObj); App.rSideNav.currentView.RSearchLayoutView.currentView.manualRender(paramObj);
} }
App.rSideNav.currentView.selectTab(); App.rSideNav.currentView.selectTab();
App.rNContent.show(new SearchDetailLayoutView({ App.rNContent.show(new SearchDetailLayoutView(
'value': paramObj, _.extend({
'entityDefCollection': that.entityDefCollection, 'value': paramObj,
'typeHeaders': that.typeHeaders, 'searchVent': that.searchVent,
'searchVent': that.searchVent, 'initialView': (paramObj.type || (paramObj.dslChecked == "true" ? "" : paramObj.tag) || (paramObj.query ? paramObj.query.trim() : "")).length === 0
'initialView': (paramObj.type || (paramObj.dslChecked == "true" ? "" : paramObj.tag) || (paramObj.query ? paramObj.query.trim() : "")).length === 0 }, that.preFetchedCollectionLists)
})); ));
}); });
}, },
defaultAction: function(actions) { defaultAction: function(actions) {
......
...@@ -16,8 +16,11 @@ ...@@ -16,8 +16,11 @@
--> -->
<div> <div>
<div class="form-group hide"> <div class="form-group hide">
{{#if tagModel}}
<h4>{{tagModel.typeName}}</h4> {{else}}
<select class="form-control row-margin-bottom" data-id="addTagOptions" required> <select class="form-control row-margin-bottom" data-id="addTagOptions" required>
</select> </select>
{{/if}}
</div> </div>
<div class="row modalHeight"> <div class="row modalHeight">
<div class="col-sm-12"> <div class="col-sm-12">
......
...@@ -52,6 +52,14 @@ define(['require', 'utils/Enums'], function(require, Enums) { ...@@ -52,6 +52,14 @@ define(['require', 'utils/Enums'], function(require, Enums) {
return entitieDefUrl.defs + '?type=entity'; return entitieDefUrl.defs + '?type=entity';
} }
}, },
enumDefApiUrl: function(name) {
var enumDefApiUrl = this.typedefsUrl();
if (name) {
return enumDefApiUrl.def + '/name/' + name + '?type=enum';
} else {
return enumDefApiUrl.defs + '?type=enum';
}
},
entitiesTraitsApiUrl: function(token) { entitiesTraitsApiUrl: function(token) {
if (token) { if (token) {
return this.baseUrlV2 + '/entity/guid/' + token + '/classifications'; return this.baseUrlV2 + '/entity/guid/' + token + '/classifications';
......
...@@ -104,7 +104,7 @@ define(['require', ...@@ -104,7 +104,7 @@ define(['require',
* @constructs * @constructs
*/ */
initialize: function(options) { initialize: function(options) {
_.extend(this, _.pick(options, 'collection', 'id', 'entityDefCollection', 'typeHeaders')); _.extend(this, _.pick(options, 'collection', 'id', 'entityDefCollection', 'typeHeaders', 'enumDefCollection'));
this.bindEvents(); this.bindEvents();
}, },
bindEvents: function() { bindEvents: function() {
...@@ -171,7 +171,8 @@ define(['require', ...@@ -171,7 +171,8 @@ define(['require',
entityName: this.name, entityName: this.name,
typeHeaders: this.typeHeaders, typeHeaders: this.typeHeaders,
entityDefCollection: this.entityDefCollection, entityDefCollection: this.entityDefCollection,
fetchCollection: this.fetchCollection.bind(that) fetchCollection: this.fetchCollection.bind(that),
enumDefCollection: this.enumDefCollection
} }
this.getEntityDef(obj); this.getEntityDef(obj);
this.renderTagTableLayoutView(obj); this.renderTagTableLayoutView(obj);
...@@ -325,7 +326,8 @@ define(['require', ...@@ -325,7 +326,8 @@ define(['require',
that.fetchCollection(); that.fetchCollection();
}, },
showLoader: that.showLoader.bind(that), showLoader: that.showLoader.bind(that),
hideLoader: that.hideLoader.bind(that) hideLoader: that.hideLoader.bind(that),
enumDefCollection: that.enumDefCollection
}); });
view.modal.on('ok', function() { view.modal.on('ok', function() {
Utils.showTitleLoader(that.$('.page-title .fontLoader'), that.$('.entityDetail')); Utils.showTitleLoader(that.$('.page-title .fontLoader'), that.$('.entityDetail'));
......
...@@ -48,8 +48,7 @@ define(['require', ...@@ -48,8 +48,7 @@ define(['require',
showMoreLess: '[data-id="showMoreLess"]', showMoreLess: '[data-id="showMoreLess"]',
showMoreLessTerm: '[data-id="showMoreLessTerm"]', showMoreLessTerm: '[data-id="showMoreLessTerm"]',
addAssignTag: "[data-id='addAssignTag']", addAssignTag: "[data-id='addAssignTag']",
checkDeletedEntity: "[data-id='checkDeletedEntity']", checkDeletedEntity: "[data-id='checkDeletedEntity']"
}, },
/** ui events hash */ /** ui events hash */
events: function() { events: function() {
...@@ -95,7 +94,7 @@ define(['require', ...@@ -95,7 +94,7 @@ define(['require',
* @constructs * @constructs
*/ */
initialize: function(options) { initialize: function(options) {
_.extend(this, _.pick(options, 'guid', 'entityDefCollection', 'attribute', 'referredEntities', 'fetchCollection')); _.extend(this, _.pick(options, 'guid', 'entityDefCollection', 'attribute', 'referredEntities', 'fetchCollection', 'enumDefCollection'));
this.schemaCollection = new VSchemaList([], {}); this.schemaCollection = new VSchemaList([], {});
this.commonTableOptions = { this.commonTableOptions = {
collection: this.schemaCollection, collection: this.schemaCollection,
...@@ -228,7 +227,7 @@ define(['require', ...@@ -228,7 +227,7 @@ define(['require',
// return this; // return this;
// } // }
}); });
var columns = new columnCollection(that.getSchemaTableColumns()); var columns = new columnCollection(that.getSchemaTableColumns(deleteEnity));
//columns.setPositions().sort(); //columns.setPositions().sort();
that.RSchemaTableLayoutView.show(new TableLayout(_.extend({}, that.commonTableOptions, { that.RSchemaTableLayoutView.show(new TableLayout(_.extend({}, that.commonTableOptions, {
columns: columns columns: columns
...@@ -247,7 +246,7 @@ define(['require', ...@@ -247,7 +246,7 @@ define(['require',
}); });
}); });
}, },
getSchemaTableColumns: function() { getSchemaTableColumns: function(deleteEnity) {
var that = this, var that = this,
col = { col = {
Check: { Check: {
...@@ -271,7 +270,7 @@ define(['require', ...@@ -271,7 +270,7 @@ define(['require',
var value = model.get('attributes')[key]; var value = model.get('attributes')[key];
if (key === "name" && model.get('guid')) { if (key === "name" && model.get('guid')) {
var nameHtml = '<a href="#!/detailPage/' + model.get('guid') + '">' + value + '</a>'; var nameHtml = '<a href="#!/detailPage/' + model.get('guid') + '">' + value + '</a>';
if (model.get('status') && Enums.entityStateReadOnly[model.get('status')]) { if (model.get('status') && Enums.entityStateReadOnly[model.get('status')] && deleteEnity) {
nameHtml += '<button type="button" title="Deleted" class="btn btn-atlasAction btn-atlas deleteBtn"><i class="fa fa-trash"></i></button>'; nameHtml += '<button type="button" title="Deleted" class="btn btn-atlasAction btn-atlas deleteBtn"><i class="fa fa-trash"></i></button>';
return '<div class="readOnly readOnlyLink">' + nameHtml + '</div>'; return '<div class="readOnly readOnlyLink">' + nameHtml + '</div>';
} else { } else {
...@@ -369,7 +368,8 @@ define(['require', ...@@ -369,7 +368,8 @@ define(['require',
that.arr = []; that.arr = [];
}, },
hideLoader: that.hideLoader.bind(that), hideLoader: that.hideLoader.bind(that),
showLoader: that.showLoader.bind(that) showLoader: that.showLoader.bind(that),
enumDefCollection: that.enumDefCollection
}); });
// view.saveTagData = function() { // view.saveTagData = function() {
//override saveTagData function //override saveTagData function
......
...@@ -43,7 +43,7 @@ define(['require', ...@@ -43,7 +43,7 @@ define(['require',
* @constructs * @constructs
*/ */
initialize: function(options) { initialize: function(options) {
_.extend(this, _.pick(options, 'value', 'initialView', 'entityDefCollection', 'typeHeaders', 'searchVent')); _.extend(this, _.pick(options, 'value', 'initialView', 'entityDefCollection', 'typeHeaders', 'searchVent', 'enumDefCollection'));
}, },
bindEvents: function() {}, bindEvents: function() {},
onRender: function() { onRender: function() {
...@@ -61,7 +61,8 @@ define(['require', ...@@ -61,7 +61,8 @@ define(['require',
initialView: that.initialView, initialView: that.initialView,
entityDefCollection: that.entityDefCollection, entityDefCollection: that.entityDefCollection,
typeHeaders: that.typeHeaders, typeHeaders: that.typeHeaders,
searchVent: that.searchVent searchVent: that.searchVent,
enumDefCollection: that.enumDefCollection
})); }));
} }
}); });
......
...@@ -126,7 +126,7 @@ define(['require', ...@@ -126,7 +126,7 @@ define(['require',
* @constructs * @constructs
*/ */
initialize: function(options) { initialize: function(options) {
_.extend(this, _.pick(options, 'value', 'initialView', 'entityDefCollection', 'typeHeaders', 'searchVent')); _.extend(this, _.pick(options, 'value', 'initialView', 'entityDefCollection', 'typeHeaders', 'searchVent', 'enumDefCollection'));
var pagination = ""; var pagination = "";
this.entityModel = new VEntity(); this.entityModel = new VEntity();
this.searchCollection = new VSearchList(); this.searchCollection = new VSearchList();
...@@ -490,7 +490,8 @@ define(['require', ...@@ -490,7 +490,8 @@ define(['require',
}, },
tagList: that.getTagList(guid, multiple), tagList: that.getTagList(guid, multiple),
showLoader: that.showLoader.bind(that), showLoader: that.showLoader.bind(that),
hideLoader: that.hideLoader.bind(that) hideLoader: that.hideLoader.bind(that),
enumDefCollection: that.enumDefCollection
}); });
}); });
}, },
......
...@@ -43,6 +43,7 @@ define(['require', ...@@ -43,6 +43,7 @@ define(['require',
detailValue: "[data-id='detailValue']", detailValue: "[data-id='detailValue']",
addTag: "[data-id='addTag']", addTag: "[data-id='addTag']",
deleteTag: "[data-id='delete']", deleteTag: "[data-id='delete']",
editTag: "[data-id='edit']",
}, },
/** ui events hash */ /** ui events hash */
events: function() { events: function() {
...@@ -53,6 +54,9 @@ define(['require', ...@@ -53,6 +54,9 @@ define(['require',
events["click " + this.ui.deleteTag] = function(e) { events["click " + this.ui.deleteTag] = function(e) {
this.deleteTagDataModal(e); this.deleteTagDataModal(e);
}; };
events["click " + this.ui.editTag] = function(e) {
this.editTagDataModal(e);
};
return events; return events;
}, },
/** /**
...@@ -60,7 +64,7 @@ define(['require', ...@@ -60,7 +64,7 @@ define(['require',
* @constructs * @constructs
*/ */
initialize: function(options) { initialize: function(options) {
_.extend(this, _.pick(options, 'entity', 'guid', 'term', 'entityName', 'fetchCollection')); _.extend(this, _.pick(options, 'entity', 'guid', 'term', 'entityName', 'fetchCollection', 'enumDefCollection'));
this.collectionObject = this.entity; this.collectionObject = this.entity;
this.tagTermCollection = new VTagList(); this.tagTermCollection = new VTagList();
var tagorterm = _.toArray(this.collectionObject.classifications), var tagorterm = _.toArray(this.collectionObject.classifications),
...@@ -151,7 +155,7 @@ define(['require', ...@@ -151,7 +155,7 @@ define(['require',
sortable: false, sortable: false,
formatter: _.extend({}, Backgrid.CellFormatter.prototype, { formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
fromRaw: function(rawValue, model) { fromRaw: function(rawValue, model) {
return '<a href="javascript:void(0)"><i class="fa fa-trash" data-id="delete" data-name="' + model.get('typeName') + '"></i></a>'; return '<button class="btn btn-atlasAction btn-atlas no-margin-bottom typeLOV" data-id="delete" data-name="' + model.get('typeName') + '"><i class="fa fa-trash"></i></button> <button class="btn btn-atlasAction btn-atlas no-margin-bottom typeLOV" data-id="edit" data-name="' + model.get('typeName') + '"><i class="fa fa-pencil"></i></button>';
} }
}) })
}, },
...@@ -164,7 +168,8 @@ define(['require', ...@@ -164,7 +168,8 @@ define(['require',
require(['views/tag/addTagModalView'], function(AddTagModalView) { require(['views/tag/addTagModalView'], function(AddTagModalView) {
var view = new AddTagModalView({ var view = new AddTagModalView({
guid: that.guid, guid: that.guid,
modalCollection: that.collection modalCollection: that.collection,
enumDefCollection: that.enumDefCollection
}); });
// view.saveTagData = function() { // view.saveTagData = function() {
//override saveTagData function //override saveTagData function
...@@ -218,6 +223,23 @@ define(['require', ...@@ -218,6 +223,23 @@ define(['require',
} }
}); });
},
editTagDataModal: function(e) {
var that = this,
tagName = $(e.currentTarget).data('name'),
tagModel = _.findWhere(that.collectionObject.classifications, { typeName: tagName });
require([
'views/tag/addTagModalView'
], function(AddTagModalView) {
var view = new AddTagModalView({
'tagModel': tagModel,
callback: function() {
that.fetchCollection();
},
guid: that.guid,
'enumDefCollection': that.enumDefCollection
});
});
} }
}); });
return TagDetailTableLayoutView; return TagDetailTableLayoutView;
......
...@@ -31,6 +31,11 @@ define(['require', ...@@ -31,6 +31,11 @@ define(['require',
var AddTagModel = Marionette.LayoutView.extend({ var AddTagModel = Marionette.LayoutView.extend({
template: AddTagModalViewTmpl, template: AddTagModalViewTmpl,
templateHelpers: function() {
return {
tagModel: this.tagModel
};
},
regions: {}, regions: {},
ui: { ui: {
...@@ -47,38 +52,40 @@ define(['require', ...@@ -47,38 +52,40 @@ define(['require',
* @constructs * @constructs
*/ */
initialize: function(options) { initialize: function(options) {
var that = this; _.extend(this, _.pick(options, 'modalCollection', 'guid', 'callback', 'multiple', 'showLoader', 'hideLoader', 'tagList', 'tagModel', 'enumDefCollection'));
_.extend(this, _.pick(options, 'modalCollection', 'guid', 'callback', 'multiple', 'showLoader', 'hideLoader', 'tagList'));
this.collection = new VTagList(); this.collection = new VTagList();
this.commonCollection = new VTagList(); this.commonCollection = new VTagList();
this.enumCollection = new VTagList(); var that = this,
this.enumCollection.url = UrlLinks.typedefsUrl().defs; modalObj = {
this.enumCollection.modelAttrName = "enumDefs"; title: 'Add Tag',
this.asyncAttrFetchCounter = 0; content: this,
this.asyncEnumFetchCounter = 2; okText: 'Add',
this.modal = new Modal({ cancelText: "Cancel",
title: 'Add Tag', allowCancel: true,
content: this, },
okText: 'Add', state = this.tagModel ? false : true;
cancelText: "Cancel", if (this.tagModel) {
allowCancel: true, modalObj.title = 'Edit Tag';
}).open(); modalObj.okText = 'Update';
this.modal.$el.find('button.ok').attr("disabled", true); }
this.modal = new Modal(modalObj).open();
this.modal.$el.find('button.ok').attr("disabled", state);
this.on('ok', function() { this.on('ok', function() {
var tagName = this.ui.addTagOptions.val(); var tagName = this.tagModel ? this.tagModel.typeName : this.ui.addTagOptions.val(),
var tagAttributes = {}; tagAttributes = {},
var tagAttributeNames = this.$(".attrName"); tagAttributeNames = this.$(".attrName"),
obj = {
tagName: tagName,
tagAttributes: tagAttributes,
guid: [],
skipEntity: [],
deletedEntity: []
};
tagAttributeNames.each(function(i, item) { tagAttributeNames.each(function(i, item) {
var selection = $(item).data("key"); var selection = $(item).data("key");
tagAttributes[selection] = $(item).val() || null; tagAttributes[selection] = $(item).val() || null;
}); });
var obj = {
tagName: tagName,
tagAttributes: tagAttributes,
guid: [],
skipEntity: [],
deletedEntity: []
}
if (that.multiple) { if (that.multiple) {
_.each(that.multiple, function(entity, i) { _.each(that.multiple, function(entity, i) {
var name = Utils.getName(entity.model); var name = Utils.getName(entity.model);
...@@ -172,21 +179,16 @@ define(['require', ...@@ -172,21 +179,16 @@ define(['require',
onRender: function() { onRender: function() {
var that = this; var that = this;
$.extend(this.collection.queryParams, { type: 'TRAIT', notsupertype: 'TaxonomyTerm' }); $.extend(this.collection.queryParams, { type: 'classification' });
this.hideAttributeBox(); this.hideAttributeBox();
this.collection.fetch({ this.collection.fetch({
reset: true, reset: true,
complete: function() { complete: function() {
--that.asyncEnumFetchCounter; if (that.tagModel) {
that.showAttributeBox(that.asyncEnumFetchCounter); that.fetchTagSubData(that.tagModel.typeName);
}, }
}); that.showAttributeBox();
that.enumCollection.fetch({
complete: function() {
--that.asyncEnumFetchCounter;
that.showAttributeBox(that.asyncEnumFetchCounter);
}, },
reset: true
}); });
}, },
bindEvents: function() { bindEvents: function() {
...@@ -213,7 +215,7 @@ define(['require', ...@@ -213,7 +215,7 @@ define(['require',
} }
// using obj.get('name') insted of name variable because if html is presen in name then escaped name will not found in tagList. // using obj.get('name') insted of name variable because if html is presen in name then escaped name will not found in tagList.
if (_.indexOf(that.tagList, obj.get('name')) === -1) { if (_.indexOf(that.tagList, obj.get('name')) === -1) {
str += '<option>' + name + '</option>'; str += '<option ' + (that.tagModel && that.tagModel.typeName === name ? 'selected' : '') + '>' + name + '</option>';
} }
}); });
this.ui.addTagOptions.html(str); this.ui.addTagOptions.html(str);
...@@ -232,24 +234,18 @@ define(['require', ...@@ -232,24 +234,18 @@ define(['require',
this.fetchTagSubData(tagname); this.fetchTagSubData(tagname);
}, },
fetchTagSubData: function(tagname) { fetchTagSubData: function(tagname) {
var that = this; var attributeDefs = Utils.getNestedSuperTypeObj({
++this.asyncAttrFetchCounter; data: this.collection.fullCollection.find({ name: tagname }).toJSON(),
this.commonCollection.url = UrlLinks.typesClassicationApiUrl(tagname); collection: this.collection,
this.commonCollection.fetch({ attrMerge: true
reset: true,
complete: function() {
--that.asyncAttrFetchCounter;
that.showAttributeBox();
}
}); });
this.subAttributeData(attributeDefs);
}, },
showAttributeBox: function(counter) { showAttributeBox: function() {
if ((counter || this.asyncAttrFetchCounter) === 0) { this.$('.attrLoader').hide();
this.$('.attrLoader').hide(); this.$('.form-group.hide').removeClass('hide');
this.$('.form-group.hide').removeClass('hide'); if (this.ui.tagAttribute.children().length !== 0) {
if (this.ui.tagAttribute.children().length !== 0) { this.ui.tagAttribute.parent().show();
this.ui.tagAttribute.parent().show();
}
} }
}, },
hideAttributeBox: function() { hideAttributeBox: function() {
...@@ -257,44 +253,26 @@ define(['require', ...@@ -257,44 +253,26 @@ define(['require',
this.ui.tagAttribute.parent().hide(); this.ui.tagAttribute.parent().hide();
this.$('.attrLoader').show(); this.$('.attrLoader').show();
}, },
subAttributeData: function() { subAttributeData: function(attributeDefs) {
var that = this; var that = this;
if (this.commonCollection.models[0]) { if (attributeDefs) {
if (this.commonCollection.models[0].get('attributeDefs')) { _.each(attributeDefs, function(obj) {
_.each(this.commonCollection.models[0].get('attributeDefs'), function(obj) { var name = Utils.getName(obj, 'name');
var name = Utils.getName(obj, 'name'); var typeName = Utils.getName(obj, 'typeName');
var typeName = Utils.getName(obj, 'typeName'); var typeNameValue = that.enumDefCollection.fullCollection.findWhere({ 'name': typeName });
var typeNameValue = that.enumCollection.fullCollection.findWhere({ 'name': typeName }); if (typeNameValue) {
if (typeNameValue) { var str = "<option disabled='disabled'" + (!that.tagModel ? 'selected' : '') + ">-- Select " + typeName + " --</option>";
var str = "<option disabled='disabled' selected>-- Select " + typeName + " --</option>"; var enumValue = typeNameValue.get('elementDefs');
var enumValue = typeNameValue.get('elementDefs'); _.each(enumValue, function(key, value) {
_.each(enumValue, function(key, value) { str += '<option ' + (that.tagModel && key.value === _.values(that.tagModel.attributes)[0] ? 'selected' : '') + '>' + key.value + '</option>';
str += '<option>' + key.value + '</option>'; })
}) that.ui.tagAttribute.append('<div class="form-group"><label>' + name + '</label>' +
that.ui.tagAttribute.append('<div class="form-group"><label>' + name + '</label>' + '<select class="form-control attributeInputVal attrName" data-key="' + name + '">' + str + '</select></div>');
'<select class="form-control attributeInputVal attrName" data-key="' + name + '">' + str + '</select></div>');
} else {
that.ui.tagAttribute.append('<div class="form-group"><label>' + name + '</label>' +
'<input type="text" class="form-control attributeInputVal attrName" data-key="' + name + '" ></input></div>');
}
});
}
if (this.commonCollection.models[0].get('superTypes')) {
var superTypes = this.commonCollection.models[0].get('superTypes');
if (!_.isArray(superTypes)) {
superTypes = [superTypes];
}
if (superTypes.length) {
_.each(superTypes, function(name) {
that.fetchTagSubData(name);
});
} else { } else {
this.showAttributeBox(); that.ui.tagAttribute.append('<div class="form-group"><label>' + name + '</label>' +
'<input type="text" value="' + (that.tagModel ? (that.tagModel.attributes[name] == null ? '' : that.tagModel.attributes[name]) : '') + '" class="form-control attributeInputVal attrName" data-key="' + name + '" ></input></div>');
} }
} else { });
this.showAttributeBox();
}
} else {
this.showAttributeBox(); this.showAttributeBox();
} }
}, },
...@@ -310,15 +288,23 @@ define(['require', ...@@ -310,15 +288,23 @@ define(['require',
}, },
"entityGuids": options.guid "entityGuids": options.guid
}; };
if (this.tagModel) {
json = [{
"typeName": tagName,
"attributes": tagAttributes
}]
}
if (this.showLoader) { if (this.showLoader) {
this.showLoader(); this.showLoader();
} }
this.entityModel.saveTraitsEntity({ this.entityModel.saveTraitsEntity(this.tagModel ? options.guid : null, {
skipDefaultError: true, skipDefaultError: true,
data: JSON.stringify(json), data: JSON.stringify(json),
type: this.tagModel ? 'PUT' : 'POST',
success: function(data) { success: function(data) {
var addupdatetext = that.tagModel ? 'updated successfully to ' : 'added to ';
Utils.notifySuccess({ Utils.notifySuccess({
content: "Tag " + tagName + " has been added to " + (that.multiple ? "entities" : "entity") content: "Tag " + tagName + " has been " + addupdatetext + (that.multiple ? "entities" : "entity")
}); });
if (options.modalCollection) { if (options.modalCollection) {
options.modalCollection.fetch({ reset: true }); options.modalCollection.fetch({ reset: true });
......
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