define("AccountSectionV2", [], function() { return { entitySchemaName: "Account", attributes: { /** * Owner {Lookup} */ FieldDataLookupValue: { dataValueType: Terrasoft.DataValueType.LOOKUP, type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN, caption: "Owner", referenceSchemaName: "Contact", filters: function() { var filterGroup = new this.Terrasoft.createFilterGroup(); return filterGroup; }, isLookup: true } }, details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/, diff: /**SCHEMA_DIFF*/[ { "operation": "insert", "propertyName": "items", "name": "Owner", "values": { bindTo: "Owner", "caption": "Owner", layout: {column: 0, row: 8, colSpan: 12} } } ]/**SCHEMA_DIFF*/, methods: { getSectionActions: function() { var actionMenuItems = this.callParent(arguments); actionMenuItems.addItem(this.getButtonMenuItem({ "Caption": {bindTo: "Resources.Strings.MultiplyChangeAction"}, "Click": {bindTo: "showOwnerInfo"}, "Enabled": {bindTo: "isAnySelected"} })); return actionMenuItems; }, showOwnerInfo: function() { Terrasoft.utils.inputBox("Select an owner", function(result, arg) { if (result === Terrasoft.MessageBoxButtons.YES.returnCode) { var accountOwner = arg.owner.value; var autoIds = this.getSelectedItems(); this.updateAccount(function(context, result) { }, autoIds, accountOwner); } }, [{ className: "Terrasoft.Button", caption: "ASSIGN", returnCode: "yes" }, "cancel"], this, { owner: { dataValueType: Terrasoft.DataValueType.LOOKUP, type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN, hideActions: true, value: { value: "", displayValue: "" }, referenceSchema: { name: "Owner", primaryColumnName: "OwnerId", primaryDisplayColumnName: "Name" }, referenceSchemaName: "Contact", caption: "Owner", customConfig: { className: "Terrasoft.LookupEdit", columns: ["Name"], height: "17px" } } }, { defaultButton: 0, style: { borderStyle: "ts-messagebox-border-style-blue ts-messagebox-border-no-header", buttonStyle: "blue" } }); }, updateAccount: function(callback, autoIds, accountOwner) { var update = Ext.create("Terrasoft.UpdateQuery", { rootSchemaName: "Account" }); var filters = Terrasoft.createFilterGroup(); filters.logicalOperation = Terrasoft.LogicalOperatorType.OR; autoIds.forEach(function(item) { var accountIdFilter = update.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "id", item); filters.add("accountIdFilter" + item, accountIdFilter); }, this); update.filters.add(filters); if (accountOwner) { update.setParameterValue("Owner", accountOwner, Terrasoft.DataValueType.LOOKUP); } update.execute(function(result) { callback.call(this, result); }, this); } } }; });