Commit graph

783 commits

Author SHA1 Message Date
9f94e3278e Improve the query-parameters module for checkbox support 2019-05-19 21:26:14 +01:00
78fb3fafc0 Add type support to form-horizontal-control
Particularly to support checkboxes.
2019-05-19 21:24:50 +01:00
d4b23f81c1 Cache the pages which don't really change for a day 2019-05-18 20:25:34 +01:00
0ca5748c0f Enable passing extra headers for JSON responses
Mostly to enable passing the cache-control header.
2019-05-18 20:25:05 +01:00
03faff5da0 Remove the HTTP headers from the html module
Given that the headers may be the same, regardless whether it's HTML or JSON
being sent in the body of the response, I think it makes more sense to handle
the headers in the controller.
2019-05-18 20:08:34 +01:00
ed19764bc3 Show the branches for a revision 2019-05-18 12:36:03 +01:00
eb80905f0f Add git-branches-with-repository-details-for-commit
To get git repository and git branch information suitable for the revision
page.
2019-05-18 12:35:17 +01:00
5124fbc471 Add a utility to group list values
This is useful for some queries with duplicated parts of the results.
2019-05-18 12:34:37 +01:00
48070e4a99 Fix the table headers on the Branches page
Date and Commit were the wrong way around.
2019-05-18 12:34:18 +01:00
f04690f38c Add a View JSON button to the packages page 2019-05-16 22:44:07 +01:00
dfb1da3197 Fix query-parameters->string for multi-valued parameters 2019-05-16 22:43:51 +01:00
83012b101b Allow specifying the fields on the packages page
This is mostly for the JSON output, as it allows much more information to be
included.
2019-05-16 22:28:16 +01:00
d52f5b530f Add support to multi-value fields with defaults
To the query parameters module.
2019-05-16 22:27:47 +01:00
26cdf5568f Fix the package-metadata tests 2019-05-16 00:25:45 +01:00
e6effe7556 Fix how email dates are inserted in to PostgreSQL
Previously, the timezone was stripped off, so the timestamps were off. This
commit changes the code to use a Unix timestamp, which avoids this issue.
2019-05-16 00:03:06 +01:00
16799a34a9 Store license information for packages
And display this on the package page.

This uses a couple of new tables, and an additional field in the
package_metadata table.

Currently, the order of the licenses in the package definition isn't stored,
as I'm not sure the order in the list is significant.
2019-05-15 08:05:14 +01:00
28c2d46081 Fix type issues with the location ids
On one code path, they were handled as numbers, whereas elsewhere they were
handled as strings. This led to the package-metadata code trying to insert
duplicate entries.

Instead, just handle them as strings everywhere.
2019-05-14 07:55:17 +01:00
721d21ed4d Order the all-git-repositories results
So at least they're stable.
2019-05-13 21:10:20 +01:00
7341d17254 Store and display the location of packages
Store the location a package can be found at, and display this on the package
page.

If available, link off to the git repository containing the package.
2019-05-13 21:07:48 +01:00
9aaab6b751 Add a textual search to the packages page 2019-05-12 21:17:08 +01:00
b151d8bb78 Add a function for making query parameters mutually exclusive
This allows building more complicated forms, where some of the query
parameters don't work together.
2019-05-12 21:16:24 +01:00
4a5f42ee52 Add a function for searching for packages 2019-05-12 21:16:10 +01:00
0bdc555ff8 Add some basic pagination to the packages page
Lower powered devices will have problems displaying all ~9000+ packages, so
return a smaller number by default.
2019-05-12 20:45:33 +01:00
8eac26b17d Remove the sha1_hash from the package_metadata table
I'm thinking about adding more fields to this table, and the sha1_hash values
will make this tricker.

