conditional tab icons based on field values

As the user progresses through the wizard, it would be nice to conditionally display a completion icon for each tab.

The progress component bar is nice, but if the users want to hop around or close out and come back later (they do), there is currently no way to indicate how much they have already completed.

I’ve already built checkbox fields, which are updated as the user completes the info on each tab. Now I just need some nice way to display the status of those checkbox fields.

Something like this…except icons would be rendered dynamically instead of statically

I’m sure there’s a solution via js. :wink:

Conlan,

How about a template component? This example is based on check box fields. You should be able to adapt it to your solution.

<skuidpage unsavedchangeswarning="" personalizationmode="server" showsidebar="true" useviewportmeta="true" showheader="true">
<models>
    <model id="UIOnlyModel" query="true" createrowifnonefound="true" datasource="Ui-Only" processonclient="true">
        <fields>
            <field id="Ind1" displaytype="BOOLEAN" label="Ind1" ogdisplaytype="TEXT" defaultvaluetype="fieldvalue" defaultvalue="true"></field>
            <field id="Ind2" displaytype="BOOLEAN" label="Ind2" ogdisplaytype="TEXT" defaultvaluetype="fieldvalue" defaultvalue="false"></field>
        </fields>
        <conditions></conditions>
        <actions></actions>
    </model>
</models>
<components>
    <template multiple uniqueid="sk-1OJfGR-136" allowhtml="true" model="UIOnlyModel">
        <contents><style>

table.GeneratedTable {
width: 100%;
background-color: #ffffff;
border-collapse: collapse;
border-width: 5px;
border-color: #ffffff;
border-style: solid;
color: #000000;
cellpadding=“10”;
}
table.GeneratedTable td, table.GeneratedTable th {
border-width: 5px;
border-color: #ffffff;
border-style: solid;
padding: 6px;
font-size: 32px;
color: #ffffff;
valign: middle;
}
table.GeneratedTable thead {
background-color: #ffffff;
}

{{#Ind1}}{{/Ind1}}{{^Ind1}}{{/Ind1}} {{#Ind2}}{{/Ind2}}{{^Ind2}}{{/Ind2}}
http://www.w3.org/1999/xlink"; xlink:href="/resource/skuid __IconsSVG/font-awesome/font-awesome.min.svg#thumbs-o-up"> Step 1 http://www.w3.org/1999/xlink"; xlink:href="/resource/skuid__ IconsSVG/font-awesome/font-awesome.min.svg#thumbs-o-down"> Step 1 http://www.w3.org/1999/xlink"; xlink:href="/resource/skuid __IconsSVG/font-awesome/font-awesome.min.svg#thumbs-o-up"> Step 2 http://www.w3.org/1999/xlink"; xlink:href="/resource/skuid__ IconsSVG/font-awesome/font-awesome.min.svg#thumbs-o-down"> Step 2
{{Ind2}}===true

Thanks,

Bill

Conlan, I don’t think there’s any straightforward declarative way to accomplish this right now. I’ve added it to our backlog as an Idea under consideration.

Can mustache work in tab icons dynamically?

There was actually a regression in the Brooklyn Q2 release (10.x) that caused merge syntax to no longer work in tab icons — but even then, the icon did not dynamically update, it was only evaluated on initial tab render.

That’s what I thought. Trying to think of a declarative way to update the CSS to set element to display: none; Can otherwise do this with js.

Is this included as an Idea under consideration?

Are we ever going to see a more transparent set of Ideas? ie.  under consideration vs. targeted for next release?

Yes this is under consideration. 
We are working toward more transparency on release timelines for ideas under consideration.

Lol! Is there a timeline for this?

Thanks for the input, Zach! This one would definitely be nice to have. It’s currently not a must-have for the client, but would improve the UX. 

I was able to accomplish something similar on a table by simply rendering different row actions based on another checkbox field value in the row…but I can’t think of how to do this in a non-table context…other than putting in a bunch of field editors tied to different models inside a responsive grid, but that feels very messy to me.

Pat, I’m going to try and hack away at this a little bit and take a look at Bill’s example. If I get frustrated enough, I may ping you for that JS help.


So demanding Pat! :slight_smile:

Always