source: sandbox/2.3-MailArchiver/filemanager/tp/ckeditor/_source/plugins/forms/dialogs/textfield.js @ 6779

Revision 6779, 4.7 KB checked in by rafaelraymundo, 12 years ago (diff)

Ticket #2946 - Liberado Expresso(branch 2.3) integrado ao MailArchiver?.

Line 
1/*
2Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.html or http://ckeditor.com/license
4*/
5CKEDITOR.dialog.add( 'textfield', function( editor )
6{
7        var autoAttributes =
8        {
9                value : 1,
10                size : 1,
11                maxLength : 1
12        };
13
14        var acceptedTypes =
15        {
16                text : 1,
17                password : 1
18        };
19
20        return {
21                title : editor.lang.textfield.title,
22                minWidth : 350,
23                minHeight : 150,
24                onShow : function()
25                {
26                        delete this.textField;
27
28                        var element = this.getParentEditor().getSelection().getSelectedElement();
29                        if ( element && element.getName() == "input" &&
30                                        ( acceptedTypes[ element.getAttribute( 'type' ) ] || !element.getAttribute( 'type' ) ) )
31                        {
32                                this.textField = element;
33                                this.setupContent( element );
34                        }
35                },
36                onOk : function()
37                {
38                        var editor,
39                                element = this.textField,
40                                isInsertMode = !element;
41
42                        if ( isInsertMode )
43                        {
44                                editor = this.getParentEditor();
45                                element = editor.document.createElement( 'input' );
46                                element.setAttribute( 'type', 'text' );
47                        }
48
49                        if ( isInsertMode )
50                                editor.insertElement( element );
51                        this.commitContent( { element : element } );
52                },
53                onLoad : function()
54                {
55                        var autoSetup = function( element )
56                        {
57                                var value = element.hasAttribute( this.id ) && element.getAttribute( this.id );
58                                this.setValue( value || '' );
59                        };
60
61                        var autoCommit = function( data )
62                        {
63                                var element = data.element;
64                                var value = this.getValue();
65
66                                if ( value )
67                                        element.setAttribute( this.id, value );
68                                else
69                                        element.removeAttribute( this.id );
70                        };
71
72                        this.foreach( function( contentObj )
73                                {
74                                        if ( autoAttributes[ contentObj.id ] )
75                                        {
76                                                contentObj.setup = autoSetup;
77                                                contentObj.commit = autoCommit;
78                                        }
79                                } );
80                },
81                contents : [
82                        {
83                                id : 'info',
84                                label : editor.lang.textfield.title,
85                                title : editor.lang.textfield.title,
86                                elements : [
87                                        {
88                                                type : 'hbox',
89                                                widths : [ '50%', '50%' ],
90                                                children :
91                                                [
92                                                        {
93                                                                id : '_cke_saved_name',
94                                                                type : 'text',
95                                                                label : editor.lang.textfield.name,
96                                                                'default' : '',
97                                                                accessKey : 'N',
98                                                                setup : function( element )
99                                                                {
100                                                                        this.setValue(
101                                                                                        element.getAttribute( '_cke_saved_name' ) ||
102                                                                                        element.getAttribute( 'name' ) ||
103                                                                                        '' );
104                                                                },
105                                                                commit : function( data )
106                                                                {
107                                                                        var element = data.element;
108
109                                                                        if ( this.getValue() )
110                                                                                element.setAttribute( '_cke_saved_name', this.getValue() );
111                                                                        else
112                                                                        {
113                                                                                element.removeAttribute( '_cke_saved_name' );
114                                                                                element.removeAttribute( 'name' );
115                                                                        }
116                                                                }
117                                                        },
118                                                        {
119                                                                id : 'value',
120                                                                type : 'text',
121                                                                label : editor.lang.textfield.value,
122                                                                'default' : '',
123                                                                accessKey : 'V'
124                                                        }
125                                                ]
126                                        },
127                                        {
128                                                type : 'hbox',
129                                                widths : [ '50%', '50%' ],
130                                                children :
131                                                [
132                                                        {
133                                                                id : 'size',
134                                                                type : 'text',
135                                                                label : editor.lang.textfield.charWidth,
136                                                                'default' : '',
137                                                                accessKey : 'C',
138                                                                style : 'width:50px',
139                                                                validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed )
140                                                        },
141                                                        {
142                                                                id : 'maxLength',
143                                                                type : 'text',
144                                                                label : editor.lang.textfield.maxChars,
145                                                                'default' : '',
146                                                                accessKey : 'M',
147                                                                style : 'width:50px',
148                                                                validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed )
149                                                        }
150                                                ]
151                                        },
152                                        {
153                                                id : 'type',
154                                                type : 'select',
155                                                label : editor.lang.textfield.type,
156                                                'default' : 'text',
157                                                accessKey : 'M',
158                                                items :
159                                                [
160                                                        [ editor.lang.textfield.typeText, 'text' ],
161                                                        [ editor.lang.textfield.typePass, 'password' ]
162                                                ],
163                                                setup : function( element )
164                                                {
165                                                        this.setValue( element.getAttribute( 'type' ) );
166                                                },
167                                                commit : function( data )
168                                                {
169                                                        var element = data.element;
170
171                                                        if ( CKEDITOR.env.ie )
172                                                        {
173                                                                var elementType = element.getAttribute( 'type' );
174                                                                var myType = this.getValue();
175
176                                                                if ( elementType != myType )
177                                                                {
178                                                                        var replace = CKEDITOR.dom.element.createFromHtml( '<input type="' + myType + '"></input>', editor.document );
179                                                                        element.copyAttributes( replace, { type : 1 } );
180                                                                        replace.replace( element );
181                                                                        editor.getSelection().selectElement( replace );
182                                                                        data.element = element;
183                                                                }
184                                                        }
185                                                        else
186                                                                element.setAttribute( 'type', this.getValue() );
187                                                }
188                                        }
189                                ]
190                        }
191                ]
192        };
193});
Note: See TracBrowser for help on using the repository browser.