Therefore, remove the value, and adjust the existing code to cope. This commit
also adds a new test which coveres some of the changed functionality.
2019-05-12 18:08:17 +01:00
0ab1c71722 Add a mock-inferior module
This to help test code which uses the (guix inferior) module.
2019-05-12 17:32:37 +01:00
d212682061 Add a (tests driver) module
Using the test driver from build-aux/test-driver.scm, as this shows the test
errors when tests fail.
2019-05-12 17:32:21 +01:00
de76f89cb3 Add initial JSON output for the package page 2019-05-12 10:11:14 +01:00
e64fc090cd Add a JSON variant of the packages page 2019-05-12 09:56:24 +01:00
b3f2aab8c9 Add a JSON variant of the revision page 2019-05-12 09:51:28 +01:00
bd8b9f951c Fix extension handling a bit more
Previously, it was spliting versions up for the package pages. To stop this,
now it just matches the extensions it knows about (currently .html and .json).
2019-05-12 09:32:58 +01:00
b15c8f706e Fix a request->path-components-and-mime-type bug
The first value should always be a list.
2019-05-11 23:02:54 +01:00
658a1a20b2 Improve the content negotiation handling in general
Previously, the routing layer handled the content negotiation, and the Accept
header was ignored. Now, the extension if one is provided in the URL is still
used, and more widely than before, but the Accept header is also taken in to
account.

This all now happens before the routing decisions are made, so the routing is
now pretty much extension independant (with the exception of the
/gnu/store/... routes).
2019-05-11 22:56:25 +01:00
640fb8a2ad Update the derivation comparison implementation
This adds more query parameter validation, and uses form-horizontal-control to
neaten up the view code.
2019-05-11 20:38:16 +01:00
512a583fa7 Add support for select elements to form-horizontal-control 2019-05-11 20:36:37 +01:00
94e321ec38 Add query-parameters->string 2019-05-11 20:36:18 +01:00
3d004f8597 Add #:required and #:multi-value support to parse-query-parameters 2019-05-11 20:34:53 +01:00
bec838caf9 Add ("") to parse-query-string
Otherwise a URL like https://example.com? will cause this to fail.
2019-05-11 20:33:49 +01:00
a81a016380 Add a guix-commit-exists? function 2019-05-11 20:33:35 +01:00
3611f7b122 Add some options to the branch page
Add handling for some query parameters to the branch page. This takes
advantage of the improvements for building forms and query parameter
validation.
2019-05-11 16:49:18 +01:00
a7053846f1 Add a form-horizontal-control function to better handle forms
Each input is pretty complex, and this function helps handle that complexity.
2019-05-11 16:48:24 +01:00
53665daee7 Add some word handling utilities
These are useful for constructing HTML ids and similar things.
2019-05-11 16:47:44 +01:00
f2e123b7ac Add a new query-parameters module
The query parameters feed in to the results shown, but also forms on
pages. Validation is important to avoid errors and security issues, but it's
also important to provide appropriate feedback to the user.

This module provides some utilities and structure around handling query
parameters.
2019-05-11 16:45:59 +01:00
b29178ff14 Don't enqueue jobs when branches are deleted 2019-05-05 20:23:55 +01:00
5028dfe706 Start to handle information about Git branches
Add some new pages /branches and /branch/... as well as a new git_branches
table. Also extend the email processing to enter the branch information in to
the database.
2019-05-05 20:06:28 +01:00
ce4c3c6ed3 Switch to storing Git repositories in a table
Rather than just storing the URL in the guix_revisions and
load_new_guix_revision_jobs tables. This will help when storing more
information like tags and branches in the future.
2019-05-05 14:36:52 +01:00
051962b54d Add a with-postgresql-transaction procedure
To help with running tests.
2019-05-05 13:35:17 +01:00
a171287f27 Try harder to handle errors when loading new revisions
If the repl enters a bad state, attempt to exit, and catch failures in the
parent process, and rollback the open transaction.
2019-05-01 09:26:03 +01:00
24f234f6d8 Fix "More information" link for target packages
On the packages comparison page.
2019-04-21 11:02:55 +01:00
7a34570ef8 Add missing (guix-data-service database) import 2019-04-17 08:28:36 +01:00
7c018a8c32 Add sqitch to guix-dev.scm
As it's used to manage the database schema.
2019-04-16 22:32:45 +01:00