Include locale in the JSON response for the packages page
Signed-off-by: Christopher Baines <mail@cbaines.net>
This commit is contained in:
parent
0b4825427d
commit
5708b81002
4 changed files with 40 additions and 20 deletions
|
|
@ -107,7 +107,8 @@
|
||||||
(define (select-package-metadata-by-revision-name-and-version
|
(define (select-package-metadata-by-revision-name-and-version
|
||||||
conn revision-commit-hash name version locale)
|
conn revision-commit-hash name version locale)
|
||||||
(define query "
|
(define query "
|
||||||
SELECT translated_package_synopsis.synopsis, translated_package_descriptions.description,
|
SELECT translated_package_synopsis.synopsis, translated_package_synopsis.locale,
|
||||||
|
translated_package_descriptions.description, translated_package_descriptions.locale,
|
||||||
package_metadata.home_page,
|
package_metadata.home_page,
|
||||||
locations.file, locations.line, locations.column_number,
|
locations.file, locations.line, locations.column_number,
|
||||||
(SELECT JSON_AGG((license_data.*))
|
(SELECT JSON_AGG((license_data.*))
|
||||||
|
|
@ -125,7 +126,8 @@ INNER JOIN packages
|
||||||
LEFT OUTER JOIN locations
|
LEFT OUTER JOIN locations
|
||||||
ON package_metadata.location_id = locations.id
|
ON package_metadata.location_id = locations.id
|
||||||
INNER JOIN (
|
INNER JOIN (
|
||||||
SELECT DISTINCT ON (package_description_sets.id) package_description_sets.id, package_descriptions.description
|
SELECT DISTINCT ON (package_description_sets.id) package_description_sets.id,
|
||||||
|
package_descriptions.description, package_descriptions.locale
|
||||||
FROM package_descriptions
|
FROM package_descriptions
|
||||||
INNER JOIN package_description_sets
|
INNER JOIN package_description_sets
|
||||||
ON package_descriptions.id = ANY (package_description_sets.description_ids)
|
ON package_descriptions.id = ANY (package_description_sets.description_ids)
|
||||||
|
|
@ -143,7 +145,8 @@ INNER JOIN (
|
||||||
) AS translated_package_descriptions
|
) AS translated_package_descriptions
|
||||||
ON package_metadata.package_description_set_id = translated_package_descriptions.id
|
ON package_metadata.package_description_set_id = translated_package_descriptions.id
|
||||||
INNER JOIN (
|
INNER JOIN (
|
||||||
SELECT DISTINCT ON (package_synopsis_sets.id) package_synopsis_sets.id, package_synopsis.synopsis
|
SELECT DISTINCT ON (package_synopsis_sets.id) package_synopsis_sets.id,
|
||||||
|
package_synopsis.synopsis, package_synopsis.locale
|
||||||
FROM package_synopsis
|
FROM package_synopsis
|
||||||
INNER JOIN package_synopsis_sets
|
INNER JOIN package_synopsis_sets
|
||||||
ON package_synopsis.id = ANY (package_synopsis_sets.synopsis_ids)
|
ON package_synopsis.id = ANY (package_synopsis_sets.synopsis_ids)
|
||||||
|
|
@ -175,9 +178,9 @@ WHERE packages.id IN (
|
||||||
|
|
||||||
(map
|
(map
|
||||||
(match-lambda
|
(match-lambda
|
||||||
((synopsis description home-page file line column-number
|
((synopsis synopsis-locale description description-locale home-page file line column-number
|
||||||
license-json)
|
license-json)
|
||||||
(list synopsis description home-page file line column-number
|
(list synopsis synopsis-locale description description-locale home-page file line column-number
|
||||||
(if (string-null? license-json)
|
(if (string-null? license-json)
|
||||||
#()
|
#()
|
||||||
(json-string->scm license-json)))))
|
(json-string->scm license-json)))))
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,8 @@
|
||||||
(string-append "
|
(string-append "
|
||||||
WITH data AS (
|
WITH data AS (
|
||||||
SELECT packages.name, packages.version, translated_package_synopsis.synopsis,
|
SELECT packages.name, packages.version, translated_package_synopsis.synopsis,
|
||||||
translated_package_descriptions.description, package_metadata.home_page,
|
translated_package_synopsis.locale, translated_package_descriptions.description,
|
||||||
|
translated_package_descriptions.locale, package_metadata.home_page,
|
||||||
locations.file, locations.line, locations.column_number,
|
locations.file, locations.line, locations.column_number,
|
||||||
(SELECT JSON_AGG((license_data.*))
|
(SELECT JSON_AGG((license_data.*))
|
||||||
FROM (
|
FROM (
|
||||||
|
|
@ -77,7 +78,7 @@ WITH data AS (
|
||||||
ON package_metadata.location_id = locations.id
|
ON package_metadata.location_id = locations.id
|
||||||
INNER JOIN (
|
INNER JOIN (
|
||||||
SELECT DISTINCT ON (package_synopsis_sets.id) package_synopsis_sets.id,
|
SELECT DISTINCT ON (package_synopsis_sets.id) package_synopsis_sets.id,
|
||||||
package_synopsis.synopsis
|
package_synopsis.synopsis, package_synopsis.locale
|
||||||
FROM package_synopsis_sets
|
FROM package_synopsis_sets
|
||||||
INNER JOIN package_synopsis
|
INNER JOIN package_synopsis
|
||||||
ON package_synopsis.id = ANY (package_synopsis_sets.synopsis_ids)
|
ON package_synopsis.id = ANY (package_synopsis_sets.synopsis_ids)
|
||||||
|
|
@ -90,7 +91,7 @@ WITH data AS (
|
||||||
ON package_metadata.package_synopsis_set_id = translated_package_synopsis.id
|
ON package_metadata.package_synopsis_set_id = translated_package_synopsis.id
|
||||||
INNER JOIN (
|
INNER JOIN (
|
||||||
SELECT DISTINCT ON (package_description_sets.id) package_description_sets.id,
|
SELECT DISTINCT ON (package_description_sets.id) package_description_sets.id,
|
||||||
package_descriptions.description
|
package_descriptions.description, package_descriptions.locale
|
||||||
FROM package_description_sets
|
FROM package_description_sets
|
||||||
INNER JOIN package_descriptions
|
INNER JOIN package_descriptions
|
||||||
ON package_descriptions.id = ANY (package_description_sets.description_ids)
|
ON package_descriptions.id = ANY (package_description_sets.description_ids)
|
||||||
|
|
@ -142,7 +143,9 @@ WHERE data.name IN (SELECT name FROM package_names);"))
|
||||||
SELECT packages.name,
|
SELECT packages.name,
|
||||||
packages.version,
|
packages.version,
|
||||||
translated_package_synopsis.synopsis,
|
translated_package_synopsis.synopsis,
|
||||||
|
translated_package_synopsis.locale,
|
||||||
translated_package_descriptions.description,
|
translated_package_descriptions.description,
|
||||||
|
translated_package_descriptions.locale,
|
||||||
package_metadata.home_page,
|
package_metadata.home_page,
|
||||||
locations.file, locations.line, locations.column_number,
|
locations.file, locations.line, locations.column_number,
|
||||||
(SELECT JSON_AGG((license_data.*))
|
(SELECT JSON_AGG((license_data.*))
|
||||||
|
|
@ -161,7 +164,7 @@ LEFT OUTER JOIN locations
|
||||||
ON package_metadata.location_id = locations.id
|
ON package_metadata.location_id = locations.id
|
||||||
INNER JOIN (
|
INNER JOIN (
|
||||||
SELECT DISTINCT ON (package_synopsis_sets.id) package_synopsis_sets.id,
|
SELECT DISTINCT ON (package_synopsis_sets.id) package_synopsis_sets.id,
|
||||||
package_synopsis.synopsis
|
package_synopsis.synopsis, package_synopsis.locale
|
||||||
FROM package_synopsis_sets
|
FROM package_synopsis_sets
|
||||||
INNER JOIN package_synopsis
|
INNER JOIN package_synopsis
|
||||||
ON package_synopsis.id = ANY (package_synopsis_sets.synopsis_ids)
|
ON package_synopsis.id = ANY (package_synopsis_sets.synopsis_ids)
|
||||||
|
|
@ -174,7 +177,7 @@ INNER JOIN (
|
||||||
ON package_metadata.package_synopsis_set_id = translated_package_synopsis.id
|
ON package_metadata.package_synopsis_set_id = translated_package_synopsis.id
|
||||||
INNER JOIN (
|
INNER JOIN (
|
||||||
SELECT DISTINCT ON (package_description_sets.id) package_description_sets.id,
|
SELECT DISTINCT ON (package_description_sets.id) package_description_sets.id,
|
||||||
package_descriptions.description
|
package_descriptions.description, package_descriptions.locale
|
||||||
FROM package_description_sets
|
FROM package_description_sets
|
||||||
INNER JOIN package_descriptions
|
INNER JOIN package_descriptions
|
||||||
ON package_descriptions.id = ANY (package_description_sets.description_ids)
|
ON package_descriptions.id = ANY (package_description_sets.description_ids)
|
||||||
|
|
|
||||||
|
|
@ -312,13 +312,14 @@
|
||||||
commit-hash)))
|
commit-hash)))
|
||||||
(_ #f)))
|
(_ #f)))
|
||||||
|
|
||||||
(define (texinfo->variants-alist s)
|
(define (texinfo->variants-alist s locale)
|
||||||
(let ((stexi (texi-fragment->stexi s)))
|
(let ((stexi (texi-fragment->stexi s)))
|
||||||
`((source . ,s)
|
`((source . ,s)
|
||||||
(html . ,(with-output-to-string
|
(html . ,(with-output-to-string
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(sxml->html (stexi->shtml stexi)))))
|
(sxml->html (stexi->shtml stexi)))))
|
||||||
(plain . ,(stexi->plain-text stexi)))))
|
(plain . ,(stexi->plain-text stexi))
|
||||||
|
(locale . ,locale))))
|
||||||
|
|
||||||
(define (render-unknown-revision mime-types conn commit-hash)
|
(define (render-unknown-revision mime-types conn commit-hash)
|
||||||
(case (most-appropriate-mime-type
|
(case (most-appropriate-mime-type
|
||||||
|
|
@ -597,7 +598,7 @@
|
||||||
(packages
|
(packages
|
||||||
. ,(list->vector
|
. ,(list->vector
|
||||||
(map (match-lambda
|
(map (match-lambda
|
||||||
((name version synopsis description home-page
|
((name version synopsis synopsis-locale description description-locale home-page
|
||||||
location-file location-line
|
location-file location-line
|
||||||
location-column-number licenses)
|
location-column-number licenses)
|
||||||
`((name . ,name)
|
`((name . ,name)
|
||||||
|
|
@ -606,11 +607,11 @@
|
||||||
'())
|
'())
|
||||||
,@(if (member "synopsis" fields)
|
,@(if (member "synopsis" fields)
|
||||||
`((synopsis
|
`((synopsis
|
||||||
. ,(texinfo->variants-alist synopsis)))
|
. ,(texinfo->variants-alist synopsis synopsis-locale)))
|
||||||
'())
|
'())
|
||||||
,@(if (member "description" fields)
|
,@(if (member "description" fields)
|
||||||
`((description
|
`((description
|
||||||
. ,(texinfo->variants-alist description)))
|
. ,(texinfo->variants-alist description description-locale)))
|
||||||
'())
|
'())
|
||||||
,@(if (member "home-page" fields)
|
,@(if (member "home-page" fields)
|
||||||
`((home-page . ,home-page))
|
`((home-page . ,home-page))
|
||||||
|
|
@ -737,9 +738,10 @@
|
||||||
`((name . ,name)
|
`((name . ,name)
|
||||||
(version . ,version)
|
(version . ,version)
|
||||||
,@(match metadata
|
,@(match metadata
|
||||||
(((synopsis description home-page))
|
(((synopsis synopsis-locale description description-locale home-page file line column-number
|
||||||
`((synopsis . ,synopsis)
|
licenses))
|
||||||
(description . ,description)
|
`((synopsis . ,(texinfo->variants-alist synopsis synopsis-locale))
|
||||||
|
(description . ,(texinfo->variants-alist description description-locale))
|
||||||
(home-page . ,home-page))))
|
(home-page . ,home-page))))
|
||||||
(derivations . ,(list->vector
|
(derivations . ,(list->vector
|
||||||
(map (match-lambda
|
(map (match-lambda
|
||||||
|
|
|
||||||
|
|
@ -199,6 +199,18 @@
|
||||||
(button (@ (type "submit")
|
(button (@ (type "submit")
|
||||||
(class "btn btn-lg btn-primary"))
|
(class "btn btn-lg btn-primary"))
|
||||||
"Update results")))))))
|
"Update results")))))))
|
||||||
|
(div
|
||||||
|
(@ (class "row"))
|
||||||
|
(div
|
||||||
|
(@ (class "col-sm-12"))
|
||||||
|
(a (@ (class "btn btn-default btn-lg pull-right")
|
||||||
|
(href ,(let ((query-params
|
||||||
|
(query-parameters->string query-parameters)))
|
||||||
|
(string-append header-link "/package/" name "/" version ".json"
|
||||||
|
(if (string-null? query-params)
|
||||||
|
""
|
||||||
|
(string-append "?" query-params))))))
|
||||||
|
"View JSON")))
|
||||||
(div
|
(div
|
||||||
(@ (class "row"))
|
(@ (class "row"))
|
||||||
(div
|
(div
|
||||||
|
|
@ -215,7 +227,7 @@
|
||||||
(div
|
(div
|
||||||
(@ (class "col-sm-12"))
|
(@ (class "col-sm-12"))
|
||||||
,(match package-metadata
|
,(match package-metadata
|
||||||
(((synopsis description home-page file line column-number
|
(((synopsis synopsis-locale description description-locale home-page file line column-number
|
||||||
licenses))
|
licenses))
|
||||||
`(dl
|
`(dl
|
||||||
(@ (class "dl-horizontal"))
|
(@ (class "dl-horizontal"))
|
||||||
|
|
@ -620,7 +632,7 @@
|
||||||
,@(let ((fields (assq-ref query-parameters 'field)))
|
,@(let ((fields (assq-ref query-parameters 'field)))
|
||||||
(map
|
(map
|
||||||
(match-lambda
|
(match-lambda
|
||||||
((name version synopsis description home-page
|
((name version synopsis _ description _ home-page
|
||||||
location-file location-line
|
location-file location-line
|
||||||
location-column-number licenses)
|
location-column-number licenses)
|
||||||
`(tr
|
`(tr
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue