public/javascripts/erp_app/organizer/applications/crm/base.js in erp_app-3.0.13 vs public/javascripts/erp_app/organizer/applications/crm/base.js in erp_app-3.0.14

- old
+ new

@@ -1,748 +1,748 @@ -Ext.define("Compass.ErpApp.Organizer.Applications.Crm.Layout",{ - extend:"Ext.panel.Panel", - alias:'widget.contactslayout', - //private member partyId - partyId:null, - widget_xtypes:null, +Ext.define("Compass.ErpApp.Organizer.Applications.Crm.Layout", { + extend:"Ext.panel.Panel", + alias:'widget.contactslayout', + //private member partyId + partyId:null, - expandContacts : function(){ - this.southPanel.expand(true); - }, + constructor:function (config) { + config = Ext.apply({ + layout:'border', + frame:false, + autoScroll:true, + region:'center', + items:[] - constructor : function(config) { - - this.widget_xtypes = config.widget_xtypes; + }, config); - config = Ext.apply({ - layout:'border', - frame: false, - autoScroll:true, - region:'center', - items:[] - - }, config); - - this.callParent([config]); - } + this.callParent([config]); + } }); -Ext.define("Compass.ErpApp.Organizer.Applications.Crm.PartyPanel",{ - extend:"Ext.panel.Panel", - alias:'widget.crmpartypanel', - //private member partyId - partyId:null, +Ext.define("Compass.ErpApp.Organizer.Applications.Crm.PartyPanel", { + extend:"Ext.panel.Panel", + alias:'widget.crmpartypanel', + //private member partyId + partyId:null, - constructor : function(config) { - this.partyId = config.partyId; - var self = this; - var currentPartyGrid = config.currentPartyGrid; - var currentPartyPanel = config.currentPartyPanel; + constructor:function (config) { + this.partyId = config.partyId; + var self = this; + var currentPartyGrid = config.currentPartyGrid; + var currentPartyPanel = config.currentPartyPanel; - var toolBar = Ext.create("Ext.toolbar.Toolbar",{ - items:[ - { - text: 'Edit', - xtype:'button', - iconCls: 'icon-edit', - handler: function(button) { - var rec = currentPartyGrid.store.getById(self.partyId); - currentPartyGrid.fireEvent('editpartybtnclick', this, rec); - } - }, - '|', - { - text: 'Delete', - xtype:'button', - iconCls: 'icon-delete', - handler: function(button) { - var rec = currentPartyGrid.store.getById(self.partyId); - if (!rec) { - return false; - } - var messageBox = Ext.MessageBox.confirm( - 'Confirm', 'Are you sure?', - function(btn){ - if (btn == 'yes'){ - currentPartyGrid.store.remove(rec); - Ext.getCmp('party_id_' + self.partyId).close(); + var toolBar = Ext.create("Ext.toolbar.Toolbar", { + items:[ + { + text:'Edit', + xtype:'button', + iconCls:'icon-edit', + handler:function (button) { + var rec = currentPartyGrid.store.getById(self.partyId); + currentPartyGrid.fireEvent('editpartybtnclick', this, rec); } - } - ); - } - } - ] - }); + }, + '|', + { + text:'Delete', + xtype:'button', + iconCls:'icon-delete', + handler:function (button) { + var rec = currentPartyGrid.store.getById(self.partyId); + if (!rec) { + return false; + } + var messageBox = Ext.MessageBox.confirm( + 'Confirm', 'Are you sure?', + function (btn) { + if (btn == 'yes') { + currentPartyGrid.store.remove(rec); + Ext.getCmp('party_id_' + self.partyId).close(); + } + } + ); + } + } + ] + }); - config = Ext.apply({ - title: config.tabtitle, - xtype:'panel', - layout:'border', - partyType: config.party_type, - id : 'party_id_' + config.partyId, - tbar: toolBar, - closable: true, - split: true, - items:[ - { - id: 'party_details_'+ config.partyId, - region: 'center', - xtype: 'panel', - html: '' - }, - { - height: 300, - collapsible: true, - region: 'south', - xtype:'tabpanel', - id: 'panelSouthItems_' + config.partyId, - items: config.panelSouthItems - } - ] + config = Ext.apply({ + title:config.tabtitle, + xtype:'panel', + layout:'border', + partyType:config.party_type, + id:'party_id_' + config.partyId, + tbar:toolBar, + closable:true, + split:true, + items:[ + { + id:'party_details_' + config.partyId, + region:'center', + xtype:'panel', + html:'' + }, + { + height:300, + collapsible:true, + region:'south', + xtype:'tabpanel', + id:'panelSouthItems_' + config.partyId, + items:config.panelSouthItems + } + ] - }, config); + }, config); - this.callParent([config]); - } + this.callParent([config]); + } }); -Compass.ErpApp.Organizer.Applications.Crm.Base = function(config){ - /** - * load details of party - */ - loadPartyDetails = function(partyId){ - widget_xtypes = individualsPanel.widget_xtypes; +Compass.ErpApp.Organizer.Applications.Crm.Base = function (config) { + /** + * load details of party + */ + loadPartyDetails = function (partyId) { + var widget_xtypes = [ + 'phonenumbergrid', + 'emailaddressgrid', + 'postaladdressgrid', + 'shared_notesgrid' + ]; - if(partyId == null){ - Ext.Msg.alert('Error', 'Member partyId not set'); - } - else{ - var tabPanel = Ext.getCmp('panelSouthItems_'+partyId); - updatePartyDetails(partyId); - - for (i=0; i < widget_xtypes.length; i += 1) { - var widget = tabPanel.query(widget_xtypes[i]); - if(widget.length > 0) { - widget[0].setParams({ - partyId: partyId - }); - widget[0].store.load(); + if (partyId == null) { + Ext.Msg.alert('Error', 'Member partyId not set'); } - } + else { + var tabPanel = Ext.getCmp('panelSouthItems_' + partyId); + updatePartyDetails(partyId); + Ext.getCmp('panelSouthItems_' + partyId).setActiveTab(0); - Ext.getCmp('panelSouthItems_'+partyId).setActiveTab(0); - } - }; + for (i = 0; i < widget_xtypes.length; i += 1) { + var widget = tabPanel.down(widget_xtypes[i]); + if (!Ext.isEmpty(widget)) { + widget.store.load(); + } + } + } + }; - updatePartyDetails = function(partyId){ - Ext.Ajax.request({ - url : '/erp_app/organizer/crm/get_party_details/'+partyId, - disableCaching : false, - method : 'GET', - success : function(response){ - Ext.getCmp('party_details_' + partyId).update(response.responseText); - } - }); - }; + updatePartyDetails = function (partyId) { + Ext.Ajax.request({ + url:'/erp_app/organizer/crm/get_party_details/' + partyId, + disableCaching:false, + method:'GET', + success:function (response) { + Ext.getCmp('party_details_' + partyId).update(response.responseText); + } + }); + }; - openPartyTab = function(partyId, party, party_type){ - if (!party_type){ party_type = 'Individual'; } - if (party_type == 'Individual'){ - currentPartyPanel = Ext.getCmp('IndividualsCenterPanel'); - currentPartyGrid = Ext.getCmp('individualSearchGrid'); - }else{ - currentPartyPanel = Ext.getCmp('OrganizationsCenterPanel'); - currentPartyGrid = Ext.getCmp('organizationSearchGrid'); - } + openPartyTab = function (partyId, party, party_type) { + if (!party_type) { + party_type = 'Individual'; + } + if (party_type == 'Individual') { + currentPartyPanel = Ext.getCmp('IndividualsCenterPanel'); + currentPartyGrid = Ext.getCmp('individualSearchGrid'); + } else { + currentPartyPanel = Ext.getCmp('OrganizationsCenterPanel'); + currentPartyGrid = Ext.getCmp('organizationSearchGrid'); + } - var panelSouthItems = []; + var panelSouthItems = []; + var xtypes = [ + 'phonenumbergrid', + 'emailaddressgrid', + 'postaladdressgrid', + 'shared_notesgrid' + ]; - var xtypes = currentUser.validWidgets('crm', - { - partygrid : true, - shared_notes_grid:true - }); + if (party_type == 'Individual') { + for (i = 0; i < xtypes.length; i += 1) { + panelSouthItems.push({ + xtype:xtypes[i], + partyId:partyId + }); + } - if (party_type == 'Individual'){ - for (i = 0; i < xtypes.length; i += 1) { - panelSouthItems.push({ - xtype: xtypes[i] - }); - } + var current_passport_expire_date = party.get('current_passport_expire_date'); + if (!Compass.ErpApp.Utility.isBlank(current_passport_expire_date)) { + current_passport_expire_date = Ext.Date.format(current_passport_expire_date, 'm/d/Y'); + } - var current_passport_expire_date = party.get('current_passport_expire_date'); - if (!Compass.ErpApp.Utility.isBlank(current_passport_expire_date)){ - current_passport_expire_date = Ext.Date.format(current_passport_expire_date, 'm/d/Y'); - } + tabtitle = party.get('current_first_name') + ' ' + party.get('current_last_name'); + } + else { + for (i = 0; i < xtypes.length; i += 1) { + panelSouthItems.push({ + xtype:xtypes[i] + }); + } - tabtitle = party.get('current_first_name') + ' ' + party.get('current_last_name'); - } - else{ - for (i = 0; i < xtypes.length; i += 1) { - panelSouthItems.push({ - xtype: xtypes[i] + tabtitle = party.get('description'); + } + + var partyPanel = Ext.create("Compass.ErpApp.Organizer.Applications.Crm.PartyPanel", { + party_type:party_type, + panelSouthItems:panelSouthItems, + tabtitle:tabtitle, + party_details:'', + partyId:partyId, + currentPartyPanel:currentPartyPanel, + currentPartyGrid:currentPartyGrid }); - } - - tabtitle = party.get('description'); - } - var partyPanel = Ext.create("Compass.ErpApp.Organizer.Applications.Crm.PartyPanel",{ - party_type: party_type, - panelSouthItems: panelSouthItems, - tabtitle: tabtitle, - party_details: '', - partyId: partyId, - currentPartyPanel: currentPartyPanel, - currentPartyGrid: currentPartyGrid - }); + currentPartyPanel.add(partyPanel); + currentPartyPanel.setActiveTab('party_id_' + partyId); - if (party_type == 'Individual'){ - currentPartyPanel.add(partyPanel); - currentPartyPanel.setActiveTab('party_id_' + partyId); - } - - loadPartyDetails(partyId); - }; - - var individualFormFields = [ - { - xtype:'textfield', - fieldLabel:'Enterprise Identifier', - allowBlank:true, - name:'enterprise_identifier' - }, - { - xtype:'textfield', - fieldLabel:'Title', - allowBlank:true, - name:'current_personal_title' - }, - { - xtype:'textfield', - fieldLabel:'First Name', - allowBlank:false, - name:'current_first_name' - }, - { - xtype:'textfield', - fieldLabel:'Middle Name', - allowBlank:true, - name:'current_middle_name' - }, - { - xtype:'textfield', - fieldLabel:'Last Name', - allowBlank:false, - name:'current_last_name' - }, - { - xtype:'textfield', - fieldLabel:'Suffix', - allowBlank:true, - name:'current_suffix' - }, - { - xtype:'textfield', - fieldLabel:'Nickname', - allowBlank:true, - name:'current_nickname' - }, - { - xtype:'textfield', - fieldLabel:'Passport Number', - allowBlank:true, - name:'current_passport_number' - }, - { - xtype:'datefield', - fieldLabel:'Passport Expiration Date', - allowBlank:true, - name:'current_passport_expire_date' - }, - { - xtype:'datefield', - fieldLabel:'DOB', - allowBlank:false, - name:'birth_date' - }, - { - xtype:'combobox', - fieldLabel: 'Gender', - store: Ext.create('Ext.data.Store', { - fields: ['v', 'k'], - data : [ - {"v":"m", "k":"Male"}, - {"v":"f", "k":"Female"}] - }), - displayField: 'k', - valueField: 'v', - name:'gender' - }, - { - xtype:'textfield', - fieldLabel:'Total Yrs Work Exp', - allowBlank:true, - name:'total_years_work_experience' - }, - { - xtype:'textfield', - fieldLabel:'Marital Status', - allowBlank:true, - name:'marital_status' - }, - { - xtype:'textfield', - fieldLabel:'Social Security Number', - allowBlank:true, - name:'social_security_number' - } - ]; + loadPartyDetails(partyId); + }; - var editIndividualFormFields = [ + var individualFormFields = [ { - xtype:'hiddenfield', - name:'id' + xtype:'textfield', + fieldLabel:'Enterprise Identifier', + allowBlank:true, + name:'enterprise_identifier' }, { - xtype:'hiddenfield', - name:'business_party_id' + xtype:'textfield', + fieldLabel:'Title', + allowBlank:true, + name:'current_personal_title' + }, + { + xtype:'textfield', + fieldLabel:'First Name', + allowBlank:false, + name:'current_first_name' + }, + { + xtype:'textfield', + fieldLabel:'Middle Name', + allowBlank:true, + name:'current_middle_name' + }, + { + xtype:'textfield', + fieldLabel:'Last Name', + allowBlank:false, + name:'current_last_name' + }, + { + xtype:'textfield', + fieldLabel:'Suffix', + allowBlank:true, + name:'current_suffix' + }, + { + xtype:'textfield', + fieldLabel:'Nickname', + allowBlank:true, + name:'current_nickname' + }, + { + xtype:'textfield', + fieldLabel:'Passport Number', + allowBlank:true, + name:'current_passport_number' + }, + { + xtype:'datefield', + fieldLabel:'Passport Expiration Date', + allowBlank:true, + name:'current_passport_expire_date' + }, + { + xtype:'datefield', + fieldLabel:'DOB', + allowBlank:false, + name:'birth_date' + }, + { + xtype:'combobox', + fieldLabel:'Gender', + store:Ext.create('Ext.data.Store', { + fields:['v', 'k'], + data:[ + {"v":"m", "k":"Male"}, + {"v":"f", "k":"Female"} + ] + }), + displayField:'k', + valueField:'v', + name:'gender' + }, + { + xtype:'textfield', + fieldLabel:'Total Yrs Work Exp', + allowBlank:true, + name:'total_years_work_experience' + }, + { + xtype:'textfield', + fieldLabel:'Marital Status', + allowBlank:true, + name:'marital_status' + }, + { + xtype:'textfield', + fieldLabel:'Social Security Number', + allowBlank:true, + name:'social_security_number' } - ]; + ]; - var addIndividualWindow = Ext.create("Ext.window.Window",{ - layout:'fit', - width:375, - title:'New Individual', - height:500, - buttonAlign:'center', - items: new Ext.FormPanel({ - labelWidth: 110, - frame:false, - bodyStyle:'padding:5px 5px 0', - width: 425, - url:'/erp_app/organizer/crm/create_party', - defaults: { - width: 225 - }, - items: [ individualFormFields ] - }), - buttons: [{ - text:'Submit', - listeners:{ - 'click':function(button){ - var window = button.findParentByType('window'); - var formPanel = window.query('form')[0]; - formPanel.getForm().submit({ - reset:true, - params:{ - party_type:'Individual' + var editIndividualFormFields = [ + { + xtype:'hiddenfield', + name:'id' + }, + { + xtype:'hiddenfield', + name:'business_party_id' + } + ]; + + var addIndividualWindow = Ext.create("Ext.window.Window", { + layout:'fit', + width:375, + title:'New Individual', + height:500, + buttonAlign:'center', + items:new Ext.FormPanel({ + labelWidth:110, + frame:false, + bodyStyle:'padding:5px 5px 0', + width:425, + url:'/erp_app/organizer/crm/create_party', + defaults:{ + width:225 }, - waitMsg:'Creating Individual', - success:function(form, action){ - var response = Ext.decode(action.response.responseText); - Ext.Msg.alert("Status", response.message); - if(response.success){ - var individualName = response.individualName; - addIndividualWindow.hide(); - var individualsSearchGrid = Ext.ComponentMgr.get('individualSearchGrid'); - individualsSearchGrid.store.proxy.extraParams.party_name = individualName; - individualsSearchGrid.store.load(); - } + items:[ individualFormFields ] + }), + buttons:[ + { + text:'Submit', + listeners:{ + 'click':function (button) { + var window = button.findParentByType('window'); + var formPanel = window.query('form')[0]; + formPanel.getForm().submit({ + reset:true, + params:{ + party_type:'Individual' + }, + waitMsg:'Creating Individual', + success:function (form, action) { + var response = Ext.decode(action.response.responseText); + Ext.Msg.alert("Status", response.message); + if (response.success) { + var individualName = response.individualName; + addIndividualWindow.hide(); + var individualsSearchGrid = Ext.ComponentMgr.get('individualSearchGrid'); + individualsSearchGrid.store.proxy.extraParams.party_name = individualName; + individualsSearchGrid.store.load(); + } + }, + failure:function (form, action) { + var message = 'Error adding individual'; + if (action.response != null) { + var response = Ext.decode(action.response.responseText); + message = response.message; + } + Ext.Msg.alert("Status", message); + } + }); + } + } }, - failure:function(form, action){ - var message = 'Error adding individual'; - if(action.response != null){ - var response = Ext.decode(action.response.responseText); - message = response.message; - } - Ext.Msg.alert("Status", message); + { + text:'Close', + handler:function () { + addIndividualWindow.hide(); + } } - }); - } - } - },{ - text: 'Close', - handler: function(){ - addIndividualWindow.hide(); - } - }] - }); + ] + }); - var editIndividualWindow = Ext.create("Ext.window.Window",{ - layout:'fit', - width:375, - title:'Edit Individual', - height:500, - buttonAlign:'center', - items: new Ext.FormPanel({ - id: 'editIndividualFormPanel', - labelWidth: 110, - frame:false, - bodyStyle:'padding:5px 5px 0', - width: 425, - url:'/erp_app/organizer/crm/update_party', - defaults: { - width: 225 - }, - items: [ individualFormFields.concat(editIndividualFormFields) ] - }), - buttons: [{ - text:'Submit', - listeners:{ - 'click':function(button){ - partyId = Ext.getCmp('editIndividualFormPanel').getForm().findField('id').getValue(); + var editIndividualWindow = Ext.create("Ext.window.Window", { + layout:'fit', + width:375, + title:'Edit Individual', + height:500, + buttonAlign:'center', + items:new Ext.FormPanel({ + id:'editIndividualFormPanel', + labelWidth:110, + frame:false, + bodyStyle:'padding:5px 5px 0', + width:425, + url:'/erp_app/organizer/crm/update_party', + defaults:{ + width:225 + }, + items:[ individualFormFields.concat(editIndividualFormFields) ] + }), + buttons:[ + { + text:'Submit', + listeners:{ + 'click':function (button) { + partyId = Ext.getCmp('editIndividualFormPanel').getForm().findField('id').getValue(); - var window = button.findParentByType('window'); - var formPanel = window.query('form')[0]; - formPanel.getForm().submit({ - reset:true, - params:{ - party_type:'Individual' + var window = button.findParentByType('window'); + var formPanel = window.query('form')[0]; + formPanel.getForm().submit({ + reset:true, + params:{ + party_type:'Individual' + }, + waitMsg:'Updating Individual', + success:function (form, action) { + var response = Ext.decode(action.response.responseText); + Ext.Msg.alert("Status", response.message); + if (response.success) { + updatePartyDetails(partyId); + editIndividualWindow.hide(); + Ext.getCmp('individualSearchGrid').store.load(); + } + }, + failure:function (form, action) { + var message = 'Error updating individual'; + if (action.response != null) { + var response = Ext.decode(action.response.responseText); + message = response.message; + } + Ext.Msg.alert("Status", message); + } + }); + } + } }, - waitMsg:'Updating Individual', - success:function(form, action){ - var response = Ext.decode(action.response.responseText); - Ext.Msg.alert("Status", response.message); - if(response.success){ - updatePartyDetails(partyId); - editIndividualWindow.hide(); - Ext.getCmp('individualSearchGrid').store.load(); - } - }, - failure:function(form, action){ - var message = 'Error updating individual'; - if(action.response != null){ - var response = Ext.decode(action.response.responseText); - message = response.message; - } - Ext.Msg.alert("Status", message); + { + text:'Close', + handler:function () { + editIndividualWindow.hide(); + } } - }); + ] + }); + + var organizationFormFields = [ + { + xtype:'textfield', + fieldLabel:'Enterprise Identifier', + allowBlank:true, + name:'enterprise_identifier' + }, + { + xtype:'textfield', + fieldLabel:'Tax ID', + allowBlank:true, + name:'tax_id_number' + }, + { + xtype:'textfield', + fieldLabel:'Description', + allowBlank:true, + name:'description' } - } - },{ - text: 'Close', - handler: function(){ - editIndividualWindow.hide(); - } - }] - }); + ]; - var organizationFormFields = [ - { - xtype:'textfield', - fieldLabel:'Enterprise Identifier', - allowBlank:true, - name:'enterprise_identifier' - }, - { - xtype:'textfield', - fieldLabel:'Tax ID', - allowBlank:true, - name:'tax_id_number' - }, - { - xtype:'textfield', - fieldLabel:'Description', - allowBlank:true, - name:'description' - } - ]; - - var editOrganizationFormFields = [ + var editOrganizationFormFields = [ { - xtype:'hiddenfield', - name:'id' + xtype:'hiddenfield', + name:'id' }, { - xtype:'hiddenfield', - name:'business_party_id' + xtype:'hiddenfield', + name:'business_party_id' } - ]; + ]; - var addOrganizationWindow = Ext.create("Ext.window.Window",{ - layout:'fit', - width:375, - title:'New Organization', - height:160, - buttonAlign:'center', - items: new Ext.FormPanel({ - labelWidth: 110, - frame:false, - bodyStyle:'padding:5px 5px 0', - width: 425, - url:'/erp_app/organizer/crm/create_party', - defaults: { - width: 225 - }, - items: [ organizationFormFields ] - }), - buttons: [{ - text:'Submit', - listeners:{ - 'click':function(button){ - var window = button.findParentByType('window'); - var formPanel = window.query('form')[0]; - formPanel.getForm().submit({ - reset:true, - waitMsg:'Creating Organization', - params:{ - party_type:'Organization' + var addOrganizationWindow = Ext.create("Ext.window.Window", { + layout:'fit', + width:375, + title:'New Organization', + height:160, + buttonAlign:'center', + items:new Ext.FormPanel({ + labelWidth:110, + frame:false, + bodyStyle:'padding:5px 5px 0', + width:425, + url:'/erp_app/organizer/crm/create_party', + defaults:{ + width:225 }, - success:function(form, action){ - var response = Ext.decode(action.response.responseText); - Ext.Msg.alert("Status", response.message); - if(response.success){ - var organizationName = response.organizationName; - addOrganizationWindow.hide(); - var organizationSearchGrid = Ext.ComponentMgr.get('organizationSearchGrid'); - organizationSearchGrid.store.proxy.extraParams.party_name = organizationName; - organizationSearchGrid.store.load(); - } + items:[ organizationFormFields ] + }), + buttons:[ + { + text:'Submit', + listeners:{ + 'click':function (button) { + var window = button.findParentByType('window'); + var formPanel = window.query('form')[0]; + formPanel.getForm().submit({ + reset:true, + waitMsg:'Creating Organization', + params:{ + party_type:'Organization' + }, + success:function (form, action) { + var response = Ext.decode(action.response.responseText); + Ext.Msg.alert("Status", response.message); + if (response.success) { + var organizationName = response.organizationName; + addOrganizationWindow.hide(); + var organizationSearchGrid = Ext.ComponentMgr.get('organizationSearchGrid'); + organizationSearchGrid.store.proxy.extraParams.party_name = organizationName; + organizationSearchGrid.store.load(); + } + }, + failure:function (form, action) { + var message = "Error adding organization"; + if (action.response != null) { + var response = Ext.decode(action.response.responseText); + message = response.message; + } + Ext.Msg.alert("Status", message); + } + }); + } + } }, - failure:function(form, action){ - var message = "Error adding organization"; - if(action.response != null){ - var response = Ext.decode(action.response.responseText); - message = response.message; - } - Ext.Msg.alert("Status", message); + { + text:'Close', + handler:function () { + addOrganizationWindow.hide(); + } } - }); - } - } - },{ - text: 'Close', - handler: function(){ - addOrganizationWindow.hide(); - } - }] - }); + ] + }); - var editOrganizationWindow = Ext.create("Ext.window.Window",{ - layout:'fit', - width:375, - title:'Edit Organization', - height:160, - buttonAlign:'center', - items: new Ext.FormPanel({ - id: 'editOrganizationFormPanel', - labelWidth: 110, - frame:false, - bodyStyle:'padding:5px 5px 0', - width: 425, - url:'/erp_app/organizer/crm/update_party', - defaults: { - width: 225 - }, - items: [ organizationFormFields.concat(editOrganizationFormFields) ] - }), - buttons: [{ - text:'Submit', - listeners:{ - 'click':function(button){ - partyId = Ext.getCmp('editOrganizationFormPanel').getForm().findField('id').getValue(); + var editOrganizationWindow = Ext.create("Ext.window.Window", { + layout:'fit', + width:375, + title:'Edit Organization', + height:160, + buttonAlign:'center', + items:new Ext.FormPanel({ + id:'editOrganizationFormPanel', + labelWidth:110, + frame:false, + bodyStyle:'padding:5px 5px 0', + width:425, + url:'/erp_app/organizer/crm/update_party', + defaults:{ + width:225 + }, + items:[ organizationFormFields.concat(editOrganizationFormFields) ] + }), + buttons:[ + { + text:'Submit', + listeners:{ + 'click':function (button) { + partyId = Ext.getCmp('editOrganizationFormPanel').getForm().findField('id').getValue(); - var window = button.findParentByType('window'); - var formPanel = window.query('form')[0]; - formPanel.getForm().submit({ - reset:true, - waitMsg:'Updating Organization', - params:{ - party_type:'Organization' + var window = button.findParentByType('window'); + var formPanel = window.query('form')[0]; + formPanel.getForm().submit({ + reset:true, + waitMsg:'Updating Organization', + params:{ + party_type:'Organization' + }, + success:function (form, action) { + var response = Ext.decode(action.response.responseText); + Ext.Msg.alert("Status", response.message); + if (response.success) { + updatePartyDetails(partyId); + var organizationName = response.organizationName; + editOrganizationWindow.hide(); + var organizationSearchGrid = Ext.ComponentMgr.get('organizationSearchGrid'); + organizationSearchGrid.store.proxy.extraParams.party_name = organizationName; + organizationSearchGrid.store.load(); + } + }, + failure:function (form, action) { + var message = "Error adding organization"; + if (action.response != null) { + var response = Ext.decode(action.response.responseText); + message = response.message; + } + Ext.Msg.alert("Status", message); + } + }); + } + } }, - success:function(form, action){ - var response = Ext.decode(action.response.responseText); - Ext.Msg.alert("Status", response.message); - if(response.success){ - updatePartyDetails(partyId); - var organizationName = response.organizationName; - editOrganizationWindow.hide(); - var organizationSearchGrid = Ext.ComponentMgr.get('organizationSearchGrid'); - organizationSearchGrid.store.proxy.extraParams.party_name = organizationName; - organizationSearchGrid.store.load(); - } - }, - failure:function(form, action){ - var message = "Error adding organization"; - if(action.response != null){ - var response = Ext.decode(action.response.responseText); - message = response.message; - } - Ext.Msg.alert("Status", message); + { + text:'Close', + handler:function () { + editOrganizationWindow.hide(); + } } - }); - } - } - },{ - text: 'Close', - handler: function(){ - editOrganizationWindow.hide(); - } - }] - }); + ] + }); - var treeMenuStore = Ext.create('Compass.ErpApp.Organizer.DefaultMenuTreeStore', { - url:'/erp_app/organizer/crm/menu', - rootText:'Customers', - rootIconCls:'icon-content', - additionalFields:[ - { - name:'businessPartType' - } - ] - }); + var treeMenuStore = Ext.create('Compass.ErpApp.Organizer.DefaultMenuTreeStore', { + url:'/erp_app/organizer/crm/menu', + rootText:'Customers', + rootIconCls:'icon-content', + additionalFields:[ + { + name:'businessPartType' + } + ] + }); - var menuTreePanel = { - xtype:'defaultmenutree', - title:'CRM', - store:treeMenuStore, - listeners:{ - scope:this, - 'itemcontextmenu':function(view, record, htmlItem, index, e){ - e.stopEvent(); - if(record.isLeaf()){ - var contextMenu = null; - if(record.data.businessPartType == "individual"){ - contextMenu = new Ext.menu.Menu({ - items:[ - { - text:"Add Individual", - iconCls:'icon-add', - listeners:{ - 'click':function(){ - addIndividualWindow.show(); - } + var menuTreePanel = { + xtype:'defaultmenutree', + title:'CRM', + store:treeMenuStore, + listeners:{ + scope:this, + 'itemcontextmenu':function (view, record, htmlItem, index, e) { + e.stopEvent(); + if (record.isLeaf()) { + var contextMenu = null; + if (record.data.businessPartType == "individual") { + contextMenu = new Ext.menu.Menu({ + items:[ + { + text:"Add Individual", + iconCls:'icon-add', + listeners:{ + 'click':function () { + addIndividualWindow.show(); + } + } + } + ] + }); + } + else if (record.data.businessPartType == "organization") { + contextMenu = new Ext.menu.Menu({ + items:[ + { + text:"Add Organization", + iconCls:'icon-add', + listeners:{ + 'click':function () { + addOrganizationWindow.show(); + } + } + } + ] + }); + } + contextMenu.showAt(e.xy); } - } - ] - }); - } - else - if(record.data.businessPartType == "organization"){ - contextMenu = new Ext.menu.Menu({ - items:[ - { - text:"Add Organization", - iconCls:'icon-add', - listeners:{ - 'click':function(){ - addOrganizationWindow.show(); - } - } - } - ] - }); - } - contextMenu.showAt(e.xy); + } } - } - } - }; + }; - var individualsGrid = { - id:'individualSearchGrid', - title: 'Search', - xtype:'partygrid', - partyType:'Individual', - listeners:{ - 'addpartybtnclick':function(btn, grid){ - addIndividualWindow.show(); - }, - 'editpartybtnclick':function(btn, rec){ - //rec = grid.getSelectionModel().getSelection()[0]; - if (rec){ - Ext.getCmp('editIndividualFormPanel').getForm().loadRecord(rec); - editIndividualWindow.show(); + var individualsGrid = { + id:'individualSearchGrid', + title:'Search', + xtype:'partygrid', + partyType:'Individual', + listeners:{ + 'addpartybtnclick':function (btn, grid) { + addIndividualWindow.show(); + }, + 'editpartybtnclick':function (btn, rec) { + //rec = grid.getSelectionModel().getSelection()[0]; + if (rec) { + Ext.getCmp('editIndividualFormPanel').getForm().loadRecord(rec); + editIndividualWindow.show(); + } + else { + Ext.Msg.alert('Please select a record to edit.'); + } + }, + 'itemdblclick':function (view, record, item, index, e, options) { + var partyId = record.get("id"); + var partyTab = Ext.getCmp('party_id_' + partyId); + if (partyTab) { + Ext.getCmp('IndividualsCenterPanel').setActiveTab('party_id_' + partyId); + } + else { + openPartyTab(partyId, record, 'Individual'); + } + } } - else{ - Ext.Msg.alert('Please select a record to edit.'); - } - }, - 'itemdblclick':function(view, record, item, index, e, options){ - var partyId = record.get("id"); - var partyTab = Ext.getCmp('party_id_' + partyId); - if (partyTab){ - Ext.getCmp('IndividualsCenterPanel').setActiveTab('party_id_' + partyId); - } - else{ - openPartyTab(partyId, record, 'Individual'); - } - } - } - }; + }; - var organizationsGrid = { - id:'organizationSearchGrid', - title: 'Search', - xtype:'partygrid', - partyType:'Organization', - listeners:{ - 'addpartybtnclick':function(btn, grid){ - addOrganizationWindow.show(); - }, - 'editpartybtnclick':function(btn, rec){ - //rec = grid.getSelectionModel().getSelection()[0]; - if (rec){ - Ext.getCmp('editOrganizationFormPanel').getForm().loadRecord(rec); - editOrganizationWindow.show(); + var organizationsGrid = { + id:'organizationSearchGrid', + title:'Search', + xtype:'partygrid', + partyType:'Organization', + listeners:{ + 'addpartybtnclick':function (btn, grid) { + addOrganizationWindow.show(); + }, + 'editpartybtnclick':function (btn, rec) { + //rec = grid.getSelectionModel().getSelection()[0]; + if (rec) { + Ext.getCmp('editOrganizationFormPanel').getForm().loadRecord(rec); + editOrganizationWindow.show(); + } + else { + Ext.Msg.alert('Please select a record to edit.'); + } + }, + 'itemdblclick':function (view, record, item, index, e, options) { + var partyId = record.get("id"); + var partyTab = Ext.getCmp('party_id_' + partyId); + if (partyTab) { + Ext.getCmp('OrganizationsCenterPanel').setActiveTab('party_id_' + partyId); + } + else { + openPartyTab(partyId, record, 'Organization'); + } + } } - else{ - Ext.Msg.alert('Please select a record to edit.'); - } - }, - 'itemdblclick':function(view, record, item, index, e, options){ - var partyId = record.get("id"); - var partyTab = Ext.getCmp('party_id_' + partyId); - if (partyTab){ - Ext.getCmp('OrganizationsCenterPanel').setActiveTab('party_id_' + partyId); - } - else{ - openPartyTab(partyId, record, 'Organization'); - } - } - } - }; + }; - var xtypes = currentUser.validWidgets('crm', - { - partygrid : true, - shared_notes_grid:true - }); + var individualsPanel = { + xtype:'contactslayout', + id:'individuals_search_grid', + title:'Individuals', + items:[ + { + xtype:'tabpanel', + layout:'fit', + region:'center', + id:'IndividualsCenterPanel', + items:[individualsGrid] + } + ] + }; - var individualsPanel = { - xtype:'contactslayout', - id:'individuals_search_grid', - title: 'Individuals', - widget_xtypes: xtypes, - items:[{ - xtype: 'tabpanel', - layout:'fit', - region:'center', - id: 'IndividualsCenterPanel', - autoScroll:true, - items:[individualsGrid] - }] - }; + var organizationsPanel = { + xtype:'contactslayout', + id:'organizations_search_grid', + title:'Organizations', + items:[ + { + xtype:'tabpanel', + layout:'fit', + region:'center', + id:'OrganizationsCenterPanel', + items:[organizationsGrid] + } + ] + }; - var organizationsPanel = { - xtype:'contactslayout', - id:'organizations_search_grid', - title: 'Organizations', - widget_xtypes: xtypes, - items:[{ - xtype: 'tabpanel', - layout:'fit', - region:'center', - id: 'OrganizationsCenterPanel', - autoScroll:true, - items:[organizationsGrid] - }] - }; + this.setup = function () { + config.organizerLayout.addApplication(menuTreePanel, [individualsPanel, organizationsPanel]); + }; - this.setup = function(){ - config.organizerLayout.addApplication(menuTreePanel, [individualsPanel, organizationsPanel]); - }; - };