generated from alecodes/base-template
feat: add sources form and table
This commit is contained in:
parent
e2a6c92322
commit
baf70e6820
11 changed files with 103 additions and 8 deletions
|
|
@ -3,3 +3,5 @@ POSTGRES_USER=index
|
|||
POSTGRES_PASSWORD=
|
||||
|
||||
DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?sslmode=disable"
|
||||
|
||||
SQLPAGE_WEB_ROOT=app
|
||||
|
|
|
|||
|
|
@ -11,3 +11,5 @@ dev:
|
|||
docker compose up --watch
|
||||
|
||||
dbmate +ARGS: (compose-exec "index dbmate" ARGS)
|
||||
|
||||
migrate: (dbmate "migrate")
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ COPY --from=lovasoa/sqlpage:latest /usr/local/bin/sqlpage /usr/local/bin/sqlpage
|
|||
WORKDIR /app
|
||||
|
||||
ENV SQLPAGE_WEB_ROOT=/app
|
||||
ENV SQLPAGE_CONFIGURATION_DIRECTORY=/etc/sqlpage
|
||||
ENV SQLPAGE_CONFIGURATION_DIRECTORY=/app/sqlpage
|
||||
|
||||
RUN addgroup --gid 1000 --system index_user && \
|
||||
adduser --uid 1000 --system --no-create-home --ingroup index_user index_user && \
|
||||
|
|
|
|||
|
|
@ -17,3 +17,8 @@ services:
|
|||
db:
|
||||
image: postgres:17
|
||||
env_file: ../.env
|
||||
volumes:
|
||||
- db_data:/var/lib/postgresql/data
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
|
|
|
|||
1
src/app/index.sql
Normal file
1
src/app/index.sql
Normal file
|
|
@ -0,0 +1 @@
|
|||
SELECT 'dynamic' AS component, sqlpage.read_file_as_text('../shared/shell.json') AS properties;
|
||||
7
src/app/sources/create.sql
Normal file
7
src/app/sources/create.sql
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
INSERT INTO
|
||||
public.sources(name, uid, uri)
|
||||
VALUES
|
||||
(:name, :uid, :uri)
|
||||
RETURNING 'redirect' AS component, 'index.sql' AS link
|
||||
;
|
||||
|
||||
45
src/app/sources/index.sql
Normal file
45
src/app/sources/index.sql
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
SELECT
|
||||
'dynamic' AS component,
|
||||
sqlpage.read_file_as_text('../shared/shell.json') AS properties;
|
||||
|
||||
-- ╭─────────────────────────────────────────────────────────╮
|
||||
-- │ Form │
|
||||
-- ╰─────────────────────────────────────────────────────────╯
|
||||
|
||||
|
||||
SELECT
|
||||
'form' AS component,
|
||||
'create.sql' AS action,
|
||||
'Save' AS validate,
|
||||
'Sources' AS title;
|
||||
|
||||
SELECT
|
||||
'name' AS name,
|
||||
'Name' AS label,
|
||||
8 AS width,
|
||||
TRUE AS required;
|
||||
|
||||
SELECT
|
||||
'uid' AS name,
|
||||
'Identifier' AS label,
|
||||
4 AS width,
|
||||
5 AS maxlength,
|
||||
1 AS minlength,
|
||||
TRUE AS required;
|
||||
|
||||
SELECT
|
||||
'uri' AS name,
|
||||
'URI' AS label;
|
||||
|
||||
-- ╭─────────────────────────────────────────────────────────╮
|
||||
-- │ Table list │
|
||||
-- ╰─────────────────────────────────────────────────────────╯
|
||||
SELECT
|
||||
'table' AS component,
|
||||
TRUE as sort,
|
||||
TRUE as search;
|
||||
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
public.sources;
|
||||
|
|
@ -3,7 +3,7 @@ CREATE TABLE public.sources (
|
|||
id serial PRIMARY KEY,
|
||||
name character varying(20) NOT NULL,
|
||||
uid character varying(8) NOT NULL,
|
||||
uri character varying NOT NULL,
|
||||
uri character varying,
|
||||
created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||
updated_at timestamp with time zone,
|
||||
deleted_at timestamp with time zone
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
SELECT 'list' AS component,
|
||||
'Popular websites TESTOOO' AS title;
|
||||
|
||||
SELECT 'Hello' AS title,
|
||||
'world' AS description,
|
||||
'https://wikipedia.org' AS link;
|
||||
22
src/shared/shell.json
Normal file
22
src/shared/shell.json
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"component": "shell",
|
||||
"title": "Index",
|
||||
"link": "/",
|
||||
"layout": "boxed",
|
||||
"sidebar": true,
|
||||
"theme": "dark",
|
||||
"menu_item": [
|
||||
{ "link": "index.sql", "title": "Home" },
|
||||
{
|
||||
"title": "Dependencies",
|
||||
"icon": "brand-stackshare",
|
||||
"submenu": [
|
||||
{
|
||||
"link": "/sources/index.sql",
|
||||
"title": "Sources",
|
||||
"icon": "external-link"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
17
src/sqlpage/templates/pagination.handlebars
Normal file
17
src/sqlpage/templates/pagination.handlebars
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<nav aria-label="Page navigation example">
|
||||
<ul class="pagination pagination-sm justify-content-center">
|
||||
<li class="page-item">
|
||||
<a class="page-link"
|
||||
href="?current_page={{ minus (default current_page 1) 1 }}">{{ icon_img "caret-left" }}</a>
|
||||
</li>
|
||||
|
||||
<li class="page-item disabled">
|
||||
<a class="page-link" href="#">{{ default current_page 1 }}</a>
|
||||
</li>
|
||||
|
||||
<li class="page-item">
|
||||
<a class="page-link"
|
||||
href="?current_page={{ plus (default current_page 1) 1 }}">{{ icon_img "caret-right" }}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
Loading…
Add table
Add a link
Reference in a new issue