PHP8
[Pman.BAdmin] / Pman.Dialog.BAdminEmail.bjs
1 {
2  "name" : "Pman.Dialog.BAdminEmail",
3  "parent" : "",
4  "title" : "Pman.Dialog.BAdminEmail",
5  "path" : "/home/alan/gitlive/Pman.BAdmin/Pman.Dialog.BAdminEmail.bjs",
6  "permname" : "",
7  "modOrder" : "001",
8  "strings" : {
9   "843627586c62e389041a4d8800143974" : "Searching",
10   "2c466a2c159463f1d9ef5a7b57b52827" : "Select BCC Group",
11   "396ecabf0cd1f9503e591418851ef406" : "Edit / Create Message",
12   "3858712080cb3d846ea206d1d1070674" : "Test Class (for system reference only):",
13   "31fde7b05ac8952dacf4af8a704074ec" : "Preview",
14   "5b8ef4e762c00a15a41cfc26dc3ef99c" : "Send me a test copy",
15   "4182c8f19d40c7ca236a5f4f83faeb6b" : "Unsubscribe",
16   "b2bce8099bf8e6f51345bee5c9015c89" : "Convert HTML to Plain Text",
17   "ea4788705e6873b424c65e91c2846b19" : "Cancel",
18   "c4ca4238a0b923820dcc509a6f75849b" : "1",
19   "1e6d57e813355689e9c77e947d73ad8f" : "From:",
20   "47a0be8d1015d526a1fbaa56c3102135" : "Subject:",
21   "5feb9bf3c03b32635135006cbacb9542" : "Insert Field",
22   "292f75d54a6892cfe18a93e64230112a" : "Mailout Name:",
23   "7038eac66e387c3b3a0834d786a88757" : "Insert Image",
24   "e71c729cd7f3c6b6ebdb447e65952dfd" : "From email address:",
25   "edddfc18b2ffb806573a1b3f341832cd" : "BCC to Group:",
26   "bd88a20b53a47f7b5704a83a15ff5506" : "Saved Version",
27   "e44b145bd8b49b06e0ad2ced1ad56466" : "Plain Text",
28   "c9cc8cce247e49bae79f15173ce97354" : "Save",
29   "b5a7adde1af5c87d7fd797b6245c2a39" : "Description",
30   "49ee3087348e8d44e1feda1917443987" : "Name",
31   "28690be026c0bb9003aa58e45e5662ca" : "Enabled - will be sent out",
32   "fb981fe689fbec75c6531eb7410971f4" : "To group:",
33   "e05f77bdf3f659c1fd354a88526c03da" : "Select Group",
34   "36a65bbd12f7586ea1f9b0be4e8848aa" : "HTML Editor"
35  },
36  "named_strings" : {
37   "description_fieldLabel" : "b5a7adde1af5c87d7fd797b6245c2a39",
38   "active_boxLabel" : "28690be026c0bb9003aa58e45e5662ca",
39   "save_html" : "c9cc8cce247e49bae79f15173ce97354",
40   "to_group_id_display_name_loadingText" : "843627586c62e389041a4d8800143974",
41   "bcc_group_id_name_placeholder" : "2c466a2c159463f1d9ef5a7b57b52827",
42   "name_fieldLabel" : "292f75d54a6892cfe18a93e64230112a",
43   "cancel_html" : "ea4788705e6873b424c65e91c2846b19",
44   "from_email_fieldLabel" : "e71c729cd7f3c6b6ebdb447e65952dfd",
45   "to_group_id_display_name_fieldLabel" : "fb981fe689fbec75c6531eb7410971f4",
46   "preview_html" : "31fde7b05ac8952dacf4af8a704074ec",
47   "active_value" : "c4ca4238a0b923820dcc509a6f75849b",
48   "to_group_id_display_name_placeholder" : "e05f77bdf3f659c1fd354a88526c03da",
49   "send_html" : "5b8ef4e762c00a15a41cfc26dc3ef99c",
50   "from_name_fieldLabel" : "1e6d57e813355689e9c77e947d73ad8f",
51   "bcc_group_id_name_loadingText" : "843627586c62e389041a4d8800143974",
52   "bcc_group_id_name_fieldLabel" : "edddfc18b2ffb806573a1b3f341832cd",
53   "subject_fieldLabel" : "47a0be8d1015d526a1fbaa56c3102135",
54   "test_class_fieldLabel" : "3858712080cb3d846ea206d1d1070674"
55  },
56  "items" : [
57   {
58    "listeners" : {
59     "show" : "function (_self)\n{\n\n}",
60     "render" : "function (_self)\n{\n\n}",
61     "hide" : "function (_self)\n{\n    if(_this.autosave) {\n        \n        clearInterval(_this.autosave);\n    }\n}"
62    },
63    "string fitwindow" : true,
64    "String cls" : "modal-body-enable-overflow-y",
65    "xtype" : "Modal",
66    "$ xns" : "Roo.bootstrap",
67    "String title" : "Edit / Create Message",
68    "Boolean bodyOverflow" : true,
69    "items" : [
70     {
71      "listeners" : {
72       "click" : "function (_self, e)\n{\n    var id = _this.form.findField('id').getValue();\n    \n    if(id*1 < 1){\n        Roo.bootstrap.MessageBox.alert('Error', 'Please save the message first!');\n        return;\n    }\n   \n    new Pman.Request({\n        url : baseURL + '/Core/MessagePreview',\n        method : 'POST',\n        mask: 'Sending',\n        params : {\n            _id : id,\n            _table : _this.data.module\n        }, \n        success : function(res) {\n            if(res.data == 'SUCCESS'){\n                Roo.bootstrap.MessageBox.alert(\"Email Sent\", 'The report was sent to your email (HTML format).');\n            }\n        }\n    });\n}"
73      },
74      "xtype" : "Button",
75      "$ xns" : "Roo.bootstrap",
76      "String html" : "Send me a test copy",
77      "* prop" : "buttons[]",
78      "string name" : "send",
79      "$ String weight" : "'default'"
80     },
81     {
82      "listeners" : {
83       "click" : "function (_self, e)\n{\n    Pman.Dialog.BAdminEmailPreview.show({ id : _this.form.findField('id').getValue(), module : _this.data.module });\n}"
84      },
85      "xtype" : "Button",
86      "$ xns" : "Roo.bootstrap",
87      "String html" : "Preview",
88      "* prop" : "buttons[]",
89      "string name" : "preview",
90      "$ String weight" : "'default'"
91     },
92     {
93      "listeners" : {
94       "click" : "function (_self, e)\n{\n    _this.dialog.hide();\n}"
95      },
96      "xtype" : "Button",
97      "$ xns" : "Roo.bootstrap",
98      "String html" : "Cancel",
99      "* prop" : "buttons[]",
100      "string name" : "cancel",
101      "$ String weight" : "'default'"
102     },
103     {
104      "listeners" : {
105       "click" : "function (_self, e)\n{\n    _this.form.preValidate(function(res) {\n        if (!res) {\n            return; //failed.\n        }\n    });\n}"
106      },
107      "xtype" : "Button",
108      "$ xns" : "Roo.bootstrap",
109      "String html" : "Save",
110      "* prop" : "buttons[]",
111      "string name" : "save",
112      "$ String weight" : "'primary'"
113     },
114     {
115      "xtype" : "Container",
116      "$ xns" : "Roo.bootstrap",
117      "items" : [
118       {
119        "listeners" : {
120         "actionfailed" : "function (_self, action)\n{\n\n   var displayErr = function() {\n       if(action.result.errorMsg.length >= 200) {\n           Roo.bootstrap.MessageBox.alert(\"Error\", action.result.errorMsg.substring(0,199) + '...');\n       } else {\n           Roo.bootstrap.MessageBox.alert(\"Error\", action.result.errorMsg);\n       }\n   }\n   switch(action.failureType) {\n    case Roo.form.Action.SERVER_INVALID: \n       if(action.result.errors.errcode) {\n           switch (action.result.errors.errcode) {\n               case 100:\n                   \n                   Roo.bootstrap.MessageBox.show({\n                       title: 'Confirm Save',\n                       msg: 'No member found in To Group: '+ _this.combo_to_group.getRawValue(),\n                       buttons: {yes:'OK Save anyway', no:'Change to another group'},\n                       fn: function(ret){\n                           \n                           if(ret == 'no'){\n                               return;\n                           }\n                            \n                           _this.form.findField('_ignore_group_count').setValue('1');\n                           _this.form.doAction(\"submit\");                       \n                       }\n                   });\n                 \n                   \n               break;\n               \n               default:\n                   displayErr();\n                   break;\n           }\n           return;\n       }\n       displayErr();\n       \n       break;\n    case Roo.form.Action.CLIENT_INVALID: //for validation\n       break;\n    case Roo.form.Action.CONNECT_FAILURE:\n       Roo.bootstrap.MessageBox.alert(\"Connect Error\", action.result.errorMsg);\n       break;\n    default: \n       Roo.bootstrap.MessageBox.alert(\"Error\", action.result.errorMsg);\n       break;\n       \n    }\n}",
121         "actioncomplete" : "function(_self,action)\n{\n   \n    if (action.type == 'setdata') {\n        \n        _this.data.module = _this.data.module || 'crm_mailing_list_message';\n        this.url = baseURL + '/Roo/' + _this.data.module;\n        \n        if(_this.data.id*1 > 0){\n            _this.dialog.el.mask(\"Loading\");\n            this.doAction(\n                'load',\n                { method: 'GET', params: { '_id' : _this.data.id, '_with_css' : 1 }}\n            );\n            return;\n        }\n        \n        //this.findField('name').setDisabled(false);\n        //this.findField('test_class').setDisabled(false);\n        \n        this.reset();\n        \n        this.findField('to_group_id').setValue(-1);\n        this.findField('bodytext').setValue('');\n        \n        this.setValues({\n            'from_name' : Pman.Login.authUser.name,\n            'from_email' : Pman.Login.authUser.email\n        });\n        \n        this.clearInvalid();\n        \n        this.hideshow();\n        \n        return;\n    }\n    \n    if (action.type == 'load') {\n        \n        /*\n        this.findField('name').setDisabled(false);\n        this.findField('test_class').setDisabled(false);\n        \n        if(action.result.data['is_system'] == 1) {\n            this.findField('name').setDisabled(true);\n            this.findField('test_class').setDisabled(true);\n        }\n        */\n        \n        _this.dialog.el.unmask();\n        \n        this.findField('bodytext').originalValue = this.findField('bodytext').getValue();\n        \n        _this.form_data = action.result.data;\n        \n        if(_this.form_data._css && _this.form_data._css.length){\n            _this.htmleditor.editorcore.setStyle(_this.form_data._css);\n        }\n        \n        this.findField('_ignore_group_count').setValue('0');\n        \n        if(!_this.form_data.description.length){\n            _this.form_data.findField('description').setValue(_this.form_data.name);\n        }\n        \n        this.hideshow();\n        \n        return;\n    }\n    \n    if (action.type =='submit') {\n    \n        _this.dialog.el.unmask();\n        _this.dialog.hide();\n        \n         if (_this.callback) {\n            _this.callback.call(_this, action.result.data);\n         }\n         \n         this.reset();\n         \n         return;\n    }\n}\n",
122         "render" : "function (_self)\n{\n    _this.form = this;\n}"
123        },
124        "| function hideshow" : "function()\n{\n    _this.to_group_row.hide();\n    \n    if (this.findField('to_group_id').getValue() == -1) {\n        return;\n    }\n    \n    _this.to_group_row.show();\n}",
125        "$ string preValidate" : "function(done_callback) {\n    \n    if(!_this.form.findField('bodytext').editorcore.sourceEditMode){\n        _this.form.findField('bodytext').syncValue();\n    }else{\n        _this.form.findField('bodytext').pushValue();\n    }\n    \n    var html = _this.form.findField('bodytext').getValue();\n    \n    var s = Roo.get(_this.form.findField('bodytext').editorcore.doc.documentElement);\n    \n    var ontable = (_this.data.module) ? _this.data.module : 'crm_mailing_list_message';\n    \n    \n    var nodes = [];\n    \n    s.select('img[src]').each(function(i) {\n        nodes.push(i.dom);\n    });\n    \n    \n    var total = nodes.length;\n    \n    var mkimg = function() {\n        if (!nodes.length) {\n              _this.form.findField('bodytext').syncValue();\n              done_callback(true);\n              _this.form.doAction(\"submit\");\n              return;\n        }\n        var i = nodes.pop(); \n        \n        var n = i.getAttribute('src').match(/(baseURL|server_baseurl)/);\n        \n        if(n){\n            mkimg();\n            return;\n        }\n        \n        n = i.getAttribute('src').match(/^http(.*)/);\n       \n        if(!n ){\n            mkimg();\n            return;\n        }\n        \n        \n        \n        new Pman.Request({\n            url : baseURL + '/Roo/Images.php',\n            method : 'POST',\n            params : {\n                onid : _this.form.findField('id').getValue(),\n                ontable : ontable ,\n                _remote_upload : i.src\n            },\n            success : function(res){\n                if(res.success == true){      \n                    i.setAttribute('src', res.data);\n                }\n                mkimg();\n            }\n        });\n       \n    }\n    mkimg();\n}\n",
126        "xtype" : "Form",
127        "$ xns" : "Roo.bootstrap",
128        "String method" : "POST",
129        "string errorMask" : true,
130        "$ String url" : "baseURL + '/Roo/crm_mailing_list_message.php'",
131        "items" : [
132         {
133          "xtype" : "Row",
134          "$ xns" : "Roo.bootstrap",
135          "items" : [
136           {
137            "Number md" : 8,
138            "xtype" : "Column",
139            "Number xs" : 12,
140            "$ xns" : "Roo.bootstrap",
141            "items" : [
142             {
143              "Boolean allowBlank" : false,
144              "String name" : "description",
145              "xtype" : "Input",
146              "string fieldLabel" : "Description",
147              "$ xns" : "Roo.bootstrap",
148              "Number labelWidth" : 3,
149              "String indicatorpos" : "right"
150             }
151            ]
152           },
153           {
154            "Number md" : 4,
155            "xtype" : "Column",
156            "$ xns" : "Roo.bootstrap",
157            "items" : [
158             {
159              "listeners" : {
160               "check" : "function (_self, checked)\n{\n    var boxLabel = 'Enabled - will be sent out';\n    \n    if(!checked){\n        boxLabel = 'Disabled - will NOT be sent out';\n    }\n    \n    //this.setBoxLabel(boxLabel);\n}"
161              },
162              "String name" : "active",
163              "Boolean checked" : true,
164              "xtype" : "CheckBox",
165              "String valueOff" : 0,
166              "String boxLabel" : "Enabled - will be sent out",
167              "$ xns" : "Roo.bootstrap",
168              "string value" : 1,
169              "String indicatorpos" : "right"
170             }
171            ]
172           }
173          ]
174         },
175         {
176          "xtype" : "Row",
177          "$ xns" : "Roo.bootstrap",
178          "items" : [
179           {
180            "Number md" : 6,
181            "xtype" : "Column",
182            "Number xs" : 12,
183            "$ xns" : "Roo.bootstrap",
184            "string name" : "from_name",
185            "items" : [
186             {
187              "Boolean allowBlank" : false,
188              "String name" : "from_name",
189              "xtype" : "Input",
190              "string fieldLabel" : "From:",
191              "$ xns" : "Roo.bootstrap",
192              "Number labelWidth" : 4,
193              "String indicatorpos" : "right"
194             }
195            ]
196           },
197           {
198            "Number md" : 6,
199            "xtype" : "Column",
200            "Number xs" : 12,
201            "$ xns" : "Roo.bootstrap",
202            "items" : [
203             {
204              "Boolean allowBlank" : false,
205              "String name" : "from_email",
206              "xtype" : "Input",
207              "string fieldLabel" : "From email address:",
208              "$ xns" : "Roo.bootstrap",
209              "String vtype" : "email",
210              "Number labelWidth" : 4,
211              "String indicatorpos" : "right"
212             }
213            ]
214           }
215          ]
216         },
217         {
218          "xtype" : "Row",
219          "$ xns" : "Roo.bootstrap",
220          "items" : [
221           {
222            "listeners" : {
223             "render" : "function (_self)\n{\n    _this.to_group_row = this;\n}"
224            },
225            "Number md" : 6,
226            "xtype" : "Column",
227            "Number xs" : 12,
228            "$ xns" : "Roo.bootstrap",
229            "items" : [
230             {
231              "listeners" : {
232               "render" : "function (_self)\n{\n    _this.combo_to_group = _self;\n}"
233              },
234              "Boolean allowBlank" : true,
235              "String loadingText" : "Searching",
236              "Number pageSize" : 20,
237              "String name" : "to_group_id_display_name",
238              "Number minChars" : 2,
239              "String valueField" : "id",
240              "Boolean typeAhead" : true,
241              "xtype" : "ComboBox",
242              "Boolean editable" : false,
243              "String triggerAction" : "all",
244              "String labelAlign" : "left",
245              "string fieldLabel" : "To group:",
246              "Boolean alwaysQuery" : true,
247              "string placeholder" : "Select Group",
248              "$ xns" : "Roo.bootstrap",
249              "Number labelWidth" : 4,
250              "String hiddenName" : "to_group_id",
251              "String displayField" : "display_name",
252              "Boolean forceSelection" : true,
253              "String indicatorpos" : "right",
254              "items" : [
255               {
256                "listeners" : {
257                 "beforeload" : "function (_self, o){\n    o.params = o.params || {};\n    \n    o.params._direct_return = 1;\n    o.params.limit = 100;\n}\n"
258                },
259                "$ Object sortInfo" : "{ direction : 'ASC', field: 'name' }",
260                "xtype" : "Store",
261                "boolean remoteSort" : true,
262                "$ xns" : "Roo.data",
263                "* prop" : "store",
264                "items" : [
265                 {
266                  "xtype" : "HttpProxy",
267                  "$ xns" : "Roo.data",
268                  "String method" : "GET",
269                  "* prop" : "proxy",
270                  "$ String url" : "baseURL + '/Roo/Core_group'"
271                 },
272                 {
273                  "$ Array fields" : "['name','display_name',{\"name\":\"id\",\"type\":\"int\"}]",
274                  "xtype" : "JsonReader",
275                  "String root" : "data",
276                  "$ xns" : "Roo.data",
277                  "String id" : "name",
278                  "* prop" : "reader",
279                  "String totalProperty" : "total"
280                 }
281                ]
282               }
283              ]
284             }
285            ]
286           },
287           {
288            "Number md" : 6,
289            "xtype" : "Column",
290            "Number xs" : 12,
291            "$ xns" : "Roo.bootstrap",
292            "items" : [
293             {
294              "Boolean allowBlank" : true,
295              "String loadingText" : "Searching",
296              "Number pageSize" : 20,
297              "String name" : "bcc_group_id_name",
298              "Number minChars" : 2,
299              "String valueField" : "id",
300              "Boolean typeAhead" : true,
301              "xtype" : "ComboBox",
302              "Boolean editable" : false,
303              "String triggerAction" : "all",
304              "String labelAlign" : "left",
305              "string fieldLabel" : "BCC to Group:",
306              "Boolean alwaysQuery" : true,
307              "string placeholder" : "Select BCC Group",
308              "$ xns" : "Roo.bootstrap",
309              "Number labelWidth" : 4,
310              "String hiddenName" : "bcc_group_id",
311              "String displayField" : "name",
312              "Boolean forceSelection" : true,
313              "String indicatorpos" : "right",
314              "items" : [
315               {
316                "listeners" : {
317                 "beforeload" : "function (_self, o){\n    o.params = o.params || {};\n    \n    o.params._direct_return = 1;\n}\n"
318                },
319                "$ Object sortInfo" : "{ direction : 'ASC', field: 'name' }",
320                "xtype" : "Store",
321                "boolean remoteSort" : true,
322                "$ xns" : "Roo.data",
323                "* prop" : "store",
324                "items" : [
325                 {
326                  "xtype" : "HttpProxy",
327                  "$ xns" : "Roo.data",
328                  "String method" : "GET",
329                  "* prop" : "proxy",
330                  "$ String url" : "baseURL + '/Roo/Core_group'"
331                 },
332                 {
333                  "$ Array fields" : "[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"id\",\"type\":\"int\"}]",
334                  "xtype" : "JsonReader",
335                  "String root" : "data",
336                  "$ xns" : "Roo.data",
337                  "String id" : "name",
338                  "* prop" : "reader",
339                  "String totalProperty" : "total"
340                 }
341                ]
342               }
343              ]
344             }
345            ]
346           }
347          ]
348         },
349         {
350          "xtype" : "Row",
351          "$ xns" : "Roo.bootstrap",
352          "items" : [
353           {
354            "Number md" : 12,
355            "xtype" : "Column",
356            "Number xs" : 12,
357            "$ xns" : "Roo.bootstrap",
358            "items" : [
359             {
360              "Boolean allowBlank" : false,
361              "String name" : "subject",
362              "xtype" : "Input",
363              "string fieldLabel" : "Subject:",
364              "$ xns" : "Roo.bootstrap",
365              "Number labelWidth" : 2,
366              "String indicatorpos" : "right"
367             }
368            ]
369           }
370          ]
371         },
372         {
373          "xtype" : "Row",
374          "$ xns" : "Roo.bootstrap",
375          "items" : [
376           {
377            "Number md" : 12,
378            "xtype" : "Column",
379            "$ xns" : "Roo.bootstrap",
380            "items" : [
381             {
382              "String header" : "HTML Editor",
383              "xtype" : "Container",
384              "String panel" : "default",
385              "$ xns" : "Roo.bootstrap",
386              "items" : [
387               {
388                "listeners" : {
389                 "savedpreview" : "function (_self)\n{\n    var id = _this.form.findField('id').getValue() * 1;\n    \n    var successFn = function(res){\n        return res.data.POST.source;\n    };\n    \n    var params = {\n        action : 'AUTOSAVE',\n        remarks : 'BODY',\n        on_id : (id < 1) ? 0 : id,\n        on_table : 'core_email',\n        successFn : successFn\n    };\n    \n    \n    Pman.Dialog.BAdminAutoSavePreview.show(params, function(res){\n        _self.setValue(res);\n        _self.originalValue = res;\n    });\n}",
390                 "render" : "function (_self)\n{\n    _this.htmleditor = this;\n}",
391                 "autosave" : "function (_self)\n{\n    Roo.log('autosave');\n    \n    var id = _this.form.findField('id').getValue() * 1;\n    \n    new Pman.Request({\n        url : baseURL + '/Roo/Events.php',\n        method :'POST',\n        params : {\n            id : 0,\n            action : 'AUTOSAVE',\n            on_id : (id > 0) ? id : 0,\n            on_table : 'crm_mailing_list_message',\n            remarks : 'BODY',\n            source: _self.getValue()\n        },\n        success : function() {\n            _self.originalValue = _self.getValue();\n            \n        },\n        failure : function() \n        {\n            Roo.log('body autosave failed?!');\n        }\n    });\n    \n}"
392                },
393                "String name" : "bodytext",
394                "String bodyCls" : "roo-email",
395                "xtype" : "HtmlEditor",
396                "$ xns" : "Roo.bootstrap",
397                "Array stylesheets" : "",
398                "items" : [
399                 {
400                  "listeners" : {
401                   "click" : "function (_self, e)\n{\n    if (!_this.form.findField('bodytext').editorcore.activated) {\n        Roo.bootstrap.MessageBox.alert('Cannot add any image', 'Please select a place in the belowing text area where the image will insert at');\n        return;\n    }\n    \n    var id = _this.form.findField('id').getValue();\n    \n    if(id*1 < 1){\n        Roo.bootstrap.MessageBox.alert('Cannot add any image', 'Please save the email template first');\n        return;\n    }\n    \n    var ontable = (_this.data.module) ? _this.data.module : 'crm_mailing_list_message';\n    \n    Pman.Dialog.BAdminImageManager.show({\n        id: 0,\n        onid: id,\n        ontable: ontable\n    }, function(img){\n        _this.form.findField('bodytext').editorcore.insertAtCursor(\n            String.format(\n                '<img src=\"{0}/Images/{1}/{2}#image-{1}\" height=\"{3}\" width=\"{4}\" alt=\"{5}\" align=\"{6}\">',\n                baseURL,\n                img.id,\n                img.filename.replace('%', '-'),\n                img.height,\n                img.width,\n                img.descript,\n                img.align\n            )\n        )\n    });\n    \n}"
402                  },
403                  "Boolean toggle" : false,
404                  "xtype" : "Button",
405                  "$ xns" : "Roo.bootstrap",
406                  "String glyphicon" : "camera",
407                  "String html" : "Insert Image",
408                  "* prop" : "btns[]"
409                 },
410                 {
411                  "Boolean toggle" : false,
412                  "$ String glyphicon" : "'tag'",
413                  "xtype" : "Button",
414                  "$ xns" : "Roo.bootstrap",
415                  "String html" : "Insert Field",
416                  "* prop" : "btns[]",
417                  "items" : [
418                   {
419                    "xtype" : "Menu",
420                    "$ xns" : "Roo.bootstrap",
421                    "* prop" : "menu",
422                    "items" : [
423                     {
424                      "listeners" : {
425                       "click" : "function (_self, e)\n{\n    if (!_this.form.findField('bodytext').editorcore.activated) {\n        Roo.bootstrap.MessageBox.alert('Cannot add the name tag', 'Please select a place in the belowing text area where the tag will insert at');\n        return;\n    }\n    \n    _this.form.findField('bodytext').editorcore.insertAtCursor(\n        String.format('{0}',\n            '{person.name}'\n        )\n    );\n}"
426                      },
427                      "xtype" : "MenuItem",
428                      "$ xns" : "Roo.bootstrap",
429                      "String html" : "Name"
430                     },
431                     {
432                      "listeners" : {
433                       "click" : "function (_self, e)\n{\n    if (!_this.form.findField('bodytext').editorcore.activated) {\n        Roo.bootstrap.MessageBox.alert('Cannot add the unsubscribe tag', 'Please select a place in the belowing text area where the tag will insert at');\n        return;\n    }\n    \n    _this.form.findField('bodytext').editorcore.insertAtCursor(\n        String.format('<a href=\"{0}\">{1}</a>',\n            '#unsubscribe',  \"Unsubscribe\"\n        )\n    );\n}"
434                      },
435                      "xtype" : "MenuItem",
436                      "$ xns" : "Roo.bootstrap",
437                      "String html" : "Unsubscribe"
438                     }
439                    ]
440                   }
441                  ]
442                 },
443                 {
444                  "listeners" : {
445                   "click" : "function (_self, e)\n{\n    var h = _this.form.findField('bodytext').getValue();\n    var p = _this.form.findField('plaintext');\n    \n    new Pman.Request({\r\n        url : baseURL + '/Core/ImportMailMessage.php',\r\n        method : 'POST',\r\n        params : {\n          bodytext : h,\r\n          _convertToPlain : true,\n          _check_unsubscribe : true\r\n        }, \r\n        success : function(res) {\r\n            if(res.success == true){\n               p.setValue(res.data);\n            }\r\n        }\r\n    });\n    \n}"
446                  },
447                  "Boolean toggle" : false,
448                  "$ String glyphicon" : "'refresh'",
449                  "xtype" : "Button",
450                  "$ xns" : "Roo.bootstrap",
451                  "String html" : "Convert HTML to Plain Text",
452                  "* prop" : "btns[]"
453                 },
454                 {
455                  "listeners" : {
456                   "click" : "function (_self, e)\n{\n    this.scope.owner.fireEvent('savedpreview', this.scope.owner);\n}"
457                  },
458                  "Boolean toggle" : false,
459                  "$ String glyphicon" : "'floppy-disk'",
460                  "xtype" : "Button",
461                  "$ xns" : "Roo.bootstrap",
462                  "String html" : "Saved Version",
463                  "* prop" : "btns[]"
464                 }
465                ]
466               }
467              ]
468             }
469            ]
470           }
471          ]
472         },
473         {
474          "listeners" : {
475           "click" : "function (_self, e)\n{\n    var h = _this.form.findField('bodytext').getValue();\n    var p = _this.form.findField('plaintext');\n    \n    new Pman.Request({\r\n        url : baseURL + '/Core/ImportMailMessage.php',\r\n        method : 'POST',\r\n        params : {\n          bodytext : h,\r\n          _convertToPlain : true,\n          _check_unsubscribe : true\r\n        }, \r\n        success : function(res) {\r\n            if(res.success == true){\n               p.setValue(res.data);\n            }\r\n        }\r\n    });\n    \n}"
476          },
477          "xtype" : "Row",
478          "$ xns" : "Roo.bootstrap",
479          "items" : [
480           {
481            "Number md" : 12,
482            "xtype" : "Column",
483            "$ xns" : "Roo.bootstrap",
484            "items" : [
485             {
486              "String header" : "Plain Text",
487              "$ String panel" : "'default'",
488              "xtype" : "Container",
489              "$ xns" : "Roo.bootstrap",
490              "items" : [
491               {
492                "String name" : "plaintext",
493                "xtype" : "TextArea",
494                "$ xns" : "Roo.bootstrap"
495               }
496              ]
497             }
498            ]
499           }
500          ]
501         },
502         {
503          "xtype" : "Row",
504          "$ xns" : "Roo.bootstrap",
505          "items" : [
506           {
507            "Number md" : 6,
508            "xtype" : "Column",
509            "$ xns" : "Roo.bootstrap",
510            "items" : [
511             {
512              "Boolean allowBlank" : false,
513              "String name" : "name",
514              "xtype" : "Input",
515              "string fieldLabel" : "Mailout Name:",
516              "String labelAlign" : "top",
517              "Boolean disabled" : true,
518              "$ xns" : "Roo.bootstrap",
519              "String indicatorpos" : "right"
520             }
521            ]
522           },
523           {
524            "Number md" : 6,
525            "xtype" : "Column",
526            "$ xns" : "Roo.bootstrap",
527            "items" : [
528             {
529              "String name" : "test_class",
530              "xtype" : "Input",
531              "string fieldLabel" : "Test Class (for system reference only):",
532              "String labelAlign" : "top",
533              "Boolean disabled" : true,
534              "$ xns" : "Roo.bootstrap"
535             }
536            ]
537           }
538          ]
539         },
540         {
541          "String name" : "id",
542          "xtype" : "Input",
543          "String inputType" : "hidden",
544          "$ xns" : "Roo.bootstrap",
545          "Number labelWidth" : 3
546         },
547         {
548          "String name" : "_ignore_group_count",
549          "xtype" : "Input",
550          "String inputType" : "hidden",
551          "$ xns" : "Roo.bootstrap",
552          "Number labelWidth" : 3
553         }
554        ]
555       }
556      ]
557     }
558    ]
559   }
560  ]
561 }