[Userscript] WK Dashboard Cockpit

:warning: This is a third-party script/app and is not created by the WaniKani team. By using this, you understand that it can stop working at any time or be discontinued indefinitely.

release v0.7.3
Originally started to give a cockpit feel to the dashboard, I deem the script currently stable enough for release. Reasons for this script: see the ‘Short history’ section.
Pending items and release notes are below the script description.

The script relies on the open framework.
Download/install the WK Dashboard Cockpit script from GreasyFork location.

Short history

Since the dashboard updates of March 9, I’ve been triggered into looking more into user side scripting. The new lesson and review buttons were a little large for my taste, and I didn’t like the SRS progress bar being pushed off-screen (although now the search bar is hidden by default, it might just fit back in).
At the same time I figured I would try my hand at HTML5 drawings on canvas elements to add some graphical components to the dashboard. A cockpit idea with the SRS progress bar front and center was quickly born - and then took forever to get working properly. So this script is as much a playground as it is something functional.

As it turns out, canvas drawings and CSS do not mix. So the script now contains considerable amounts of style being applied to the drawings. Also, over time I had picked up quite a few scripts that hooked into the SRS progress bar - which I was busy replacing with something that cannot be referenced by element. And I figured I should include some of this functionality into the drawn SRS arc as well. Most of these scripts rely on analysing the same item data - something the the cockpit script can do in a single pass over the items.
So… the script has turned into something of a monster, borrowing heavily from other scripts by this wonderful community. I always knew I was going to post it someday, as it might interest other (aspiring) scripters (on what not to do), but after seeing expressed interest I decided to set myself a deadline and get the first version out.
Feel free to request updates and point out bugs. There are still a few things I want for this script (see pending items), but more ideas are welcome.

DESCRIPTION

My own main dashboard currently looks like this


The cockpit script supports/reimplements the following existing scripts:

1. seanblue's SRS and Leech Breakdown

Short description: shows the number of items in the individual Apprentice (I-IV) and Guru (I-II) stages.
Original script:
[Userscript] WaniKani Dashboard SRS and Leech Breakdown

2. rfindley's Golden Burn

Short description: turns the Burned section on the SRS arc golden in color.
Dashboad Cockpit does not affect golden burn colors on other items/pages!
Original script:
[Userscript]: Golden Burn

3. Pep95's Total Progress Bar

Short description: adds a progress bar indicating the percentage of total items in each of the main stages.
I originally had other plans for this, but had too many issues with getting it to display properly (without white vertical lines due to rounding issues). So I never got further than a meager version of the orginal. Might be taken out at some point unless I actually do something with it, because right now it adds next to nothing over the original (different placement and caching).
Since version v0.6:

Not included in the cockpit but visible in the screenshot. These are panels updated by other scripts I have running:

A. Dashboard Level Progress Detail

See original script thread:
[Userscript] Dashboard Level Progress Detail. update to broken script

B. Review Forecast Clock Style

See original script thread:
[Userscript] WK Review Forecast Clock Style

But the cockpit has a few more display options…


The cockpit script supports/reimplements the following existing scripts:

4. Kumirei's Locked Count

Short description: show the count of locked items for current and future levels
Dashboard Cockpit version excludes lessons from the count (as it’s displayed right next to the lessons button)
Original script counted everything that wasn’t yet lessoned.
Original script:
[Userscript] Locked Count

5. seanblue's SRS and Leech Breakdown

Short description: leech counts per SRS stage. What qualifies as a leech? Check the original script post for details, but leeches are essentially items that are answered wrongly multiple times.
Dashboard Cockpit allows the SRS detail and Leech counts to be individually visible or invisible, Leech counts can be displayed in different brightness levels and the Leech threshold is configurable.
Leech threshold is a number from 1-4. The higher the threshold, the fewer items are considered as leeches. Originally any item that has enough errors to pass the leech threshold in either reading errors or meaning errors was counted as a leech. Starting with version v0.3, you can set a minimum nr of errors (reading/meaning combined) so that items you get wrong for the first time aren’t immediately counted as leeches. Allowed values are 1-10 with 1 being the default and making the script behave as it did prior to v0.3.
Starting with v0.2 leech counts can be displayed in bright mode or bright on hover mode. Starting with v0.3 leech counts can be displayed in inverted ellipse mode.
Original script:
[Userscript] WaniKani Dashboard SRS and Leech Breakdown

