mirror of
https://github.com/coulisse/spiderweb.git
synced 2024-09-21 07:27:09 +00:00
1.2.1
This commit is contained in:
parent
95970087db
commit
aa5d8e2be2
76
CODE_OF_CONDUCT.md
Normal file
76
CODE_OF_CONDUCT.md
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
In the interest of fostering an open and welcoming environment, we as
|
||||||
|
contributors and maintainers pledge to making participation in our project and
|
||||||
|
our community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||||
|
level of experience, education, socio-economic status, nationality, personal
|
||||||
|
appearance, race, religion, or sexual identity and orientation.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to creating a positive environment
|
||||||
|
include:
|
||||||
|
|
||||||
|
* Using welcoming and inclusive language
|
||||||
|
* Being respectful of differing viewpoints and experiences
|
||||||
|
* Gracefully accepting constructive criticism
|
||||||
|
* Focusing on what is best for the community
|
||||||
|
* Showing empathy towards other community members
|
||||||
|
|
||||||
|
Examples of unacceptable behavior by participants include:
|
||||||
|
|
||||||
|
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||||
|
advances
|
||||||
|
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||||
|
* Public or private harassment
|
||||||
|
* Publishing others' private information, such as a physical or electronic
|
||||||
|
address, without explicit permission
|
||||||
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Our Responsibilities
|
||||||
|
|
||||||
|
Project maintainers are responsible for clarifying the standards of acceptable
|
||||||
|
behavior and are expected to take appropriate and fair corrective action in
|
||||||
|
response to any instances of unacceptable behavior.
|
||||||
|
|
||||||
|
Project maintainers have the right and responsibility to remove, edit, or
|
||||||
|
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||||
|
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||||
|
permanently any contributor for other behaviors that they deem inappropriate,
|
||||||
|
threatening, offensive, or harmful.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies both within project spaces and in public spaces
|
||||||
|
when an individual is representing the project or its community. Examples of
|
||||||
|
representing a project or community include using an official project e-mail
|
||||||
|
address, posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event. Representation of a project may be
|
||||||
|
further defined and clarified by project maintainers.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported by contacting the project team at corrado.gerbaldo@gmail.com. All
|
||||||
|
complaints will be reviewed and investigated and will result in a response that
|
||||||
|
is deemed necessary and appropriate to the circumstances. The project team is
|
||||||
|
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||||
|
Further details of specific enforcement policies may be posted separately.
|
||||||
|
|
||||||
|
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||||
|
faith may face temporary or permanent repercussions as determined by other
|
||||||
|
members of the project's leadership.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||||
|
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||||
|
|
||||||
|
[homepage]: https://www.contributor-covenant.org
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see
|
||||||
|
https://www.contributor-covenant.org/faq
|
10
README.md
10
README.md
@ -54,6 +54,7 @@ Then you have to install also **python-dev, ssl and mysql libraries**:
|
|||||||
foo@bar:~$ sudo apt-get install python-dev default-libmysqlclient-dev libssl-dev
|
foo@bar:~$ sudo apt-get install python-dev default-libmysqlclient-dev libssl-dev
|
||||||
foo@bar:~$ sudo -H pip install flask_mysqldb --system
|
foo@bar:~$ sudo -H pip install flask_mysqldb --system
|
||||||
```
|
```
|
||||||
|
|
||||||
Finally you have to install matplotlib in order to plots some graphics
|
Finally you have to install matplotlib in order to plots some graphics
|
||||||
```console
|
```console
|
||||||
foo@bar:~$ sudo apt-get install python-matplotlib
|
foo@bar:~$ sudo apt-get install python-matplotlib
|
||||||
@ -61,11 +62,11 @@ foo@bar:~$ sudo -H pip install --upgrade matplotlib
|
|||||||
```
|
```
|
||||||
|
|
||||||
**4) Configuration**
|
**4) Configuration**
|
||||||
In the path `spiderweb/cfg/` rename `config.json.example` in `config.json`:
|
In the path `spiderweb/cfg/` rename `config.json.template` in `config.json`:
|
||||||
```console
|
```console
|
||||||
foo@bar:~$ mv config.json.example config.json
|
foo@bar:~$ mv config.json.template config.json
|
||||||
```
|
```
|
||||||
then edit it and set the user and password of your database
|
then edit it and set the user and password of your database and the menu items
|
||||||
|
|
||||||
In order to show the right plots, you have to generate them!
|
In order to show the right plots, you have to generate them!
|
||||||
To do so you have to run *.sh* files inside *scripts* folders, or the better way is to **schedule** them with your **crontab**
|
To do so you have to run *.sh* files inside *scripts* folders, or the better way is to **schedule** them with your **crontab**
|
||||||
@ -103,10 +104,13 @@ Screenshot
|
|||||||
----------
|
----------
|
||||||
<img src="docs/images/01_desktop_main.jpg" width="300"/>
|
<img src="docs/images/01_desktop_main.jpg" width="300"/>
|
||||||
<img src="docs/images/02_desktop_plot.jpg" width="300"/>
|
<img src="docs/images/02_desktop_plot.jpg" width="300"/>
|
||||||
|
<p float="left">
|
||||||
<img src="docs/images/03_mobile_install.jpg" width="200"/>
|
<img src="docs/images/03_mobile_install.jpg" width="200"/>
|
||||||
<img src="docs/images/04_mobile_icon.jpg" width="200"/>
|
<img src="docs/images/04_mobile_icon.jpg" width="200"/>
|
||||||
<img src="docs/images/05_mobile_splash.jpg" width="200"/>
|
<img src="docs/images/05_mobile_splash.jpg" width="200"/>
|
||||||
<img src="docs/images/06_mobile_main.jpg" width="200"/>
|
<img src="docs/images/06_mobile_main.jpg" width="200"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
### TODO
|
### TODO
|
||||||
see it on file ["TODO.md"](docs/TODO.md)
|
see it on file ["TODO.md"](docs/TODO.md)
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
"mysql":{
|
|
||||||
"host":"localhost",
|
|
||||||
"user":"foo",
|
|
||||||
"passwd":"bar",
|
|
||||||
"db":"dxcluster"
|
|
||||||
},
|
|
||||||
"timer":{
|
|
||||||
"interval":30000
|
|
||||||
},
|
|
||||||
"plot_refresh_timer":{
|
|
||||||
"interval":450000
|
|
||||||
}
|
|
||||||
}
|
|
22
cfg/config.json.template
Normal file
22
cfg/config.json.template
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"mysql":{
|
||||||
|
"host":"localhost",
|
||||||
|
"user":"foo",
|
||||||
|
"passwd":"bar",
|
||||||
|
"db":"dxcluster"
|
||||||
|
},
|
||||||
|
"timer":{
|
||||||
|
"interval":30000
|
||||||
|
},
|
||||||
|
"plot_refresh_timer":{
|
||||||
|
"interval":450000
|
||||||
|
},
|
||||||
|
"mycallsign":"XXXXXX",
|
||||||
|
"menu": {
|
||||||
|
"menu_list": [
|
||||||
|
{"label":"Plots", "link": "/plots.html", "external": false},
|
||||||
|
{"label":"Sources", "link": "https://github.com/coulisse/spiderweb/" , "external": true},
|
||||||
|
{"label":"Cookies policy", "link": "/cookies.html", "external": false}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,11 @@
|
|||||||
### Change log
|
### Change log
|
||||||
___
|
___
|
||||||
|
21/10/2020: 1.2.1
|
||||||
|
- Added country column (only on desktop version)
|
||||||
|
- Added external configurable menu
|
||||||
|
- renamed json.config.example json.config.template
|
||||||
|
- Added code of conduct and issue templates
|
||||||
|
___
|
||||||
08/09/2020: 1.2
|
08/09/2020: 1.2
|
||||||
- Modified cookies.html in order to insert dinamically the host name (instead of dxcluster.iu1bobw.it)
|
- Modified cookies.html in order to insert dinamically the host name (instead of dxcluster.iu1bobw.it)
|
||||||
- Removed sitemap.xml from git
|
- Removed sitemap.xml from git
|
||||||
|
@ -11,4 +11,12 @@
|
|||||||
- [ ] testing automation
|
- [ ] testing automation
|
||||||
- [ ] add page with connected nodes
|
- [ ] add page with connected nodes
|
||||||
- [ ] add google analitics include on server side
|
- [ ] add google analitics include on server side
|
||||||
|
- [x] add country on desktop version
|
||||||
|
- [x] add configuration to menu
|
||||||
|
- [ ] edit configuration with cli interface
|
||||||
|
- [ ] migrate to python3
|
||||||
|
- [ ] migrate to boostrap5 (when ready.. end of 2020?)
|
||||||
|
- [ ] set default icon image for images not found (es for 4U1UN)
|
||||||
|
- [ ] implement CSRF protection. See: https://flask-wtf.readthedocs.io/en/stable/csrf.html
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
how to connect dx-spider to another cluster node:
|
how to connect dx-spider to another cluster node:
|
||||||
- login on gnu/linux as sysop user
|
- login on gnu/linux as sysop user
|
||||||
|
- go in spider/connect folder and create a file named OTHERCALLSIGN with the connection info of the other node
|
||||||
- from your client (IU1BOW) send command: set/spider OHTERCALLSIGN
|
- from your client (IU1BOW) send command: set/spider OHTERCALLSIGN
|
||||||
- Open file /spider/local_cmd/crontab ed put 0,10,20,30,40,50 * * * * start_connect('OTHERCALLSIGN') unless connected('OTHERCALLSIGN')
|
- Open file /spider/local_cmd/crontab ed put 0,10,20,30,40,50 * * * * start_connect('OTHERCALLSIGN') unless connected('OTHERCALLSIGN')
|
||||||
|
|
||||||
|
@ -75,6 +75,8 @@ function buildHtmlTable(selector,data,rl,countries,callsign) {
|
|||||||
|
|
||||||
|
|
||||||
row$.append($('<td/>').html('<a href="https://www.qrz.com/db/'+data[i].dx+ '" target="_blank" rel="noopener"><i class="search" aria-label="'+data[i].dx+'"></i></a><span> '+dx+'</span>'));
|
row$.append($('<td/>').html('<a href="https://www.qrz.com/db/'+data[i].dx+ '" target="_blank" rel="noopener"><i class="search" aria-label="'+data[i].dx+'"></i></a><span> '+dx+'</span>'));
|
||||||
|
|
||||||
|
row$.append($('<td class="d-none d-lg-table-cell d-xl-table-cell"/>').html(country.country));
|
||||||
try {
|
try {
|
||||||
row$.append($('<td/>').html('<a href="#" data-toggle="tooltip" title="'+country.country+'"><img class="img-flag" src="https://www.countryflags.io/'+country.ISO+'/shiny/32.png" alt="'+country.country+'"></a>'));
|
row$.append($('<td/>').html('<a href="#" data-toggle="tooltip" title="'+country.country+'"><img class="img-flag" src="https://www.countryflags.io/'+country.ISO+'/shiny/32.png" alt="'+country.country+'"></a>'));
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
2
static/js/min/application.min.js
vendored
2
static/js/min/application.min.js
vendored
File diff suppressed because one or more lines are too long
@ -20,25 +20,22 @@
|
|||||||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
||||||
<a class="navbar-brand" href="/">
|
<a class="navbar-brand" href="/">
|
||||||
<img src="/static/favicon.png" width="30" height="30" class="d-inline-block align-top" alt="">
|
<img src="/static/favicon.png" width="30" height="30" class="d-inline-block align-top" alt="">
|
||||||
IU1BOW
|
{{ mycallsign }}
|
||||||
</a>
|
</a>
|
||||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggler01" aria-controls="navbarToggler01" aria-expanded="false" aria-label="Toggle navigation">
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggler01" aria-controls="navbarToggler01" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<span class="navbar-toggler-icon"></span>
|
||||||
</button>
|
</button>
|
||||||
<div class="collapse navbar-collapse" id="navbarToggler01">
|
<div class="collapse navbar-collapse" id="navbarToggler01">
|
||||||
<ul class="navbar-nav mr-auto">
|
<ul class="navbar-nav mr-auto">
|
||||||
|
{% for dict_item in menu_list %}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="/plots.html">Plots</a>
|
<a class="nav-link {% if request.path == dict_item["link"] %} active {% endif %}" href="{{dict_item["link"]}}"
|
||||||
</li>
|
{% if dict_item["external"] %}
|
||||||
<li class="nav-item">
|
target="blank" rel="noopener"
|
||||||
<a class="nav-link" href="https://github.com/coulisse/spiderweb/" target="blank" rel="noopener">Sources</a>
|
{% endif %}
|
||||||
</li>
|
>{{dict_item["label"]}}<span class="sr-only">Link</span></a>
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="https://iu1bow.blogspot.com" target="blank" rel="noopener">My Blog</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="/static/html/cookies.html">Cookies policy<span class="sr-only">Link</span></a>
|
|
||||||
</li>
|
</li>
|
||||||
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
<form class="form-inline" id="form-callsign" enctype="application/x-www-form-urlencoded" >
|
<form class="form-inline" id="form-callsign" enctype="application/x-www-form-urlencoded" >
|
||||||
<div class="input-group" id='input-group-callsign'>
|
<div class="input-group" id='input-group-callsign'>
|
||||||
@ -70,6 +67,7 @@ IU1BOW
|
|||||||
<th>DX De</th>
|
<th>DX De</th>
|
||||||
<th>Freq</th>
|
<th>Freq</th>
|
||||||
<th>DX</th>
|
<th>DX</th>
|
||||||
|
<th class="d-none d-lg-table-cell d-xl-table-cell">Country</th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th class="d-none d-lg-table-cell d-xl-table-cell">Comments</th>
|
<th class="d-none d-lg-table-cell d-xl-table-cell">Comments</th>
|
||||||
<th>UTC Time</th>
|
<th>UTC Time</th>
|
||||||
@ -85,7 +83,7 @@ IU1BOW
|
|||||||
<div class="footer-copyright text-center py-3">2020 <span class="copyleft">©</span> Copyleft:
|
<div class="footer-copyright text-center py-3">2020 <span class="copyleft">©</span> Copyleft:
|
||||||
<a href="https://github.com/coulisse/spiderweb/" target="blank" rel="noopener">IU1BOW Spiderweb</a>
|
<a href="https://github.com/coulisse/spiderweb/" target="blank" rel="noopener">IU1BOW Spiderweb</a>
|
||||||
</div>
|
</div>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/cookie-bar/cookiebar-latest.min.js?thirdparty=1&always=1&showPolicyLink=1&remember=365"></script>
|
<script src="https://cdn.jsdelivr.net/npm/cookie-bar/cookiebar-latest.min.js?thirdparty=1&always=1&showPolicyLink=1&remember=365" crossorigin="anonymous"></script>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script async src="static/js/min/load-sw.min.js"></script>
|
<script async src="static/js/min/load-sw.min.js"></script>
|
||||||
|
@ -20,25 +20,22 @@
|
|||||||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
||||||
<a class="navbar-brand" href="/">
|
<a class="navbar-brand" href="/">
|
||||||
<img src="/static/favicon.png" width="30" height="30" class="d-inline-block align-top" alt="">
|
<img src="/static/favicon.png" width="30" height="30" class="d-inline-block align-top" alt="">
|
||||||
IU1BOW
|
{{ mycallsign }}
|
||||||
</a>
|
</a>
|
||||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggler01" aria-controls="navbarToggler01" aria-expanded="false" aria-label="Toggle navigation">
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggler01" aria-controls="navbarToggler01" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<span class="navbar-toggler-icon"></span>
|
||||||
</button>
|
</button>
|
||||||
<div class="collapse navbar-collapse" id="navbarToggler01">
|
<div class="collapse navbar-collapse" id="navbarToggler01">
|
||||||
<ul class="navbar-nav mr-auto">
|
<ul class="navbar-nav mr-auto">
|
||||||
|
{% for dict_item in menu_list %}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="/plots.html">Plots</a>
|
<a class="nav-link {% if request.path == dict_item["link"] %} active {% endif %} " href="{{dict_item["link"]}}"
|
||||||
</li>
|
{% if dict_item["external"] %}
|
||||||
<li class="nav-item">
|
target="blank" rel="noopener"
|
||||||
<a class="nav-link" href="https://github.com/coulisse/spiderweb/" target="blank" rel="noopener">Sources</a>
|
{% endif %}
|
||||||
</li>
|
>{{dict_item["label"]}}<span class="sr-only">Link</span></a>
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="https://iu1bow.blogspot.com" target="blank" rel="noopener">My Blog</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link active" href="/static/html/cookies.html">Cookies policy<span class="sr-only">Link</span></a>
|
|
||||||
</li>
|
</li>
|
||||||
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
<form class="form-inline" id="form-callsign" enctype="application/x-www-form-urlencoded" >
|
<form class="form-inline" id="form-callsign" enctype="application/x-www-form-urlencoded" >
|
||||||
<div class="input-group" id='input-group-callsign'>
|
<div class="input-group" id='input-group-callsign'>
|
||||||
@ -119,8 +116,7 @@ IU1BOW
|
|||||||
<div class="footer-copyright text-center py-3">
|
<div class="footer-copyright text-center py-3">
|
||||||
2020 <span class="copyleft">©</span> Copyleft: <a href="https://github.com/coulisse/spiderweb/" target="blank" rel="noopener">IU1BOW Spiderweb</a>
|
2020 <span class="copyleft">©</span> Copyleft: <a href="https://github.com/coulisse/spiderweb/" target="blank" rel="noopener">IU1BOW Spiderweb</a>
|
||||||
</div>
|
</div>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/cookie-bar/cookiebar-latest.min.js?thirdparty=1&always=1&showPolicyLink=1&remember=365">
|
<script src="https://cdn.jsdelivr.net/npm/cookie-bar/cookiebar-latest.min.js?thirdparty=1&always=1&showPolicyLink=1&remember=365" crossorigin="anonymous"></script>
|
||||||
</script>
|
|
||||||
</footer>
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -23,27 +23,24 @@
|
|||||||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
||||||
<a class="navbar-brand" href="/">
|
<a class="navbar-brand" href="/">
|
||||||
<img src="/static/favicon.png" width="30" height="30" class="d-inline-block align-top" alt="">
|
<img src="/static/favicon.png" width="30" height="30" class="d-inline-block align-top" alt="">
|
||||||
IU1BOW
|
{{ mycallsign }}
|
||||||
</a>
|
</a>
|
||||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggler01" aria-controls="navbarToggler01" aria-expanded="false" aria-label="Toggle navigation">
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggler01" aria-controls="navbarToggler01" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<span class="navbar-toggler-icon"></span>
|
||||||
</button>
|
</button>
|
||||||
<div class="collapse navbar-collapse" id="navbarToggler01">
|
<div class="collapse navbar-collapse" id="navbarToggler01">
|
||||||
<ul class="navbar-nav mr-auto">
|
<ul class="navbar-nav mr-auto">
|
||||||
|
{% for dict_item in menu_list %}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="/plots.html">Plots</a>
|
<a class="nav-link {% if request.path == dict_item["link"] %} active {% endif %}" href="{{dict_item["link"]}}"
|
||||||
</li>
|
{% if dict_item["external"] %}
|
||||||
<li class="nav-item">
|
target="blank" rel="noopener"
|
||||||
<a class="nav-link" href="https://github.com/coulisse/spiderweb/" target="blank" rel="noopener">Sources</a>
|
{% endif %}
|
||||||
</li>
|
>{{dict_item["label"]}}<span class="sr-only">Link</span></a>
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="https://iu1bow.blogspot.com" target="blank" rel="noopener">My Blog</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="/static/html/cookies.html">Cookies policy<span class="sr-only">Link</span></a>
|
|
||||||
</li>
|
</li>
|
||||||
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
<form class="form-inline" id="form-callsign" enctype="application/x-www-form-urlencoded" >
|
<form method="POST" class="form-inline" id="form-callsign" enctype="application/x-www-form-urlencoded" >
|
||||||
<div class="input-group" id='input-group-callsign'>
|
<div class="input-group" id='input-group-callsign'>
|
||||||
<input type="text" class="form-control" placeholder="callsign" aria-label="callsign" aria-describedby="button-addon2" id="callsignInput" >
|
<input type="text" class="form-control" placeholder="callsign" aria-label="callsign" aria-describedby="button-addon2" id="callsignInput" >
|
||||||
<div class="input-group-append">
|
<div class="input-group-append">
|
||||||
@ -74,7 +71,7 @@ IU1BOW
|
|||||||
<div class="row mx-auto">
|
<div class="row mx-auto">
|
||||||
<!--Sidebar content-->
|
<!--Sidebar content-->
|
||||||
<div class="collapse" id="collapseFilters">
|
<div class="collapse" id="collapseFilters">
|
||||||
<form id="form-filters" enctype="multipart/form-data" style="background-color: #F2F2F2;">
|
<form method="POST" id="form-filters" enctype="multipart/form-data" style="background-color: #F2F2F2;">
|
||||||
<select class="custom-select" id="band" size="14" multiple>
|
<select class="custom-select" id="band" size="14" multiple>
|
||||||
<option selected value="SHF">SHF</option>
|
<option selected value="SHF">SHF</option>
|
||||||
<option selected value="UHF">UHF</option>
|
<option selected value="UHF">UHF</option>
|
||||||
@ -128,6 +125,7 @@ IU1BOW
|
|||||||
<th>DX De</th>
|
<th>DX De</th>
|
||||||
<th>Freq</th>
|
<th>Freq</th>
|
||||||
<th>DX</th>
|
<th>DX</th>
|
||||||
|
<th class="d-none d-lg-table-cell d-xl-table-cell">Country</th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th class="d-none d-lg-table-cell d-xl-table-cell">Comments</th>
|
<th class="d-none d-lg-table-cell d-xl-table-cell">Comments</th>
|
||||||
<th>UTC Time</th>
|
<th>UTC Time</th>
|
||||||
@ -143,7 +141,7 @@ IU1BOW
|
|||||||
<div class="footer-copyright text-center py-3">2020 <span class="copyleft">©</span> Copyleft:
|
<div class="footer-copyright text-center py-3">2020 <span class="copyleft">©</span> Copyleft:
|
||||||
<a href="https://github.com/coulisse/spiderweb/" target="blank" rel="noopener">IU1BOW Spiderweb</a>
|
<a href="https://github.com/coulisse/spiderweb/" target="blank" rel="noopener">IU1BOW Spiderweb</a>
|
||||||
</div>
|
</div>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/cookie-bar/cookiebar-latest.min.js?thirdparty=1&always=1&showPolicyLink=1&remember=365"></script>
|
<script src="https://cdn.jsdelivr.net/npm/cookie-bar/cookiebar-latest.min.js?thirdparty=1&always=1&showPolicyLink=1&remember=365" crossorigin="anonymous"></script>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script async src="static/js/min/load-sw.min.js"></script>
|
<script async src="static/js/min/load-sw.min.js"></script>
|
||||||
|
@ -19,25 +19,22 @@
|
|||||||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
||||||
<a class="navbar-brand" href="/">
|
<a class="navbar-brand" href="/">
|
||||||
<img src="/static/favicon.png" width="30" height="30" class="d-inline-block align-top" alt="">
|
<img src="/static/favicon.png" width="30" height="30" class="d-inline-block align-top" alt="">
|
||||||
IU1BOW
|
{{ mycallsign }}
|
||||||
</a>
|
</a>
|
||||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggler01" aria-controls="navbarToggler01" aria-expanded="false" aria-label="Toggle navigation">
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggler01" aria-controls="navbarToggler01" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<span class="navbar-toggler-icon"></span>
|
||||||
</button>
|
</button>
|
||||||
<div class="collapse navbar-collapse" id="navbarToggler01">
|
<div class="collapse navbar-collapse" id="navbarToggler01">
|
||||||
<ul class="navbar-nav mr-auto">
|
<ul class="navbar-nav mr-auto">
|
||||||
|
{% for dict_item in menu_list %}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link active" href="/plots.html">Plots</a>
|
<a class="nav-link {% if request.path == dict_item["link"] %} active {% endif %}" href="{{dict_item["link"]}}"
|
||||||
</li>
|
{% if dict_item["external"] %}
|
||||||
<li class="nav-item">
|
target="blank" rel="noopener"
|
||||||
<a class="nav-link" href="https://github.com/coulisse/spiderweb/" target="blank" rel="noopener">Sources</a>
|
{% endif %}
|
||||||
</li>
|
>{{dict_item["label"]}}<span class="sr-only">Link</span></a>
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="https://iu1bow.blogspot.com" target="blank" rel="noopener">My Blog</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="/static/html/cookies.html">Cookies policy<span class="sr-only">Link</span></a>
|
|
||||||
</li>
|
</li>
|
||||||
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
<form class="form-inline" id="form-callsign" enctype="application/x-www-form-urlencoded" >
|
<form class="form-inline" id="form-callsign" enctype="application/x-www-form-urlencoded" >
|
||||||
<div class="input-group" id='input-group-callsign'>
|
<div class="input-group" id='input-group-callsign'>
|
||||||
@ -69,8 +66,7 @@ IU1BOW
|
|||||||
<div class="footer-copyright text-center py-3">
|
<div class="footer-copyright text-center py-3">
|
||||||
2020 <span class="copyleft">©</span> Copyleft: <a href="https://github.com/coulisse/spiderweb/" target="blank" rel="noopener">IU1BOW Spiderweb</a>
|
2020 <span class="copyleft">©</span> Copyleft: <a href="https://github.com/coulisse/spiderweb/" target="blank" rel="noopener">IU1BOW Spiderweb</a>
|
||||||
</div>
|
</div>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/cookie-bar/cookiebar-latest.min.js?thirdparty=1&always=1&showPolicyLink=1&remember=365">
|
<script src="https://cdn.jsdelivr.net/npm/cookie-bar/cookiebar-latest.min.js?thirdparty=1&always=1&showPolicyLink=1&remember=365" crossorigin="anonymous"></script>
|
||||||
</script>
|
|
||||||
</footer>
|
</footer>
|
||||||
<script async src="static/js/min/load-sw.min.js">
|
<script async src="static/js/min/load-sw.min.js">
|
||||||
</script>
|
</script>
|
||||||
|
16
webapp.py
16
webapp.py
@ -6,9 +6,8 @@ import json
|
|||||||
|
|
||||||
__author__ = 'IU1BOW - Corrado'
|
__author__ = 'IU1BOW - Corrado'
|
||||||
|
|
||||||
|
|
||||||
app = flask.Flask(__name__)
|
app = flask.Flask(__name__)
|
||||||
app.config["DEBUG"] = True
|
app.config["DEBUG"] = False
|
||||||
app.config['SECRET_KEY'] = 'secret!'
|
app.config['SECRET_KEY'] = 'secret!'
|
||||||
|
|
||||||
#load config file
|
#load config file
|
||||||
@ -135,7 +134,9 @@ def spotlist():
|
|||||||
def spots():
|
def spots():
|
||||||
payload=spotquery()
|
payload=spotquery()
|
||||||
country_data=load_country()
|
country_data=load_country()
|
||||||
response=flask.Response(render_template('index.html',payload=payload,timer_interval=cfg['timer']['interval'],country_data=country_data))
|
#y=json.loads(cfg['menu'])
|
||||||
|
#menu_list=json.dumps(cfg['menu']['menu_list'])
|
||||||
|
response=flask.Response(render_template('index.html',mycallsign=cfg['mycallsign'],menu_list=cfg['menu']['menu_list'],payload=payload,timer_interval=cfg['timer']['interval'],country_data=country_data))
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@app.route('/service-worker.js', methods=['GET'])
|
@app.route('/service-worker.js', methods=['GET'])
|
||||||
@ -165,14 +166,15 @@ def plotlist():
|
|||||||
@app.route('/plots.html')
|
@app.route('/plots.html')
|
||||||
def plots():
|
def plots():
|
||||||
payload=plotlist()
|
payload=plotlist()
|
||||||
response=flask.Response(render_template('plots.html',payload=payload,timer_interval=cfg['plot_refresh_timer']['interval']))
|
response=flask.Response(render_template('plots.html',mycallsign=cfg['mycallsign'],menu_list=cfg['menu']['menu_list'],payload=payload,timer_interval=cfg['plot_refresh_timer']['interval']))
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
@app.route('/cookies.html')
|
@app.route('/cookies.html', methods=['GET'])
|
||||||
def cookies():
|
def cookies():
|
||||||
return app.send_static_file('html/cookies.html')
|
# return app.send_static_file('html/cookies.html')
|
||||||
|
response=flask.Response(render_template('cookies.html',mycallsign=cfg['mycallsign'],menu_list=cfg['menu']['menu_list']))
|
||||||
|
return response
|
||||||
|
|
||||||
@app.route('/sitemap.xml')
|
@app.route('/sitemap.xml')
|
||||||
def sitemap():
|
def sitemap():
|
||||||
|
Loading…
Reference in New Issue
Block a user