Story

Siebel Spell Check Functionality Escapes HTML Tags

Spell check functionality changes HTML to jumbled text

The Spell Check is on many pages and if HTML tag are inserted, Spell Check functionality escapes HTML tags.

This has been tested in Message Catalog (Main Menu > PeopleTools > Utilities > Administration > Message Catalog):

If you enter:
Text: Test Message Catalog
Converted to: Test Message Catalog

But if you have (Removing spaces between HTML tag and alphabets)
Text: Test Message Catalog
Converted to: %3CI%3ETest Message Catalog%3C/I%3E

EXPECTED BEHAVIOR
Spell check functionality should not convert characters.

STEPS
The issue can be reproduced at will with the following steps:
1. Go to Main Menu > PeopleTools > Utilities > Administration > Message Catalog.
2. Add new Value, Message Set Number 10001 (or any unused Message Set Number) and click Add.
3. write Message Catalog Test in the description text field.
4. Do a Spell Check, notice that the HTML tags get escaped.
5. Ignore each warning and click OK.
6. Do not save and sign out of the system.

BUSINESS IMPACT
The issue has the following business impact: Due to this issue, users having trouble composing e-mails for applicants .

CAUSE

the issue is caused by the use of the 'escape()' javascript function in the PT_SC_JAVASCRIPT HMTL object definition
ODM Cause Determination
when testing in a local environment, once the escape() function is removed from the code, the spell check functionality worked.

SOLUTION

Workaround.

1. Open PT_SC_JAVASCRIPT HMTL definition in Application Designer.
2. Find the function GetRevisedText(errPos).
3. inside that function find the following line:
spellCheckHTML += escape(this.spellCheckText.substring(this.errorPos[i].pos, this.errorPos[i].pos+this.errorPos[i].len));
4. Comment out that line and paste the following under it.
spellCheckHTML += this.spellCheckText.substring(this.errorPos[i].pos, this.errorPos[i].pos+this.errorPos[i].len);
5. It should look like this:
// spellCheckHTML += escape(this.spellCheckText.substring(this.errorPos[i].pos, this.errorPos[i].pos+this.errorPos[i].len));
spellCheckHTML += this.spellCheckText.substring(this.errorPos[i].pos, this.errorPos[i].pos+this.errorPos[i].len);
6. Save the definition.
7. Test if the issue persists.