X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=Pman.Dialog.CoreEmail.js;h=fb2be9a743c5e9cba9a57497285d2eda7addcdbb;hp=31ba1f8b4822ff4c8a2e9e68075a9cbfe2406968;hb=a1a3ecba68d2fedabc8203e88b40759401d7472d;hpb=c1ea62f76740e5d437152e611a9bc01bfaba0c30 diff --git a/Pman.Dialog.CoreEmail.js b/Pman.Dialog.CoreEmail.js index 31ba1f8b..fb2be9a7 100644 --- a/Pman.Dialog.CoreEmail.js +++ b/Pman.Dialog.CoreEmail.js @@ -7,32 +7,44 @@ Roo.namespace('Pman.Dialog'); Pman.Dialog.CoreEmail = { _strings : { - '308f2757bfc9ce92fb00ff93fdffd279' :"Images / Attachments", - 'dc0de523c25be298ba751c63c694109e' :"Responsive Email (1)", - 'ea30b40c3caf28acb29198d20d243e54' :"Images / Attachments >>", - '4c2a8fe7eaf24721cc7a9f0175115bd4' :"Message", + 'e44b145bd8b49b06e0ad2ced1ad56466' :"Plain Text", '2f26e35d61be90501e099089dc533638' :"Select Images", - 'ec211f7c20af43e742bf2570c3cb84f9' :"Add", + 'f2a6c498fb90ee345d997f888fce3b18' :"Delete", + 'b357b524e740bc85b9790a0712d84a30' :"Email address", + '962b90039a542a29cedd51d87a9f28a1' :"Html Editor", '72d6d7a1885885bb55a565fd1070581a' :"Import", + 'ea30b40c3caf28acb29198d20d243e54' :"Images / Attachments >>", + '31fde7b05ac8952dacf4af8a704074ec' :"Preview", + 'b337c8a67244afb6551ee1f8f9717676' :"Test Class
(for system reference only)", '884df8e413319ff51a3f5f528606238a' :"Use template", - '396ecabf0cd1f9503e591418851ef406' :"Edit / Create Message", - '31bb2f6e9b8fb11cbb7fb63c6025223f' :"Select Template", - '1bd18d39370b7f26c1c5e18067b74c6f' :"Html File", + 'e6b391a8d2c4d45902a23a8b6585703d' :"URL", + '2393ad754ba179442d85e415d1d5167c' :"Displayorder", + '6f16a5f8ff5d75ab84c018adacdfcbb7' :"Field", + 'ec211f7c20af43e742bf2570c3cb84f9' :"Add", + 'e9968623956c15023d54335ea3699855' :"Convert Html to Text", '1243daf593fa297e07ab03bf06d925af' :"Searching...", - 'b78a3223503896721cca1303f776159b' :"Title", - '31fde7b05ac8952dacf4af8a704074ec' :"Preview", '5b8ef4e762c00a15a41cfc26dc3ef99c' :"Send me a test copy", - 'ea4788705e6873b424c65e91c2846b19' :"Cancel", - '962b90039a542a29cedd51d87a9f28a1' :"Html Editor", - '5feb9bf3c03b32635135006cbacb9542' :"Insert Field", - '2393ad754ba179442d85e415d1d5167c' :"Displayorder", + 'c7892ebbb139886662c6f2fc8c450710' :"Subject", + 'dc0de523c25be298ba751c63c694109e' :"Responsive Email (1)", + '396ecabf0cd1f9503e591418851ef406' :"Edit / Create Message", 'b9c49611cfda3259a2b837b39489e650' :"Add Image", - 'e44b145bd8b49b06e0ad2ced1ad56466' :"Plain Text", - 'f2a6c498fb90ee345d997f888fce3b18' :"Delete", + 'ea4788705e6873b424c65e91c2846b19' :"Cancel", + '68b00d723d37122f64da8d9939f836f0' :"BCC Group", + 'c4ca4238a0b923820dcc509a6f75849b' :"1", + 'bd88a20b53a47f7b5704a83a15ff5506' :"Saved Version", + 'b20a8b77b05d53b4e695738731400c85' :"Mailout Name", + '1bd18d39370b7f26c1c5e18067b74c6f' :"Html File", + '2c466a2c159463f1d9ef5a7b57b52827' :"Select BCC Group", + '5da618e8e4b89c66fe86e32cdafde142' :"From", + '31bb2f6e9b8fb11cbb7fb63c6025223f' :"Select Template", + 'b78a3223503896721cca1303f776159b' :"Title", + '278c491bdd8a53618c149c4ac790da34' :"Template", '1351017ac6423911223bc19a8cb7c653' :"Filename", + '308f2757bfc9ce92fb00ff93fdffd279' :"Images / Attachments", 'c9cc8cce247e49bae79f15173ce97354' :"Save", - 'e6b391a8d2c4d45902a23a8b6585703d' :"URL", - 'e9968623956c15023d54335ea3699855' :"Convert Html to Text" + '5feb9bf3c03b32635135006cbacb9542' :"Insert Field", + '4c2a8fe7eaf24721cc7a9f0175115bd4' :"Message", + 'fff0d600f8a0b5e19e88bfb821dd1157' :"Images" }, dialog : false, @@ -59,122 +71,14 @@ Pman.Dialog.CoreEmail = { { var _this = this; this.dialog = Roo.factory({ - center : { - '|xns' : 'Roo', - tabPosition : 'top', - xns : Roo, - xtype : 'LayoutRegion' - }, - east : { - '|xns' : 'Roo', - hidden : true, - split : true, - title : _this._strings['308f2757bfc9ce92fb00ff93fdffd279'], - titlebar : true, - width : 500, - xns : Roo, - xtype : 'LayoutRegion' - }, - '|xns' : 'Roo', + xtype : 'LayoutDialog', closable : true, collapsible : false, height : 500, modal : true, resizable : true, - title : _this._strings['396ecabf0cd1f9503e591418851ef406'], + title : _this._strings['396ecabf0cd1f9503e591418851ef406'] /* Edit / Create Message */, width : 800, - xns : Roo, - xtype : 'LayoutDialog', - buttons : [ - { - '|xns' : 'Roo', - text : _this._strings['31fde7b05ac8952dacf4af8a704074ec'], - xns : Roo, - xtype : 'Button', - listeners : { - click : function (_self, e) - { - //_this.dialog.hide(); - Roo.log(_this.data.module); - Pman.Dialog.CoreEmailPreview.show({ id : _this.form.findField('id').getValue(), module : _this.data.module }); - }, - render : function (_self) - { - _this.preview_btn = _self; - } - } - }, -{ - '|xns' : 'Roo', - text : _this._strings['5b8ef4e762c00a15a41cfc26dc3ef99c'], - xns : Roo, - xtype : 'Button', - listeners : { - click : function (_self, e) - { - //_this.dialog.hide(); - - var id = _this.form.findField('id').getValue(); - - if(id*1 < 1){ - Roo.MessageBox.alert('Error', 'Please save the message frist!'); - return; - } - - new Pman.Request({ - url : baseURL + '/Core/MessagePreview', - method : 'POST', - mask: 'Sending', - params : { - _id : id, - _table : _this.data.module - }, - success : function(res) { - if(res.data == 'SUCCESS'){ - Roo.MessageBox.alert("Email Sent", 'The report was sent to your email (HTML format).'); - } - } - }); - }, - render : function (_self) - { - _this.html_preview = _self; - } - } - }, -{ - '|xns' : 'Roo', - text : _this._strings['ea4788705e6873b424c65e91c2846b19'], - xns : Roo, - xtype : 'Button', - listeners : { - click : function (_self, e) - { - _this.dialog.hide(); - } - } - }, -{ - '|xns' : 'Roo', - text : _this._strings['c9cc8cce247e49bae79f15173ce97354'], - xns : Roo, - xtype : 'Button', - listeners : { - click : function (_self, e) - { - - // do some checks? - _this.form.preValidate(function(res) { - if (!res) { - return; //failed. - } - _this.form.doAction("submit"); - }); - - } - } - } - ], listeners : { show : function (_self) { @@ -203,24 +107,141 @@ Pman.Dialog.CoreEmail = { } }, - items : [ + xns : Roo, + '|xns' : 'Roo', + center : { + xtype : 'LayoutRegion', + tabPosition : 'top', + xns : Roo, + '|xns' : 'Roo' + }, + east : { + xtype : 'LayoutRegion', + hidden : true, + split : true, + title : _this._strings['308f2757bfc9ce92fb00ff93fdffd279'] /* Images / Attachments */, + titlebar : true, + width : 500, + xns : Roo, + '|xns' : 'Roo' + }, + buttons : [ + { + xtype : 'Button', + text : _this._strings['31fde7b05ac8952dacf4af8a704074ec'] /* Preview */, + listeners : { + click : function (_self, e) + { + //_this.dialog.hide(); + Roo.log(_this.data.module); + Pman.Dialog.CoreEmailPreview.show({ id : _this.form.findField('id').getValue(), module : _this.data.module }); + }, + render : function (_self) + { + _this.preview_btn = _self; + } + }, + xns : Roo, + '|xns' : 'Roo' + }, + { + xtype : 'Button', + text : _this._strings['5b8ef4e762c00a15a41cfc26dc3ef99c'] /* Send me a test copy */, + listeners : { + click : function (_self, e) + { + //_this.dialog.hide(); + + var id = _this.form.findField('id').getValue(); + + if(id*1 < 1){ + Roo.MessageBox.alert('Error', 'Please save the message frist!'); + return; + } + + new Pman.Request({ + url : baseURL + '/Core/MessagePreview', + method : 'POST', + mask: 'Sending', + params : { + _id : id, + _table : _this.data.module + }, + success : function(res) { + if(res.data == 'SUCCESS'){ + Roo.MessageBox.alert("Email Sent", 'The report was sent to your email (HTML format).'); + } + } + }); + }, + render : function (_self) + { + _this.html_preview = _self; + } + }, + xns : Roo, + '|xns' : 'Roo' + }, + { + xtype : 'Button', + text : _this._strings['ea4788705e6873b424c65e91c2846b19'] /* Cancel */, + listeners : { + click : function (_self, e) + { + _this.dialog.hide(); + } + }, + xns : Roo, + '|xns' : 'Roo' + }, + { + xtype : 'Button', + text : _this._strings['c9cc8cce247e49bae79f15173ce97354'] /* Save */, + listeners : { + click : function (_self, e) + { + + // do some checks? + _this.form.preValidate(function(res) { + if (!res) { + return; //failed. + } + _this.form.doAction("submit"); + }); + + } + }, + xns : Roo, + '|xns' : 'Roo' + } + ], + items : [ { + xtype : 'NestedLayoutPanel', + autoScroll : false, + fitContainer : true, + fitToFrame : true, + region : 'center', + xns : Roo, + '|xns' : 'Roo', toolbar : { - '|xns' : 'Roo', - xns : Roo, xtype : 'Toolbar', - items : [ + xns : Roo, + '|xns' : 'Roo', + items : [ { + xtype : 'Button', + text : _this._strings['72d6d7a1885885bb55a565fd1070581a'] /* Import */, + xns : Roo.Toolbar, + '|xns' : 'Roo.Toolbar', menu : { - '|xns' : 'Roo.menu', - xns : Roo.menu, xtype : 'Menu', - items : [ + xns : Roo.menu, + '|xns' : 'Roo.menu', + items : [ { - '|xns' : 'Roo.menu', - text : _this._strings['e6b391a8d2c4d45902a23a8b6585703d'], - xns : Roo.menu, xtype : 'Item', + text : _this._strings['e6b391a8d2c4d45902a23a8b6585703d'] /* URL */, listeners : { click : function (_self, e) { @@ -233,13 +254,13 @@ Pman.Dialog.CoreEmail = { } }); } - } + }, + xns : Roo.menu, + '|xns' : 'Roo.menu' }, { - '|xns' : 'Roo.menu', - text : _this._strings['1bd18d39370b7f26c1c5e18067b74c6f'], - xns : Roo.menu, xtype : 'Item', + text : _this._strings['1bd18d39370b7f26c1c5e18067b74c6f'] /* Html File */, listeners : { click : function (_self, e) { @@ -251,31 +272,26 @@ Pman.Dialog.CoreEmail = { } }); } - } + }, + xns : Roo.menu, + '|xns' : 'Roo.menu' } ] - - }, - '|xns' : 'Roo.Toolbar', - text : _this._strings['72d6d7a1885885bb55a565fd1070581a'], - xns : Roo.Toolbar, - xtype : 'Button', - items : [ - - ] - + } }, { + xtype : 'Button', + text : _this._strings['884df8e413319ff51a3f5f528606238a'] /* Use template */, + xns : Roo.Toolbar, + '|xns' : 'Roo.Toolbar', menu : { - '|xns' : 'Roo.menu', - xns : Roo.menu, xtype : 'Menu', - items : [ + xns : Roo.menu, + '|xns' : 'Roo.menu', + items : [ { - '|xns' : 'Roo.menu', - text : _this._strings['dc0de523c25be298ba751c63c694109e'], - xns : Roo.menu, xtype : 'Item', + text : _this._strings['dc0de523c25be298ba751c63c694109e'] /* Responsive Email (1) */, listeners : { click : function (_self, e) { @@ -288,7 +304,7 @@ Pman.Dialog.CoreEmail = { method: 'POST', mask : "Loading", params : { - importUrl : l.protocol +'//' + l.host + rootURL + '/Pman/Crm/mail_templates/responsive1.html', + importUrl : l.protocol +'//' + l.host + rootURL + '/Pman/Crm/mail_templates/responsive1.html' }, success : function (res) { @@ -297,78 +313,35 @@ Pman.Dialog.CoreEmail = { }); } - } + }, + xns : Roo.menu, + '|xns' : 'Roo.menu' } ] - - }, - '|xns' : 'Roo.Toolbar', - text : _this._strings['884df8e413319ff51a3f5f528606238a'], - xns : Roo.Toolbar, - xtype : 'Button', - items : [ - - ] - + } }, { - store : { - proxy : { - '|xns' : 'Roo.data', - method : 'GET', - url : baseURL + '/Core/MailTemplateList.php', - xns : Roo.data, - xtype : 'HttpProxy' - }, - reader : { - '|xns' : 'Roo.data', - fields : [{"name":"file","type":"string"},{"name":"content","type":"string"}], - id : 'name', - root : 'data', - totalProperty : 'total', - xns : Roo.data, - xtype : 'JsonReader' - }, - '|xns' : 'Roo.data', - remoteSort : true, - sortInfo : { direction : 'DESC', field: 'file' }, - xns : Roo.data, - xtype : 'Store', - listeners : { - beforeload : function (_self, o){ - o.params = o.params || {}; - // set more here - - } - }, - items : [ - - ] - - }, - '|xns' : 'Roo.form', + xtype : 'ComboBox', allowBlank : true, alwaysQuery : true, displayField : 'file', editable : false, - emptyText : _this._strings['31bb2f6e9b8fb11cbb7fb63c6025223f'], - fieldLabel : 'Template', + emptyText : _this._strings['31bb2f6e9b8fb11cbb7fb63c6025223f'] /* Select Template */, + fieldLabel : _this._strings['278c491bdd8a53618c149c4ac790da34'] /* Template */, forceSelection : true, hiddenName : 'template', listWidth : 400, - loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'], + loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */, minChars : 2, name : 'template', pageSize : 20, - qtip : _this._strings['31bb2f6e9b8fb11cbb7fb63c6025223f'], + qtip : _this._strings['31bb2f6e9b8fb11cbb7fb63c6025223f'] /* Select Template */, selectOnFocus : true, tpl : '
{file}
', triggerAction : 'all', typeAhead : true, valueField : 'file', width : 200, - xns : Roo.form, - xtype : 'ComboBox', listeners : { select : function (combo, record, index) { @@ -385,59 +358,84 @@ Pman.Dialog.CoreEmail = { } }, - items : [ - - ] - - }, - { - '|xns' : 'Roo.Toolbar', - xns : Roo.Toolbar, - xtype : 'Fill' - }, - { - '|xns' : 'Roo.Toolbar', - text : _this._strings['ea30b40c3caf28acb29198d20d243e54'], - xns : Roo.Toolbar, - xtype : 'Button', - listeners : { - click : function (_self, e) - { - var el = _this.dialog.layout.getRegion('east'); - if (el.visible) { - el.hide(); - } else { - el.show(); - el.showPanel(0); - } - - } - } - } - ] - + xns : Roo.form, + '|xns' : 'Roo.form', + store : { + xtype : 'Store', + remoteSort : true, + sortInfo : { direction : 'DESC', field: 'file' }, + listeners : { + beforeload : function (_self, o){ + o.params = o.params || {}; + // set more here + + } + }, + xns : Roo.data, + '|xns' : 'Roo.data', + proxy : { + xtype : 'HttpProxy', + method : 'GET', + url : baseURL + '/Core/MailTemplateList.php', + xns : Roo.data, + '|xns' : 'Roo.data' + }, + reader : { + xtype : 'JsonReader', + fields : [{"name":"file","type":"string"},{"name":"content","type":"string"}], + id : 'name', + root : 'data', + totalProperty : 'total', + xns : Roo.data, + '|xns' : 'Roo.data' + } + } + }, + { + xtype : 'Fill', + xns : Roo.Toolbar, + '|xns' : 'Roo.Toolbar' + }, + { + xtype : 'Button', + text : _this._strings['ea30b40c3caf28acb29198d20d243e54'] /* Images / Attachments >> */, + listeners : { + click : function (_self, e) + { + var el = _this.dialog.layout.getRegion('east'); + if (el.visible) { + el.hide(); + } else { + el.show(); + el.showPanel(0); + } + + } + }, + xns : Roo.Toolbar, + '|xns' : 'Roo.Toolbar' + } + ] }, layout : { + xtype : 'BorderLayout', + xns : Roo, + '|xns' : 'Roo', center : { - '|xns' : 'Roo', + xtype : 'LayoutRegion', autoScroll : true, xns : Roo, - xtype : 'LayoutRegion' + '|xns' : 'Roo' }, - '|xns' : 'Roo', - xns : Roo, - xtype : 'BorderLayout', - items : [ + items : [ { - '|xns' : 'Roo', + xtype : 'ContentPanel', autoScroll : false, background : false, fitContainer : true, fitToFrame : true, region : 'center', - title : _this._strings['4c2a8fe7eaf24721cc7a9f0175115bd4'], - xns : Roo, - xtype : 'ContentPanel', + title : _this._strings['4c2a8fe7eaf24721cc7a9f0175115bd4'] /* Message */, listeners : { render : function (_self, width, height) { @@ -468,15 +466,24 @@ Pman.Dialog.CoreEmail = { } }, - items : [ + xns : Roo, + '|xns' : 'Roo', + items : [ { - '|xns' : 'Roo.form', + xtype : 'Form', labelAlign : 'right', labelWidth : 120, method : 'POST', preValidate : function(done_callback) { Roo.MessageBox.progress("Uploading Images", "Uploading"); + + if(!_this.form.findField('bodytext').editorcore.sourceEditMode){ + _this.form.findField('bodytext').syncValue(); + }else{ + _this.form.findField('bodytext').pushValue(); + } + var html = _this.form.findField('bodytext').getValue(); var s = Roo.get(_this.form.findField('bodytext').editorcore.doc.documentElement); @@ -506,7 +513,7 @@ Pman.Dialog.CoreEmail = { return; } - n = i.getAttribute('src').match(/^http(.*)/) + n = i.getAttribute('src').match(/^http(.*)/); if(!n ){ mkimg(); @@ -535,14 +542,14 @@ Pman.Dialog.CoreEmail = { }, style : 'margin:10px', url : baseURL + '/Roo/crm_mailing_list_message.php', - xns : Roo.form, - xtype : 'Form', listeners : { actioncomplete : function(_self,action) { if (action.type == 'setdata') { + setInterval(_this.form.findField('bodytext').autosave, 5000); + _this.data.module = _this.data.module || 'crm_mailing_list_message'; _this.form.url = baseURL + '/Roo/' + _this.data.module; @@ -566,6 +573,9 @@ Pman.Dialog.CoreEmail = { } if (action.type == 'load') { _this.dialog.el.unmask(); + + _this.form.findField('bodytext').originalValue = _this.form.findField('bodytext').getValue(); + return; } if (action.type =='submit') { @@ -585,75 +595,173 @@ Pman.Dialog.CoreEmail = { _this.form= form; } }, - items : [ + xns : Roo.form, + '|xns' : 'Roo.form', + items : [ { - '|xns' : 'Roo.form', - xns : Roo.form, xtype : 'Row', - items : [ + xns : Roo.form, + '|xns' : 'Roo.form', + items : [ { - '|xns' : 'Roo.form', + xtype : 'TextField', allowBlank : false, - fieldLabel : 'Mailout Name', + fieldLabel : _this._strings['b20a8b77b05d53b4e695738731400c85'] /* Mailout Name */, name : 'name', width : 400, xns : Roo.form, - xtype : 'TextField' + '|xns' : 'Roo.form' + }, + { + xtype : 'Column', + hideLabels : true, + xns : Roo.form, + '|xns' : 'Roo.form', + items : [ + { + xtype : 'Checkbox', + boxLabel : 'Enabled - will be sent out', + checked : true, + name : 'active', + value : 1, + valueOff : 0, + listeners : { + check : function (_self, checked) + { + var boxLabel = 'Enabled - will be sent out'; + + if(!checked){ + boxLabel = 'Disabled - will NOT be sent out'; + } + + this.setBoxLabel(boxLabel); + } + }, + xns : Roo.form, + '|xns' : 'Roo.form' + } + ] } ] - }, { - '|xns' : 'Roo.form', - xns : Roo.form, xtype : 'Row', - items : [ + xns : Roo.form, + '|xns' : 'Roo.form', + items : [ { - '|xns' : 'Roo.form', + xtype : 'TextField', allowBlank : false, - fieldLabel : 'From', + fieldLabel : _this._strings['5da618e8e4b89c66fe86e32cdafde142'] /* From */, name : 'from_name', width : 300, xns : Roo.form, - xtype : 'TextField' + '|xns' : 'Roo.form' }, { - '|xns' : 'Roo.form', + xtype : 'TextField', allowBlank : false, - fieldLabel : 'Email address', + fieldLabel : _this._strings['b357b524e740bc85b9790a0712d84a30'] /* Email address */, name : 'from_email', width : 300, xns : Roo.form, - xtype : 'TextField' + '|xns' : 'Roo.form' + }, + { + xtype : 'ComboBox', + allowBlank : true, + alwaysQuery : true, + displayField : 'name', + editable : false, + emptyText : _this._strings['2c466a2c159463f1d9ef5a7b57b52827'] /* Select BCC Group */, + fieldLabel : _this._strings['68b00d723d37122f64da8d9939f836f0'] /* BCC Group */, + forceSelection : true, + hiddenName : 'bcc_group_id', + loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */, + minChars : 2, + name : 'bcc_group_id_name', + pageSize : 25, + qtip : _this._strings['2c466a2c159463f1d9ef5a7b57b52827'] /* Select BCC Group */, + selectOnFocus : true, + tpl : '
{name}
', + triggerAction : 'all', + typeAhead : true, + valueField : 'id', + width : 300, + xns : Roo.form, + '|xns' : 'Roo.form', + store : { + xtype : 'Store', + remoteSort : true, + sortInfo : { direction : 'ASC', field: 'name' }, + listeners : { + beforeload : function (_self, o){ + o.params = o.params || {}; + + o.params._direct_return = 1; + } + }, + xns : Roo.data, + '|xns' : 'Roo.data', + proxy : { + xtype : 'HttpProxy', + method : 'GET', + url : baseURL + '/Roo/Core_group', + xns : Roo.data, + '|xns' : 'Roo.data' + }, + reader : { + xtype : 'JsonReader', + fields : [{"name":"name","type":"string"},{"name":"id","type":"int"}], + id : 'name', + root : 'data', + totalProperty : 'total', + xns : Roo.data, + '|xns' : 'Roo.data' + } + } } ] - }, { - '|xns' : 'Roo.form', + xtype : 'TextField', allowBlank : false, - fieldLabel : 'Subject', + fieldLabel : _this._strings['c7892ebbb139886662c6f2fc8c450710'] /* Subject */, name : 'subject', width : 600, xns : Roo.form, - xtype : 'TextField' + '|xns' : 'Roo.form' }, { - '|xns' : 'Roo.form', + xtype : 'Row', hideLabels : true, xns : Roo.form, - xtype : 'Row', - items : [ + '|xns' : 'Roo.form', + items : [ { - '|xns' : 'Roo.form', + xtype : 'FieldSet', hideLabels : true, - legend : _this._strings['962b90039a542a29cedd51d87a9f28a1'], + legend : _this._strings['962b90039a542a29cedd51d87a9f28a1'] /* Html Editor */, style : 'text-align:center;', xns : Roo.form, - xtype : 'FieldSet', - items : [ + '|xns' : 'Roo.form', + items : [ { - '|xns' : 'Roo.form', + xtype : 'HtmlEditor', + autosave : function() { + + var body = _this.form.findField('bodytext'); + + if(!body.wrap.isVisible(true) || body.getValue() == '' || !body.isDirty()){ + Roo.log('body not dirty'); + return; + } + + Roo.log('body dirty, auto save!'); + + body.fireEvent('autosave', body); + + }, clearUp : false, cwhite : [ 'margin', @@ -691,220 +799,286 @@ Pman.Dialog.CoreEmail = { 'vertical-align', 'cursor', 'z-index', - 'right', + 'right' ], height : 250, name : 'bodytext', resizable : 's', - xns : Roo.form, - xtype : 'HtmlEditor', - toolbars : [ + listeners : { + autosave : function (_self) { - '|xns' : 'Roo.form.HtmlEditor', - xns : Roo.form.HtmlEditor, - xtype : 'ToolbarContext' + Roo.log('autosave'); + + var id = _this.form.findField('id').getValue() * 1; + + /* + if(!_self.editorcore.sourceEditMode){ + _self.syncValue(); + }else{ + _self.pushValue(); + } + */ + + new Pman.Request({ + url : baseURL + '/Roo/Events.php', + method :'POST', + params : { + id : 0, + action : 'AUTOSAVE', + on_id : (id > 0) ? id : 0, + on_table : 'crm_mailing_list_message', + remarks : 'BODY', + source: _self.getValue() + }, + success : function() { + _self.originalValue = _self.getValue(); + + }, + failure : function() + { + Roo.log('body autosave failed?!'); + } + }); + }, -{ - '|xns' : 'Roo.form.HtmlEditor', - xns : Roo.form.HtmlEditor, - xtype : 'ToolbarStandard', - btns : [ - { - store : { - proxy : { - '|xns' : 'Roo.data', - method : 'GET', - url : baseURL + '/Roo/Images.php', - xns : Roo.data, - xtype : 'HttpProxy' - }, - reader : { - '|xns' : 'Roo.data', - fields : [{"name":"id","type":"int"},{"name":"filename","type":"string"},{"name":"url_thumb","type":"string"}], - id : 'id', - root : 'data', - totalProperty : 'total', - xns : Roo.data, - xtype : 'JsonReader' - }, - '|xns' : 'Roo.data', - remoteSort : true, - sortInfo : { direction : 'ASC', field: 'id' }, - xns : Roo.data, - xtype : 'Store', - listeners : { - beforeload : function (_self, o){ - o.params = o.params || {}; - - var id = _this.form.findField('id').getValue() * 1; - if (!id) { - Roo.MessageBox.alert("Error", "Save email template first"); - return false; - } - o.params.onid = id - o.params.ontable = (_this.data.module) ? _this.data.module : 'crm_mailing_list_message'; - - // o.params.imgtype = 'PressRelease'; - //o.params['query[imagesize]'] = '150x150'; - // set more here - } - }, - items : [ - - ] - + savedpreview : function (_self) + { + var id = _this.form.findField('id').getValue() * 1; + + var successFn = function(res){ + return res.data.POST.source; + }; + + var params = { + action : 'AUTOSAVE', + remarks : 'BODY', + on_id : (id < 1) ? 0 : id, + on_table : 'crm_mailing_list_message', + successFn : successFn + }; + + + Pman.Dialog.CoreAutoSavePreview.show(params, function(res){ + _self.setValue(res); + _self.originalValue = res; + }); + } + }, + xns : Roo.form, + '|xns' : 'Roo.form', + toolbars : [ + { + xtype : 'ToolbarContext', + xns : Roo.form.HtmlEditor, + '|xns' : 'Roo.form.HtmlEditor' + }, + { + xtype : 'ToolbarStandard', + xns : Roo.form.HtmlEditor, + '|xns' : 'Roo.form.HtmlEditor', + btns : [ + { + xtype : 'ComboBox', + alwaysQuery : true, + displayField : 'name', + editable : false, + emptyText : _this._strings['b9c49611cfda3259a2b837b39489e650'] /* Add Image */, + fieldLabel : _this._strings['fff0d600f8a0b5e19e88bfb821dd1157'] /* Images */, + forceSelection : true, + listWidth : 400, + loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */, + minChars : 2, + pageSize : 20, + qtip : _this._strings['2f26e35d61be90501e099089dc533638'] /* Select Images */, + selectOnFocus : true, + tpl : '
{filename}
', + triggerAction : 'all', + typeAhead : true, + valueField : 'id', + width : 100, + listeners : { + beforequery : function (combo, query, forceAll, cancel, e) + { + var id = _this.form.findField('id').getValue() * 1; + if (!id) { + Roo.MessageBox.alert("Error", "Save message first"); + return false; + } }, - '|xns' : 'Roo.form', - alwaysQuery : true, - displayField : 'name', - editable : false, - emptyText : _this._strings['b9c49611cfda3259a2b837b39489e650'], - fieldLabel : 'Images', - forceSelection : true, - listWidth : 400, - loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'], - minChars : 2, - pageSize : 20, - qtip : _this._strings['2f26e35d61be90501e099089dc533638'], - selectOnFocus : true, - tpl : '
{filename}
', - triggerAction : 'all', - typeAhead : true, - valueField : 'id', - width : 100, - xns : Roo.form, - xtype : 'ComboBox', - listeners : { - beforequery : function (combo, query, forceAll, cancel, e) - { - var id = _this.form.findField('id').getValue() * 1; - if (!id) { - Roo.MessageBox.alert("Error", "Save message first"); - return false; - } - }, - render : function (_self) - { - _this.extendimgselect = _self; - }, - select : function (combo, record, index) - { - Roo.log(record); - (function() { - combo.setValue(''); - }).defer(100); - var editor = _this.form.findField('bodytext').editorcore; - editor.insertAtCursor( - String.format('', - baseURL, record.data.id, record.data.filename - ) - ); - - - } + render : function (_self) + { + _this.extendimgselect = _self; }, - items : [ - - ] - + select : function (combo, record, index) + { + Roo.log(record); + (function() { + combo.setValue(''); + }).defer(100); + var editor = _this.form.findField('bodytext').editorcore; + + var curnode = editor.getSelectedNode(); + if (curnode && curnode.tagName == 'IMG') { + curnode.src= String.format('{0}/Images/{1}/{2}#image-{1}', + baseURL, record.data.id, record.data.filename + ); + // note -forces an update... hopefully... + editor.owner.fireEvent('editorevent', editor, false); + } else { + + editor.insertAtCursor( + String.format('', + baseURL, record.data.id, record.data.filename + ) + ); + + } + + } + }, + xns : Roo.form, + '|xns' : 'Roo.form', + store : { + xtype : 'Store', + remoteSort : true, + sortInfo : { direction : 'ASC', field: 'id' }, + listeners : { + beforeload : function (_self, o){ + o.params = o.params || {}; + + var id = _this.form.findField('id').getValue() * 1; + if (!id) { + Roo.MessageBox.alert("Error", "Save email template first"); + return false; + } + o.params.onid = id; + o.params.ontable = (_this.data.module) ? _this.data.module : 'crm_mailing_list_message'; + + // o.params.imgtype = 'PressRelease'; + //o.params['query[imagesize]'] = '150x150'; + // set more here + } }, -{ - store : { - '|xns' : 'Roo.data', - data : [ - [ '{person.firstname}', "First Name"], - [ '{person.lastname}' , "Last Name"], - [ '{person.name}', "Full Name"], - [ '#unsubscribe', "Unsubscribe"] - ], - fields : [ 'type', 'name'], - xns : Roo.data, - xtype : 'SimpleStore' - }, - '|xns' : 'Roo.form', - alwaysQuery : true, - displayField : 'name', - editable : false, - emptyText : _this._strings['5feb9bf3c03b32635135006cbacb9542'], - fieldLabel : 'Field', - forceSelection : true, - listWidth : 400, - loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'], - minChars : 2, - pageSize : 20, - qtip : _this._strings['5feb9bf3c03b32635135006cbacb9542'], - selectOnFocus : true, - tpl : '
{name}
', - triggerAction : 'all', - typeAhead : true, - valueField : 'type', - width : 100, - xns : Roo.form, - xtype : 'ComboBox', - listeners : { - render : function (_self) - { - _this.unsubscribeselect = _self; - }, - select : function (combo, record, index) - { - Roo.log(record); - (function() { - combo.setValue(''); - }).defer(100); - var editor = _this.form.findField('bodytext').editorcore; - - if(record.data.name == 'Unsubscribe'){ - editor.insertAtCursor( - String.format('{1}', - record.data.type, record.data.name - ) - ); - return; - } - - editor.insertAtCursor( - String.format('{0}', - record.data.type - ) - ); - - } - }, - items : [ - - ] - + xns : Roo.data, + '|xns' : 'Roo.data', + proxy : { + xtype : 'HttpProxy', + method : 'GET', + url : baseURL + '/Roo/Images.php', + xns : Roo.data, + '|xns' : 'Roo.data' + }, + reader : { + xtype : 'JsonReader', + fields : [{"name":"id","type":"int"},{"name":"filename","type":"string"},{"name":"url_thumb","type":"string"}], + id : 'id', + root : 'data', + totalProperty : 'total', + xns : Roo.data, + '|xns' : 'Roo.data' } - ], - items : [ - - ] - - } - ], - items : [ - + } + }, + { + xtype : 'ComboBox', + alwaysQuery : true, + displayField : 'name', + editable : false, + emptyText : _this._strings['5feb9bf3c03b32635135006cbacb9542'] /* Insert Field */, + fieldLabel : _this._strings['6f16a5f8ff5d75ab84c018adacdfcbb7'] /* Field */, + forceSelection : true, + listWidth : 400, + loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */, + minChars : 2, + pageSize : 20, + qtip : _this._strings['5feb9bf3c03b32635135006cbacb9542'] /* Insert Field */, + selectOnFocus : true, + tpl : '
{name}
', + triggerAction : 'all', + typeAhead : true, + valueField : 'type', + width : 100, + listeners : { + render : function (_self) + { + _this.unsubscribeselect = _self; + }, + select : function (combo, record, index) + { + Roo.log(record); + (function() { + combo.setValue(''); + }).defer(100); + var editor = _this.form.findField('bodytext').editorcore; + + if(record.data.name == 'Unsubscribe'){ + editor.insertAtCursor( + String.format('{1}', + record.data.type, record.data.name + ) + ); + return; + } + + editor.insertAtCursor( + String.format('{0}', + record.data.type + ) + ); + + } + }, + xns : Roo.form, + '|xns' : 'Roo.form', + store : { + xtype : 'SimpleStore', + data : [ + [ '{person.firstname}', "First Name"], + [ '{person.lastname}' , "Last Name"], + [ '{person.name}', "Full Name"], + [ '#unsubscribe', "Unsubscribe"] + ], + fields : [ 'type', 'name'], + xns : Roo.data, + '|xns' : 'Roo.data' + } + }, + { + xtype : 'Separator', + xns : Roo.Toolbar, + '|xns' : 'Roo.Toolbar' + }, + { + xtype : 'Button', + cls : 'x-init-enable', + text : _this._strings['bd88a20b53a47f7b5704a83a15ff5506'] /* Saved Version */, + listeners : { + click : function (_self, e) + { + this.scope.owner.fireEvent('savedpreview', this.scope.owner); + + } + }, + xns : Roo.Toolbar, + '|xns' : 'Roo.Toolbar' + } + ] + } ] - } ] - } ] - }, { - '|xns' : 'Roo.form', + xtype : 'Row', hideLabels : true, xns : Roo.form, - xtype : 'Row', - items : [ + '|xns' : 'Roo.form', + items : [ { - '|xns' : 'Roo', - text : _this._strings['e9968623956c15023d54335ea3699855'], - xns : Roo, xtype : 'Button', + text : _this._strings['e9968623956c15023d54335ea3699855'] /* Convert Html to Text */, listeners : { click : function (_self, e) { @@ -924,80 +1098,203 @@ Pman.Dialog.CoreEmail = { p.setValue(res.data); } } - }); + }); } - } + }, + xns : Roo, + '|xns' : 'Roo' } ] - }, { - '|xns' : 'Roo.form', + xtype : 'Row', hideLabels : true, xns : Roo.form, - xtype : 'Row', - items : [ + '|xns' : 'Roo.form', + items : [ { - '|xns' : 'Roo.form', + xtype : 'FieldSet', hideLabels : true, - legend : _this._strings['e44b145bd8b49b06e0ad2ced1ad56466'], + legend : _this._strings['e44b145bd8b49b06e0ad2ced1ad56466'] /* Plain Text */, style : 'text-align:center;', xns : Roo.form, - xtype : 'FieldSet', - items : [ + '|xns' : 'Roo.form', + items : [ { - '|xns' : 'Roo.form', + xtype : 'TextArea', height : 50, name : 'plaintext', xns : Roo.form, - xtype : 'TextArea' + '|xns' : 'Roo.form' } ] - } ] - }, { + xtype : 'Row', + xns : Roo.form, '|xns' : 'Roo.form', + items : [ + { + xtype : 'TextField', + allowBlank : true, + fieldLabel : _this._strings['b337c8a67244afb6551ee1f8f9717676'] /* Test Class
(for system reference only) */, + name : 'test_class', + readOnly : true, + width : 300, + xns : Roo.form, + '|xns' : 'Roo.form' + } + ] + }, + { + xtype : 'Hidden', name : 'id', xns : Roo.form, - xtype : 'Hidden' + '|xns' : 'Roo.form' } ] - } ] - } ] - - }, - '|xns' : 'Roo', + } + }, + { + xtype : 'GridPanel', autoScroll : false, + background : false, fitContainer : true, - fitToFrame : true, - region : 'center', + fitToframe : true, + region : 'east', + tableName : 'Images', + title : _this._strings['308f2757bfc9ce92fb00ff93fdffd279'] /* Images / Attachments */, + listeners : { + activate : function() { + _this.ipanel = this; + if (_this.igrid) { + _this.igrid.ds.load({}); + } + } + }, xns : Roo, - xtype : 'NestedLayoutPanel', - items : [ - - ] - - }, - { + '|xns' : 'Roo', grid : { + xtype : 'Grid', + autoExpandColumn : 'filename', + loadMask : true, + listeners : { + render : function() + { + _this.igrid = this; + //_this.dialog = Pman.Dialog.FILL_IN + if (_this.ipanel.active) { + // _this.igrid.ds.load({}); + } + } + }, + xns : Roo.grid, + '|xns' : 'Roo.grid', + toolbar : { + xtype : 'Toolbar', + xns : Roo, + '|xns' : 'Roo', + items : [ + { + xtype : 'Button', + cls : 'x-btn-text-icon', + icon : Roo.rootURL + 'images/default/dd/drop-add.gif', + text : _this._strings['ec211f7c20af43e742bf2570c3cb84f9'] /* Add */, + listeners : { + click : function() + { + var id = _this.form.findField('id').getValue(); + + if(id*1 < 1){ + Roo.MessageBox.alert('Error', 'Please save the email template first'); + return; + } + + var ontable = (_this.data.module) ? _this.data.module : 'crm_mailing_list_message'; + + Pman.Dialog.Image.show( { id : 0, onid: id, ontable: ontable }, function() { + _this.igrid.getDataSource().load({}); + }); + } + }, + xns : Roo.Toolbar, + '|xns' : 'Roo.Toolbar' + }, + { + xtype : 'Button', + cls : 'x-btn-text-icon', + icon : rootURL + '/Pman/templates/images/trash.gif', + text : _this._strings['f2a6c498fb90ee345d997f888fce3b18'] /* Delete */, + listeners : { + click : function() + { + var s = _this.igrid.getSelectionModel().getSelected(); + if (!s || isNaN(s.id *1)) { + Roo.MessageBox.alert("Error", "Select a image"); + return; + } + Roo.MessageBox.confirm("Confirm", "Are sure you want to delete this image?", function (v){ + if (v != 'yes') { + return; + } + + new Pman.Request({ + url : baseURL + '/Roo/Images.php', + method: 'POST', + params : { + _delete : s.id + }, + success : function() + { + Roo.log('Got Success!!'); + _this.igrid.ds.load({}); + } + }); + }); + } + }, + xns : Roo.Toolbar, + '|xns' : 'Roo.Toolbar' + } + ] + }, dataSource : { + xtype : 'Store', + remoteSort : true, + sortInfo : { field : 'filename', direction: 'ASC' }, + listeners : { + beforeload : function (_self, options) + { + options.params = options.params || {}; + if (typeof(_this.data) == 'undefined') { + return false; + } + if(_this.data.id * 1 >= 0) + { + options.params.onid = _this.data.id; + + options.params.ontable = (_this.data.module) ? _this.data.module : 'crm_mailing_list_message'; + } + } + }, + xns : Roo.data, + '|xns' : 'Roo.data', proxy : { - '|xns' : 'Roo.data', + xtype : 'HttpProxy', method : 'GET', url : baseURL + '/Roo/Images.php', xns : Roo.data, - xtype : 'HttpProxy' + '|xns' : 'Roo.data' }, reader : { - '|xns' : 'Roo.data', + xtype : 'JsonReader', fields : [ { 'name': 'id', @@ -1133,179 +1430,52 @@ Pman.Dialog.CoreEmail = { root : 'data', totalProperty : 'total', xns : Roo.data, - xtype : 'JsonReader' - }, - '|xns' : 'Roo.data', - remoteSort : true, - sortInfo : { field : 'filename', direction: 'ASC' }, - xns : Roo.data, - xtype : 'Store', - listeners : { - beforeload : function (_self, options) - { - options.params = options.params || {}; - if (typeof(_this.data) == 'undefined') { - return false; - } - if(_this.data.id * 1 >= 0) - { - options.params.onid = _this.data.id; - - options.params.ontable = (_this.data.module) ? _this.data.module : 'crm_mailing_list_message'; - } - } - }, - items : [ - - ] - - }, - toolbar : { - '|xns' : 'Roo', - xns : Roo, - xtype : 'Toolbar', - items : [ - { - '|xns' : 'Roo.Toolbar', - cls : 'x-btn-text-icon', - icon : Roo.rootURL + 'images/default/dd/drop-add.gif', - text : _this._strings['ec211f7c20af43e742bf2570c3cb84f9'], - xns : Roo.Toolbar, - xtype : 'Button', - listeners : { - click : function() - { - var id = _this.form.findField('id').getValue(); - - if(id*1 < 1){ - Roo.MessageBox.alert('Error', 'Please save the email template first'); - return; - } - - var ontable = (_this.data.module) ? _this.data.module : 'crm_mailing_list_message'; - - Pman.Dialog.Image.show( { id : 0, onid: id, ontable: ontable }, function() { - _this.igrid.getDataSource().load({}); - }); - } - } - }, - { - '|xns' : 'Roo.Toolbar', - cls : 'x-btn-text-icon', - icon : rootURL + '/Pman/templates/images/trash.gif', - text : _this._strings['f2a6c498fb90ee345d997f888fce3b18'], - xns : Roo.Toolbar, - xtype : 'Button', - listeners : { - click : function() - { - var s = _this.igrid.getSelectionModel().getSelected(); - if (!s || isNaN(s.id *1)) { - Roo.MessageBox.alert("Error", "Select a image"); - return; - } - Roo.MessageBox.confirm("Confirm", "Are sure you want to delete this image?", function (v){ - if (v != 'yes') { - return; - } - - new Pman.Request({ - url : baseURL + '/Roo/Images.php', - method: 'POST', - params : { - _delete : s.id - }, - success : function() - { - Roo.log('Got Success!!'); - _this.igrid.ds.load({}); - } - }); - }); - } - } - } - ] - + '|xns' : 'Roo.data' + } }, - '|xns' : 'Roo.grid', - autoExpandColumn : 'filename', - loadMask : true, - xns : Roo.grid, - xtype : 'Grid', colModel : [ + { + xtype : 'ColumnModel', + dataIndex : 'filename', + header : _this._strings['1351017ac6423911223bc19a8cb7c653'] /* Filename */, + renderer : function(v,x,r) { - '|xns' : 'Roo.grid', - dataIndex : 'filename', - header : _this._strings['1351017ac6423911223bc19a8cb7c653'], - renderer : function(v,x,r) - { - return ''; - }, - width : 300, - xns : Roo.grid, - xtype : 'ColumnModel' - }, -{ - '|xns' : 'Roo.grid', - dataIndex : 'displayorder', - header : _this._strings['2393ad754ba179442d85e415d1d5167c'], - renderer : function(v) { return String.format('{0}', v); }, - width : 75, - xns : Roo.grid, - xtype : 'ColumnModel' - }, -{ - '|xns' : 'Roo.grid', - dataIndex : 'title', - header : _this._strings['b78a3223503896721cca1303f776159b'], - renderer : function(v) { return String.format('{0}', v); }, - width : 75, - xns : Roo.grid, - xtype : 'ColumnModel' - } - ], - listeners : { - render : function() - { - _this.igrid = this; - //_this.dialog = Pman.Dialog.FILL_IN - if (_this.ipanel.active) { - // _this.igrid.ds.load({}); + var width = r.data.width; + var height = r.data.height; + + if(width > 50){ + height = Math.round(height * 50 / width); + width = 50; } - } - }, - items : [ - - ] - - }, - '|xns' : 'Roo', - autoScroll : false, - background : false, - fitContainer : true, - fitToframe : true, - region : 'east', - tableName : 'Images', - title : _this._strings['308f2757bfc9ce92fb00ff93fdffd279'], - xns : Roo, - xtype : 'GridPanel', - listeners : { - activate : function() { - _this.ipanel = this; - if (_this.igrid) { - _this.igrid.ds.load({}); - } + + return ''; + }, + width : 300, + xns : Roo.grid, + '|xns' : 'Roo.grid' + }, + { + xtype : 'ColumnModel', + dataIndex : 'displayorder', + header : _this._strings['2393ad754ba179442d85e415d1d5167c'] /* Displayorder */, + renderer : function(v) { return String.format('{0}', v); }, + width : 75, + xns : Roo.grid, + '|xns' : 'Roo.grid' + }, + { + xtype : 'ColumnModel', + dataIndex : 'title', + header : _this._strings['b78a3223503896721cca1303f776159b'] /* Title */, + renderer : function(v) { return String.format('{0}', v); }, + width : 75, + xns : Roo.grid, + '|xns' : 'Roo.grid' } - }, - items : [ - - ] - + ] + } } ] - }); } };