While I normally would completly agree with you, I need to be able to pick 3 options from the same list.
I'll add the working version of what I ended up with here, and if you're able to make a better working version, then by ALL means. The one I made is definetly made by touch-and-go...
Clarification: The "jsonport" isnt needed for this part, and the maximum number of players that can be shown in this version is 12. So if you wanna add more players to the parameters that make up the table of players (wich will be populated by REST calls and JSON) remember that it will not show more than 12.
Click "populate" and the grid will be updated. This will of course be a function that is called upon whenever the roster in the table is updated when I get to the full version.
<abs contexttype="opengear" gridsize="20" id="_top" jsonport="5566" scroll="horizontal">
<meta>
<style id="greyBtn" name="greyBtn" value="bg#4C4C4C;"/>
<style id="blueBtn" name="blueBtn" value="bg#0034FD;"/>
<style id="redBtn" name="redBtn" value="bg#C70000;"/>
<params>
<param access="1" maxlength="0" name="Navn" oid="0x2" precision="0" type="STRING_ARRAY" value="Ola;Per;Pål;Johnny;Mons;Morten" widget="text">
<value>Ola</value>
<value>Per</value>
<value>Pål</value>
<value>Johnny</value>
<value>Mons</value>
<value>Morten</value>
</param>
<param access="1" constrainttype="INT_NULL" name="Num" oid="0x3" precision="0" type="INT16_ARRAY" value="2;8;65;22;35;82;98" widget="default"/>
<param access="1" constrainttype="INT_CHOICE" name="Table" oid="0x4" precision="0" type="INT16" value="4" widget="default">
<constraint key="3">#</constraint>
<constraint key="2">Name</constraint>
</param>
<param access="1" maxlength="0" name="goal_by" oid="goal_by" type="STRING" value="8" widget="text-display"/>
<param access="1" maxlength="0" name="ass_by1" oid="ass_by1" type="STRING" value="65" widget="text-display"/>
<param access="1" maxlength="0" name="ass_by2" oid="ass_by2" type="STRING" value="98" widget="text-display"/>
</params>
</meta>
<param expand="true" height="40" left="240" oid="Number" top="380" width="80"/>
<param evenstyle="f:bg#E2E2E2;" expand="true" height="120" left="240" oid="0x4" scrolling="true" showlabel="false" top="40" widget="table" width="240"/>
<abs height="260" id="h_frame" left="100" style="bg#BFBFBF;bdr#535353;bdr:thick;" top="200" width="340">
<button buttontype="push" height="60" id="btn0" left="20" name="btn0" top="20" width="60">
<task tasktype="ogscript">var i = 0;
var btn = 'btn'+i;
var num = Math.trunc(params.getValue(0x3, i)).toString();
ogscript.debug(num);
var goalby = params.getValue('goal_by', 0);
var assby1 = params.getValue('ass_by1', 0);
var assby2 = params.getValue('ass_by2', 0);
if (goalby == num || assby1 == num || assby2 == num) {
ogscript.setStyle(btn, 'style:greyBtn');
if (goalby == num) {
params.setValue('goal_by', 0, '');
} else if (assby1 == num) {
params.setValue('ass_by1', 0, '');
if (assby2 != '') {
params.setValue('ass_by1', 0, assby2);
params.setValue('ass_by2', 0, '');
}
} else if (assby2 == num) {
params.setValue('ass_by2', 0, '');
}
} else if (goalby == '') {
ogscript.setStyle(btn, 'style:redBtn');
params.setValue('goal_by', 0, num);
} else if (assby1 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by1', 0, num);
} else if (assby2 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by2', 0, num);
} else {
ogscript.debug ('NOT A VALID INPUT!');
}</task>
</button>
<button buttontype="push" height="60" id="btn1" left="100" name="btn1" top="20" width="60">
<task tasktype="ogscript">var i = 1;
var btn = 'btn'+i;
var num = Math.trunc(params.getValue(0x3, i)).toString();
ogscript.debug(num);
var goalby = params.getValue('goal_by', 0);
var assby1 = params.getValue('ass_by1', 0);
var assby2 = params.getValue('ass_by2', 0);
if (goalby == num || assby1 == num || assby2 == num) {
ogscript.setStyle(btn, 'style:greyBtn');
if (goalby == num) {
params.setValue('goal_by', 0, '');
} else if (assby1 == num) {
params.setValue('ass_by1', 0, '');
if (assby2 != '') {
params.setValue('ass_by1', 0, assby2);
params.setValue('ass_by2', 0, '');
}
} else if (assby2 == num) {
params.setValue('ass_by2', 0, '');
}
} else if (goalby == '') {
ogscript.setStyle(btn, 'style:redBtn');
params.setValue('goal_by', 0, num);
} else if (assby1 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by1', 0, num);
} else if (assby2 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by2', 0, num);
} else {
ogscript.debug ('NOT A VALID INPUT!');
}</task>
</button>
<button buttontype="push" height="60" id="btn2" left="180" name="btn2" top="20" width="60">
<task tasktype="ogscript">var i = 2;
var btn = 'btn'+i;
var num = Math.trunc(params.getValue(0x3, i)).toString();
ogscript.debug(num);
var goalby = params.getValue('goal_by', 0);
var assby1 = params.getValue('ass_by1', 0);
var assby2 = params.getValue('ass_by2', 0);
if (goalby == num || assby1 == num || assby2 == num) {
ogscript.setStyle(btn, 'style:greyBtn');
if (goalby == num) {
params.setValue('goal_by', 0, '');
} else if (assby1 == num) {
params.setValue('ass_by1', 0, '');
if (assby2 != '') {
params.setValue('ass_by1', 0, assby2);
params.setValue('ass_by2', 0, '');
}
} else if (assby2 == num) {
params.setValue('ass_by2', 0, '');
}
} else if (goalby == '') {
ogscript.setStyle(btn, 'style:redBtn');
params.setValue('goal_by', 0, num);
} else if (assby1 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by1', 0, num);
} else if (assby2 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by2', 0, num);
} else {
ogscript.debug ('NOT A VALID INPUT!');
}</task>
</button>
<button buttontype="push" height="60" id="btn3" left="260" name="btn3" top="20" width="60">
<task tasktype="ogscript">var i = 3;
var btn = 'btn'+i;
var num = Math.trunc(params.getValue(0x3, i)).toString();
ogscript.debug(num);
var goalby = params.getValue('goal_by', 0);
var assby1 = params.getValue('ass_by1', 0);
var assby2 = params.getValue('ass_by2', 0);
if (goalby == num || assby1 == num || assby2 == num) {
ogscript.setStyle(btn, 'style:greyBtn');
if (goalby == num) {
params.setValue('goal_by', 0, '');
} else if (assby1 == num) {
params.setValue('ass_by1', 0, '');
if (assby2 != '') {
params.setValue('ass_by1', 0, assby2);
params.setValue('ass_by2', 0, '');
}
} else if (assby2 == num) {
params.setValue('ass_by2', 0, '');
}
} else if (goalby == '') {
ogscript.setStyle(btn, 'style:redBtn');
params.setValue('goal_by', 0, num);
} else if (assby1 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by1', 0, num);
} else if (assby2 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by2', 0, num);
} else {
ogscript.debug ('NOT A VALID INPUT!');
}</task>
</button>
<button buttontype="push" height="60" id="btn4" left="20" name="btn4" top="100" width="60">
<task tasktype="ogscript">var i = 4;
var btn = 'btn'+i;
var num = Math.trunc(params.getValue(0x3, i)).toString();
ogscript.debug(num);
var goalby = params.getValue('goal_by', 0);
var assby1 = params.getValue('ass_by1', 0);
var assby2 = params.getValue('ass_by2', 0);
if (goalby == num || assby1 == num || assby2 == num) {
ogscript.setStyle(btn, 'style:greyBtn');
if (goalby == num) {
params.setValue('goal_by', 0, '');
} else if (assby1 == num) {
params.setValue('ass_by1', 0, '');
if (assby2 != '') {
params.setValue('ass_by1', 0, assby2);
params.setValue('ass_by2', 0, '');
}
} else if (assby2 == num) {
params.setValue('ass_by2', 0, '');
}
} else if (goalby == '') {
ogscript.setStyle(btn, 'style:redBtn');
params.setValue('goal_by', 0, num);
} else if (assby1 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by1', 0, num);
} else if (assby2 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by2', 0, num);
} else {
ogscript.debug ('NOT A VALID INPUT!');
}</task>
</button>
<button buttontype="push" height="60" id="btn5" left="100" name="btn5" top="100" width="60">
<task tasktype="ogscript">var i = 5;
var btn = 'btn'+i;
var num = Math.trunc(params.getValue(0x3, i)).toString();
ogscript.debug(num);
var goalby = params.getValue('goal_by', 0);
var assby1 = params.getValue('ass_by1', 0);
var assby2 = params.getValue('ass_by2', 0);
if (goalby == num || assby1 == num || assby2 == num) {
ogscript.setStyle(btn, 'style:greyBtn');
if (goalby == num) {
params.setValue('goal_by', 0, '');
} else if (assby1 == num) {
params.setValue('ass_by1', 0, '');
if (assby2 != '') {
params.setValue('ass_by1', 0, assby2);
params.setValue('ass_by2', 0, '');
}
} else if (assby2 == num) {
params.setValue('ass_by2', 0, '');
}
} else if (goalby == '') {
ogscript.setStyle(btn, 'style:redBtn');
params.setValue('goal_by', 0, num);
} else if (assby1 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by1', 0, num);
} else if (assby2 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by2', 0, num);
} else {
ogscript.debug ('NOT A VALID INPUT!');
}</task>
</button>
<button buttontype="push" height="60" id="btn6" left="180" name="btn6" top="100" width="60">
<task tasktype="ogscript">var i = 6;
var btn = 'btn'+i;
var num = Math.trunc(params.getValue(0x3, i)).toString();
ogscript.debug(num);
var goalby = params.getValue('goal_by', 0);
var assby1 = params.getValue('ass_by1', 0);
var assby2 = params.getValue('ass_by2', 0);
if (goalby == num || assby1 == num || assby2 == num) {
ogscript.setStyle(btn, 'style:greyBtn');
if (goalby == num) {
params.setValue('goal_by', 0, '');
} else if (assby1 == num) {
params.setValue('ass_by1', 0, '');
if (assby2 != '') {
params.setValue('ass_by1', 0, assby2);
params.setValue('ass_by2', 0, '');
}
} else if (assby2 == num) {
params.setValue('ass_by2', 0, '');
}
} else if (goalby == '') {
ogscript.setStyle(btn, 'style:redBtn');
params.setValue('goal_by', 0, num);
} else if (assby1 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by1', 0, num);
} else if (assby2 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by2', 0, num);
} else {
ogscript.debug ('NOT A VALID INPUT!');
}</task>
</button>
<button buttontype="push" height="60" id="btn7" left="260" name="btn7" top="100" width="60">
<task tasktype="ogscript">var i = 7;
var btn = 'btn'+i;
var num = Math.trunc(params.getValue(0x3, i)).toString();
ogscript.debug(num);
var goalby = params.getValue('goal_by', 0);
var assby1 = params.getValue('ass_by1', 0);
var assby2 = params.getValue('ass_by2', 0);
if (goalby == num || assby1 == num || assby2 == num) {
ogscript.setStyle(btn, 'style:greyBtn');
if (goalby == num) {
params.setValue('goal_by', 0, '');
} else if (assby1 == num) {
params.setValue('ass_by1', 0, '');
if (assby2 != '') {
params.setValue('ass_by1', 0, assby2);
params.setValue('ass_by2', 0, '');
}
} else if (assby2 == num) {
params.setValue('ass_by2', 0, '');
}
} else if (goalby == '') {
ogscript.setStyle(btn, 'style:redBtn');
params.setValue('goal_by', 0, num);
} else if (assby1 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by1', 0, num);
} else if (assby2 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by2', 0, num);
} else {
ogscript.debug ('NOT A VALID INPUT!');
}</task>
</button>
<button buttontype="push" height="60" id="btn8" left="20" name="btn8" top="180" width="60">
<task tasktype="ogscript">var i = 8;
var btn = 'btn'+i;
var num = Math.trunc(params.getValue(0x3, i)).toString();
ogscript.debug(num);
var goalby = params.getValue('goal_by', 0);
var assby1 = params.getValue('ass_by1', 0);
var assby2 = params.getValue('ass_by2', 0);
if (goalby == num || assby1 == num || assby2 == num) {
ogscript.setStyle(btn, 'style:greyBtn');
if (goalby == num) {
params.setValue('goal_by', 0, '');
} else if (assby1 == num) {
params.setValue('ass_by1', 0, '');
if (assby2 != '') {
params.setValue('ass_by1', 0, assby2);
params.setValue('ass_by2', 0, '');
}
} else if (assby2 == num) {
params.setValue('ass_by2', 0, '');
}
} else if (goalby == '') {
ogscript.setStyle(btn, 'style:redBtn');
params.setValue('goal_by', 0, num);
} else if (assby1 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by1', 0, num);
} else if (assby2 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by2', 0, num);
} else {
ogscript.debug ('NOT A VALID INPUT!');
}</task>
</button>
<button buttontype="push" height="60" id="btn9" left="100" name="btn9" top="180" width="60">
<task tasktype="ogscript">var i = 9;
var btn = 'btn'+i;
var num = Math.trunc(params.getValue(0x3, i)).toString();
ogscript.debug(num);
var goalby = params.getValue('goal_by', 0);
var assby1 = params.getValue('ass_by1', 0);
var assby2 = params.getValue('ass_by2', 0);
if (goalby == num || assby1 == num || assby2 == num) {
ogscript.setStyle(btn, 'style:greyBtn');
if (goalby == num) {
params.setValue('goal_by', 0, '');
} else if (assby1 == num) {
params.setValue('ass_by1', 0, '');
if (assby2 != '') {
params.setValue('ass_by1', 0, assby2);
params.setValue('ass_by2', 0, '');
}
} else if (assby2 == num) {
params.setValue('ass_by2', 0, '');
}
} else if (goalby == '') {
ogscript.setStyle(btn, 'style:redBtn');
params.setValue('goal_by', 0, num);
} else if (assby1 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by1', 0, num);
} else if (assby2 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by2', 0, num);
} else {
ogscript.debug ('NOT A VALID INPUT!');
}</task>
</button>
<button buttontype="push" height="60" id="btn10" left="180" name="btn10" top="180" width="60">
<task tasktype="ogscript">var i = 10;
var btn = 'btn'+i;
var num = Math.trunc(params.getValue(0x3, i)).toString();
ogscript.debug(num);
var goalby = params.getValue('goal_by', 0);
var assby1 = params.getValue('ass_by1', 0);
var assby2 = params.getValue('ass_by2', 0);
if (goalby == num || assby1 == num || assby2 == num) {
ogscript.setStyle(btn, 'style:greyBtn');
if (goalby == num) {
params.setValue('goal_by', 0, '');
} else if (assby1 == num) {
params.setValue('ass_by1', 0, '');
if (assby2 != '') {
params.setValue('ass_by1', 0, assby2);
params.setValue('ass_by2', 0, '');
}
} else if (assby2 == num) {
params.setValue('ass_by2', 0, '');
}
} else if (goalby == '') {
ogscript.setStyle(btn, 'style:redBtn');
params.setValue('goal_by', 0, num);
} else if (assby1 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by1', 0, num);
} else if (assby2 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by2', 0, num);
} else {
ogscript.debug ('NOT A VALID INPUT!');
}</task>
</button>
<button buttontype="push" height="60" id="btn11" left="260" name="btn11" top="180" width="60">
<task tasktype="ogscript">var i = 11;
var btn = 'btn'+i;
var num = Math.trunc(params.getValue(0x3, i)).toString();
ogscript.debug(num);
var goalby = params.getValue('goal_by', 0);
var assby1 = params.getValue('ass_by1', 0);
var assby2 = params.getValue('ass_by2', 0);
if (goalby == num || assby1 == num || assby2 == num) {
ogscript.setStyle(btn, 'style:greyBtn');
if (goalby == num) {
params.setValue('goal_by', 0, '');
} else if (assby1 == num) {
params.setValue('ass_by1', 0, '');
if (assby2 != '') {
params.setValue('ass_by1', 0, assby2);
params.setValue('ass_by2', 0, '');
}
} else if (assby2 == num) {
params.setValue('ass_by2', 0, '');
}
} else if (goalby == '') {
ogscript.setStyle(btn, 'style:redBtn');
params.setValue('goal_by', 0, num);
} else if (assby1 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by1', 0, num);
} else if (assby2 == '') {
ogscript.setStyle(btn, 'style:blueBtn');
params.setValue('ass_by2', 0, num);
} else {
ogscript.debug ('NOT A VALID INPUT!');
}</task>
</button>
</abs>
<button buttontype="push" height="120" left="60" name="Populate" top="40" width="160">
<task tasktype="ogscript">var i = 0;
var tot = params.getElementCount(0x3);
var x = 16;
while (i < x) {
var spiller = params.getValue(0x3, i);
var btn = 'btn'+i;
ogscript.rename(btn, spiller);
if (spiller == 0) {
ogscript.hide(btn);
} else {
ogscript.reveal(btn);
}
//ogscript.setSize('h_frame', 340, h);
i++;
}
var h = (80 * Math.ceil(tot / 4))+20;
ogscript.setSize('h_frame', 340, h);
params.setValue('goal_by', 0, '');
params.setValue('ass_by2', 0, '');
params.setValue('ass_by1', 0, '');</task>
</button>
<param expand="true" height="40" left="220" oid="goal_by" style="txt-align:center;size:Big;" top="480" width="60">
<task tasktype="ogscript">var goalby = params.getValue('goal_by', 0);
if (goalby == '') {
ogscript.hide('confirm');
} else {
ogscript.reveal('confirm');
}</task>
</param>
<param expand="true" height="40" left="220" oid="ass_by1" style="txt-align:center;size:Big;" top="540" width="60"/>
<param expand="true" height="40" left="220" oid="ass_by2" style="txt-align:center;size:Big;" top="600" width="60"/>
<label height="40" left="120" name="Goal by: " style="txt-align:east;size:Big;" top="480" width="100"/>
<label height="40" left="120" name="Assist 1: " style="txt-align:east;size:Big;" top="540" width="100"/>
<label height="40" left="120" name="Assist 2: " style="txt-align:east;size:Big;" top="600" width="100"/>
<button buttontype="push" height="80" id="confirm" left="320" name="Confirm" top="520" width="120">
<task tasktype="ogscript">var goalby = params.getValue('goal_by', 0);
var assby1 = params.getValue('ass_by1', 0);
var assby2 = params.getValue('ass_by2', 0);
var assist = '';
var msg = '';
if (assby1 != '') {
assist = assby1;
if (assby2 != '') {
assist = assist + ' and ' + assby2;
}
}
if (goalby == '') {
ogscript.debug('No one scored?');
} else {
msg = 'CONFIRMED: Goal by: ' + goalby;
if (assist != '') {
msg = msg + ' Assist by: ' + assist;
ogscript.debug(msg);
} else {
ogscript.debug(msg);
}
}</task>
</button>
</abs>
So, as you can see... If there is a "GET NAME" function out there somewhere, I'd really like it...
#DashBoard