Hello Everyone, Good Evening and Happy Holidays!
I have a tricky question (I think it is kind of tricky) about tokenization.
I am working on a dashboard that has Tabs and each tab has subtabs, the problem comes with the conditions and how the dashboard is running, somehow the tokens are not following the conditions.
What I mean with this is that the default choices are running their queries even when the selected tab is a different one.
i.e: My default tab is "Tab 1" and it defaults to "Tab 1 - Sub Tab 1" but "Tab 2" & "Tab 2 Sub Tab 1" and "Tab 3" & "Tab 3 Sub Tab 1" are running their queries when the panels are not visible.
Here's a snippet of my xml:
<form>
<label>SODVAL - Zero MI Validation</label>
<fieldset submitButton="false">
<input id="major_tabs" type="link" token="major_tabs">
<label>Choose a view</label>
<choice value="tab_1">Tab 1</choice>
<choice value="tab_2">Tab 2</choice>
<choice value="tab_3">Tab 3</choice>
<default>tab_1</default>
<change>
<condition value="tab_1">
<set token="tab_1">true</set>
<unset token="tab_2"></unset>
<unset token="tab_3"></unset>
</condition>
<condition value="tab_2">
<set token="tab_2">true</set>
<unset token="tab_1"></unset>
<unset token="tab_3"></unset>
</condition>
<condition value="tab_3">
<set token="tab_3">true</set>
<unset token="tab_2"></unset>
<unset token="tab_1"></unset>
</condition>
</change>
</input>
</fieldset>
<row depends="$tab_1$">
<panel>
<input id="tab1_subtabs" type="link" token="tab1_subtabs">
<choice value="tab1_subTab_1">Tab 1</choice>
<choice value="tab1_subTab_2">Tab 2</choice>
<choice value="tab1_subTab_3">Tab 3</choice>
<default>tab1_subTab_1</default>
<change>
<condition value="tab1_subTab_1">
<set token="tab1_subTab_1">true</set>
<unset token="tab1_subTab_2"></unset>
<unset token="tab1_subTab_3"></unset>
</condition>
<condition value="tab1_subTab_2">
<set token="tab1_subTab_2">true</set>
<unset token="tab1_subTab_1"></unset>
<unset token="tab1_subTab_3"></unset>
</condition>
<condition value="tab1_subTab_3">
<set token="tab1_subTab_3">true</set>
<unset token="tab1_subTab_2"></unset>
<unset token="tab1_subTab_1"></unset>
</condition>
</change>
</input>
<chart depends="$tab1_subTab_1$">
<search depends="$tab1_subTab_1$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab1_subTab_1$">
<search depends="$tab1_subTab_1$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab1_subTab_2$">
<search depends="$tab1_subTab_2$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab1_subTab_2$">
<search depends="$tab1_subTab_2$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab1_subTab_3$">
<search depends="$tab1_subTab_3$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab1_subTab_3$">
<search depends="$tab1_subTab_3$">
<query> *some query* </query>
</search>
</chart>
</panel>
</row>
<row depends="$tab_2$">
<panel>
<input id="tab2_subtabs" type="link" token="tab2_subtabs">
<choice value="tab2_subTab_1">Tab 1</choice>
<choice value="tab2_subTab_2">Tab 2</choice>
<choice value="tab2_subTab_3">Tab 3</choice>
<default>tab2_subTab_1</default>
<change>
<condition value="tab2_subTab_1">
<set token="tab2_subTab_1">true</set>
<unset token="tab2_subTab_2"></unset>
<unset token="tab2_subTab_3"></unset>
</condition>
<condition value="subTab_2">
<set token="subTab_2">true</set>
<unset token="subTab_1"></unset>
<unset token="subTab_3"></unset>
</condition>
<condition value="tab2_subTab_3">
<set token="tab2_subTab_3">true</set>
<unset token="tab2_subTab_2"></unset>
<unset token="tab2_subTab_1"></unset>
</condition>
</change>
</input>
<chart depends="$tab2_subTab_1$">
<search depends="$tab2_subTab_1$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab2_subTab_1$">
<search depends="$tab2_subTab_1$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab2_subTab_2$">
<search depends="$tab2_subTab_2$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab2_subTab_2$">
<search depends="$tab2_subTab_2$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab2_subTab_3$">
<search depends="$tab2_subTab_3$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab2_subTab_3$">
<search depends="$tab2_subTab_3$">
<query> *some query* </query>
</search>
</chart>
</panel>
</row>
<row depends="$tab_3$">
<panel>
<input id="tab3_subtabs" type="link" token="tab3_subtabs">
<label>tab3_subtabs</label>
<choice value="tab3_subTab_1">Tab 1</choice>
<choice value="tab3_subTab_2">Tab 2</choice>
<choice value="tab3_subTab_3">Tab 3</choice>
<default>tab3_subTab_1</default>
<change>
<condition value="tab3_subTab_1">
<set token="tab3_subTab_1">true</set>
<unset token="tab3_subTab_2"></unset>
<unset token="tab3_subTab_3"></unset>
</condition>
<condition value="tab3_subTab_2">
<set token="tab3_subTab_2">true</set>
<unset token="tab3_subTab_1"></unset>
<unset token="tab3_subTab_3"></unset>
</condition>
<condition value="tab3_tab2_subTab_3">
<set token="tab3_tab2_subTab_3">true</set>
<unset token="tab3_tab2_subTab_2"></unset>
<unset token="tab3_tab2_subTab_1"></unset>
</condition>
</change>
</input>
<chart depends="$tab3__subTab_1$">
<search depends="$tab3__subTab_1$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab3__subTab_1$">
<search depends="$tab3__subTab_1$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab3__subTab_2$">
<search depends="$tab3__subTab_2$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab3__subTab_2$">
<search depends="$tab3__subTab_2$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab3__subTab_3$">
<search depends="$tab3__subTab_3$">
<query> *some query* </query>
</search>
</chart>
<chart depends="$tab3__subTab_3$">
<search depends="$tab3__subTab_3$">
<query> *some query* </query>
</search>
</chart>
</panel>
</row>
</form>
My question is: Am I doing something wrong? and Is there a way to check or avoid this behavior?
Note: My actual dashboard has more code and queries but is basically the same structure, This snippet is replicating the issue.
Note 2: Sometimes one or two of the panels don't even load. 😞
I appreciate all your help, Thanks in advance!
... View more