RuneScape:Calculators/Form calculators

From the RuneScape Wiki, the wiki for all things RuneScape
Jump to navigation Jump to search
For example usage of this script, see /Examples. For tests, see /Tests.

Form calculators use a script that enables dynamic loading of templates into parts of a page. A configurable form is used to input parameters into the template.

Overview[edit source]

When the form is submitted, the script takes the values from the form and configuration, and constructs a string that is then sent to the wiki servers to be parsed, then the result is received and displayed. The generated wikicode will look like this:

{{template name
|param1 = value1
|...
|paramN = valueN
}}

Or, if the calculator is in module mode:

{{#invoke:module name|module function
|param1 = value1
|...
|paramN = valueN
}}

The generated wikicode will be logged to the console each time the form is submitted. Additional information is logged when in debug mode - add ?debug=1 to the URL and load the page.

Configuration[edit source]

The JS calculator's configuration section uses name = value pairs, each separated by a newline. The possible names are:

  • template - The name of the template to use on form submittal. If no namespace is provided, then the template namespace will be searched by default. If the template is in the main namespace, you must prepend a colon to the article name. This follows the same convention that's used when transcluding templates into a page.
  • module - The name of the module to invoke on form submittal. This will always be in the Module namespace. Setting this option to anything will override any template options set.
  • modulefunc - The name of the function to run within the module. Defaults to main. Has no effect without a module name defined.
  • form - The unique HTML ID of the element that will contain the form. Each configuration block should specify a different form ID.
  • name - The display name for the calculator. Defaults to Calculator.
  • result - The unique HTML ID of the element that will contain the parsed template.
  • suggestns - A comma-separated list of namespace IDs or names to use for autocomplete. This field applies as the default for all article parameter types used in the form, but can be overridden per parameter. By default, namespace 0 (main) is searched. See the table to the bottom for the valid namespace IDs.
  • autosubmit - Set the autosubmit status off the form, defaults to off, other acceptable values are on or disabled.
  • param - Defines a parameter to be sent to the template, in the format shown in the next section.

Parameter format[edit source]

A param line should be in the following format:

