summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)AuthorFilesLines
2019-12-30Actually, let's get rid of v3 now that it doesn't work anymore anywayYorhel1-52/+3
2019-12-30ulist: Remove remnants of old votes/vnlists/wlists tablesYorhel1-6/+10
2019-11-10JS: Add LibreJS compatibility + use embedded comment tag to sort v2rw.js filesYorhel1-21/+23
I found myself forgetting to add a file to $JS_FILES in the Makefile several times now, and with Perl and Elm modules being detected and loaded automatically, it feels weird not to do the same for .js files. This embedded order trick is ugly, but it's pretty simple and gets the job done.
2019-11-10ulist: Implement deletion of items from the listYorhel1-1/+2
2019-11-10ulist: Add (nonfunctional) releases + options UI; More consistent namingYorhel1-3/+3
2019-11-10ulist: Add comment and "this item is public" iconsYorhel1-0/+1
Dynamically updating the visibility state of the "this item is public" icon kind of sucks. But meh, you really want that state to update correctly.
2019-11-10Reorganize JS and Elm instantiation + more efficient ulist loadingYorhel1-1/+11
The order in which .js files are concatenated is (and always has been) important, so rather than relying on name order I've changed that to an explicit $JS_FILES list in the Makefile. Less convenient, but at least we have more freedom regarding .js file naming and organization now. Rather than encoding the Elm flags as JSON in 'data-' attributes, I've added a system for global page variables (pagevars) where the Elm flags are now stored separately from their HTML tags. This has the advantage of more efficient encoding (no more &quot;s), faster parsing (just a single JSON.parse()), and easier/more efficient modification of the Elm arguments from JS. The pagevars provide a unified way of passing other variables to JS as well, which I've used to deduplicate the list of labels on the new ulist page. That shaves off a good 40 KiB on the page size for a typical listing. Whether all of this actually improves the page loading time, I don't really know. Most of the slowness in Firefox seems to come from simply instantiating many <input time="date"> objects.
2019-11-10ulist: Inline editable votesYorhel1-1/+1
2019-11-10ulist: Add data model for new lists + Perl/Elm for label managementYorhel1-3/+4
Very much experimental. I'm not sure this is even the right model.
2019-10-23Update to Elm 0.19.1Yorhel1-14/+20
This version requires that all .elm files given to 'elm make' export a 'main' function, so we can't pass internal libraries anymore. I didn't feel like maintaining a separate list of entrypoints, lazy workaround: grep for elm files with a definition of 'main'.
2019-10-06Elm: Support arbitrary id types in inputSelect + actually honor the selected ↵Yorhel1-6/+11
option Elm has a bug where the 'selected' attribute is not properly propagated, that's fixed by patching the generated JS. Also moved Ffi.js one level up, as it's important that that file is loaded before any Elm modules are initialized.
2019-10-02v2rw: Convert user preferences formYorhel1-0/+1
And add a small 'formField' function to shrink the Elm form generation code a bit.
2019-09-30Fixups: Build nested Elm modules in prod + only show help message on errorYorhel1-1/+1
2019-09-25v2rw: Add Elm & db_edit framework + Convert doc page editingYorhel1-9/+54
Most of this is copied from v3. I did improve on a few aspects: - db_edit() and db_entry() use VNDB::Schema rather than dynamically querying the DB. This has the minor advantage of a faster startup. - The Elm code generator now writes to multiple files, this avoids the namespace pollution seen in v3's Lib.Gen and makes the dependency graph a bit more lean (i.e. faster incremental builds). - The Elm code generator doesn't update the timestamp of files that haven't been modified. This also speeds up incremental builds, the elm compiler can now skip rebuilding unmodified files. - The Elm API response generator code now uses plain functions rather than code references and all possible responses are now defined in Elm.pm. Turns out most API responses were used from more than a single place, so it makes sense to have them centrally defined. The doc page preview function is also much nicer; I'd like to apply this to all BBCode textareas as well. (Elm.pm itself is ugly as hell though. And we will prolly need some HTML form generation functions in Elm to make that part less verbose)
2019-09-12Add VNDB::Config module and unified conf.pl config fileYorhel1-8/+5
This gets rid of global.pl, config.pl and config3.pl and uses the cleaner config3.pl format for the config file. The config is easily accessible from anywhere by importing the new VNDB::Config module; The global $VNDB::S,O,M,ROOT variables have been removed. Sorry for all the churn...
2019-09-11VNDB::Types: Convert vn_relations and prod_relationsYorhel1-1/+1
2019-09-09spritegen.pl: Move compression to "make prod"Yorhel1-2/+7
I think this is the last one. 'make' in a development environment is now beautifully fast and 'make prod' generates nicely small assets. (arguably we could have an even faster dev setup by not generating an icons.png in the first place, but then we'd need more code to differentiate between dev & prod, which is also a pain) This change does remove the "slow" option that would use the compressed image size in the optimization algorithm, but I hadn't used that option for a while anyway, it takes an hour and only saves about 100 bytes.
2019-09-09JS/Build: Move minification and compression to "make prod"Yorhel1-8/+7
Similar to previous commit.
2019-09-09CSS/Build: Move minification and compression to "make prod"Yorhel1-5/+15
This rather significantly speeds up development builds. Also simplifies skingen.pl and its config a bit. The new compressed files are written to /s/*/style.min.css{,.gz}, it is up to the web server to serve those instead of /s/*/style.css.
2019-07-25v3: Integrate elmgen.pl with lib/VN3/Yorhel1-17/+2
This way individual Perl modules can add stuff to the generated Elm code, without having to edit a central file. That's only used for forms for now, though.
2019-07-25Merge the v3 branch into separate namespace + fix Docker stuff (again)Yorhel1-36/+88
I was getting tired of having to keep two branches up-to-date with the latest developments, so decided to throw v3 into the same branch - just different files (...which will get mostly rewritten again soon). The two versions aren't very different in terms of dependencies, build system and support code, so they can now properly share files. Added a section to the README to avoid confusion. This merge also makes it easier to quickly switch between the different versions, which is handy for development. It's even possible to run both at the same time, but my scripts use the same port so that needs a workaround. And it's amazing how often I break the Docker scripts.
2017-12-09Add Docker configYorhel1-0/+3
2017-11-25Remove broken SQL functions from Makefile + add install instructionsYorhel1-109/+3
2017-07-17Makefile: Ensure static/f directory existsYorhel1-7/+7
Fixes a 'make' on a clean checkout
2016-01-23L10N: Remove all remaining traces of the interface translation featureYorhel1-7/+1
...unless I missed something.
2016-01-17L10N: Intern all Javascript strings and rename main JS fileYorhel1-5/+5
This has been mostly automated.
2015-10-21SQL: Fix editing + func.sql + triggers.sql + autocreate editing funcsYorhel1-2/+5
This changes quite a bit to the way the editing functions work. Because these functions are very repetitive and it's easy to keep things out of sync, I created a script to generate them automatically. I had to rename a few function and table names for consistency to make this work. Since database entries don't have a 'latest' column anymore, and since the order in which tables are updated doesn't have to be fixed, I dropped many of the SQL triggers and replaced them with a edit_committed() function which is called from edit_*_commit() and checks for stuff to be done. Don't forget to run 'make' before importing the update script.
2015-08-10Split script.js into multiple smaller filesYorhel1-1/+1
First part of a Javascript cleanup.
2015-05-11Generate icons.png and associated CSS automaticallyYorhel1-24/+38
It became a bit of a hassle to keep updating that file manually in Gimp. This script performs surprisingly well for our set of icons.
2013-09-14Makefile: Fix dependency of 'make skins'Yorhel1-1/+1
If you don't have any style.css files yet, make won't know what files to create. It does with this shell pattern.
2013-01-05Move api/tags.json.gz to the main domainYorhel1-2/+2
I forgot that the static domain is only intended for files that are never modified. Or at least, not without a URL change. The tags.json.gz doesn't fit into that.
2013-01-04Added daily-generated JSON dump of the tag informationYorhel1-2/+2
This isn't documented yet.
2012-06-04Makefile: Fix typo in sql-import targetYorhel1-1/+1
2012-01-09Added language for UkrainianYorhel1-0/+4
And added an update_2.23.sql file which now also includes the previously added indices. Currently, this update file can be run as often as you want, it doesn't make any noticable changes when you run it on a database that has already been updated. (i.e. I can update the main site without a new release)
2011-12-29Maintain VN search cache for hidden entries as wellYorhel1-1/+6
Required in order to search for hidden entries (obviously :P)
2011-08-22Added new platforms: Android, Web and DB-PGYorhel1-1/+6
+ Fixed makefile I haven't been able to properly test this yet as a bug[1] in PostgreSQL 9.0.4 is preventing me from editing release entries. [1] http://archives.postgresql.org/pgsql-bugs/2011-08/msg00119.php
2011-04-08Generate dbedit/dbdel notifications on character editsYorhel1-1/+7
2011-02-16chardb: Added image to character entriesYorhel1-3/+3
2011-02-13chardb: Added notes file and started implementing the traitsYorhel1-1/+7
2011-02-04Added category field to tags (content/ero/technical)Yorhel1-2/+7
Not very useful at the moment, but will be used to improve several other things.
2011-01-25TUWF: Initial convert from YAWF to TUWFYorhel1-1/+1
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.
2011-01-03SQL: Added tags_vn.ignore column and updated queries to respect thisYorhel1-1/+6
This is the first step in adding support for overruling tag votes by moderators. Also removed some unused options from dbTagStats(); the tag-vote-stats-by-user pages have been removed in the previous VNDB update, which was the only page using these additional options.
2010-12-17Don't allow NULL for rr.minage and use -1 for unknownYorhel1-1/+6
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.
2010-12-14VNDBUtil: Consider "senpai" and "sempai" the same in the VN searchYorhel1-0/+4
2010-11-28ChangeLog update for 2.14 + some minor upgrade fixesYorhel1-1/+1
2010-11-25JS: Split script.js into a separate file for each languageYorhel1-5/+6
This greatly reduces the size of the Javascript file. The compressed size has been reduced with about 9kB, and is now a total of 14kB for en.js. A nice property of this is that more translations can be added without increasing the JS size. While I was at it, I made jsgen.pl also replace mt() function calls in cases where an exact TL string was requested without any additional arguments and/or formatting codes. This helped reduce the compressed size by about 1kB. My aim is to keep *all* the JS code of VNDB smaller than the jQuery core library, as a general "fuck you" towards users of large and bloated JS libraries. We must keep the VNDB page loading times lower than that of other sites, after all!
2010-11-24Makefile: Reverted back to a single .PHONY targetYorhel1-17/+20
Apparently the trick didn't work, and for some reason I only noticed that now.
2010-11-14Makefile: Replaced .PHONY directive with $(phony ..) targetsYorhel1-25/+18
This is somewhat eaiser to read and maintain
2010-11-14SQL: Added WHEN clause to all TRIGGERs for which it was usefulYorhel1-0/+3
This effectively removes compatibility with all PostgreSQL versions below 9.0. The use of the WHEN clause has two major advantages: 1. Performance: Trigger functions aren't executed when they don't need to. 2. Easier and more general trigger functions; as some of the logic has been placed in the trigger definitions now.
2010-11-13Multi::Feed: Added Atom feedsYorhel1-3/+5
TODO: add links to these feeds from the site