VisualData feature ideas

From Visual Data Wiki
Revision as of 15:26, 19 December 2025 by Uschuetzenmeister (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Feature examples[edit | edit source]


Feature requests[edit | edit source]

Feature Comment Priority
Possibilty to pass additional parameters in a VisualData query when the result format template is selected (possible with Cargo)
{{#visualdataquery:[[last name::+]]
|?first names
|?last name
|?position
|?email
|schema=Person data
|format=template
|template=Person card{{!}}MY_ADDITIONAL_PARAMETER
}}
high
Ability to edit partial JSON blocks - it should be possible to insert nested sub-items, e.g., a reply to a reply to a reply to a comment. In other words, the JSON of the reply would have to be inserted at different levels so that the end result would be a tree like this:
{
  "id": 1,
  "author": "Max",
  "text": "First message",
  "children": [
    {
      "id": 2,
      "author": "Anna",
      "text": "Reply to that",
      "children": [
        {
          "id": 3,
          "author": "Tom",
          "text": "Reply to the reply",
          "children": [ 
            {
              "id": 4,
              "author": "Anna",
              "text": "Reply to the reply to the reply",
              "children": []
            }
          ]
        }
      ]
    }
  ]
}
high
Possibilty to preload unparsed templates, i.e. {{abc}} should be saved as it is and not be parsed

The parameter |preload=Template:abc in the schema definition currently works in such a way that the content of the template is written to the JSON. However, since multiple articles are usually created using forms, it would make more sense to write only the template name to the JSON (similar to the Cargo parameter ‘template’). At the moment, I have solved this by first calling a template as a wrapper, which in turn contains a template. However, this means that I have dozens of wrapper templates, which in my opinion are actually superfluous. Here is the discussion that has already taken place on this topic: https://www.mediawiki.org/wiki/Extension_talk:VisualData#General_thoughts_on_the_preload_parameter

The main idea is: when I store data in the jsondata slot, I initially have no output in the main slot; the page is empty by default. Cargo outputs the data in a table by default, but I can also pass it on to a template. In VisualData, I currently do it as follows: I use preload parameters to define a wrapper template that only contains the name of the output template. In this template, I then query things and have them displayed. (See also https://topwayitworkspace.slack.com/archives/C075J025U87/p1763407201707529)

Maybe something like preload-raw or preload-template high
Auto-generation of schemes from imported data If data with no corresponding schema are imported, a schema should be created automatically - initially all fields could be defined as text fields and and can be customized later low
Excel like data input with sub-classes (automatic field generation)

Example:[edit | edit source]

Definition:[edit | edit source]

Rows (one class per line)

District1, District 2

female, male, diverse

Columns (one class per line)

without university degree, without university degree

employed, unemployed


Restrict input

  • Numbers only
  • Regex
  • ...?


Add prefix


Add sufix

(prefix and suffix could be $, %, EUR etc.)


Decimals

Result:[edit | edit source]

without university degree with university degree
employed unemployed employed unemployed
District 1 female
 %
 %
 %
 %
male
 %
 %
 %
 %
diverse
 %
 %
 %
 %
District 2 female
 %
 %
 %
 %
male
 %
 %
 %
 %
diverse
 %
 %
 %
 %
high
Sorting function for multiple fields / sub-items
Image preview on file upload Theoretically already provided in the code, see /resources/VisualDataForms.js
Internationalization for values in select and dropdown lists Possibly via switch statement, see: https://www.mediawiki.org/wiki/Extension:VisualData/Queries_in_forms
Ability to show conditonal fields/form elements depending on VisualData queries
Display label instead of schema name in tabs in forms
For long pages: Scroll back to the previous page position after saving popup forms
Ability to open forms from the content block of another form (form button is currently not rendered) Click the button below for real example:
form is loading...
(Btw: Could the message 'cannot edit' for non-authorized users be given a CSS class so that it can be styled?)
Ability to edit json-data Slot
Form parameter to restrict forms (and single fileds?) to given user groups
Additional operators in queries (OR) - does it make sense to impelement a JSON query language like https://jmespath.org/
Lua equivalents for #visualdataquery and #visualdataprint and possibility to retrieve JSON from json-data slot in Lua frame:callParserFunction() can be an alternative. Retrieving json-raw in Lua seems to be a problem, mw.text.jsonDecode() fails, possibly because of strip markers (About strip makrers, Example )?
Better ID management than 45362 '45363' (Extension:IDProvider) Similar to <unique number> in PageForms (see here). Solved with Extension:UniquePageTitle
CSV Import
Pre-filled fields on form call Works in newer versions of VisualData - Custom code adjustment for handling nested and multiple values - should be committed to VisualData


Bugs[edit | edit source]

v1.0.8
Bug Comment
Anonymous users can edit data in popup forms although $wgGroupPermissions['*'][“visualdata-caneditdata”] = false; is set in LocalSettings.php Fixed with v1.0.8b
VE (VEForAll) does not load in inactive form tabs
Internationalisation of labels does not work anymore, i.e. {{int:User}} Works after resaving the Schemas
v1.0.6
Bug Comment
Anonymous users can edit data in popup forms although $wgGroupPermissions['*'][“visualdata-caneditdata”] = false; is set in LocalSettings.php Fixed with v1.0.8b
Categories are stored in an extra slot, which conflicts with the normal categories (these are not displayed) Fixed with v1.0.5
Import script does not work due to incorrect version check 1.41 instead of 1.41.0
includes/classes/SchemaProcessor.php: Line 1225: Typo $properties $this->replaceFormula( $proprties, $wiki['options-label-formula'] ) ); Fixed with v1.0.5
VE (VEForAll) does not load in inactive form tabs
mw.widgets.UsersMultiselectWidget throws an error Fixed with v1.0.8
Triggers for conditional field do not work reliably, especially with OO.ui.ToggleSwitchWidget