6. Kumirei's Level by SRS

Short description: for each SRS stage, the highest level for which 90% of the items have reached at least this stage is displayed. The 90% threshold is configurable.
Included as it needs to be displayed next to the SRS progress bar.
Original script:
[Userscript] Levels by SRS

So… does this script add anything itself? Well, apart from the obvious change in SRS progress bar, here are some features of the cockpit:

1. Locked Count in fuel gauge form

Essentially still Kumirei’s Locked Count script.
Short description: show the count of locked items for current and future levels
Dashboard Cockpit version excludes lessons from the count (as it’s displayed right next to the lessons button)
Original script counted everything that wasn’t yet lessoned.
Original script:
[Userscript] Locked Count

2. Smaller lessons and reviews buttons

But with the pictures intact. Starting with v0.4 the script integrates better with Kumirei’s Review Hover Details, keeping the hover information on the review button intact.

3. Level dials displaying each level's progress towards the burn status

Each item is awarded a score based on its progression towards the burned status.

Scoring details

An item scores points for the SRS stage it is in (1 for each of the four Apprentice Levels, 2 for each of the Guru levels and 4 for each of the remaining stages). Locked or unstarted items score 0.
An item also scores points based on how long it has spent in its current stage. For instance, an Apprentice II item (stage length 8 hours) that has spent 2 hours in Apprentice II already, will score 0.25 extra points (2/8). Each of the periods is worth the same number of points as reaching the stage itself.
So a Master item (4 points for the stage, stage length 30 days) that has spent 10 days in Master will score and additional 1.33 (4 * 10/30).
Points for stages are cumulative, so this gives every item a total maximum score of 36 (burned). The score for the level is the average of all the level’s items, and is expressed as a percentage from 0-100, with the dial anywhere from before Apprentice I (score 0) until the middle of Burned (score 100).
Completely unstarted levels and completely burned levels are not displayed.

For a more details overview of display options and hover/click popups see further down.

4. Front and center level indication

Starting with v0.4 the colors of the level indication can be chosen in the settings so the number is visible better regardless of light or dark mode WaniKani.

5. Ability to show/hide various panels

I’ve seen multiple other styles and scripts do the same, but they tend to provide a single combination of hidden panels. Since the cockpit messes with the layout so much, I figured I might as well include.

Caching previous status

This means the page is initially displayed with the information from your previous visit, after which you can see the dials/bars/numbers move upon update (borrowed from hitechbunny/BlazzBolt’s Dashboard Level Progress Detail script).

Smaller tooltips on the SRS arc

cockpit_popups_70p

Hovering over the level dials shows the level progress score. To prevent dials on top of each other,
a minimum separation between dials is configurable. The script will favor display of lower levels over higher ones, regardless of the sequence in which they appear.

Show all dials Minimum separation setting Less clutter
cockpit_dials_hover_70p318x166 cockpit_dial_setting_narrow_70p245x133 cockpit_dial_separation_70p298x160

Click the level dial for a breakdown of the items per SRS stage for that level:

cockpit_dial_clicktipv0.4_70p

Starting with v0.4, you can use the arrow buttons next to the level number to navigate to the next or previous level. All levels that aren’t unstarted or completely burnt can be viewed this way, regardless of whether their level dial is visible on the arc.

Then there are the position options. For instance, using Ultimate Timeline and Dashboard Progress Plus, the dashboard cockpit could look like this:

Settings accessible via the standard menu (click on your gravatar in the menu bar)

cockpit_settings_access_70p

There are three pages of settings currently:
Starting with v0.5.4 the position options for the extra study panel are added to the Panels tab
Starting with v0.6 there are 3 available sizes for the main arc.
Starting with v0.6 there is an option to hide the main buttons (use only if running other scripts that display the lessons/reviews buttons elsewhere - dashboard cockpit does not check for this)
Starting with v0.6 there are level 60 options to hide unused items from the dashboard. It makes little sense to permanently stare at a ‘0 lessons’ button. The auto-hiding puts the items back into view as soon as f.i. new items roll out.
Starting with v0.6 the total progress bar can be displayed above the main arc
Starting with v0.6 the position options for the extra study panel are automatically disabled if the Extra Study Mover script is detected.
Starting with v0.6.7 the Recent Mistakes panel position is linked to the Extra Study panel (as they are similar in nature). The exception is when Extra Study Mover is used and the Extra Study panel is place in the header. In that case, the Recent Mistakes panel will be visible in its default location, above the level progress panel.

