Skip to content

Commit 23c626e

Browse files
committed
move generated frontend to the backend, delete frontend generation
1 parent 44d6c4e commit 23c626e

49 files changed

Lines changed: 595 additions & 1213 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,10 @@ updates:
1313
"GitHub Actions updates":
1414
patterns:
1515
- "*"
16-
- package-ecosystem: "docker"
17-
directory: "/"
18-
schedule:
19-
interval: "monthly"
2016
- package-ecosystem: "gomod"
2117
directory: "/backend"
2218
schedule:
2319
interval: "monthly"
2420
groups:
2521
"Go modules updates":
2622
dependency-type: "production"
27-
"Go modules updates for tests":
28-
dependency-type: "development"
29-
- package-ecosystem: "npm"
30-
directory: "/frontend"
31-
schedule:
32-
interval: "monthly"
33-
groups:
34-
"NPM modules updates":
35-
dependency-type: "production"
36-
"NPM development modules updates":
37-
dependency-type: "development"

Dockerfile

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,6 @@ RUN \
2222
echo "version=$version" && \
2323
go build -o ukeeper-readability -ldflags "-X main.revision=${version} -s -w" .
2424

25-
FROM --platform=$BUILDPLATFORM node:22 as build-frontend
26-
27-
ADD frontend /build
28-
WORKDIR /build
29-
30-
RUN \
31-
npm i --quiet -g gulp && \
32-
npm i --quiet && \
33-
gulp build
34-
3525
# Run
3626
FROM umputun/baseimage:app-latest
3727

@@ -42,7 +32,7 @@ LABEL org.opencontainers.image.source="https://github.com/ukeeper/ukeeper-readab
4232
RUN apk add --update ca-certificates && update-ca-certificates
4333

4434
COPY --from=build-backend /build/backend/ukeeper-readability /srv/
45-
COPY --from=build-frontend /build/public /srv/web
35+
ADD ./backend/web /srv/web
4636

4737
RUN chown -R app:app /srv
4838
USER app

