Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×

Targeting repeating section row

I'm trying to write a script that runs in a repeating section. It looks at the values of two number inputs and generates a percentage. It works until I put it into a repeating section. I figured out how to point to the repeatingsection_numberinput but now whenever I change the value of one row's numbers, they all recalculate using the latest changed numbers. How do I target only the current row so that new repeating section rows will look at their own fields? I can post code if needed but since the problem is really a lack of knowledge on how to perform a specific operation, I figured I would see if it's something simple I just don't know.
1608315048
Andreas J.
Forum Champion
Sheet Author
Translator
Are you talking about a sheetworker in the sheet, or an API? Have you looked at the sheetworker examples on the wiki? I'm not well versed with repeating sections, but know there are examples and stuff for when I want to do those kind of stuff.
1608327916
Finderski
Pro
Sheet Author
Compendium Curator
The code would help...Are there other sheet workers that are watching that repeating section for changes, too?
1608424826

Edited 1608425325
I'm having some issues where the forum won't let me post my code in a reply. Keeps submitting and saying page cannot be found. I took the script from: <a href="https://app.roll20.net/forum/post/9495335/can-anybody-help-with-this-script/?pageforid=9497799#post-9497799" rel="nofollow">https://app.roll20.net/forum/post/9495335/can-anybody-help-with-this-script/?pageforid=9497799#post-9497799</a> since it was referenced in the wiki. It works fine, but when you put it into a fieldset and adjust the script to be able to see the number inputs the script updates the bar across all instances in the repeating section instead of the one local to the row it's supposed to be reading from.
1608472415
Andreas J.
Forum Champion
Sheet Author
Translator
Frank said: I'm having some issues where the forum won't let me post my code in a reply. Keeps submitting and saying page cannot be found. Better ways to share code on the forum through: <a href="https://wiki.roll20.net/Sheet_Author_Tips#Sharing_code.2Fcollaboration" rel="nofollow">https://wiki.roll20.net/Sheet_Author_Tips#Sharing_code.2Fcollaboration</a> You could also try to copy paste just a short bit of the code, the most relevant part.
1608802800
GiGs
Pro
Sheet Author
API Scripter
Frank, can you post the code for your fieldset, and the sheet worker you are using?
1608825313

