Merge branch 'nocdn' into welcome-email-serie
# Conflicts: # cron.py
This commit is contained in:
commit
6be5d53e4e
|
@ -5,4 +5,5 @@ db.sqlite
|
|||
.pytest_cache
|
||||
.vscode
|
||||
.DS_Store
|
||||
config
|
||||
config
|
||||
static/node_modules
|
11
Dockerfile
11
Dockerfile
|
@ -1,11 +1,20 @@
|
|||
FROM python:3.7
|
||||
# Install npm packages
|
||||
FROM node:10.17.0-alpine AS npm
|
||||
WORKDIR /code
|
||||
COPY ./static/package*.json /code/static/
|
||||
RUN cd /code/static && npm install
|
||||
|
||||
|
||||
FROM python:3.7
|
||||
WORKDIR /code
|
||||
|
||||
# install dependencies
|
||||
COPY ./requirements.txt ./
|
||||
RUN pip3 install --no-cache-dir -r requirements.txt
|
||||
|
||||
# copy npm packages
|
||||
COPY --from=npm /code /code
|
||||
|
||||
# copy everything else into /code
|
||||
COPY . .
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block head %}
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/qrious/4.0.2/qrious.min.js"></script>
|
||||
<script src="{{ url_for('static', filename='node_modules/qrious/dist/qrious.min.js') }}"></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block default_content %}
|
||||
|
|
2
cron.py
2
cron.py
|
@ -122,7 +122,7 @@ if __name__ == "__main__":
|
|||
|
||||
with app.app_context():
|
||||
if args.job == "stats":
|
||||
LOG.d("Compute stats")
|
||||
LOG.d("Compute Stats")
|
||||
stats()
|
||||
elif args.job == "notify_trial_end":
|
||||
LOG.d("Notify users with trial ending soon")
|
||||
|
|
13
shell.py
13
shell.py
|
@ -3,10 +3,9 @@ from IPython import embed
|
|||
from sqlalchemy_utils import create_database, database_exists, drop_database
|
||||
|
||||
from app.config import DB_URI
|
||||
from app.email_utils import _render
|
||||
from app.email_utils import send_email, render
|
||||
from app.models import *
|
||||
from server import create_app
|
||||
from app import email_utils
|
||||
|
||||
|
||||
def create_db():
|
||||
|
@ -31,6 +30,16 @@ def reset_db():
|
|||
create_db()
|
||||
|
||||
|
||||
def send_safari_extension_newsletter():
|
||||
for user in User.query.all():
|
||||
send_email(
|
||||
user.email,
|
||||
"Quickly create alias with our Safari extension",
|
||||
render("com/safari-extension.txt", user=user),
|
||||
render("com/safari-extension.html", user=user),
|
||||
)
|
||||
|
||||
|
||||
app = create_app()
|
||||
|
||||
with app.app_context():
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable-background="new 0 0 48 48" height="48px" version="1.1" viewBox="0 0 48 48" width="48px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Expanded"><g><g><path d="M43,44H5c-2.757,0-5-2.243-5-5V11c0-2.757,2.243-5,5-5h38c2.757,0,5,2.243,5,5v28C48,41.757,45.757,44,43,44z M5,8 c-1.654,0-3,1.346-3,3v28c0,1.654,1.346,3,3,3h38c1.654,0,3-1.346,3-3V11c0-1.654-1.346-3-3-3H5z"/></g><g><path d="M47,18H1c-0.553,0-1-0.448-1-1s0.447-1,1-1h46c0.553,0,1,0.448,1,1S47.553,18,47,18z"/></g><g><circle cx="8" cy="12" r="2"/></g><g><circle cx="14" cy="12" r="2"/></g><g><circle cx="20" cy="12" r="2"/></g></g></g></svg>
|
Before Width: | Height: | Size: 795 B |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="rgb(154, 160, 172)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-key"><path d="M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4"></path></svg>
|
After Width: | Height: | Size: 358 B |
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"name": "simplelogin",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"font-awesome": {
|
||||
"version": "4.7.0",
|
||||
"resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
|
||||
"integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM="
|
||||
},
|
||||
"intro.js": {
|
||||
"version": "2.9.3",
|
||||
"resolved": "https://registry.npmjs.org/intro.js/-/intro.js-2.9.3.tgz",
|
||||
"integrity": "sha512-hC+EXWnEuJeA3CveGMat3XHePd2iaXNFJIVfvJh2E9IzBMGLTlhWvPIVHAgKlOpO4lNayCxEqzr4N02VmHFr9Q=="
|
||||
},
|
||||
"jquery": {
|
||||
"version": "3.4.1",
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz",
|
||||
"integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw=="
|
||||
},
|
||||
"notie": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/notie/-/notie-4.3.1.tgz",
|
||||
"integrity": "sha1-DRmd4VEwJC4hZ1UHq6Y8aSngrdo="
|
||||
},
|
||||
"qrious": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/qrious/-/qrious-4.0.2.tgz",
|
||||
"integrity": "sha512-xWPJIrK1zu5Ypn898fBp8RHkT/9ibquV2Kv24S/JY9VYEhMBMKur1gHVsOiNUh7PHP9uCgejjpZUHUIXXKoU/g=="
|
||||
},
|
||||
"toastr": {
|
||||
"version": "2.1.4",
|
||||
"resolved": "https://registry.npmjs.org/toastr/-/toastr-2.1.4.tgz",
|
||||
"integrity": "sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE=",
|
||||
"requires": {
|
||||
"jquery": ">=1.12.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"name": "simplelogin",
|
||||
"version": "1.0.0",
|
||||
"description": "Open source email alias solution",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/simple-login/app.git"
|
||||
},
|
||||
"keywords": [
|
||||
"email-alias"
|
||||
],
|
||||
"author": "SimpleLogin",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/simple-login/app/issues"
|
||||
},
|
||||
"homepage": "https://github.com/simple-login/app#readme",
|
||||
"dependencies": {
|
||||
"font-awesome": "^4.7.0",
|
||||
"intro.js": "^2.9.3",
|
||||
"notie": "^4.3.1",
|
||||
"qrious": "^4.0.2",
|
||||
"toastr": "^2.1.4"
|
||||
}
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -22,7 +22,7 @@
|
|||
{% block title %}{% endblock %} | SimpleLogin
|
||||
</title>
|
||||
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='node_modules/font-awesome/css/font-awesome.css') }}">
|
||||
|
||||
<!-- Dashboard Core -->
|
||||
<link href="/static/assets/css/dashboard.css" rel="stylesheet"/>
|
||||
|
@ -43,12 +43,14 @@
|
|||
<script src="/static/vendor/clipboard.min.js"></script>
|
||||
|
||||
<!-- Notie -->
|
||||
<link rel="stylesheet" type="text/css" href="https://unpkg.com/notie/dist/notie.min.css">
|
||||
<script src="/static/vendor/notie.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="{{ url_for('static', filename='node_modules/notie/dist/notie.min.css') }}">
|
||||
<script src="{{ url_for('static', filename='node_modules/notie/dist/notie.min.js') }}"></script>
|
||||
|
||||
<!-- IntroJS -->
|
||||
<link rel="stylesheet" type="text/css" href="/static/vendor/introjs.min.css">
|
||||
<script src="/static/vendor/intro.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="{{ url_for('static', filename='node_modules/intro.js/minified/introjs.min.css') }}">
|
||||
<script src="{{ url_for('static', filename='node_modules/intro.js/minified/intro.min.js') }}"></script>
|
||||
|
||||
<!-- Sentry -->
|
||||
<script
|
||||
|
@ -56,11 +58,11 @@
|
|||
integrity="sha384-FLzYisBa7tvsi/ZP1ISnzZJqBkmw5mvwk7KOmH82W9wdPZKG3bG9hSO8GQFVSlOu"
|
||||
crossorigin="anonymous"></script>
|
||||
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-social/4.12.0/bootstrap-social.min.css">
|
||||
<link rel="stylesheet" href="/static/vendor/bootstrap-social.min.css">
|
||||
|
||||
<!-- Toastr library -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js"></script>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='node_modules/toastr/build/toastr.min.css') }}">
|
||||
<script src="{{ url_for('static', filename='node_modules/toastr/build/toastr.min.js') }}"></script>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/static/style.css?v={{ VERSION }}">
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<li class="nav-item">
|
||||
<a href="{{ url_for('dashboard.api_key') }}"
|
||||
class="nav-link {{ 'active' if active_page == 'api_key' }}">
|
||||
<i><img src="/static/browser.svg"></i>
|
||||
<i><img src="/static/key.svg"></i>
|
||||
API Key
|
||||
</a>
|
||||
</li>
|
||||
|
|
Loading…
Reference in New Issue