Commit 62451d62 by kevalbhatt

ATLAS-3793:- UI: Entity detail page improvement for label, user-define properties, BM panel

parent 2dd41162
......@@ -143,9 +143,9 @@
.panel-default.custom-panel>.panel-actions {
float: right;
margin-top: 15px;
margin-right: 10px;
button {
margin-right: 10px;
margin-top: -4px;
}
}
......
......@@ -15,7 +15,7 @@
* limitations under the License.
-->
<div class="panel panel-default custom-panel expand_collapse_panel-icon">
<div class="panel-heading" data-toggle="collapse" href="#businessMetadataCollapse" aria-expanded="false" style="width: 70%;">
<div class="panel-heading main-parent collapsed" data-toggle="collapse" href="#businessMetadataCollapse" aria-expanded="false" style="width: 70%;">
<h4 class="panel-title">
<a>Business Metadata</a>
</h4>
......
......@@ -17,7 +17,7 @@
<div class="panel-group" id="accordion">
<div class="panel panel-default custom-panel expand_collapse_panel-icon" data-id="userDefineLabel">
{{#ifCond labels.length "===" 0}}
<div class="panel-heading collapsed" data-toggle="collapse" href={{div_1.anchor}} aria-expanded="false" style="width: 70%">
<div class="panel-heading collapsed" data-toggle="collapse" href={{div_1.anchor}} {{#ifCond swapItem "===" true}} aria-expanded="true" {{else}} aria-expanded="false" {{/ifCond}} style="width: 70%">
<h4 class="panel-title">
<a>Labels </a>
</h4>
......@@ -38,12 +38,13 @@
{{#ifCond readOnlyEntity "===" false}}
<div class="panel-actions">
{{#ifCond swapItem "!==" true}}
<button class="btn btn-action btn-sm" data-id="addLabels" {{#ifCond labels.length "===" 0}} data-original-title="Add User-Defined Labels" {{else}} data-original-title="Edit User-Defined Labels" {{/ifCond}}>
<button class="btn btn-action btn-sm" data-id="addLabels">
{{#ifCond labels.length "===" 0}} Add {{else}} Edit {{/ifCond}}
</button>
{{/ifCond}}
{{#ifCond saveLabels "===" true}}
<button class="btn btn-action btn-sm" data-id="saveLabels" data-original-title="Save User-Defined Labels">Save</button>
<button class="btn btn-action btn-sm" data-id="saveLabels">Save</button>
<button class="btn btn-action btn-sm" data-id="cancel">Cancel</button>
{{/ifCond}}
</div>
{{/ifCond}}
......@@ -56,9 +57,7 @@
<select class="form-control" data-id="addLabelOptions" multiple="multiple"></select>
{{else}}
<div class="badge-container">
{{#each labels}}
<label class="btn btn-action btn-sm btn-blue no-pointer">{{this}}</label>
{{/each}}
No labels have been created yet. To add a labels, click <a href="javascript:void(0)" data-id="addLabels">here</a>
</div>
{{/ifCond}}
</div>
......
......@@ -41,7 +41,9 @@
<p class="errorMsg" data-id="charSupportMsg"></p>
</td>
</tr>
{{#if allValueRemovedUpdate}}
All properties has been removed. To add a property, click <a href="javascript:void(0)" data-id="addItem">here</a>{{else}}
{{#ifCond items.length "===" 0}}
No properties have been created yet. To add a property, click <a href="javascript:void(0)" data-id="addItem">here</a>
{{/ifCond}}
{{/ifCond}}{{/if}}
</table>
\ No newline at end of file
......@@ -17,7 +17,7 @@
<div class="panel-group" id="accordion">
<div class="panel panel-default custom-panel expand_collapse_panel-icon" data-id="userDefine">
{{#ifCond customAttibutes.length "===" 0}}
<div class="panel-heading collapsed" data-toggle="collapse" href={{divId_1.anchor}} aria-expanded="false" style="width: 70%">
<div class="panel-heading collapsed" data-toggle="collapse" href={{divId_1.anchor}} {{#ifCond swapItem "===" true}} aria-expanded="true" {{else}} aria-expanded="false" {{/ifCond}} style="width: 70%">
<h4 class="panel-title">
<a>User-defined properties </a>
</h4>
......@@ -38,12 +38,13 @@
{{#ifCond readOnlyEntity "===" false}}
<div class="panel-actions">
{{#ifCond swapItem "!==" true}}
<button class="btn btn-action btn-sm" data-id="addAttr" {{#ifCond customAttibutes.length "===" 0}} data-original-title="Add User-defined properties" {{else}} data-original-title="Edit User-defined properties" {{/ifCond}}>
<button class="btn btn-action btn-sm" data-id="addAttr">
{{#ifCond customAttibutes.length "===" 0}} Add {{else}} Edit {{/ifCond}}
</button>
{{/ifCond}}
{{#ifCond saveAttrItems "===" true}}
<button class="btn btn-action btn-sm" data-id="saveAttrItems" data-original-title="Save User-defined properties">Save</button>
<button class="btn btn-action btn-sm" data-id="saveAttrItems">Save</button>
<button class="btn btn-action btn-sm" data-id="cancel">Cancel</button>
{{/ifCond}}
</div>
{{/ifCond}}
......@@ -55,22 +56,7 @@
{{#ifCond swapItem "===" true}}
<div id="r_entityUserDefinedItemView"></div>
{{else}}
<div class="entity-detail-table">
<table class="table">
<tbody>
{{#each customAttibutes}}
<tr>
<td>
<div class="scroll-y">{{key}}</div>
</div>
</td>
<td>
<div class="scroll-y">{{value}}</div>
</td>
</tr>
{{/each}}
</tbody>
</table>
No properties have been created yet. To add a property, click <a href="javascript:void(0)" data-id="addItem">here</a>
</div>
{{/ifCond}}
</div>
......
......@@ -111,15 +111,15 @@ define([
this.panelOpenClose();
},
panelOpenClose: function() {
var collection = this.editMode ? this.collection : this.actualCollection;
var collection = this.editMode ? this.collection : this.actualCollection,
headingEl = this.$el.find(".panel-heading.main-parent");
if (collection && collection.length === 0) {
this.$el.find(".panel-heading").addClass("collapsed").attr('aria-expanded',false);
this.$el.find(".panel-collapse.collapse").removeClass("in");
this.ui.addBusinessMetadata.text("Add");
} else {
this.ui.addBusinessMetadata.text("Edit");
this.$el.find(".panel-heading").removeClass("collapsed").attr('aria-expanded',true);
this.$el.find(".panel-collapse.collapse").addClass("in");
if (headingEl.hasClass("collapsed")) {
headingEl.click();
}
}
},
validate: function() {
......@@ -164,12 +164,14 @@ define([
type: "POST",
success: function(data) {
Utils.notifySuccess({
content: "One or more Business Metadada attributes" + Messages.getAbbreviationMsg(false, 'editSuccessMessage')
content: "One or more Business Metadada attributes" + Messages.getAbbreviationMsg(true, 'editSuccessMessage')
});
that.entity.businessAttributes = data;
this.editMode = false;
that.ui.businessMetadataTree.html("");
that.editMode = false;
that.fetchCollection();
that.onCancel();
},
complete: function(model, response) {
//that.hideLoader();
......@@ -239,7 +241,11 @@ define([
});
li += that.associateAttributePanel(obj, attrLi);
});
this.ui.businessMetadataTree.html(li);
var html = li;
if (html === "") {
html = '<div class="col-md-12"> No business metadata have been created yet. To add a business metadata, click <a href="javascript:void(0)" data-id="addBusinessMetadata">here</a></div>';
}
this.ui.businessMetadataTree.html(html);
},
associateAttributePanel: function(obj, tableBody) {
return '<div class="panel panel-default custom-panel expand_collapse_panel-icon no-border business-metadata-detail-attr">' +
......@@ -252,7 +258,11 @@ define([
'</div></div>';
},
onRender: function() {
this.panelOpenClose();
if (this.actualCollection && this.actualCollection.length) {
this.$el.find(".panel-heading.main-parent").removeClass("collapsed").attr("aria-expanded", "true");
this.$el.find("#businessMetadataCollapse").addClass("in").removeAttr("style");
this.ui.addBusinessMetadata.text("Edit");
}
this.renderBusinessMetadata();
}
});
......
......@@ -44,13 +44,15 @@ define(['require',
ui: {
addLabelOptions: "[data-id='addLabelOptions']",
addLabels: "[data-id='addLabels']",
saveLabels: "[data-id='saveLabels']"
saveLabels: "[data-id='saveLabels']",
cancel: "[data-id='cancel']"
},
events: function() {
var events = {};
events["change " + this.ui.addLabelOptions] = 'onChangeLabelChange';
events["click " + this.ui.addLabels] = 'handleBtnClick';
events["click " + this.ui.saveLabels] = 'saveUserDefinedLabels';
events["click " + this.ui.cancel] = 'onCancelClick';
return events;
},
initialize: function(options) {
......@@ -140,6 +142,12 @@ define(['require',
}
this.render();
},
onCancelClick: function() {
this.labels = this.entityModel.get("labels") || [];
this.swapItem = false;
this.saveLabels = false;
this.render();
},
saveUserDefinedLabels: function() {
var that = this;
var entityJson = that.entityModel.toJSON();
......
......@@ -29,7 +29,8 @@ define(['require',
templateHelpers: function() {
return {
items: this.items
items: this.items,
allValueRemovedUpdate: this.allValueRemovedUpdate
};
},
......@@ -62,11 +63,13 @@ define(['require',
if (options.items.length === 0) {
this.items = [{ key: "", value: "" }];
} else {
this.items = options.items;
this.items = $.extend(true, [], options.items);
}
this.updateParentButtonState = options.updateButtonState;
},
onRender: function() {},
onAddItemClick: function(e) {
this.allValueRemovedUpdate = false;
var el = e.currentTarget;
this.items.splice(parseInt(el.dataset.index) + 1, 0, { key: "", value: "" });
this.render();
......@@ -74,7 +77,16 @@ define(['require',
onDeleteItemClick: function(e) {
var el = e.currentTarget;
this.items.splice(el.dataset.index, 1);
this.render();
this.allValueRemovedUpdate = false;
if (this.items.length === 0) {
var updated = this.updateParentButtonState();
if (updated === false) {
this.allValueRemovedUpdate = true;
this.render();
}
} else {
this.render();
}
},
onItemKeyChange: function(e) {
var el = e.currentTarget;
......
......@@ -42,14 +42,16 @@ define(['require',
},
ui: {
addAttr: "[data-id='addAttr']",
editAttr: "[data-id='editAttr']",
saveAttrItems: "[data-id='saveAttrItems']"
saveAttrItems: "[data-id='saveAttrItems']",
cancel: "[data-id='cancel']",
addItem: "[data-id='addItem']"
},
events: function() {
var events = {};
events["click " + this.ui.addAttr] = 'onAddAttrClick';
events["click " + this.ui.editAttr] = 'onEditAttrClick';
events["click " + this.ui.addItem] = 'onAddAttrClick';
events["click " + this.ui.saveAttrItems] = 'onEditAttrClick';
events["click " + this.ui.cancel] = 'onCancelClick';
return events;
},
initialize: function(options) {
......@@ -66,9 +68,8 @@ define(['require',
onRender: function() {},
renderEntityUserDefinedItems: function() {
var that = this;
require(['views/entity/EntityUserDefineItemView'], function(EntityUserDefineItemView) {
that.itemView = new EntityUserDefineItemView({ items: that.customAttibutes });
that.itemView = new EntityUserDefineItemView({ items: that.customAttibutes, updateButtonState: that.updateButtonState.bind(that) });
that.REntityUserDefinedItemView.show(that.itemView);
});
},
......@@ -106,6 +107,21 @@ define(['require',
this.initialCall = this.customAttibutes.length > 0 ? false : true;
this.setAttributeModal(this.itemView);
},
updateButtonState: function() {
if (this.customAttibutes.length === 0) {
this.swapItem = false;
this.saveAttrItems = false;
this.render();
} else {
return false;
}
},
onCancelClick: function() {
this.initialCall = false;
this.swapItem = false;
this.saveAttrItems = false;
this.render();
},
structureAttributes: function(list) {
var obj = {}
list.map(function(o) {
......
......@@ -15,7 +15,7 @@
* limitations under the License.
-->
<div class="panel panel-default custom-panel expand_collapse_panel-icon">
<div class="panel-heading" data-toggle="collapse" href="#businessMetadataCollapse" aria-expanded="false" style="width: 70%;">
<div class="panel-heading main-parent collapsed" data-toggle="collapse" href="#businessMetadataCollapse" aria-expanded="false" style="width: 70%;">
<h4 class="panel-title">
<a>Business Metadata</a>
</h4>
......
......@@ -17,7 +17,7 @@
<div class="panel-group" id="accordion">
<div class="panel panel-default custom-panel expand_collapse_panel-icon" data-id="userDefineLabel">
{{#ifCond labels.length "===" 0}}
<div class="panel-heading collapsed" data-toggle="collapse" href={{div_1.anchor}} aria-expanded="false" style="width: 70%">
<div class="panel-heading collapsed" data-toggle="collapse" href={{div_1.anchor}} {{#ifCond swapItem "===" true}} aria-expanded="true" {{else}} aria-expanded="false" {{/ifCond}} style="width: 70%">
<h4 class="panel-title">
<a>Labels </a>
</h4>
......@@ -38,12 +38,13 @@
{{#ifCond readOnlyEntity "===" false}}
<div class="panel-actions">
{{#ifCond swapItem "!==" true}}
<button class="btn btn-action btn-sm" data-id="addLabels" {{#ifCond labels.length "===" 0}} data-original-title="Add User-Defined Labels" {{else}} data-original-title="Edit User-Defined Labels" {{/ifCond}}>
<button class="btn btn-action btn-sm" data-id="addLabels">
{{#ifCond labels.length "===" 0}} Add {{else}} Edit {{/ifCond}}
</button>
{{/ifCond}}
{{#ifCond saveLabels "===" true}}
<button class="btn btn-action btn-sm" data-id="saveLabels" data-original-title="Save User-Defined Labels">Save</button>
<button class="btn btn-action btn-sm" data-id="saveLabels">Save</button>
<button class="btn btn-action btn-sm" data-id="cancel">Cancel</button>
{{/ifCond}}
</div>
{{/ifCond}}
......@@ -56,9 +57,7 @@
<select class="form-control" data-id="addLabelOptions" multiple="multiple"></select>
{{else}}
<div class="badge-container">
{{#each labels}}
<label class="btn btn-action btn-sm btn-blue no-pointer">{{this}}</label>
{{/each}}
No labels have been created yet. To add a labels, click <a href="javascript:void(0)" data-id="addLabels">here</a>
</div>
{{/ifCond}}
</div>
......
......@@ -41,7 +41,9 @@
<p class="errorMsg" data-id="charSupportMsg"></p>
</td>
</tr>
{{#if allValueRemovedUpdate}}
All properties has been removed. To add a property, click <a href="javascript:void(0)" data-id="addItem">here</a>{{else}}
{{#ifCond items.length "===" 0}}
No properties have been created yet. To add a property, click <a href="javascript:void(0)" data-id="addItem">here</a>
{{/ifCond}}
{{/ifCond}}{{/if}}
</table>
\ No newline at end of file
......@@ -17,7 +17,7 @@
<div class="panel-group" id="accordion">
<div class="panel panel-default custom-panel expand_collapse_panel-icon" data-id="userDefine">
{{#ifCond customAttibutes.length "===" 0}}
<div class="panel-heading collapsed" data-toggle="collapse" href={{divId_1.anchor}} aria-expanded="false" style="width: 70%">
<div class="panel-heading collapsed" data-toggle="collapse" href={{divId_1.anchor}} {{#ifCond swapItem "===" true}} aria-expanded="true" {{else}} aria-expanded="false" {{/ifCond}} style="width: 70%">
<h4 class="panel-title">
<a>User-defined properties </a>
</h4>
......@@ -38,12 +38,13 @@
{{#ifCond readOnlyEntity "===" false}}
<div class="panel-actions">
{{#ifCond swapItem "!==" true}}
<button class="btn btn-action btn-sm" data-id="addAttr" {{#ifCond customAttibutes.length "===" 0}} data-original-title="Add User-defined properties" {{else}} data-original-title="Edit User-defined properties" {{/ifCond}}>
<button class="btn btn-action btn-sm" data-id="addAttr">
{{#ifCond customAttibutes.length "===" 0}} Add {{else}} Edit {{/ifCond}}
</button>
{{/ifCond}}
{{#ifCond saveAttrItems "===" true}}
<button class="btn btn-action btn-sm" data-id="saveAttrItems" data-original-title="Save User-defined properties">Save</button>
<button class="btn btn-action btn-sm" data-id="saveAttrItems">Save</button>
<button class="btn btn-action btn-sm" data-id="cancel">Cancel</button>
{{/ifCond}}
</div>
{{/ifCond}}
......@@ -55,22 +56,7 @@
{{#ifCond swapItem "===" true}}
<div id="r_entityUserDefinedItemView"></div>
{{else}}
<div class="entity-detail-table">
<table class="table">
<tbody>
{{#each customAttibutes}}
<tr>
<td>
<div class="scroll-y">{{key}}</div>
</div>
</td>
<td>
<div class="scroll-y">{{value}}</div>
</td>
</tr>
{{/each}}
</tbody>
</table>
No properties have been created yet. To add a property, click <a href="javascript:void(0)" data-id="addItem">here</a>
</div>
{{/ifCond}}
</div>
......
......@@ -240,10 +240,12 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'utils/Enums',
}
Utils.defaultErrorHandler = function(model, error, options) {
var skipDefaultError = null,
defaultErrorMessage = null;
defaultErrorMessage = null,
isHtml = null;
if (options) {
skipDefaultError = options.skipDefaultError;
defaultErrorMessage = options.defaultErrorMessage;
isHtml = options.isHtml;
}
var redirectToLoginPage = function() {
Utils.localStorage.setValue("last_ui_load", "v2");
......@@ -266,13 +268,13 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'utils/Enums',
});
}
} else if (skipDefaultError !== true) {
Utils.serverErrorHandler(error, defaultErrorMessage);
Utils.serverErrorHandler(error, defaultErrorMessage, isHtml);
}
} else if (skipDefaultError !== true) {
Utils.serverErrorHandler(error, defaultErrorMessage);
}
};
Utils.serverErrorHandler = function(response, defaultErrorMessage) {
Utils.serverErrorHandler = function(response, defaultErrorMessage, isHtml) {
var responseJSON = response ? response.responseJSON : response,
message = defaultErrorMessage ? defaultErrorMessage : Messages.defaultErrorMessage
if (response && responseJSON) {
......@@ -281,6 +283,7 @@ define(['require', 'utils/Globals', 'pnotify', 'utils/Messages', 'utils/Enums',
var existingError = $(".ui-pnotify-container.alert-danger .ui-pnotify-text").text();
if (existingError !== message) {
Utils.notifyError({
html:isHtml,
content: message
});
}
......
......@@ -111,15 +111,15 @@ define([
this.panelOpenClose();
},
panelOpenClose: function() {
var collection = this.editMode ? this.collection : this.actualCollection;
var collection = this.editMode ? this.collection : this.actualCollection,
headingEl = this.$el.find(".panel-heading.main-parent");
if (collection && collection.length === 0) {
this.$el.find(".panel-heading").addClass("collapsed");
this.$el.find(".panel-collapse.collapse").removeClass("in");
this.ui.addBusinessMetadata.text("Add");
} else {
this.ui.addBusinessMetadata.text("Edit");
this.$el.find(".panel-heading").removeClass("collapsed");
this.$el.find(".panel-collapse.collapse").addClass("in");
if (headingEl.hasClass("collapsed")) {
headingEl.click();
}
}
},
validate: function() {
......@@ -164,12 +164,14 @@ define([
type: "POST",
success: function(data) {
Utils.notifySuccess({
content: "One or more Business Metadada attributes" + Messages.getAbbreviationMsg(false, 'editSuccessMessage')
content: "One or more Business Metadada attributes" + Messages.getAbbreviationMsg(true, 'editSuccessMessage')
});
that.entity.businessAttributes = data;
this.editMode = false;
that.ui.businessMetadataTree.html("");
that.editMode = false;
that.fetchCollection();
that.onCancel();
},
complete: function(model, response) {
//that.hideLoader();
......@@ -239,7 +241,11 @@ define([
});
li += that.associateAttributePanel(obj, attrLi);
});
this.ui.businessMetadataTree.html(li);
var html = li;
if (html === "") {
html = '<div class="col-md-12"> No business metadata have been created yet. To add a business metadata, click <a href="javascript:void(0)" data-id="addBusinessMetadata">here</a></div>';
}
this.ui.businessMetadataTree.html(html);
},
associateAttributePanel: function(obj, tableBody) {
return '<div class="panel panel-default custom-panel expand_collapse_panel-icon no-border business-metadata-detail-attr">' +
......@@ -252,7 +258,11 @@ define([
'</div></div>';
},
onRender: function() {
this.panelOpenClose();
if (this.actualCollection && this.actualCollection.length) {
this.$el.find(".panel-heading.main-parent").removeClass("collapsed").attr("aria-expanded", "true");
this.$el.find("#businessMetadataCollapse").addClass("in").removeAttr("style");
this.ui.addBusinessMetadata.text("Edit");
}
this.renderBusinessMetadata();
}
});
......
......@@ -44,13 +44,15 @@ define(['require',
ui: {
addLabelOptions: "[data-id='addLabelOptions']",
addLabels: "[data-id='addLabels']",
saveLabels: "[data-id='saveLabels']"
saveLabels: "[data-id='saveLabels']",
cancel: "[data-id='cancel']"
},
events: function() {
var events = {};
events["change " + this.ui.addLabelOptions] = 'onChangeLabelChange';
events["click " + this.ui.addLabels] = 'handleBtnClick';
events["click " + this.ui.saveLabels] = 'saveUserDefinedLabels';
events["click " + this.ui.cancel] = 'onCancelClick';
return events;
},
initialize: function(options) {
......@@ -140,6 +142,12 @@ define(['require',
}
this.render();
},
onCancelClick: function() {
this.labels = this.entityModel.get("labels") || [];
this.swapItem = false;
this.saveLabels = false;
this.render();
},
saveUserDefinedLabels: function() {
var that = this;
var entityJson = that.entityModel.toJSON();
......
......@@ -29,7 +29,8 @@ define(['require',
templateHelpers: function() {
return {
items: this.items
items: this.items,
allValueRemovedUpdate: this.allValueRemovedUpdate
};
},
......@@ -62,11 +63,13 @@ define(['require',
if (options.items.length === 0) {
this.items = [{ key: "", value: "" }];
} else {
this.items = options.items;
this.items = $.extend(true, [], options.items);
}
this.updateParentButtonState = options.updateButtonState;
},
onRender: function() {},
onAddItemClick: function(e) {
this.allValueRemovedUpdate = false;
var el = e.currentTarget;
this.items.splice(parseInt(el.dataset.index) + 1, 0, { key: "", value: "" });
this.render();
......@@ -74,7 +77,16 @@ define(['require',
onDeleteItemClick: function(e) {
var el = e.currentTarget;
this.items.splice(el.dataset.index, 1);
this.render();
this.allValueRemovedUpdate = false;
if (this.items.length === 0) {
var updated = this.updateParentButtonState();
if (updated === false) {
this.allValueRemovedUpdate = true;
this.render();
}
} else {
this.render();
}
},
onItemKeyChange: function(e) {
var el = e.currentTarget;
......
......@@ -42,14 +42,16 @@ define(['require',
},
ui: {
addAttr: "[data-id='addAttr']",
editAttr: "[data-id='editAttr']",
saveAttrItems: "[data-id='saveAttrItems']"
saveAttrItems: "[data-id='saveAttrItems']",
cancel: "[data-id='cancel']",
addItem: "[data-id='addItem']"
},
events: function() {
var events = {};
events["click " + this.ui.addAttr] = 'onAddAttrClick';
events["click " + this.ui.editAttr] = 'onEditAttrClick';
events["click " + this.ui.addItem] = 'onAddAttrClick';
events["click " + this.ui.saveAttrItems] = 'onEditAttrClick';
events["click " + this.ui.cancel] = 'onCancelClick';
return events;
},
initialize: function(options) {
......@@ -66,9 +68,8 @@ define(['require',
onRender: function() {},
renderEntityUserDefinedItems: function() {
var that = this;
require(['views/entity/EntityUserDefineItemView'], function(EntityUserDefineItemView) {
that.itemView = new EntityUserDefineItemView({ items: that.customAttibutes });
that.itemView = new EntityUserDefineItemView({ items: that.customAttibutes, updateButtonState: that.updateButtonState.bind(that) });
that.REntityUserDefinedItemView.show(that.itemView);
});
},
......@@ -106,6 +107,21 @@ define(['require',
this.initialCall = this.customAttibutes.length > 0 ? false : true;
this.setAttributeModal(this.itemView);
},
updateButtonState: function() {
if (this.customAttibutes.length === 0) {
this.swapItem = false;
this.saveAttrItems = false;
this.render();
} else {
return false;
}
},
onCancelClick: function() {
this.initialCall = false;
this.swapItem = false;
this.saveAttrItems = false;
this.render();
},
structureAttributes: function(list) {
var obj = {}
list.map(function(o) {
......
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