Edited 1608825429
<a href="https://gist.github.com/MadlyCreativeVOTV/2a405fdcf265e77df3ac2954bb5a9c94" rel="nofollow">https://gist.github.com/MadlyCreativeVOTV/2a405fdcf265e77df3ac2954bb5a9c94</a> Every time I try to paste code in here, it gives me an error saying page cannot be displayed when it submits. Sorry for the delay, life kind of took me away from things for a hot minute.
1608857364
GiGs
Pro
Sheet Author
API Scripter
Sorry, I dont have the energy to look through the whole sheet at the moment.&nbsp; I asked for specific parts of it to make it easier to analyse the issue.
So sorry. First time doing something like this. HTML &lt;fieldset class="repeating_vewe"&gt; &lt;input type="number" name="attr_fuelcur1" class="span4 customvehicletext" value="0" min="0"/&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type="number" name="attr_fuelmax1" class="span3 customvehicletext" value="0" min="0"/&gt; &lt;input type='hidden' type='number' value='@{fuelicv1}' name="attr_fuelbar" class="sheet-hidden sheet-fuelbar" disabled='true'&gt; &lt;div class="sheet-fuelbar"&gt;&lt;/div&gt; &lt;/fieldset&gt; &lt;script type="text/worker"&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on("sheet:opened change:repeating_vewe:fuelcur1 change:repeating_vewe:fuelmax1", function() { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getAttrs(["repeating_vewe_fuelcur1", "repeating_vewe_fuelmax1"], function(values) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var maximum = values.repeating_vewe_fuelmax1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var current = values.repeating_vewe_fuelcur1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var fuelPercent = [0,10,20,30,40,50,60,70,80,90,100,999]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(let i = 0; i &lt; fuelPercent.length; i++) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(current &lt;= (maximum * fuelPercent[i]/ 100)){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tvalue1 = i; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; console.log("fuelic value is " + tvalue1) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setAttrs({ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "fuelicv1":tvalue1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt; CSS /*!!! Progress Bar !!!*/ div.sheet-fuelbar { &nbsp;&nbsp;&nbsp; width: 230px; &nbsp;&nbsp;&nbsp; height: 20px; &nbsp;&nbsp;&nbsp; border: 2px solid black; &nbsp;&nbsp;&nbsp; color: black; &nbsp;&nbsp;&nbsp; font-size: 12px; &nbsp;&nbsp;&nbsp; font-weight: bold; &nbsp;&nbsp;&nbsp; text-align: center; } input.sheet-fuelbar[value="0"] ~ div.sheet-fuelbar { &nbsp;&nbsp;&nbsp; background: white; } input.sheet-fuelbar[value="0"] ~ div.sheet-fuelbar::before { &nbsp;&nbsp;&nbsp; content: "NO FUEL"; } input.sheet-fuelbar[value="1"] ~ div.sheet-fuelbar { &nbsp;&nbsp;&nbsp; background: linear-gradient(to left, white 90%, # 520000 5 %,#960000 95%, #fc 0303 100 %); } input.sheet-fuelbar[value="1"] ~ div.sheet-fuelbar::before { &nbsp;&nbsp;&nbsp; content:"CRITICALLY LOW FUEL"; } input.sheet-fuelbar[value="2"] ~ div.sheet-fuelbar { &nbsp;&nbsp;&nbsp; background: linear-gradient(to left, white 80%, #524300 10%,#859600 90%, #fce703 100%); } input.sheet-fuelbar[value="2"] ~ div.sheet-fuelbar::before { &nbsp;&nbsp;&nbsp; content:"LOW FUEL LEVELS"; } input.sheet-fuelbar[value="3"] ~ div.sheet-fuelbar { &nbsp;&nbsp;&nbsp; background: linear-gradient(to left, white 70%, #524300 20%,#859600 80%, #fce703 100%); } input.sheet-fuelbar[value="3"] ~ div.sheet-fuelbar::before { &nbsp;&nbsp;&nbsp; content:"LOW FUEL LEVELS"; } input.sheet-fuelbar[value="4"] ~ div.sheet-fuelbar { &nbsp;&nbsp;&nbsp; background: linear-gradient(to left, white 60%, #445200 30%,#859600 70%, #fce703 100%); } input.sheet-fuelbar[value="4"] ~ div.sheet-fuelbar::before { &nbsp;&nbsp;&nbsp; content:"REFUELING ADVISED"; } input.sheet-fuelbar[value="5"] ~ div.sheet-fuelbar { &nbsp;&nbsp;&nbsp; background: linear-gradient(to left, white 50%, #445200 40%,#859600 60%, #fc0303 80%); } input.sheet-fuelbar[value="5"] ~ div.sheet-fuelbar::before { &nbsp;&nbsp;&nbsp; content:"REFUELING ADVISED"; } input.sheet-fuelbar[value="6"] ~ div.sheet-fuelbar { &nbsp;&nbsp;&nbsp; background: linear-gradient(to left, white 40%, #255200 40%,#449600 50%, #fc0303 70%); } input.sheet-fuelbar[value="6"] ~ div.sheet-fuelbar::before { &nbsp;&nbsp;&nbsp; content:"ACCEPTABLE FUEL LEVELS"; } input.sheet-fuelbar[value="7"] ~ div.sheet-fuelbar { &nbsp;&nbsp;&nbsp; background: linear-gradient(to left, white 30%, #255200 30%,#449600 40%, #adfc03 60%); }&nbsp;&nbsp; input.sheet-fuelbar[value="7"] ~ div.sheet-fuelbar::before { &nbsp;&nbsp;&nbsp; content:"ACCEPTABLE FUEL LEVELS"; } input.sheet-fuelbar[value="8"] ~ div.sheet-fuelbar { &nbsp;&nbsp;&nbsp; background: linear-gradient(to left, white 20%, #255200 20%,#449600 30%, #adfc03 50%); } input.sheet-fuelbar[value="8"] ~ div.sheet-fuelbar::before { &nbsp;&nbsp;&nbsp; content:"ACCEPTABLE FUEL LEVELS"; } input.sheet-fuelbar[value="9"] ~ div.sheet-fuelbar { &nbsp;&nbsp;&nbsp; background: linear-gradient(to left, white 10%, #255200 10%,#449600 20%, #adfc03 40%); }&nbsp;&nbsp; input.sheet-fuelbar[value="9"] ~ div.sheet-fuelbar::before { &nbsp;&nbsp;&nbsp; content:"ACCEPTABLE FUEL LEVELS"; } input.sheet-fuelbar[value="10"] ~ div.sheet-fuelbar { &nbsp;&nbsp;&nbsp; background: linear-gradient(to left, # 255200 1 %,#449600 10%, #adfc03 30%); } input.sheet-fuelbar[value="10"] ~ div.sheet-fuelbar::before { &nbsp;&nbsp;&nbsp; content:"FULLY FUELED"; } input.sheet-fuelbar[value="11"] ~ div.sheet-fuelbar { &nbsp;&nbsp;&nbsp; background: linear-gradient(to left, # 520000 1 %,#960000 10%, #fc0303 30%); } input.sheet-fuelbar[value="11"] ~ div.sheet-fuelbar::before { &nbsp;&nbsp;&nbsp; content:"OVERFUELED!"; } /*!!! End of Progress Bar !!!*/
1609024939

Edited 1609025385
GiGs
Pro
Sheet Author
API Scripter
There are a few problems with your sheet worker. The setAttrs function,&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setAttrs({ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "fuelicv1":tvalue1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }); should be &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setAttrs({ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "repeating_vewe_fuelicv1":tvalue1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }); You also haven't defined tvalue1 properly so that isnt properly working. so add this line before the for loop: var&nbsp;tvalue1; Looking at it another problem is you grab the maximum and current values from the sheet, but attributes are stored as strings (text), and so the arithmatic operations with them might not work properly. This one isnt a breaking fault, unlike the stuff above but you can do the cur/max calculation without a for loop. Just calculate the percentage value, then multiple by 10 and round off to get the units of 10%. Here's an alternate sheet worker that might do the trick. The green lines are comments to explain what is happening. you can delete those. on ( 'sheet:opened&nbsp;change:repeating_vewe:fuelcur1&nbsp;change:repeating_vewe:fuelmax1' ,&nbsp; function ()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp; getAttrs ([ 'repeating_vewe_fuelcur1' ,&nbsp; 'repeating_vewe_fuelmax1' ],&nbsp; function ( values )&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;make&nbsp;sure&nbsp;the&nbsp;maximum&nbsp;and&nbsp;current&nbsp;values&nbsp;are&nbsp;numbers;&nbsp;using&nbsp;+value&nbsp;||&nbsp;0&nbsp;is&nbsp;one&nbsp;way&nbsp;to&nbsp;do&nbsp;this. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const &nbsp; maximum &nbsp;=&nbsp;+ values . repeating_vewe_fuelmax1 &nbsp;||&nbsp; 0 ; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const &nbsp; current &nbsp;=&nbsp;+ values . repeating_vewe_fuelcur1 &nbsp;||&nbsp; 0 ; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;get&nbsp;the&nbsp;percentage&nbsp;value &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const &nbsp; percent &nbsp;=&nbsp;( current &nbsp;/&nbsp; maximum )&nbsp;||&nbsp; 0 ; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;it&nbsp;looks&nbsp;like&nbsp;you&nbsp;want&nbsp;to&nbsp;round up&nbsp;to&nbsp;increments of&nbsp;10%,&nbsp;so&nbsp;33%&nbsp;would&nbsp;be&nbsp;reported&nbsp;as&nbsp;4. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;the&nbsp;following&nbsp;does&nbsp;that,&nbsp;and&nbsp;if&nbsp;over&nbsp;100%&nbsp;reports&nbsp;999. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const &nbsp; tvalue &nbsp;=&nbsp; percent &nbsp;&gt;&nbsp; 1 &nbsp;?&nbsp; 999 &nbsp;:&nbsp; Math . ceil ( percent &nbsp;*&nbsp; 10 ) ; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; console . log ( 'fuelic&nbsp;value&nbsp;is&nbsp;' &nbsp;+&nbsp; tvalue ); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setAttrs ({ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'repeating_vewe_fuelicv1' : tvalue &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;}); });