Age | Commit message (Collapse) | Author | Files | Lines |
|
Conflicts:
ChangeLog
|
|
With the new TUWF, kv_validate() returns undef when the param isn't
present and an empty string if it is, but left empty. This is a more
efficient way to differentiate between empty and nonexistent than the
previous YAWF-method of grepping all param names.
|
|
|
|
Haven't found any bugs this way, yet. I doubt there'll be any problems,
but it's a nice new feature that could help quite a bit. :-D
|
|
|
|
There may still be some bugs present and I've only converted the points
where TUWF is incompatible with YAWF. The new TUWF features are not in
use yet, I'll do that later on.
Note that, in order to run the new code, TUWF must be installed on your
system. The configuration for the TransAdmin plugin has also changed.
Other than that there shouldn't be any issues.
|
|
Caused by an errorneous sort statement when comparing the producer
values.
|
|
|
|
|
|
- Added a 'prefs' option to htmlFooter() to add preference data for use by
Javascript.
- Added an /xml/prefs.xml URL for setting preferences from JS.
- Added 'filter_*' keys to the prefs_key ENUM
- Load filters by default on VN and Release browser
|
|
This will correctly handle fetching stuff from the database when
permanent filters are enabled.
This update also removes compatibility with some old VN browse URLs. The
old 'ti' and 'te' (tag include/exclude) query parameters are now
ignored, and searching for a language in the query string (e.g.
"q=English") won't enable the language filter.
|
|
|
|
|
|
|
|
The check is quite basic and you can easily get around it. It's just
intended to warn about common mistakes.
|
|
This can be seen as a partial revert of
0a4f97f0186d6941a4cab2e3bd05201f1fed1441.
I used to think using NULL for special values is more "correct" in
database terms. But in the end I guess I should be aiming for whatever
solution is easier. Both are "correct" in a sense anyway.
|
|
A somewhat ugly approach, but couldn't think of something better.
|
|
|
|
I'm surprised I haven't been able to find a combination of filters that
would generate an SQL query that would run more than 300ms or so.
PostgreSQL is amazing!
|
|
IE7 still doesn't work, however. Not going to fix it either.
|
|
Had to fix some bugs here and there and add some new functionality to
the abstractions at some places, but it appears to be working now. There
are still a few TODOs left, I'll get to those in a bit.
|
|
The release filters are now pretty much complete. Save, perhaps, for
some improved styling and grouping in the filter selector; but I'm too
lazy for that at the moment.
|
|
Surprisingly enough, the SQL queries are still quite fast even when
matching on the animation columns.
And thanks to the new filter system, adding this filter was incredibly
easy.
|
|
Primary reason for this change is because Algorithm::Diff::Fast isn't
all that fast for character-level diffs. :-/
|
|
fil_parse() now checks for proper formatting of the string and ignores
key/value pairs that are not the list of allowed keys. This makes it
impossible to provide extra, unintended, arguments to dbReleaseGet(),
such as 'results'.
|
|
There's no validation of the filter string yet, and somehow I don't feel
like adding that; it's a lot of code and there's nothing to protect -
the values are inserted using parameters into a SELECT query, the worst
thing that could happen is the user receiving a 500.
Also, I've started using the perl '//=' operator, which was added in
5.10. This removes support for older perls.
|
|
This isn't entirely functional yet, the server side will need to be
rewritten as well. And after that new filters should be added and this
system should also be used for VN/producer search.
script.js is getting quite large with all those new translation strings,
it may be an idea to generate a separate .js file for each language and
only load the one being used.
I won't have a valid reason to feel bored anytime soon, at least...
|
|
|
|
1. Don't try to normalize the GTIN code in the releases form when it's 0
2. Don't try to gtintype() *every* number in the search
|
|
We have to assume that the input doesn't always have enough zeros,
to fill the 12 characters, otherwise UPC codes fail when they are
fetched from the database (which is stored as a bigint, no zero padding
in the output). Instead, we'll just add the zeros ourselves up to 12 for
normalization purposes.
|
|
This is implemented by adding ihid (item hidden) and ilock (item
locked) columns to the changes table,
The (vn|release|producer).(hidden|locked) columns now work as a
cache, refering to the changes.(ihid|ilock) columns with
changes.id = (vn|release|producer).latest.
The cached columns are updated automatically each time a new revision is
inserted.
This is a pretty large change, bugs are quite likely.
|
|
|
|
|
|
Also added a little sanity checking on the edit_(vn|release) table,
and added a default value for releases_rev.released.
|
|
This removes the need for the dbVNCache() function in perl.
|
|
A form validation error is somewhat more user friendly than a 500.
|
|
And also changed the way the item_table.latest column was updated: it is
now only updated after the revision insert has completed, making it
easier to write trigger functions in SQL.
|
|
The ORDER BY was previously specified using an 'order' argument, which
would then be directly inserted into the query. The new method is the
same as what I used for the public API: two 'sort' and 'reverse'
arguments. This should be less error-prone and more readable.
This changes quite a lot of code, so I hope I haven't forgotten to
update something along the way.
|
|
|
|
+ ChangeLog update
|
|
|
|
Performance improvement of ~15ms for all release and VN browse pages.
There are in total 20 known languages in the DB, and 12 of them are
actually used (i.e. a release in that language exists). Which means 8 of
the listed language filters won't produce any results (yet), but I'd say
that's an accaptable trade-off.
|
|
Still the VN & producer pages to go...
|
|
They aren't displayed on the site yet, though.
|
|
|
|
|
|
|
|
Should be converted to enums at some point... integers don't do the
trick here.
|
|
+ removed last traces of forms.js
+ converted code to use tables, as that is easier to expand more
accurate for this purpose. The reason I probably didn't use tables
before was that the innerHTML property doesn't work on tr elements.
The split was mainly because the producer linking is going to be
expanded with an additional field later on.
|
|
|