SRS Progress Progress Details Panels
cockpit_settings_1v0.6_70p354x441 cockpit_settings_2_70p355x435 cockpit_settings_3v0.5.4_70p357x274
v0.6 screen examples

1/3
Overall progress bar at the top (not part of the cockpit)
Extra study mover governed extra study panel
Level 60 no lessons and no pending items for the current level hidden components
Medium sized wheel
Progress bar at bottom and reversed

2/3
Ultimate timeline (not part of cockpit)
RKV tiny bars (not level 60 hidden)
hidden review forecast

3/3
for the minimalists
v0.6_minimal

Pending items

  • Dark theme support
    The drawing aspect requires this be handled explicitly in the script. Have no idea what the cockpit currently looks like in a dark theme.
  • Mobile layouts
    I still need to look into how the whole -m thing works. Current layout will be much too wide.
  • Level 60 goal panel
  • Figuring out if I can split this script into some smaller single purpose scripts

Release notes

version date release notes
0.1 2020-05-06 Many thanks to all scripters here. I borrowed generously from you.
First stable release.
0.2 2020-05-07 Brightness of leech display is now configurable in the settings.
Choose from dull (as it was), bright and “bright on hover”, which
highlights the number when hovering the mouse over it.
adjusted the fuel gauge dial (color, shape)
0.3 2020-08-23 altered the leech calculation - an item now needs a minimum
of X wrong answers (configurable) to be identified as leech.
This prevents items that you get wrong for the very first time
from immediately being treated as leeches.
fix to prevent the total progress bar from covering the top
menubar upon scrolling
fixed the initial display of the locked count
total progress bar percentage uses a darker font in the burn
section if golden burn is enabled (increase readability)
added inverted ellipse display option for leech counts
0.4 2020-10-26 bugfix: popup on master category disappears behind header if arc
in down orientation
bugfix: popup on review button from Kumirei’s Review Hover Details
script does not display
extra long progress bar option
color picker for level number
added back/forward buttons on level dial popups so all levels can be
viewed more easily
0.5 2020-10-28 fixed right margin and width display
0.5.2 2021-02-04 fixed locked count detailed count when one of the categories hits zero to go
0.5.3 2021-08-03 gave locked count and lessons minimum width to prevent display anomalies
always fetch the locked count, even when not displaying so the
total progress bar is accurate
0.5.4 2022-03-03 added support for newly available extra study panel
0.5.5 2022-03-17 added position ‘above SRS progress arc’ for the extra study panel
0.5.6 2022-03-22 ignores the extra study panel if the Extra Study Mover script
has placed it in the header
0.5.7 2022-03-22 bugfixes to properly ignore Extra Study panel in the header
0.6 2022-04-19 full integration with Extra Study Mover
three different arc sizes now available and (some) support for screen resizing
total progress bar uses color gradients like the arc
total progress bar location at top of screen
total progress bar percentage visibility based on screen real estate
added setting to hide main buttons
level60 feature: option to auto hide useless items
changed match rule to regexp include
added fire event on loaded
refactor and clean
0.6.1 2023-02-01 handle replacement of recent community topics panel with
the community banner
0.6.2 2023-03-29 added support for the WaniKani Review Summary script
(requires separate install)
0.6.3 2023-03-29 properly handle the option to not show the review summary tile
0.6.4 2023-05-11 added support for kana only vocabulary
0.6.5 2023-05-24 bugfix locked count
0.6.6 2023-08-06 change to dashboard progress panel name
0.6.7 2023-08-26 added support for new Recent Mistakes panel
0.6.8 2023-08-29 bugfix: left grid min space required when summary tile included
0.6.9 2023-09-14 fix for updated review forecast
0.6.10 2023-09-14 fix for updates to recent mistakes and extra study
0.6.11 2023-09-14 fix for level progress panel
fix for updated extra study mover
fix for padding change on review forecast
0.6.12 2023-10-24 fix for renamed dashboard panels
0.7 2024-02-06 new button sections
fixed issue with extra study location
0.7.1 2024-02-06 handle variable nr of buttons in lesson section
0.7.2 2024-02-06 handle variable nr of buttons in the review section
0.7.3 2024-02-07 give the turbo frame more time to load
81 Likes

