The utilichart-relevant code has been overhauled for simplicity.
Utilichart results and headers are now both 33 pixels tall, total.
Headers are slightly larger, to make them fill the space better. The
larger font size makes them more header-like, anyway.
Results are two pixels taller than before, giving them enough room for
gen 6 pokemon icons (not enabled in this commit), and in general
aiding performance slightly (fewer result rows on the screen at a
time).
Making them both 33 pixels allows height to be computed precisely
as 33*rows, which is relevant for result rows to be inserted into
the DOM on-demand.
On-demand DOM insertion has previously been implemented in pokedex.js,
but the new on-demand DOM code in search.js works slightly differently.
It makes stronger assumptions (that the only bottleneck is DOM
insertion speed, and that ctrl+f without scrolling to the bottom
doesn't need to be supported, and that result rows and result
headers are always 33 pixels tall), which makes for much simpler
code, and is presumably slightly faster because of this.
The new on-demand DOM code is surfaced by an "All results" button
in the pokedex (pokemonshowdown.com/dex/), for basic testing, but
the long-term plan is for it to be used in the teambuilder for
pokemon/etc selection, to massively increase performance.
Nearly two years after I wrote search.js to be a better utilichart
API than utilichart.js, we'll soon finally start using it in place of
utilichart.js in the main sim teambuilder!
This introduces a new function to get an icon from an icon sheet
for gen 6 icons. The old gen 5 style icons are still available
in Tools.getIcon, allowing us to slowly convert icon styles over
at our leisure, without needing to convert everything at once.
This commit only introduces the function; it's not used anywhere
yet.
The Hide button now hides the side panel until the next time you
open a room. The main use case is just so you can see more of your
(presumably lovely) main menu background, without having to leave
all the rooms you're in.
It didn't seem to be helping with the problems the user with weird
header rewriting had, so it didn't serve its intended purpose.
Removing the header saves a negligible amount of bandwidth and
more importantly suppresses an error message in Chrome which
doesn't support it.
In addition to format folders, we now support regular folders that
behave as you'd expect. These folders even map to actual
directories in the downloadable client!
Folders are delimited by `/` in team names in all storage formats
(including export, and packed saving), and are stored in the
`.folder` field of team objects.
Because of this, `/` is no longer an acceptable character in team
names. This improves interoperability with teams and filesystems,
so we should probably have done this anyway.
I also added back a friendly message to the top of the teambuilder.
- 'uncategorized' was sometimes in the wrong place
- Firefox Windows button alignment
- crash when creating new format folder
- gen 2 and gen 3 were mixed up
Normally, when navigating away from an empty format folder, it'll
disappear from the folder list. This keeps the folder visible if you
just opened it from a team selector or the 'New format folder'
button, so you can drag teams from other folders to that folder.
This was ridiculous, or, in other words, par for the course when
you're dealing with HTML5 drag-and-drop.
Folders are now clickable divs instead of buttons. This turned out
not to be necessary as it was a different issue that was causing
drag-and-drop to fail, but I'd already changed everything over when
I discovered the real bug. Oh well, some things are slightly nicer
this way.
You can now add formats to the teambuilder folderbar and select
teambuilder formats using the same Formats dropdown previously
used for challenges and searches.
It is no longer to move a team back to Uncategorized. A future
update will fix this.
The team selector now hides teams that aren't for the format, by
default. Other teams can still be selected with a 'more' button.
There's now a Teambuilder button to be taken straight to making
or editing teams for that format.
The folders are really just format filter views, but in theory, this
should be all people need.
This implementation is very basic but I'm pretty sure I've gotten all
the bugs out. On small screens, the folders simply don't appear, on
the assumption that this will only happen on mobile, where people
shouldn't be creating enough teams to need folders, anyway. (I'll
fully support mobile later.)
Third-party servers may need to re-style the Edit and Delete buttons,
since they're black on transparent, which may interact poorly with
certain edgy background styles.
There apparently exist very bad security software that MitMs HTTPS
connections to set X-Frame-Options when I didn't want that at all
and actually crossprotocol.html is intended for embedding in an
iframe.
Hopefully this header will allow aforementioned software to take
the hint.
Default backgrounds are still left-aligned, mainly for Horizon and
Waterfall which are designed for their left side to be visible, but
custom backgrounds are now centered on the assumption that that's
what most users want.