Compare commits

..

2 commits

7 changed files with 72 additions and 28 deletions

View file

@ -53,7 +53,7 @@ SET
:date, :date,
:time, :time,
:og_desambiguator, :og_desambiguator,
$extra_data :: jsonb ->> 'lg_uid' :lg_id
); );
INSERT INTO INSERT INTO
@ -71,5 +71,7 @@ VALUES
:text, :text,
:lg_id :: int, :lg_id :: int,
:date :: date + :time :: time :date :: date + :time :: time
) RETURNING 'redirect' AS component, )
RETURNING
'redirect' AS component,
$return_link AS link; $return_link AS link;

View file

@ -4,7 +4,6 @@ SELECT
SELECT SELECT
'form' AS component, 'form' AS component,
'entries/search.sql' AS "action",
'Entries' AS title, 'Entries' AS title,
'' AS validate, '' AS validate,
'GET' AS method; 'GET' AS method;
@ -13,6 +12,7 @@ SELECT
'query' AS name, 'query' AS name,
'' AS label, '' AS label,
'Search query...' AS placeholder, 'Search query...' AS placeholder,
$query as value,
10 AS width, 10 AS width,
TRUE AS autofocus; TRUE AS autofocus;
@ -20,10 +20,11 @@ SELECT
'search' AS name, 'search' AS name,
'' AS label, '' AS label,
'Search' AS value, 'Search' AS value,
2 AS width,
'btn btn-info' AS class, 'btn btn-info' AS class,
2 AS width,
'submit' AS "type"; 'submit' AS "type";
SELECT SELECT
'new' AS name, 'new' AS name,
'' AS label, '' AS label,
@ -47,7 +48,9 @@ SELECT
text AS description text AS description
FROM FROM
public.entries public.entries
WHERE
($query IS NULL OR search_vector @@ to_tsquery('es_en', $query))
ORDER BY ORDER BY
created_at created_at
LIMIT LIMIT
10; 30;

View file

@ -16,7 +16,6 @@ SELECT
'Source' AS label, 'Source' AS label,
'select' AS TYPE, 'select' AS TYPE,
TRUE AS required, TRUE AS required,
TRUE AS searchable,
'Select...' AS empty_option, 'Select...' AS empty_option,
( (
SELECT SELECT

View file

@ -1,7 +1,7 @@
INSERT INTO INSERT INTO
public.sources(name, uid, uri) public.sources(name, uid, uri, desambiguator_type_id)
VALUES VALUES
(:name, :uid, :uri) (:name, :uid, :uri, :desambiguator_type_id :: int)
RETURNING 'redirect' AS component, 'index.sql' AS link RETURNING
; 'redirect' AS component,
'index.sql' AS link;

View file

@ -25,6 +25,19 @@ SELECT
1 AS minlength, 1 AS minlength,
TRUE AS required; TRUE AS required;
SELECT
'desambiguator_type_id' AS name,
'Deseambiguator Type' AS label,
'select' AS TYPE,
TRUE AS required,
'Select...' AS empty_option,
(
SELECT
jsonb_agg(jsonb_build_object('label', name, 'value', id))
FROM
public.desambiguator_types
) AS options;
SELECT SELECT
'uri' AS name, 'uri' AS name,
'URI' AS label; 'URI' AS label;
@ -38,6 +51,12 @@ SELECT
TRUE AS search; TRUE AS search;
SELECT SELECT
* src.id,
src.name,
src.uid,
dts.name AS "Deseambiguator Type",
src.uri,
to_char(src.created_at, 'YYYY-MM-DD HH12:MI:SS TZ') AS "Created At"
FROM FROM
public.sources; public.sources AS src
INNER JOIN public.desambiguator_types AS dts ON src.desambiguator_type_id = dts.id;

View file

@ -0,0 +1,27 @@
-- migrate:up
CREATE TEXT SEARCH CONFIGURATION es_en (COPY = pg_catalog.english);
ALTER TEXT SEARCH CONFIGURATION es_en ALTER MAPPING FOR asciiword,
asciihword,
hword_asciipart,
word,
hword,
hword_part WITH spanish_stem,
english_stem;
ALTER TABLE
public.entries
ADD
COLUMN search_vector tsvector GENERATED ALWAYS AS (
to_tsvector(
'es_en',
coalesce(uid, '') || ' ' || coalesce(text, '')
)
) STORED;
CREATE INDEX entry_full_text_search ON public.entries USING gin (search_vector);
-- migrate:down
DROP INDEX IF EXISTS entry_full_text_search;
DROP TEXT SEARCH CONFIGURATION IF EXISTS es_en;

View file

@ -7,22 +7,16 @@
"theme": "dark", "theme": "dark",
"css": "/style.css", "css": "/style.css",
"menu_item": [ "menu_item": [
{ "link": "index.sql", "title": "Home" }, { "icon": "home", "link": "/", "title": "Home" },
{ {
"title": "Dependencies", "link": "/logic_groups/index.sql",
"icon": "brand-stackshare", "title": "Logic Groups",
"submenu": [ "icon": "folder"
{ },
"link": "/logic_groups/index.sql", {
"title": "Logic Groups", "link": "/sources/index.sql",
"icon": "folder" "title": "Sources",
}, "icon": "external-link"
{
"link": "/sources/index.sql",
"title": "Sources",
"icon": "external-link"
}
]
} }
] ]
} }