param = Param name|Label name|Default value|Param type|Param range|Toggles|Help
  • Param name - The name of the parameter as used by the template. Parameter names are case sensitive, and there can be no spaces.
  • Label name - The label used for the parameter in the form. If blank, Param name is used. Label name supports using HTML to format the labels - including simple formats like <em>, <span> and even <img />.
    • However, normal wikiscript can only be used if the config is contained within a div tag instead of a pre tag, for example [[File:File name.png]] and {{plink}} can then be used. See /Examples.
  • Default value - The default value used to prefill the form initially.
  • Param type - The type of the parameter, used for form validation and to control the appearance of the form field. For more information on each param type see valid parameter types below. Valid values for Param type are:
    • string (default) - The input box can contain any value.
    • group - Used to group other inputs together.
    • article - Field for entering the name of an article (page) on the wiki.
    • number - Field for entering a number.
    • int - Field for entering an integer.
    • select - A dropdown list for selecting an option.
    • buttonselect - A series of buttons for selecting an option (only 1 selected at a time).
    • combobox - A combination of a select and string input. Users can input any string, and will be prompted with things from the dropdown list that start with the same characters.
    • check - A checkbox.
    • toggleswitch - Same function as checkbox but is a toggle instead.
    • togglebutton - Same function as checkbox but is a button (toggles on/off).
    • hs - A special field which attempts to lookup a player's hiscores for values to be passed into other parameters.
    • rsn - A special field for player names (when used by the calculator and not to populate another field).
    • voiceofseren - A special field that gets filled by the current Voice of Seren from https://api.weirdgloop.org/runescape/vos. Does not generate any output into the form. The label, range, default, toggles, and help are ignored.
    • fixed - A value that is displayed but cannot be changed by the user.
    • hidden - A value that is hidden from the user and cannot be changed (no row is created at all).
    • semihidden - A combination of fixed and hidden: value is hidden from user, and cannot be changed (by the user), however a row is generated such that another script could change it.
  • Param range - The allowed range of the parameter. The format of this field depends on the Param type chosen.
  • Toggles - The inputs or groups of inputs toggled by this widget. Applies to select, buttonselect, combobox, check, toggleswitch, togglebutton, int and number param types. Toggles are given in the format value=toggles. Note that when an option is chosen, all the groups/fields listed for other options (that aren't listed on the selected option) will be hidden.
    • Default toggles: For checkboxes, toggleswitches and togglebutton the keys are "true" and "false" (values specified in Param range cannot be used), if no key is given key is assumed to be "true". For number and int inputs available keys are any numbers or "not0" which is also used for any nonzero input (if no key is specified key is assumed to be "non0").
    • Value is the name of the option (listed in param range for the input). Multiple options can be assigned them same toggles by separating them with a comma ,.
    • Toggles are the groups or fields toggled by that option, multiple groups should be separated by a comma ,. The group or field names should be those specified in their respecitve param name.
    • Multiple toggle sets are separated by semicolons ;.
    • Examples:
      • If a select has Option 1,Option 2 for the range and Option 1=Group1,Group2;Option 2=Group2,Group3 for the toggles then when "Option 1" is selected all inputs that belong to "Group1" and "Group2" will be shown while those belonging to "Group3" will be hidden. when "Option 2" is selected all inputs that belong to "Group2" and "Group3" will be shown while those belonging to "Group1" will be hidden.
      • If a button select has Button 1,Button 2,Button 3 for the range and Button 1,Button 2=Input1 for the toggles then when "Button 1" or "Button 2" is selected the other input "Input1" will be displayed while if "Button 3" is selected it will not be.
  • Help - Help text for the form field. If text is Defaults to displaying an (i) icon that can be clicked to display the help.
    • Default display for help (if given) displays an (i) icon that when clicked shows the help text in a tooltip. To display the help inline (below the input) start the help with inline= followed by the help text. Inline is not currently available.
    • Help supports using HTML to format the help (both tooltip and inline) - including simple formats like <em>, <span> and even <img />.

The configuration section should be contained within a <div> or <pre> tag with the class jcConfig, e.g.:

<pre class="jcConfig">
  ... configuration ...
</pre>

For example configurations, see /Examples.

Valid Parameter types[edit source]

  • string (default) - The input box can contain any value.
  • group - Used to group inputs together. Items in the group are specified in Param range as a comma separated list of Param name.
    • Default value is ignored.
  • article - The input box should contain an article name. This field appears similar to the search box, with suggestions provided.
    • The namespaces used are set using the Param range as a comma separated list of namespaces or their ids. Allowable values are the id numbers or names (not case sensitive) of namespaces. Defaults to 0 (main), use all or * for all namespaces. See the table below for a list of valid namespaces and their ids.
  • number - The input box must contain a number.
    • A valid range can be specified in Param range in the format min-max,step,buttonstep. If either min or max is omitted or a range is not given, then infinity is assumed, negative numbers can also be given. The step is the step the numbers are allowed in (numbers are valid if they are a multiple of this), defaults to 0.01 (thus allows all numbers too 2 decimal places). The button step is the amount the value increases or decreases when the +/- buttons or arrow keys are pressed, defaults to 1.
  • int - The input box must contain an integer. A valid range and steps can be specified using Param range (see above).
  • select - The input is selected from a comma-separated list of values given in Param range.
  • buttonselect - The input is select of buttons from a comma-separated list of values given in Param range.
  • combobox - A combination of a select and string input. Users can input any string, and will be prompted with things from the dropdown list that start with the same characters. Like selects, the contents of the dropdown is defined as a comma-separated list of values given in Param range.
  • check - A checkbox, with values sent to the template defined by the Param range.
    • The Param range has format value if true,value if false, which defines what the form will pass to the template when ticked or not ticked. The default for this is true,false.
    • The checkbox will be checked by default if the Default value is set to true or the same as the value if true given in the Param range.
  • toggleswitch - A toggle switch, with values sent to the template defined by the Param range.
    • The Param range has format value if true,value if false, which defines what the form will pass to the template when ticked or not ticked. The default for this is true,false.
    • The toggle switch will be on by default if the Default value is set to true or the same as the value if true given in the Param range.
  • togglebutton - A button, which toggles on/off, with values sent to the template defined by the Param range.
    • The Param range has format value if true,value if false, which defines what the form will pass to the template when ticked or not ticked. The default for this is true,false.
    • The toggle button will be selected by default if the Default value is set to true or the same as the value if true given in the Param range.
  • hs - A special field which attempts to lookup a player's hiscores for values to be passed into other parameters.
    • The form will automatically try to prefill the form with the last name entered in a hs type box. If no name is found then Default value is used.
    • Param range has a format of otherparam,skill,value where otherparam is the Param name of any other parameter in the form, skill is the integer of the skill to lookup (as defined by the table to the bottom), and value is 0 for rank, 1 for level and 2 for experience (0 for rank and 1 for score in minigames). Multiple parameters can be changed by using ; - i.e. otherparam,skill,value;thirdparam,skill2,value2.
  • rsn - A special field for Runescape names, which validates them (based on character inputs).
    • The form will automatically try to prefill the form with the last name entered in a hs type box. If no name is found then Default value is used.
  • fixed - The value specified by Default value will be shown but cannot be changed in the form.
  • hidden - The value specified by Default value will be hidden in the form and cannot be changed. No row is generated for the form at all.
  • semihidden - A combination of fixed and hidden: The value specified by Default value will be hidden in the form and cannot be changed, but unlike hidden, a row is added to the form, which is hidden with CSS. This is primarily for inter-script usage (i.e. some other script sets the semihidden value to something so that it is passed to the template when submitted).

IDs[edit source]

Namespaces[edit source]

Namespace IDs
Namespace Article ID Talk ID
All *
Media -2 N/A
Special -1 N/A
(main) 0 1
User 2 3
RuneScape 4 5
File 6 7
MediaWiki 8 9
Template 10 11
Help 12 13
Category 14 15
Update 100 101
Forum 110 111
Exchange 112 113
Data 114 115
Calculator 116 117
Map 118 119
Transcript 120 121
Property 302 303
Map 118 119
Module 828 829
Beta 3002 3003

Hiscores[edit source]

Hiscore IDs
Skills
Skill ID Skill ID
Total Level.png: RS3 Inventory image of Total LevelOverall 0 Attack.png: RS3 Inventory image of AttackAttack 1
Defence.png: RS3 Inventory image of DefenceDefence 2 Strength.png: RS3 Inventory image of StrengthStrength 3
Constitution.png: RS3 Inventory image of ConstitutionConstitution 4 Ranged.png: RS3 Inventory image of RangedRanged 5
Prayer.png: RS3 Inventory image of PrayerPrayer 6 Magic.png: RS3 Inventory image of MagicMagic 7
Cooking.png: RS3 Inventory image of CookingCooking 8 Woodcutting.png: RS3 Inventory image of WoodcuttingWoodcutting 9
Fletching.png: RS3 Inventory image of FletchingFletching 10 Fishing.png: RS3 Inventory image of FishingFishing 11
Firemaking.png: RS3 Inventory image of FiremakingFiremaking 12 Crafting.png: RS3 Inventory image of CraftingCrafting 13
Smithing.png: RS3 Inventory image of SmithingSmithing 14 Mining.png: RS3 Inventory image of MiningMining 15
Herblore.png: RS3 Inventory image of HerbloreHerblore 16 Agility.png: RS3 Inventory image of AgilityAgility 17
Thieving.png: RS3 Inventory image of ThievingThieving 18 Slayer.png: RS3 Inventory image of SlayerSlayer 19
Farming.png: RS3 Inventory image of FarmingFarming 20 Runecrafting.png: RS3 Inventory image of RunecraftingRunecrafting 21
Hunter.png: RS3 Inventory image of HunterHunter 22 Construction.png: RS3 Inventory image of ConstructionConstruction 23
Summoning.png: RS3 Inventory image of SummoningSummoning 24 Dungeoneering.png: RS3 Inventory image of DungeoneeringDungeoneering 25
Divination.png: RS3 Inventory image of DivinationDivination 26 Invention Invention 27
Archaeology.png: RS3 Inventory image of ArchaeologyArchaeology 28
Minigames
Minigame ID Minigame ID
Bounty Hunter.png: RS3 Inventory image of Bounty HunterBounty Hunter 29 Bounty Hunter.png: RS3 Inventory image of Bounty HunterBounty Hunter Rogue 30
Dominion Tower.png: RS3 Inventory image of Dominion TowerDominion Tower 31 Crucible.png: RS3 Inventory image of CrucibleCrucible 32
Castle Wars.png: RS3 Inventory image of Castle WarsCastle Wars 33 Barbarian Assault.png: RS3 Inventory image of Barbarian AssaultBarbarian Assault Attacker 34
Barbarian Assault.png: RS3 Inventory image of Barbarian AssaultBarbarian Assault Defender 35 Barbarian Assault.png: RS3 Inventory image of Barbarian AssaultBarbarian Assault Collector 36
Barbarian Assault.png: RS3 Inventory image of Barbarian AssaultBarbarian Assault Healer 37 Duel Arena#Tournaments.png: RS3 Inventory image of Duel Arena#TournamentsDuel Tournaments 38
Mobilising Armies.png: RS3 Inventory image of Mobilising ArmiesMobilising Armies 39 Conquest.png: RS3 Inventory image of ConquestConquest 40
Fist of Guthix.png: RS3 Inventory image of Fist of GuthixFist of Guthix 41 Gielinor Games.png: RS3 Inventory image of Gielinor GamesGG: Athletics 42
Gielinor Games/Resource Race.png: RS3 Inventory image of Gielinor Games/Resource RaceGG: Resource Race 43 The Bird and the Beast.png: RS3 Inventory image of The Bird and the BeastWE2: Armadyl contribution 44
The Bird and the Beast.png: RS3 Inventory image of The Bird and the BeastWE2: Bandos contribution 45 The Bird and the Beast.png: RS3 Inventory image of The Bird and the BeastWE2: Armadyl PvP kills 46
The Bird and the Beast.png: RS3 Inventory image of The Bird and the BeastWE2: Bandos PvP kills 47 Heist.png: RS3 Inventory image of HeistHeist: Guard Level 48
Heist.png: RS3 Inventory image of HeistHeist: Robber Level 49 Cabbage Facepunch Bonanza.png: RS3 Inventory image of Cabbage Facepunch BonanzaCFB: 5 games average 50
2015 April Fools.png: RS3 Inventory image of 2015 April FoolsAF2015: Cow Tipping 51 2015 April Fools.png: RS3 Inventory image of 2015 April FoolsAF2015: Post-miniquest rat kills 52
RuneScore.png: RS3 Inventory image of RuneScoreRuneScore 53 Sealed clue scroll (easy).png: RS3 Inventory image of Sealed clue scroll (easy)Clue scrolls (easy) 54
Sealed clue scroll (medium).png: RS3 Inventory image of Sealed clue scroll (medium)Clue scrolls (medium) 55 Sealed clue scroll (hard).png: RS3 Inventory image of Sealed clue scroll (hard)Clue scrolls (hard) 56
Sealed clue scroll (elite).png: RS3 Inventory image of Sealed clue scroll (elite)Clue scrolls (elite) 57 Sealed clue scroll (master).png: RS3 Inventory image of Sealed clue scroll (master)Clue scrolls (master) 58

License[edit source]

This script is released under the GNU General Public License. The source code is available at MediaWiki:Gadget-calc-core.js.