backend/web/add/index.html

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
<!DOCTYPE html>
2+
<html lang="ru">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
7+
<title>Добавление правила — uReadability</title>
8+
9+
<script>
10+
var login = localStorage.getItem('login'),
11+
pass = localStorage.getItem('password');
12+
13+
if (! (login && pass)) {
14+
location.href = '/login/?back=' + location.href;
15+
}
16+
</script>
17+
18+
<link rel="shortcut icon" type="image/png" href="/files/favicon.png">
19+
20+
<link rel="stylesheet" href="/css/main.css">
21+
22+
<script src="https://code.jquery.com/jquery-4.0.0-beta.min.js"></script>
23+
24+
<script src="/js/main.js"></script>
25+
</head>
26+
<body class="page">
27+
28+
<div class="header wrapper page__header">
29+
<a href="/" class="header__title link">uReadability</a>
30+
<ul class="menu header__menu">
31+
<li class="menu__item menu__item_right"><a href="#logout" id="logout" class="link">Выйти</a></li>
32+
</ul>
33+
</div>
34+
35+
<div class="wrapper">
36+
<div class="rule form page__rule" id="rule">
37+
<div class="row rule__row">
38+
<div class="row__col rule__col">
39+
<div class="form__tip">Домен:</div>
40+
<input type="text" class="form__input rule__domain">
41+
</div>
42+
<div class="row__col rule__col">
43+
<div class="form__tip">Автор:</div>
44+
<input type="text" class="form__input rule__author">
45+
</div>
46+
</div>
47+
<div class="row rule__row">
48+
<div class="row__col rule__col">
49+
<div class="form__tip">Контент:</div>
50+
<textarea class="form__input form__input_big rule__content"></textarea>
51+
</div>
52+
<div class="row__col rule__col">
53+
<div class="form__tip">Совпадения по фрагменту URL (по одному в строке):</div>
54+
<textarea class="form__input form__input_big rule__match-urls"></textarea>
55+
</div>
56+
</div>
57+
<div class="row rule__row">
58+
<div class="row__col rule__col">
59+
<div class="form__tip">Исключения (по одному в строке):</div>
60+
<textarea class="form__input form__input_big rule__excludes"></textarea>
61+
</div>
62+
<div class="row__col rule__col">
63+
<div class="form__tip">Тестовые URL:</div>
64+
<textarea class="form__input form__input_big rule__test-urls"></textarea>
65+
<input type="button" class="form__button rule__button-show" value="Показать превью">
66+
<div class="form__button-tip form__button-tip_error rule__tip-error"></div>
67+
</div>
68+
</div>
69+
<input type="button" class="form__button rule__button-save" value="Сохранить">
70+
71+
<div class="form__loader form__loader_hidden"></div>
72+
</div>
73+
<div class="preview" id="preview">
74+
<div class="preview__tip">Название:</div>
75+
<div class="preview__title preview__data"></div>
76+
<div class="preview__tip">Анонс:</div>
77+
<div class="preview__excerpt preview__data"></div>
78+
<div class="preview__tip">Полный контент с тегами:</div>
79+
<div class="preview__rich-content preview__data"></div>
80+
<div class="preview__tip">Текстовый контент:</div>
81+
<div class="preview__content preview__data"></div>
82+
</div>
83+
</div>
84+
85+
<div class="footer wrapper page__footer">
86+
<a href="#" class="link footer__copyright">uReadability</a>, <script>document.write((new Date()).getFullYear().toString());</script>
87+
</div>
88+
</body>
89+
</html>
Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -287,21 +287,6 @@
287287
.rule__tip-error {
288288
text-align: center;
289289
}
290-
291-
.link, .preview__data a {
292-
border-bottom: 1px solid rgba(0, 96, 160, 0.2);
293-
color: #0060a0;
294-
text-decoration: none;
295-
transition: all 0.5s;
296-
outline: none;
297-
}
298-
.link:hover, .preview__data a:hover {
299-
border-color: rgba(224, 80, 32, 0.9);
300-
color: #e05020;
301-
fill: #e05020;
302-
transition: all 0ms;
303-
}
304-
305290
.preview {
306291
display: none;
307292
max-width: 90%;

backend/web/edit/index.html

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
<!DOCTYPE html>
2+
<html lang="ru">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
7+
<title>Редактирование правила — uReadability</title>
8+
9+
<script>
10+
var login = localStorage.getItem('login'),
11+
pass = localStorage.getItem('password');
12+
13+
if (! (login && pass)) {
14+
location.href = '/login/?back=' + location.href;
15+
}
16+
</script>
17+
18+
<link rel="shortcut icon" type="image/png" href="/files/favicon.png">
19+
20+
<link rel="stylesheet" href="/css/main.css">
21+
22+
<script src="https://code.jquery.com/jquery-4.0.0-beta.min.js"></script>
23+
24+
<script src="/js/main.js"></script>
25+
</head>
26+
<body class="page">
27+
28+
<div class="header wrapper page__header">
29+
<a href="/" class="header__title link">uReadability</a>
30+
<ul class="menu header__menu">
31+
<li class="menu__item menu__item_right"><a href="#logout" id="logout" class="link">Выйти</a></li>
32+
</ul>
33+
</div>
34+
35+
<div class="wrapper">
36+
<div class="rule form page__rule" id="rule">
37+
<div class="row rule__row">
38+
<div class="row__col rule__col">
39+
<div class="form__tip">Домен:</div>
40+
<input type="text" class="form__input rule__domain">
41+
</div>
42+
<div class="row__col rule__col">
43+
<div class="form__tip">Автор:</div>
44+
<input type="text" class="form__input rule__author">
45+
</div>
46+
</div>
47+
<div class="row rule__row">
48+
<div class="row__col rule__col">
49+
<div class="form__tip">Контент:</div>
50+
<textarea class="form__input form__input_big rule__content"></textarea>
51+
</div>
52+
<div class="row__col rule__col">
53+
<div class="form__tip">Совпадения по фрагменту URL (по одному в строке):</div>
54+
<textarea class="form__input form__input_big rule__match-urls"></textarea>
55+
</div>
56+
</div>
57+
<div class="row rule__row">
58+
<div class="row__col rule__col">
59+
<div class="form__tip">Исключения (по одному в строке):</div>
60+
<textarea class="form__input form__input_big rule__excludes"></textarea>
61+
</div>
62+
<div class="row__col rule__col">
63+
<div class="form__tip">Тестовые URL:</div>
64+
<textarea class="form__input form__input_big rule__test-urls"></textarea>
65+
<input type="button" class="form__button rule__button-show" value="Показать превью">
66+
<div class="form__button-tip form__button-tip_error rule__tip-error"></div>
67+
</div>
68+
</div>
69+
<input type="button" class="form__button rule__button-save" value="Сохранить">
70+
71+
<div class="form__loader form__loader_hidden"></div>
72+
</div>
73+
<div class="preview" id="preview">
74+
<div class="preview__tip">Название:</div>
75+
<div class="preview__title preview__data"></div>
76+
<div class="preview__tip">Анонс:</div>
77+
<div class="preview__excerpt preview__data"></div>
78+
<div class="preview__tip">Полный контент с тегами:</div>
79+
<div class="preview__rich-content preview__data"></div>
80+
<div class="preview__tip">Текстовый контент:</div>
81+
<div class="preview__content preview__data"></div>
82+
</div>
83+
</div>
84+
85+
<div class="footer wrapper page__footer">
86+
<a href="#" class="link footer__copyright">uReadability</a>, <script>document.write((new Date()).getFullYear().toString());</script>
87+
</div>
88+
</body>
89+
</html>

backend/web/index.html

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<!DOCTYPE html>
2+
<html lang="ru">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
7+
<title>uReadability</title>
8+
9+
<script>
10+
var login = localStorage.getItem('login'),
11+
pass = localStorage.getItem('password');
12+
13+
if (! (login && pass)) {
14+
location.href = '/login/?back=' + location.href;
15+
}
16+
</script>
17+
18+
<link rel="shortcut icon" type="image/png" href="/files/favicon.png">
19+
20+
<link rel="stylesheet" href="/css/main.css">
21+
22+
<script src="https://code.jquery.com/jquery-4.0.0-beta.min.js"></script>
23+
24+
<script src="/js/main.js"></script>
25+
</head>
26+
<body class="page">
27+
28+
<div class="header wrapper page__header">
29+
<a href="/" class="header__title link">uReadability</a>
30+
<ul class="menu header__menu">
31+
<li class="menu__item menu__item_right"><a href="#logout" id="logout" class="link">Выйти</a></li>
32+
</ul>
33+
</div>
34+
35+
<div class="wrapper">
36+
<div class="rules">
37+
<table class="rules__table">
38+
<thead>
39+
<tr>
40+
<th>Домен</th>
41+
<th>Контент</th>
42+
<th>Активность</th>
43+
</tr>
44+
</thead>
45+
<tbody id="rules__list">
46+
</tbody>
47+
<tfoot>
48+
<tr>
49+
<td colspan="3" class="rules__add">
50+
<a href="/add/" class="link">Добавить</a>
51+
</td>
52+
</tr>
53+
</tfoot>
54+
</table>
55+
</div>
56+
</div>
57+
58+
<div class="footer wrapper page__footer">
59+
<a href="#" class="link footer__copyright">uReadability</a>, <script>document.write((new Date()).getFullYear().toString());</script>
60+
</div>
61+
</body>
62+
</html>

0 commit comments

Comments
 (0)