Skuid 11.1.13 Picklist Bug with Special Characters

  • 8
  • Problem
  • Updated 3 months ago
  • In Progress
  • (Edited)
Hey team,

We're on the Skuid 11.1.13 for Salesforce and oops--some of our picklists are now broken which were working in all prior versions including 11.1.11.

The issue appears to be with special characters such as an ampersand (&) being in the picklist. These are showing up blank to the users in Skuid however when they save it looks like they're not being encoded properly so they show up as "&".

Example: "Joint & Several" picklist is blank in Skuid, when saved becomes "Joint & Several" in the database.

Help me Skuid community, you're my only hope! :)

Thank you,

Dan
Photo of Dan Boudreau

Dan Boudreau

  • 820 Points 500 badge 2x thumb

Posted 6 months ago

  • 8
Photo of Josh Lewis

Josh Lewis

  • 1,218 Points 1k badge 2x thumb
Hi Dan,

By chance are you using our Field Renderer APIs found here: https://docs.skuid.com/v11.1.13/en/skuid/api/skuid_ui.html?#skuid.ui.fieldRenderers?

Thank you,

Josh
Photo of Dan Boudreau

Dan Boudreau

  • 820 Points 500 badge 2x thumb
Hey Josh,

I'm not using a custom render or Javascript to display these fields if that's what you're asking. All of my fields are set with a Field Renderer option of "Standard".



Thank you,

Dan
Photo of Dan Boudreau

Dan Boudreau

  • 820 Points 500 badge 2x thumb
Update: 11.1.13 also breaks my picklists with an apostrophe too. These are showing up as blank along with the ampersand scenario.

This is pretty negatively impacting our business right now :(
(Edited)
Photo of Dan Boudreau

Dan Boudreau

  • 820 Points 500 badge 2x thumb
Still broken if I change from Standard render to custom. Tested further and changed from Standard render to custom using the following; all of which also produce the same bad picklists:

SUPER OLD:

skuid.ui.renderers['PICKLIST']['edit'](field, value);

OLD:

skuid.ui.fieldRenderers['PICKLIST']['edit'](field, value);

NEW:

skuid.ui.getFieldRenderer['PICKLIST'].edit(field, value);
Photo of Dan Boudreau

Dan Boudreau

  • 820 Points 500 badge 2x thumb
Temporary Workaround

Create a custom render with the following snippet:

var $ = skuid.$;
var field = arguments[0];
var value = skuid.utils.decodeHTML(arguments[1]);

skuid.ui.getFieldRenderer(field.metadata.displaytype)[field.mode](field, skuid.utils.decodeHTML(value));

Change your fields from Standard render to Custom and select whatever you name your snippet. I called mine 'htmlEscapeRender'.

Skuid team--please fix in a maintenance release!
Photo of Josh Lewis

Josh Lewis

  • 1,218 Points 1k badge 2x thumb
Hi Dan,

Thank you for the added testing you did here. I also did some testing in a Dev Org of mine, running 11.1.1, and for some reason I cannot replicate the behavior you are seeing in my test page.

I'm curious if you could possibly try to create a really simple page in Skuid that brings in a field editor, table, etc to look at the picklist that is rendering oddly to see if the issue exists on that simpler page? If the issue persists there as well, I'd love to take a deeper look at the page XML for the simple page to see if the issue can be reproduced in my Org.

Thank you,

Josh
Photo of Dan Boudreau

Dan Boudreau

  • 820 Points 500 badge 2x thumb
Josh, reminder... I'm on 11.1.13 -- which is where the break started. Previously 11.1.11 worked fine. Even my temp fix kind of sucks it's not 100%.

Long story short, Skuid isn't decoding some special characters in HTML properly starting with 11.1.13.
Photo of Josh Lewis

Josh Lewis

  • 1,218 Points 1k badge 2x thumb
Dan,

Apologies, that was a typo on my part! I meant to pass along that my Org is in 11.1.13 regarding the tests I've done so far. If you could try a very simple page as mentioned above that would be very helpful for me to proceed with digging a bit deeper here.

Thanks,

Josh
Photo of Dan Boudreau

Dan Boudreau

  • 820 Points 500 badge 2x thumb
Here's a test you can recreate pretty easily:

1. Go to the standard Account object and create two new picklist fields:


Test_Picklist_1__c
Values:
A
B
A & B

Test_Picklist_2__c
Values:
Do
Don't

2. Create a Skuid page with this XML:

<skuidpage unsavedchangeswarning="yes" personalizationmode="server" showsidebar="true" useviewportmeta="true" showheader="true" theme="Lightning Design" globalfeedbackenabled="false">
    <models>
        <model id="Account" limit="1" query="true" createrowifnonefound="false" datasource="salesforce" sobject="Account">
            <fields>
                <field id="RecordTypeId"/>
                <field id="Id"/>
                <field id="Test_Picklist_1__c"/>
                <field id="Test_Picklist_2__c"/>
            </fields>
            <conditions>
                <condition type="param" value="id" field="Id" operator="=" enclosevalueinquotes="true" novaluebehavior="noquery"/>
            </conditions>
            <actions/>
        </model>
    </models>
    <components>
        <basicfieldeditor showheader="true" showsavecancel="true" showerrorsinline="true" model="Account" uniqueid="sk-23K6-246" mode="edit">
            <columns>
                <column width="50%">
                    <sections>
                        <section title="Ampersand Test" collapsible="no">
                            <fields>
                                <field uniqueid="sk-23K6-300" id="Test_Picklist_1__c"/>
                            </fields>
                        </section>
                    </sections>
                </column>
                <column width="50%">
                    <sections>
                        <section title="Apostrophe Test" collapsible="no">
                            <fields>
                                <field uniqueid="sk-23Ky-278" id="Test_Picklist_2__c"/>
                            </fields>
                        </section>
                    </sections>
                </column>
            </columns>
        </basicfieldeditor>
    </components>
    <resources>
        <labels/>
        <javascript/>
        <css/>
        <actionsequences uniqueid="sk-23IZ-228"/>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
</skuidpage>

Results:

Both picklists are showing up incorrectly as seen below:





Changing themes, caching, etc. had no influence on it as best I could tell.

Thank you,

Dan
Photo of Josh Lewis

Josh Lewis

  • 1,218 Points 1k badge 2x thumb
Hi again Dan,

This is really strange, I still don't see the issue happening in my Org. My tests thus far have all been done in Chrome, are you perhaps in another browser when this occurs? I am doubting that this would be a cause, but I'd like to rule it out to be safe.

Thanks,

Josh
Photo of Dan Boudreau

Dan Boudreau

  • 820 Points 500 badge 2x thumb
Josh, I'm using the latest version of 64-bit Chrome however we have a variety of around 100 users who are reporting picklist problems. They're using anything from IE11 (yuck), Edge and/or Chrome. Chrome is the one I recommend of course! :)

