Subversion Repositories Applications.papyrus

Rev

Rev 1688 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1688 Rev 1921
Line 1... Line 1...
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
2
<!--
2
<!--
3
 * FCKeditor - The text editor for internet
3
 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
4
 * Copyright (C) 2003-2006 Frederico Caldeira Knabben
4
 * Copyright (C) 2003-2008 Frederico Caldeira Knabben
-
 
5
 *
-
 
6
 * == BEGIN LICENSE ==
5
 * 
7
 *
6
 * Licensed under the terms of the GNU Lesser General Public License:
8
 * Licensed under the terms of any of the following licenses at your
7
 * 		http://www.opensource.org/licenses/lgpl-license.php
9
 * choice:
8
 * 
10
 *
9
 * For further information visit:
11
 *  - GNU General Public License Version 2 or later (the "GPL")
10
 * 		http://www.fckeditor.net/
12
 *    http://www.gnu.org/licenses/gpl.html
11
 * 
13
 *
12
 * "Support Open Source software. What about a donation today?"
14
 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-
 
15
 *    http://www.gnu.org/licenses/lgpl.html
13
 * 
16
 *
14
 * File Name: fck_anchor.html
17
 *  - Mozilla Public License Version 1.1 or later (the "MPL")
15
 * 	Anchor dialog window.
18
 *    http://www.mozilla.org/MPL/MPL-1.1.html
16
 * 
19
 *
17
 * File Authors:
20
 * == END LICENSE ==
-
 
21
 *
18
 * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
22
 * Anchor dialog window.
19
-->
23
-->
20
<html>
24
<html>
21
	<head>
25
	<head>
22
		<title>Anchor Properties</title>
26
		<title>Anchor Properties</title>
23
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
27
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
24
		<meta content="noindex, nofollow" name="robots">
28
		<meta content="noindex, nofollow" name="robots">
25
		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
29
		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
26
		<script type="text/javascript">
30
		<script type="text/javascript">
Line 27... Line 31...
27
 
31
 
28
var oEditor	= window.parent.InnerDialogLoaded() ;
32
var dialog			= window.parent ;
Line 29... Line 33...
29
var FCK		= oEditor.FCK ;
33
var oEditor			= dialog.InnerDialogLoaded() ;
-
 
34
 
-
 
35
var FCK				= oEditor.FCK ;
-
 
36
var FCKBrowserInfo	= oEditor.FCKBrowserInfo ;
-
 
37
var FCKTools		= oEditor.FCKTools ;
30
 
38
var FCKRegexLib		= oEditor.FCKRegexLib ;
-
 
39
 
-
 
40
var oDOM			= FCK.EditorDocument ;
Line 31... Line -...
31
// Gets the document DOM
-
 
32
var oDOM = oEditor.FCK.EditorDocument ;
41
 
Line 33... Line 42...
33
 
42
var oFakeImage = dialog.Selection.GetSelectedElement() ;
34
var oFakeImage = FCK.Selection.GetSelectedElement() ;
43
 
35
var oAnchor ;
44
var oAnchor ;
36
 
45
 
37
if ( oFakeImage )
46
if ( oFakeImage )
38
{
47
{
39
	if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckanchor') )
48
	if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckanchor') )
Line -... Line 49...
-
 
49
		oAnchor = FCK.GetRealElement( oFakeImage ) ;
-
 
50
	else
-
 
51
		oFakeImage = null ;
-
 
52
}
-
 
53
 
-
 
54
//Search for a real anchor
-
 
55
if ( !oFakeImage )
-
 
56
{
40
		oAnchor = FCK.GetRealElement( oFakeImage ) ;
57
	oAnchor = FCK.Selection.MoveToAncestorNode( 'A' ) ;
41
	else
58
	if ( oAnchor )
42
		oFakeImage = null ;
59
		FCK.Selection.SelectNode( oAnchor ) ;
43
}
60
}
Line 51... Line 68...
51
		GetE('txtName').value = oAnchor.name ;
68
		GetE('txtName').value = oAnchor.name ;
52
	else
69
	else
53
		oAnchor = null ;
70
		oAnchor = null ;
Line 54... Line 71...
54
 
