mirror of
https://github.com/janeczku/calibre-web
synced 2024-12-25 09:30:31 +00:00
merge
This commit is contained in:
commit
4a2b5b46a3
@ -36,7 +36,7 @@ $(function() {
|
||||
success: function(data) {
|
||||
$('#spinner').show();
|
||||
displaytext=data.text;
|
||||
window.setTimeout(restartTimer, 3000);}
|
||||
setTimeout(restartTimer, 3000);}
|
||||
});
|
||||
});
|
||||
$("#shutdown").click(function() {
|
||||
@ -110,7 +110,8 @@ function updateTimer() {
|
||||
$('#UpdateprogressDialog #updateFinished').removeClass('hidden');
|
||||
$("#check_for_update").removeClass('hidden');
|
||||
$("#perform_update").addClass('hidden');
|
||||
}
|
||||
},
|
||||
timeout:2000
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,27 @@
|
||||
{% extends "layout.html" %}
|
||||
{% block body %}
|
||||
<h3>{{_('Calibre library statistics')}}</h3>
|
||||
<table id="stats" class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>{{bookcounter}}</th>
|
||||
<td>{{_('Books in this Library')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{authorcounter}}</th>
|
||||
<td>{{_('Authors in this Library')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{categorycounter}}</th>
|
||||
<td>{{_('Categories in this Library')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{seriecounter}}</th>
|
||||
<td>{{_('Series in this Library')}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3>{{_('Linked libraries')}}</h3>
|
||||
|
||||
<table id="libs" class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -24,30 +44,44 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th>PyPDF2</th>
|
||||
<td>{{versions['PyPdfVersion']}}</td>
|
||||
<td>v{{versions['PyPdfVersion']}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Babel</th>
|
||||
<td>v{{versions['babel']}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>SqlAlchemy</th>
|
||||
<td>v{{versions['sqlalchemy']}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Flask</th>
|
||||
<td>v{{versions['flask']}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Flask Login</th>
|
||||
<td>v{{versions['flasklogin']}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Flask Principal</th>
|
||||
<td>v{{versions['flask_principal']}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Tornado web server</th>
|
||||
<td>v{{versions['tornado']}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>ISO639 Languages</th>
|
||||
<td>v{{versions['iso639']}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Requests</th>
|
||||
<td>v{{versions['requests']}}</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>{{_('Calibre library statistics')}}</h3>
|
||||
<table id="stats" class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>{{bookcounter}}</th>
|
||||
<td>{{_('Books in this Library')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{authorcounter}}</th>
|
||||
<td>{{_('Authors in this Library')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{categorycounter}}</th>
|
||||
<td>{{_('Categories in this Library')}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{seriecounter}}</th>
|
||||
<td>{{_('Series in this Library')}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
23
cps/web.py
23
cps/web.py
@ -4,8 +4,9 @@ import mimetypes
|
||||
import logging
|
||||
from logging.handlers import RotatingFileHandler
|
||||
import textwrap
|
||||
from flask import Flask, render_template, session, request, Response, redirect, url_for, send_from_directory, \
|
||||
from flask import Flask, render_template, request, Response, redirect, url_for, send_from_directory, \
|
||||
make_response, g, flash, abort
|
||||
from flask import __version__ as flaskVersion
|
||||
import ub
|
||||
from ub import config
|
||||
import helper
|
||||
@ -14,9 +15,12 @@ import errno
|
||||
from sqlalchemy.sql.expression import func
|
||||
from sqlalchemy.sql.expression import false
|
||||
from sqlalchemy.exc import IntegrityError
|
||||
from sqlalchemy import __version__ as sqlalchemyVersion
|
||||
from math import ceil
|
||||
from flask_login import LoginManager, login_user, logout_user, login_required, current_user
|
||||
from flask_login import __version__ as flask_loginVersion
|
||||
from flask_principal import Principal, Identity, AnonymousIdentity, identity_changed
|
||||
from flask_login import __version__ as flask_principalVersion
|
||||
from flask_babel import Babel
|
||||
from flask_babel import gettext as _
|
||||
import requests
|
||||
@ -24,6 +28,7 @@ import zipfile
|
||||
from werkzeug.security import generate_password_hash, check_password_hash
|
||||
from babel import Locale as LC
|
||||
from babel import negotiate_locale
|
||||
from babel import __version__ as babelVersion
|
||||
from babel.dates import format_date
|
||||
from functools import wraps
|
||||
import base64
|
||||
@ -32,16 +37,16 @@ import json
|
||||
import urllib
|
||||
import datetime
|
||||
from iso639 import languages as isoLanguages
|
||||
from iso639 import __version__ as iso639Version
|
||||
from uuid import uuid4
|
||||
import os.path
|
||||
import sys
|
||||
import subprocess
|
||||
import re
|
||||
import db
|
||||
import thread
|
||||
from shutil import move, copyfile
|
||||
from tornado.ioloop import IOLoop
|
||||
|
||||
from tornado import version as tornadoVersion
|
||||
|
||||
try:
|
||||
from wand.image import Image
|
||||
@ -1042,6 +1047,15 @@ def stats():
|
||||
if re.search('Amazon kindlegen\(', lines):
|
||||
versions['KindlegenVersion'] = lines
|
||||
versions['PythonVersion'] = sys.version
|
||||
versions['babel'] = babelVersion
|
||||
versions['sqlalchemy'] = sqlalchemyVersion
|
||||
versions['flask'] = flaskVersion
|
||||
versions['flasklogin'] = flask_loginVersion
|
||||
versions['flask_principal'] = flask_principalVersion
|
||||
versions['tornado'] = tornadoVersion
|
||||
versions['iso639'] = iso639Version
|
||||
versions['requests'] = requests.__version__
|
||||
|
||||
return render_title_template('stats.html', bookcounter=counter, authorcounter=authors, versions=versions,
|
||||
categorycounter=categorys, seriecounter=series, title=_(u"Statistics"))
|
||||
|
||||
@ -1796,6 +1810,8 @@ def edit_mailsettings():
|
||||
category="success")
|
||||
else:
|
||||
flash(_(u"There was an error sending the Test E-Mail: %(res)s", res=result), category="error")
|
||||
else:
|
||||
flash(_(u"E-Mail settings updated"), category="success")
|
||||
return render_title_template("email_edit.html", content=content, title=_(u"Edit mail settings"))
|
||||
|
||||
|
||||
@ -2136,7 +2152,6 @@ def upload():
|
||||
db.session.connection().connection.connection.create_function("title_sort", 1, db.title_sort)
|
||||
db.session.connection().connection.connection.create_function('uuid4', 0, lambda: str(uuid4()))
|
||||
if request.method == 'POST' and 'btn-upload' in request.files:
|
||||
file = request.files['btn-upload']
|
||||
file = request.files['btn-upload']
|
||||
if '.' in file.filename:
|
||||
file_ext = file.filename.rsplit('.', 1)[-1].lower()
|
||||
|
Loading…
Reference in New Issue
Block a user