Browser Snapshot:



As noted before this definitely started after I upgraded to 11.1.13 -- I did minor regression testing to ensure pages worked but obviously this wasn't caught :(
(Edited)
Photo of Dan Boudreau

Dan Boudreau

  • 820 Points 500 badge 2x thumb
Can we get this escalated, please?

I'm continuing to get new reports of breakage across our business. This is causing an extreme amount of frustration for my users who are reporting anything from missing to broken picklist values.
Photo of Josh Lewis

Josh Lewis

  • 1,218 Points 1k badge 2x thumb
Hi Dan,

I am going to be reaching out to you directly to try and take a deeper look at this in your Org. I'll be in touch shortly!

Thanks,

Josh
Photo of Adam Johnson

Adam Johnson

  • 1,000 Points 1k badge 2x thumb
This reply was created from a merged topic originally titled Ui- Only Picklist.

We have several pages built in Skuid that utilize Ui-Only fields. Since upgrading to Millau (11.1.13) these picklists are all rendering blank. 

This is causing a lot of issues for us as we uses these on pages that get a ton of daily traffic and those fields are essential to the page.

Any ideas what is causing them to load empty?

Thanks,
Adam
Photo of Chandra V

Chandra V, Champion

  • 6,966 Points 5k badge 2x thumb
We have upgraded our Production org today to 11.1.13 and have the same issue.  A  salesforce picklist a value of "PrePaid > $2,500" is not showing up to the user - they render as blank choices.  If you pick the blank value where this value should be, it saves it as "PrePaid &gt; $2,500".

Blank values in this list all contain special characters.  But selecting them and saving will actually save a value to the record, just incorrect with the special characters.

Photo of Daniel Camp

Daniel Camp

  • 372 Points 250 badge 2x thumb
Chandra,
I find that if you remove the special characters from the API name of the picklist value the issue goes away after a browser close and restart.

So I changed:
Label: PrePaid > $750
API: PrePaid > $750

To:
Label: PrePaid > $750
API: PrePaid 750

And the issue goes away.


Daniel
Photo of Michael Schniepp

Michael Schniepp

  • 1,808 Points 1k badge 2x thumb
We are also experiencing this issue as well. Eliminating all special characters from picklist values is not an option. This need to be repaired by Skuid.
Photo of Chandra V

Chandra V, Champion

  • 6,966 Points 5k badge 2x thumb
Can we get an update on this issue?  This is still a problem for us, even though we updated the API name to make the picklist choices show up.  The field value labels still have (and need) the special characters, and the user side is still showing the improper encoding.

This was discovered by our customers because we send quote documents out that are sourced from a skuid page, and they are seeing things like "PrePaid &gt; $2,500" on their quote proposal, instead of "PrePaid > $2,500"
Photo of Dan Boudreau

Dan Boudreau

  • 820 Points 500 badge 2x thumb
Hi Chandra,

This was fixed for me in 11.2.2 -- I'm not sure if you're on that version but I tested in my sandbox and then deployed to production once confirmed! :)

Best of luck!

Dan
Photo of Josh Lewis

Josh Lewis

  • 1,218 Points 1k badge 2x thumb
Hi Chandra and others on this thread,

It looks like this issue should have been resolved in versions 11.2.2 of Skuid. If you have a non-mission critical sandbox where you could test and let us know if the issue still persists after that version, it would be quite helpful for us to communicate that back to the developers internally.

Thank you,

Josh
Photo of Chandra V

Chandra V, Champion

  • 6,966 Points 5k badge 2x thumb
Good to know!  I checked the release notes, but didn't see a match to this one.  We are holding off upgrading due to this theme issue:
https://community.skuid.com/skuid/topics/help-theme-update-not-working-millau-11-2

Do you know the status of it?
Photo of Praveen Pannala

Praveen Pannala

  • 580 Points 500 badge 2x thumb
We are experiencing same issue, on table filters am using aggregate model to build the table filter, but the values on the dropdown shows unescaped chars. 


Photo of Stephen Sells

Stephen Sells, Official Rep

  • 16,856 Points 10k badge 2x thumb
What version of Skuid are you currently running?
Photo of Praveen Pannala

Praveen Pannala

  • 580 Points 500 badge 2x thumb
We are currently on 11.0.2
Photo of Praveen Pannala

Praveen Pannala

  • 580 Points 500 badge 2x thumb
Hi Team,

Can i know if this will be fixed, this is annoying our end users.
Photo of DMC

DMC

  • 132 Points 100 badge 2x thumb
Hi Praveen - please see the threads above, this was fixed in 11.2.2.  Thank you!