71
 
-
 
72
	window.parent.SetOkButton( true ) ;
-
 
73
	window.parent.SetAutoSize( true ) ;
-
 
74
 
55
	window.parent.SetOkButton( true ) ;
75
	SelectField( 'txtName' ) ;
Line 56... Line 76...
56
}
76
}
57
 
77
 
-
 
78
function Ok()
-
 
79
{
-
 
80
	var sNewName = GetE('txtName').value ;
-
 
81
 
-
 
82
	// Remove any illegal character in a name attribute:
-
 
83
	// A name should start with a letter, but the validator passes anyway.
58
function Ok()
84
	sNewName = sNewName.replace( /[^\w-_\.:]/g, '_' ) ;
59
{
85
 
-
 
86
	if ( sNewName.length == 0 )
-
 
87
	{
-
 
88
		// Remove the anchor if the user leaves the name blank
-
 
89
		if ( oAnchor )
-
 
90
		{
-
 
91
			// Removes the current anchor from the document using the new command
-
 
92
			FCK.Commands.GetCommand( 'AnchorDelete' ).Execute() ;
-
 
93
			return true ;
60
	if ( GetE('txtName').value.length == 0 )
94
		}
61
	{
95
 
62
		alert( oEditor.FCKLang.DlgAnchorErrorName ) ;
96
		alert( oEditor.FCKLang.DlgAnchorErrorName ) ;
63
		return false ;
97
		return false ;
64
	}
98
	}
65
	
-
 
66
	oEditor.FCKUndo.SaveUndoStep() ;
-
 
67
	
-
 
68
	oAnchor		= FCK.EditorDocument.createElement( 'DIV' ) ;
-
 
69
	oAnchor.innerHTML = '<a name="' + GetE('txtName').value + '"><\/a>' ;
-
 
70
	oAnchor = oAnchor.firstChild ;
-
 
71
 
-
 
72
	oFakeImage	= oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Anchor', oAnchor ) ;
-
 
Line -... Line 99...
-
 
99
 
-
 
100
	oEditor.FCKUndo.SaveUndoStep() ;
-
 
101
 
-
 
102
	if ( oAnchor )	// Modifying an existent anchor.
-
 
103
	{
-
 
104
		ReadjustLinksToAnchor( oAnchor.name, sNewName );
-
 
105
 
-
 
106
		// Buggy explorer, bad bad browser. http://alt-tag.com/blog/archives/2006/02/ie-dom-bugs/
-
 
107
		// Instead of just replacing the .name for the existing anchor (in order to preserve the content), we must remove the .name
-
 
108
		// and assign .name, although it won't appear until it's specially processed in fckxhtml.js
-
 
109
 
-
 
110
		// We remove the previous name
-
 
111
		oAnchor.removeAttribute( 'name' ) ;
-
 
112
		// Now we set it, but later we must process it specially
-
 
113
		oAnchor.name = sNewName ;
-
 
114
 
-
 
115
		return true ;
-
 
116
	}
-
 
117
 
-
 
118
	// Create a new anchor preserving the current selection
-
 
119
	var aNewAnchors = oEditor.FCK.CreateLink( '#' ) ;
-
 
120
 
-
 
121
	if ( aNewAnchors.length == 0 )
-
 
122
			aNewAnchors.push( oEditor.FCK.InsertElement( 'a' ) ) ;
-
 
123
	else
-
 
124
	{
-
 
125
		// Remove the fake href
-
 
126
		for ( var i = 0 ; i < aNewAnchors.length ; i++ )
-
 
127
			aNewAnchors[i].removeAttribute( 'href' ) ;
-
 
128
	}
-
 
129
 
-
 
130
	// More than one anchors may have been created, so interact through all of them (see #220).
-
 
131
	for ( var i = 0 ; i < aNewAnchors.length ; i++ )
-
 
132
	{
-
 
133
		oAnchor = aNewAnchors[i] ;
-
 
134
 
-
 
135
		// Set the name
-
 
136
		if ( FCKBrowserInfo.IsIE )
-
 
137
		{
73
	oFakeImage.setAttribute( '_fckanchor', 'true', 0 ) ;
138
			// Setting anchor names directly in IE will trash the HTML code stored
-
 
139
			// in FCKTempBin after undos. See #2263.
-
 
140
			var replaceAnchor = oEditor.FCK.EditorDocument.createElement( '<a name="' +
-
 
141
					FCKTools.HTMLEncode( sNewName ).replace( '"', '&quot;' ) + '">' ) ;
-
 
142
			oEditor.FCKDomTools.MoveChildren( oAnchor, replaceAnchor ) ;
-
 
143
			oAnchor.parentNode.replaceChild( replaceAnchor, oAnchor ) ;
-
 
144
			oAnchor = replaceAnchor ;
-
 
145
		}
-
 
146
		else
-
 
147
			oAnchor.name = sNewName ;
-
 
148
 
-
 
149
		// IE does require special processing to show the Anchor's image
-
 
150
		// Opera doesn't allow to select empty anchors
-
 
151
		if ( FCKBrowserInfo.IsIE || FCKBrowserInfo.IsOpera )
-
 
152
		{
-
 
153
			if ( oAnchor.innerHTML != '' )
-
 
154
			{
-
 
155
				if ( FCKBrowserInfo.IsIE )
-
 
156
					oAnchor.className += ' FCK__AnchorC' ;
-
 
157
			}
-
 
158
			else
-
 
159
			{
-
 
160
				// Create a fake image for both IE and Opera
-
 
161
				var oImg = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Anchor', oAnchor.cloneNode(true) ) ;
-
 
162
				oImg.setAttribute( '_fckanchor', 'true', 0 ) ;
-
 
163
 
-
 
164
				oAnchor.parentNode.insertBefore( oImg, oAnchor ) ;
-
 
165
				oAnchor.parentNode.removeChild( oAnchor ) ;
-
 
166
			}
-
 
167
 
74
	oFakeImage	= FCK.InsertElementAndGetIt( oFakeImage ) ;
168
		}
75
 
169
	}
Line -... Line 170...
-
 
170
 
-
 
171
	return true ;
-
 
172
}
-
 
173
 
-
 
174
// Checks all the links in the current page pointing to the current name and changes them to the new name
-
 
175
function ReadjustLinksToAnchor( sCurrent, sNew )
-
 
176
{
-
 
177
	var oDoc = FCK.EditorDocument ;
-
 
178
 
-
 
179
	var aLinks = oDoc.getElementsByTagName( 'A' ) ;
-
 
180
 
-
 
181
	var sReference = '#' + sCurrent ;
-
 
182
	// The url of the document, so we check absolute and partial references.
-
 
183
	var sFullReference = oDoc.location.href.replace( /(#.*$)/, '') ;
-
 
184
	sFullReference += sReference ;
-
 
185
 
-
 
186
	var oLink ;
-
 
187
	var i = aLinks.length - 1 ;
-
 
188
	while ( i >= 0 && ( oLink = aLinks[i--] ) )
-
 
189
	{
-
 
190
		var sHRef = oLink.getAttribute( '_fcksavedurl' ) ;
-
 
191
		if ( sHRef == null )
-
 
192
			sHRef = oLink.getAttribute( 'href' , 2 ) || '' ;
-
 
193
 
-
 
194
		if ( sHRef == sReference || sHRef == sFullReference )
-
 
195
		{
-
 
196
			oLink.href = '#' + sNew ;
-
 
197
			SetAttribute( oLink, '_fcksavedurl', '#' + sNew ) ;
76
//	oEditor.FCK.InsertHtml( '<a name="' + GetE('txtName').value + '"><\/a>' ) ;
198
		}
77
	return true ;
199
	}
78
}
200
}
79
 
201
 
80
		</script>
202
		</script>
81
	</head>
203
	</head>
82
	<body style="OVERFLOW: hidden" scroll="no">
204
	<body style="overflow: hidden">
83
		<table height="100%" width="100%">
205
		<table height="100%" width="100%">
Line 93... Line 215...
93
					</table>
215
					</table>
94
				</td>
216
				</td>
95
			</tr>
217
			</tr>
96
		</table>
218
		</table>
97
	</body>
219
	</body>
98
</html>
-
 
99
220
</html>
-
 
221