source: branches/2.2/filemanager/tp/ckeditor/_source/plugins/link/dialogs/anchor.js @ 3019

Revision 3019, 2.6 KB checked in by amuller, 14 years ago (diff)

Ticket #1135 - Corrigindo CSS e adicionando filemanager

Line 
1/*
2Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.html or http://ckeditor.com/license
4*/
5
6CKEDITOR.dialog.add( 'anchor', function( editor )
7{
8        // Function called in onShow to load selected element.
9        var loadElements = function( editor, selection, element )
10        {
11                this.editMode = true;
12                this.editObj = element;
13
14                var attributeValue = this.editObj.getAttribute( 'name' );
15                if ( attributeValue )
16                        this.setValueOf( 'info','txtName', attributeValue );
17                else
18                        this.setValueOf( 'info','txtName', "" );
19        };
20
21        return {
22                title : editor.lang.anchor.title,
23                minWidth : 300,
24                minHeight : 60,
25                onOk : function()
26                {
27                        // Always create a new anchor, because of IE BUG.
28                        var name = this.getValueOf( 'info', 'txtName' ),
29                                element = CKEDITOR.env.ie ?
30                                editor.document.createElement( '<a name="' + CKEDITOR.tools.htmlEncode( name ) + '">' ) :
31                                editor.document.createElement( 'a' );
32
33                        // Move contents and attributes of old anchor to new anchor.
34                        if ( this.editMode )
35                        {
36                                this.editObj.copyAttributes( element, { name : 1 } );
37                                this.editObj.moveChildren( element );
38                        }
39
40                        // Set name.
41                        element.removeAttribute( '_cke_saved_name' );
42                        element.setAttribute( 'name', name );
43
44                        // Insert a new anchor.
45                        var fakeElement = editor.createFakeElement( element, 'cke_anchor', 'anchor' );
46                        if ( !this.editMode )
47                                editor.insertElement( fakeElement );
48                        else
49                        {
50                                fakeElement.replace( this.fakeObj );
51                                editor.getSelection().selectElement( fakeElement );
52                        }
53
54                        return true;
55                },
56                onShow : function()
57                {
58                        this.editObj = false;
59                        this.fakeObj = false;
60                        this.editMode = false;
61
62                        var selection = editor.getSelection();
63                        var element = selection.getSelectedElement();
64                        if ( element && element.getAttribute( '_cke_real_element_type' ) && element.getAttribute( '_cke_real_element_type' ) == 'anchor' )
65                        {
66                                this.fakeObj = element;
67                                element = editor.restoreRealElement( this.fakeObj );
68                                loadElements.apply( this, [ editor, selection, element ] );
69                                selection.selectElement( this.fakeObj );
70                        }
71                        this.getContentElement( 'info', 'txtName' ).focus();
72                },
73                contents : [
74                        {
75                                id : 'info',
76                                label : editor.lang.anchor.title,
77                                accessKey : 'I',
78                                elements :
79                                [
80                                        {
81                                                type : 'text',
82                                                id : 'txtName',
83                                                label : editor.lang.anchor.name,
84                                                validate : function()
85                                                {
86                                                        if ( !this.getValue() )
87                                                        {
88                                                                alert( editor.lang.anchor.errorName );
89                                                                return false;
90                                                        }
91                                                        return true;
92                                                }
93                                        }
94                                ]
95                        }
96                ]
97        };
98} );
Note: See TracBrowser for help on using the repository browser.