mirror of
https://github.com/toxic-repos/toxic-repos
synced 2024-10-18 09:40:21 +03:00
Added web app to view database
This commit is contained in:
parent
734fad2614
commit
2ee9db4565
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
* -text
|
25
.github/workflows/toxic_app.yml
vendored
Normal file
25
.github/workflows/toxic_app.yml
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
name: Deploy
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Build app
|
||||||
|
uses: hyoo-ru/mam_build@master2
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GH_PAT }}
|
||||||
|
package: 'toxic/app'
|
||||||
|
|
||||||
|
- name: Deploy on GitHub Pages
|
||||||
|
if: github.ref == 'refs/heads/master'
|
||||||
|
uses: alex-page/blazing-fast-gh-pages-deploy@v1.1.0
|
||||||
|
with:
|
||||||
|
repo-token: ${{ secrets.GH_PAT }}
|
||||||
|
site-directory: 'toxic/app/-'
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
|
-*
|
||||||
.idea/
|
.idea/
|
||||||
src/
|
src/
|
||||||
|
|
||||||
|
13
app/app.locale=ru.json
Normal file
13
app/app.locale=ru.json
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"$toxic_app_Add_hint": "Добавить новую проблему",
|
||||||
|
"$toxic_app_Chat_hint": "Обсуждения",
|
||||||
|
"$toxic_app_Mail_hint": "Почта",
|
||||||
|
"$toxic_app_New_hint": "Нвости",
|
||||||
|
"$toxic_app_type_name_all": "Все",
|
||||||
|
"$toxic_app_type_name_broken_assembly": "Ломает сборку",
|
||||||
|
"$toxic_app_type_name_ddos": "DDOS",
|
||||||
|
"$toxic_app_type_name_hostile_actions": "Хулиганство",
|
||||||
|
"$toxic_app_type_name_ip_block": "Блокировка по IP",
|
||||||
|
"$toxic_app_type_name_malware": "Саботаж",
|
||||||
|
"$toxic_app_type_name_political_slogans": "Политические слоганы"
|
||||||
|
}
|
4
app/app.meta.tree
Normal file
4
app/app.meta.tree
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
include \/mol/offline/install
|
||||||
|
|
||||||
|
deploy \/toxic/logo/logo.svg
|
||||||
|
deploy \/toxic/data/json/toxic-repos.json
|
45
app/app.view.css
Normal file
45
app/app.view.css
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
[toxic_app] {
|
||||||
|
--mol_theme_hue: 380deg;
|
||||||
|
}
|
||||||
|
|
||||||
|
[toxic_app_menu] {
|
||||||
|
flex: 0 0 18rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
[toxic_app_issues_page] {
|
||||||
|
flex: 0 0 60rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
[toxic_app_issues] {
|
||||||
|
/* padding: var(--mol_gap_block); */
|
||||||
|
}
|
||||||
|
|
||||||
|
[toxic_app_issue] {
|
||||||
|
padding: var(--mol_gap_block);
|
||||||
|
}
|
||||||
|
|
||||||
|
[toxic_app_issue_main] {
|
||||||
|
justify-content: space-between;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: .75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
[toxic_app_issue_name] {
|
||||||
|
text-shadow: 0 0;
|
||||||
|
flex: 1 1 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
[toxic_app_issue_type] {
|
||||||
|
color: var(--mol_theme_shade);
|
||||||
|
}
|
||||||
|
|
||||||
|
[toxic_app_issue_date] {
|
||||||
|
color: var(--mol_theme_shade);
|
||||||
|
}
|
||||||
|
|
||||||
|
[toxic_app_issue_descr] {
|
||||||
|
max-width: 100%
|
||||||
|
}
|
||||||
|
|
||||||
|
[toxic_app_issue_descr_row] {
|
||||||
|
}
|
68
app/app.view.tree
Normal file
68
app/app.view.tree
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
$toxic_app $mol_book2_catalog
|
||||||
|
menu_title \Toxis Repos
|
||||||
|
menu_tools /
|
||||||
|
<= Add $mol_link
|
||||||
|
uri \https://t.me/darksider_bot
|
||||||
|
hint @ \Add new issue
|
||||||
|
sub /
|
||||||
|
<= Add_icon $mol_icon_plus
|
||||||
|
<= Source $mol_link_source
|
||||||
|
uri \https://github.com/nin-jin/toxic-repos
|
||||||
|
<= Lights $mol_lights_toggle
|
||||||
|
menu_foot /
|
||||||
|
<= Chat $mol_link
|
||||||
|
uri \https://t.me/toxic_repos
|
||||||
|
hint @ \Discussions
|
||||||
|
sub /
|
||||||
|
<= Chat_icon $mol_icon_telegram
|
||||||
|
<= New $mol_link
|
||||||
|
uri \https://twitter.com/ZStravnik
|
||||||
|
hint @ \News
|
||||||
|
sub /
|
||||||
|
<= News_icon $mol_icon_twitter
|
||||||
|
<= Mail $mol_link
|
||||||
|
uri \mailto:info@toxic-repos.ru
|
||||||
|
hint @ \E-Mail
|
||||||
|
sub /
|
||||||
|
<= Mail_icon $mol_icon_email
|
||||||
|
plugins /
|
||||||
|
<= Theme $mol_theme_auto
|
||||||
|
spreads *
|
||||||
|
\
|
||||||
|
<= Issues_page*all
|
||||||
|
broken_assembly <= Issues_page*broken_assembly
|
||||||
|
ddos <= Issues_page*ddos
|
||||||
|
hostile_actions <= Issues_page*hostile_actions
|
||||||
|
ip_block <= Issues_page*ip_block
|
||||||
|
malware <= Issues_page*malware
|
||||||
|
political_slogans <= Issues_page*political_slogans
|
||||||
|
type_name *
|
||||||
|
all @ \All
|
||||||
|
broken_assembly @ \Broken Assemply
|
||||||
|
ddos @ \DDOS
|
||||||
|
hostile_actions @ \Hostile Actions
|
||||||
|
ip_block @ \IP Block
|
||||||
|
malware @ \Malware
|
||||||
|
political_slogans @ \Political Slogans
|
||||||
|
Issues_page* $mol_page
|
||||||
|
title <= issues_page_title* \
|
||||||
|
tools /
|
||||||
|
<= Search $mol_search
|
||||||
|
query?val <=> search?val \
|
||||||
|
body /
|
||||||
|
<= Issues $mol_list rows <= issues /
|
||||||
|
Issue* $mol_list
|
||||||
|
rows /
|
||||||
|
<= Issue_main* $mol_link
|
||||||
|
uri <= issue_uri* \
|
||||||
|
sub /
|
||||||
|
<= Issue_name* $mol_dimmer
|
||||||
|
haystack <= issue_name* \
|
||||||
|
needle <= search
|
||||||
|
<= Issue_type* $mol_view
|
||||||
|
sub / <= issue_type* \
|
||||||
|
<= Issue_date* $mol_view
|
||||||
|
sub / <= issue_date* \
|
||||||
|
<= Issue_descr* $mol_text
|
||||||
|
text <= issue_descr* \
|
||||||
|
highlight <= search
|
76
app/app.view.ts
Normal file
76
app/app.view.ts
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
namespace $.$$ {
|
||||||
|
|
||||||
|
const Data = $mol_data_array(
|
||||||
|
$mol_data_record({
|
||||||
|
id: $mol_data_integer,
|
||||||
|
datetime: $mol_data_string,
|
||||||
|
problem_type: $mol_data_string,
|
||||||
|
name: $mol_data_string,
|
||||||
|
commit_link: $mol_data_string,
|
||||||
|
description: $mol_data_string,
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
export class $toxic_app extends $.$toxic_app {
|
||||||
|
|
||||||
|
@ $mol_mem_key
|
||||||
|
issues_page_title( id: string ) {
|
||||||
|
return this.type_name()[ id ] ?? id
|
||||||
|
}
|
||||||
|
|
||||||
|
@ $mol_mem
|
||||||
|
data_all() {
|
||||||
|
const json = this.$.$mol_fetch.json( 'toxic/data/json/toxic-repos.json' )
|
||||||
|
return Data( json )
|
||||||
|
}
|
||||||
|
|
||||||
|
@ $mol_mem
|
||||||
|
search( next?: string ) {
|
||||||
|
return this.$.$mol_state_arg.value( 'search', next ) ?? ''
|
||||||
|
}
|
||||||
|
|
||||||
|
@ $mol_mem
|
||||||
|
data_filtered() {
|
||||||
|
|
||||||
|
let data = this.data_all()
|
||||||
|
|
||||||
|
const type = this.spread()
|
||||||
|
if( type ) data = data.filter( item => item.problem_type === type )
|
||||||
|
|
||||||
|
const search = this.search()
|
||||||
|
if( search ) data = data.filter(
|
||||||
|
$mol_match_text( search, item => [ item.name, item.description ] )
|
||||||
|
)
|
||||||
|
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
|
||||||
|
@ $mol_mem
|
||||||
|
issues() {
|
||||||
|
return this.data_filtered().map( (_,i)=> this.Issue( i ) )
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_name( index: number ) {
|
||||||
|
return this.data_filtered()[ index ].name
|
||||||
|
}
|
||||||
|
|
||||||
|
@ $mol_mem_key
|
||||||
|
issue_date( index: number ) {
|
||||||
|
return new $mol_time_moment( this.data_filtered()[ index ].datetime ).toString( 'YYYY-MM-DD' )
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_type( index: number ) {
|
||||||
|
return this.type_name()[ this.data_filtered()[ index ].problem_type ]
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_uri( index: number ) {
|
||||||
|
return this.data_filtered()[ index ].commit_link
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_descr( index: number ) {
|
||||||
|
return this.data_filtered()[ index ].description
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
app/index.html
Normal file
14
app/index.html
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html mol_view_root>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1">
|
||||||
|
<meta name="mobile-web-app-capable" content="yes">
|
||||||
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
|
<link href="toxic/logo/logo.svg" rel="icon" />
|
||||||
|
</head>
|
||||||
|
<body mol_view_root>
|
||||||
|
<div mol_view_root="$toxic_app"></div>
|
||||||
|
<script src="web.js" charset="utf-8"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
3
logo/logo.svg
Normal file
3
logo/logo.svg
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="140px" height="140px" viewBox="-0.5 -0.5 140 140"><defs/><g><rect x="10" y="90" width="120" height="40" rx="6" ry="6" fill="#f8cecc" stroke="#b85450" stroke-width="20" pointer-events="all"/><rect x="30" y="50" width="80" height="40" rx="6" ry="6" fill="#f8cecc" stroke="#b85450" stroke-width="20" pointer-events="all"/><rect x="50" y="10" width="40" height="40" rx="6" ry="6" fill="#f8cecc" stroke="#b85450" stroke-width="20" pointer-events="all"/></g></svg>
|
After Width: | Height: | Size: 700 B |
Loading…
Reference in New Issue
Block a user