That looks absolutely bonkers. Amazing job. :slight_smile:

2 Likes

looks baller, gonna install it now

3 Likes

I see this right when I become 60…unbelievable. The UI looks sick!

4 Likes

Very nice.
It took me some time to understand the Levels by SRS stage, until I found @Kumirei’s description of the original script.
I have one question though: Why is the inner ring segment with the Levels by SRS stage or the Level dials shorter than the SRS ring itself?
image

2 Likes

Another small wish:
Could you make the Leech Breakdown numbers more readable, for example with a white number on a dark background? (I know that the original script looks the same, but there I get a more readable number by pointing at it with the mouse cursor.)
image

2 Likes

Good point. I didn’t explain any of the incorporated scripts. I should probably link them or put a subsection in the OP to explain (as there are some differences here and there). edit:done
For the Levels by SRS there is simply an inner ring along the entire arc and the level achieved (90% passed) for that stage is displayed in the ‘middle’ alongside the number of items in that stage.

The level dials work different. Having all items of a level in f.i Guru I needs to put the dial exactly in the middle of Guru I (that’s the most natural position in that case). This automatically means that a fully burnt level would have the dial in the middle of the Burned section (if it were displayed, which it isn’t for fully burnt levels). Hence the bar stops exactly there - no dial could ever pass beyond that point.

I guess it’s faster to state that ‘before Apprentice I’ is the 0% mark and ‘middle of Burned’ is the 100% mark. Pushing the 100% to the end of Burn might be an option - it’s unlike the other parts, but levels tend to huddle together at that point and some extra separation might not be a bad idea. I can try to figure out how to make this an option maybe.

Noted. I agree - it’s not very legible and there is indeed currently no hover behaviour for these. edit: available in v0.2

1 Like

FYI: After playing around with all the script settings, I ended up with the following layout which occupies the full height and about two thirds of the width of my screen with all the informations I want:

3 Likes

Very nice. This will be my look this season.

2 Likes

Lol. I did not test every browser - which one are you using?

You already saw before I edited.
Nevermind, it’s not you, it’s me :stuck_out_tongue:
It’s because of the screenshot feature in firefox. You need to scroll down do click the download button, but that puts the menu bar in the middle of the screenshot.

1 Like

Very cool

2 Likes

phew wipes forehead

It’s so very purrty!

I’m looking forward to the wheel filling up with colours. I don’t know how you got that rainbow effect on the level number in the middle but it’s lush.

Thanks for all this work and for sharing it. I could not find the settings on this one (must be blind).

2 Likes

Radial color gradients - one of the things I learned about while making this :slight_smile:

Just click on your gravatar image in the menu bar.

cockpit_settings_access_70p

1 Like

Merci! That’s what you meant by ‘the usual way’.
I guess I’m new enough to be forgiven :slight_smile:
CatFacePalm

6 Likes

Woah… that’s frickin amazing!
300x220

Approved for use by cool cats!

10 Likes

In version 0.2 the brightness of the leech display can be chosen in the settings

release0.2_leech_brightness_70p

2 Likes

This is some incredible work. Ever since the latest update I’ve been longing for a way to reuse the native review timeline space since the Ultimate Timeline has proved more useful to me, and this fits perfectly. I particularly love the settings and how well it interfaces with other scripts. Great stuff.

Now, to devise a way to utilize that leftover space under the dial…

4 Likes

Huh. Just installed. Not sure how I feel about being constantly reminded that I’m not even 25% of the way through this. :rofl: Obviously, I could work it out based on my level. But that gigantic 76.5% locked bar is :dizzy_face:

This is pretty awesome, though. Great job! I’m keeping it for the foreseeable future.

3 Likes