source: branches/2.4/library/ckeditor/plugins/expresso/plugin.js @ 7155

Revision 7155, 7.3 KB checked in by eduardow, 12 years ago (diff)

Ticket #3086 - Corrigido problema na internacionalização da opção Open dialog.

  • Property svn:executable set to *
Line 
1
2
3CKEDITOR.plugins.add('expresso',
4{
5   
6    init: function (editor) {
7        var pluginName = 'expresso';
8        editor.ui.addButton('expAddImage',
9            {
10                label: 'Adicionar Imagem',
11                command: 'imgDialog',
12                icon: CKEDITOR.plugins.getPath('expresso') + 'img/Image.gif'
13            });
14                       
15        editor.ui.addRichCombo('expSignature',
16        {
17                    label: 'Assinaturas',
18                    voiceLabel : "Assinaturas",
19                    title: 'Assinaturas',
20                    className : 'cke_format',
21                    panel :
22                    {
23                           css : [ CKEDITOR.config.contentsCss, CKEDITOR.getUrl( editor.skinPath + 'editor.css' ) ],
24                           voiceLabel : 'xala'
25                    },
26
27                    init : function()
28                    {
29                         var options = RichTextEditor.getSignaturesOptions();
30                         for( var key in options )
31                             this.add(  options[key],key,key);   
32                                             
33                    },
34                   
35                    onClick : function( value )
36                    {         
37                       editor.focus();
38                       editor.fire( 'saveSnapshot' );
39                       editor.insertHtml(unescape(value));
40                       editor.fire( 'saveSnapshot' );
41                    }
42
43        });
44       
45       
46        editor.addCommand( 'imgDialog',new CKEDITOR.dialogCommand( 'imgDialog' ) );
47
48                if ( editor.contextMenu )
49                {
50                        editor.addMenuGroup( 'mygroup', 10 );
51                        editor.addMenuItem( 'My Dialog',
52                        {
53                                label : 'Adicionar imagem',
54                                command : 'imgDialog',
55                                group : 'mygroup'
56                        });
57                        editor.contextMenu.addListener( function( element )
58                        {
59                                return {'My Dialog' : CKEDITOR.TRISTATE_OFF};
60                        });
61                }
62               
63                CKEDITOR.dialog.add( 'imgDialog', function( api )
64                {
65            var ID = currentTab;
66                        // CKEDITOR.dialog.definition
67                        var dialogDefinition =
68                        {
69                               
70                title : 'Inserir Imagem',
71                                minWidth : 400,
72                                minHeight : 70,
73                                contents : [
74                                        {
75                                                id : 'tab1',
76                                                label : 'Label',
77                                                title : 'Title',
78                                                expand : true,
79                                                padding : 0,
80                                                elements :
81                                                [
82                                                        {
83                                                                type : 'html',
84                                                                html :  '<form id="fileupload_img'+ID+'" class="fileupload" action="mailAttachment:img" method="POST">    <input type="file" name="files[]"  onclick="bindFileUpload(this);" style="margin-left:10px"></form>'
85                                                        }
86                                                ]
87                                        }
88                                ],
89                                buttons : [ CKEDITOR.dialog.cancelButton]
90                               
91                        };
92                               
93                        return dialogDefinition;
94                } );
95       
96         
97
98    }
99});
100function bindFileUpload(e) {
101        var ID = currentTab;
102        var fileUploadIMG = $(e).parents('form');
103        var fileUploadMSG = $('#fileupload_msg'+ID);
104        var maxAttachmentSize = (preferences.max_attachment_size !== "" && preferences.max_attachment_size != 0) ? (parseInt(preferences.max_attachment_size.replace('M', '')) * 1048576 ) : false;
105        fileUploadIMG.fileupload({
106                type: 'post',
107                dataType : 'json',
108                url: "../prototype/post.php",
109                forceIframeTransport: true,
110                formData: function(form) {
111                        return [
112                                {
113                                        name : "mailAttachment[0][source]",
114                                        value : "files0"
115                                },
116                                {
117                                        name : "mailAttachment[0][disposition]",
118                                        value : $('#attDisposition'+ID).val()
119                                },
120                                {
121                                        name: "MAX_FILE_SIZE",
122                                        value : maxAttachmentSize
123                                }
124                        ];
125                },
126                add: function (e, data) {
127     
128                        if(!maxAttachmentSize || data.files[0].size < maxAttachmentSize || is_ie) {
129                                setTimeout(function() {
130                                        $('#attDisposition'+ID).val('embedded');
131                                        data.submit();
132                                }, 5000);
133                        }
134
135                        $.each(data.files, function (index, file) {     
136                                var attach = {};
137                                attach.fullFileName = file.name;
138                                attach.fileName = file.name;
139                                if(file.name.length > 10)
140                                        attach.fileName = file.name.substr(0, 18) + "..." + file.name.substr(file.name.length-9, file.name.length);
141                                attach.fileSize = formatBytes(file.size);
142                                if(maxAttachmentSize && file.size > maxAttachmentSize)
143                                        attach.error = 'Tamanho de arquivo nao permitido!!'
144                                                               
145                                var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach}));   
146
147                                upload.find('.button.close').button({
148                                        icons: {
149                                                primary: "ui-icon-close"
150                                        },
151                                        text: false
152                                }).click(function(){
153                                        var idAttach = $(this).parent().find('input[name="fileId[]"]').val();
154                       
155                    var content_body = RichTextEditor.getData('body_'+ID);
156                    var imagens = content_body.match(/<img[^>]*>/g);
157       
158                    if(imagens != null)
159                        for (var x = 0; x < imagens.length; x++)
160                            if(imagens[x].indexOf('src="../prototype/getArchive.php?mailAttachment='+idAttach+'"') !== -1)
161                                content_body = content_body.replace(imagens[x],'');
162         
163                    RichTextEditor.setData('body_'+ID,content_body);   
164                                       
165                    $('.attachments-list').find('input[value="'+idAttach+'"]').remove();
166                    delAttachment(ID, idAttach);
167                                        $(this).parent().remove();
168                                });
169                               
170            fileUploadMSG.find('.attachments-list').append(upload);
171
172                        if(!maxAttachmentSize || file.size < maxAttachmentSize){
173                                if(data.fileInput){
174                                        fileUploadMSG.find('.fileinput-button.new').append(data.fileInput[0]).removeClass('new');
175                                        fileUploadMSG.find('.attachments-list').find('[type=file]').addClass('hidden');
176                                }
177                        }else
178                                fileUploadMSG.find(' .fileinput-button.new').removeClass('new');
179                                                               
180                CKEDITOR.instances['body_'+ID].insertHtml('<img src=""/>');
181
182                        });
183               
184            CKEDITOR.dialog.getCurrent().hide();       
185                       
186                },
187                done: function(e, data){
188                        if(!!data.result && data.result != "[]"){
189                                var newAttach = data.result;
190                                if(!newAttach.mailAttachment.error){
191                                        if(newAttach.rollback !== false)
192                                        {
193                                                fileUploadMSG.find('.in-progress:first').parents('p').append('<input type="hidden" name="fileId[]" value="'+newAttach['mailAttachment'][0][0].id+'"/>').find('.status-upload').addClass('ui-icon ui-icon-check');
194                                                addAttachment(ID,newAttach['mailAttachment'][0][0].id);
195                                                var content_body  = RichTextEditor.getData('body_'+ID);
196                                                var rex = new RegExp('<img src="" [^\/>]*\/>', 'i');
197                                                var newImg = '<img src="../prototype/getArchive.php?mailAttachment='+newAttach['mailAttachment'][0][0].id+'" />';
198                                                content_body = content_body.replace(rex,newImg);
199                                                RichTextEditor.setData('body_'+ID,content_body);
200                                        }
201                                        else
202                                                fileUploadMSG.find('.in-progress:first').parents('p').find('.status-upload').append('Erro ao fazer upload!').addClass('message-attach-error');   
203                                }else{
204                                        fileUploadMSG.find('.in-progress:first').parents('p').find('.status-upload').append(newAttach.mailAttachment.error).addClass('message-attach-error');   
205                                }
206                        }else
207                        {
208                fileUploadMSG.find('.in-progress:first').parents('p').find('.status-upload').append('Erro ao fazer upload!').addClass('message-attach-error');   
209                        }
210                        fileUploadMSG.find('.in-progress:first').remove();
211                   
212                }
213        });
214}
Note: See TracBrowser for help on using the repository browser.