Item5351: WebCreateNewTopic filters out international characters
Priority: Normal
Current State: Closed
Released In: 1.0.0
Target Release: patch
Applies To: Engine
Component:
Branches:
WebCreateNewTopic filters out international Characters. While typing a new topic name international characters are automatically removed and the next character after the international one is capitalised. As capital letters have a special meaning in topic names this is quite confusing.
This sounds a bit like
Item4419 but the solution suggested there does not solve the problem.
--
TWiki:Main/MartinMayer - 11 Feb 2008
The problem is two-fold:
-
webtopiccreator.js
in PatternSkin uses removePunctuation()
to sanitize topic names
-
removePunctuations
(from TWikiJavascripts/twikiString.js
) basically strips out all but MIXED_ALPHANUM_CHARS
, which are [A-Za-z\d]
--
TWiki:Main.AndrewPantyukhin - 19 Apr 2008
The javascrripts use the same regexes as TWiki core. Updates to TWiki regexes should be reflected in the javascripts, but not the way around.
--
TWiki:Main.ArthurClemens - 19 Apr 2008
I don't know much
JavaScript and I can't grasp the rationale behind twikiString.js. We've got character class definitions as global vars in twiki.js and unicode_chars.js. For some reason, though, twikiString.js does not use them, but introduces a curious OO-based definitions. It looks like someone was trying to do some refactoring, but never finished it. Anyway, twikiStringUnicodeChars.js is an attempt to convert unicode_chars.js to the same OO interface, but it only contains one class (UPPER_ALPHA_CHARS), and is not included from
PatternSkin (while unicode_chars.js is).
I may be wrong, but I'd say we need to forget about the OO-thing and just run s/twiki.StringConstants.getInstance().// in twikiString.js. That way it'll use the complete definitions.
--
TWiki:Main.AndrewPantyukhin - 24 Apr 2008
This little patch fixes the problem:
http://heka.cenkes.org/sat/diffs/non-ascii.wikiword.diff
--
TWiki:Main.AndrewPantyukhin - 29 Apr 2008
I applied Andrew's patch after an hour of testing
It works great. We non-English can again create
I18N topics (non UTF8)
(from Japan:) This will break
twiki.String
because it now won't function without
unicode_chars.js
. Running
TestCaseTWikiJavascripts will reveal the errors in the new code.
I see I did not finish
foswikiStringUnicodeChars.js
which is the proper replacement for
unicode_chars.js
(I did not include the lowercase chars).
Proper fix:
- use
foswikiStringUnicodeChars.js
- delete
unicode_chars.js
--
ArthurClemens - 26 Dec 2008