From 32568c90097c069fde41c2968555293750d8b68e Mon Sep 17 00:00:00 2001 From: Ozzieisaacs <ozzie.fernandez.isaacs@googlemail.com> Date: Mon, 14 Jan 2019 20:27:53 +0100 Subject: [PATCH] Update testing Update custom columns unicode enums --- cps/db.py | 3 + cps/helper.py | 8 +- .../css/libs/bootstrap-datepicker3.min.css | 4 +- cps/static/js/caliBlur.js | 10 +- .../bootstrap-datepicker.min.js | 6 +- .../locales/bootstrap-datepicker.ja.min.js | 1 + cps/static/js/unrar.js | 80 +- cps/static/js/unzip.js | 61 +- cps/templates/admin.html | 2 +- cps/templates/detail.html | 2 +- cps/templates/readpdf.html | 8 +- cps/templates/search_form.html | 5 +- cps/ub.py | 6 +- cps/web.py | 6 +- cps/worker.py | 19 +- test/Calibre-Web TestSummary.html | 3938 ++++++++++++++++- 16 files changed, 3970 insertions(+), 189 deletions(-) create mode 100644 cps/static/js/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ja.min.js diff --git a/cps/db.py b/cps/db.py index 54e42d25..dfa01f54 100755 --- a/cps/db.py +++ b/cps/db.py @@ -9,6 +9,7 @@ import re import ast from ub import config import ub +import sys session = None cc_exceptions = ['datetime', 'comments', 'float', 'composite', 'series'] @@ -301,6 +302,8 @@ class Custom_Columns(Base): def get_display_dict(self): display_dict = ast.literal_eval(self.display) + if sys.version_info < (3, 0): + display_dict['enum_values'] = [x.decode('unicode_escape') for x in display_dict['enum_values']] return display_dict diff --git a/cps/helper.py b/cps/helper.py index 8a4fd5dd..fc18e0d8 100644 --- a/cps/helper.py +++ b/cps/helper.py @@ -306,12 +306,12 @@ def update_dir_structure_file(book_id, calibrepath, first_author): # Rename all files from old names to new names if authordir != new_authordir or titledir != new_titledir: try: - for format in localbook.data: + for file_format in localbook.data: path_name = os.path.join(calibrepath, new_authordir, os.path.basename(path)) new_name = get_valid_filename(localbook.title) + ' - ' + get_valid_filename(new_authordir) - os.renames(os.path.join(path_name, format.name + '.' + format.format.lower()), - os.path.join(path_name,new_name + '.' + format.format.lower())) - format.name = new_name + os.renames(os.path.join(path_name, file_format.name + '.' + file_format.format.lower()), + os.path.join(path_name,new_name + '.' + file_format.format.lower())) + file_format.name = new_name except OSError as ex: web.app.logger.error("Rename file in path " + path + " to " + new_name + ": " + str(ex)) web.app.logger.debug(ex, exc_info=True) diff --git a/cps/static/css/libs/bootstrap-datepicker3.min.css b/cps/static/css/libs/bootstrap-datepicker3.min.css index d0ee6e71..96631e0d 100644 --- a/cps/static/css/libs/bootstrap-datepicker3.min.css +++ b/cps/static/css/libs/bootstrap-datepicker3.min.css @@ -1,7 +1,7 @@ /*! - * Datepicker for Bootstrap v1.7.1 (https://github.com/uxsolutions/bootstrap-datepicker) + * Datepicker for Bootstrap v1.8.0 (https://github.com/uxsolutions/bootstrap-datepicker) * * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) */ -.datepicker{border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0;padding:4px}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.15);border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid rgba(0,0,0,.15)}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker table tr td,.datepicker table tr th{text-align:center;width:30px;height:30px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.new,.datepicker table tr td.old{color:#777}.datepicker table tr td.day:hover,.datepicker table tr td.focused{background:#eee;cursor:pointer}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#777;cursor:default}.datepicker table tr td.highlighted{color:#000;background-color:#d9edf7;border-color:#85c5e5;border-radius:0}.datepicker table tr td.highlighted.focus,.datepicker table tr td.highlighted:focus{color:#000;background-color:#afd9ee;border-color:#298fc2}.datepicker table tr td.highlighted:hover{color:#000;background-color:#afd9ee;border-color:#52addb}.datepicker table tr td.highlighted.active,.datepicker table tr td.highlighted:active{color:#000;background-color:#afd9ee;border-color:#52addb}.datepicker table tr td.highlighted.active.focus,.datepicker table tr td.highlighted.active:focus,.datepicker table tr td.highlighted.active:hover,.datepicker table tr td.highlighted:active.focus,.datepicker table tr td.highlighted:active:focus,.datepicker table tr td.highlighted:active:hover{color:#000;background-color:#91cbe8;border-color:#298fc2}.datepicker table tr td.highlighted.disabled.focus,.datepicker table tr td.highlighted.disabled:focus,.datepicker table tr td.highlighted.disabled:hover,.datepicker table tr td.highlighted[disabled].focus,.datepicker table tr td.highlighted[disabled]:focus,.datepicker table tr td.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.highlighted.focus,fieldset[disabled] .datepicker table tr td.highlighted:focus,fieldset[disabled] .datepicker table tr td.highlighted:hover{background-color:#d9edf7;border-color:#85c5e5}.datepicker table tr td.highlighted.focused{background:#afd9ee}.datepicker table tr td.highlighted.disabled,.datepicker table tr td.highlighted.disabled:active{background:#d9edf7;color:#777}.datepicker table tr td.today{color:#000;background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focus,.datepicker table tr td.today:focus{color:#000;background-color:#ffc966;border-color:#b37400}.datepicker table tr td.today:hover{color:#000;background-color:#ffc966;border-color:#f59e00}.datepicker table tr td.today.active,.datepicker table tr td.today:active{color:#000;background-color:#ffc966;border-color:#f59e00}.datepicker table tr td.today.active.focus,.datepicker table tr td.today.active:focus,.datepicker table tr td.today.active:hover,.datepicker table tr td.today:active.focus,.datepicker table tr td.today:active:focus,.datepicker table tr td.today:active:hover{color:#000;background-color:#ffbc42;border-color:#b37400}.datepicker table tr td.today.disabled.focus,.datepicker table tr td.today.disabled:focus,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today[disabled].focus,.datepicker table tr td.today[disabled]:focus,.datepicker table tr td.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.today.focus,fieldset[disabled] .datepicker table tr td.today:focus,fieldset[disabled] .datepicker table tr td.today:hover{background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focused{background:#ffc966}.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:active{background:#ffdb99;color:#777}.datepicker table tr td.range{color:#000;background-color:#eee;border-color:#bbb;border-radius:0}.datepicker table tr td.range.focus,.datepicker table tr td.range:focus{color:#000;background-color:#d5d5d5;border-color:#7c7c7c}.datepicker table tr td.range:hover{color:#000;background-color:#d5d5d5;border-color:#9d9d9d}.datepicker table tr td.range.active,.datepicker table tr td.range:active{color:#000;background-color:#d5d5d5;border-color:#9d9d9d}.datepicker table tr td.range.active.focus,.datepicker table tr td.range.active:focus,.datepicker table tr td.range.active:hover,.datepicker table tr td.range:active.focus,.datepicker table tr td.range:active:focus,.datepicker table tr td.range:active:hover{color:#000;background-color:#c3c3c3;border-color:#7c7c7c}.datepicker table tr td.range.disabled.focus,.datepicker table tr td.range.disabled:focus,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range[disabled].focus,.datepicker table tr td.range[disabled]:focus,.datepicker table tr td.range[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.focus,fieldset[disabled] .datepicker table tr td.range:focus,fieldset[disabled] .datepicker table tr td.range:hover{background-color:#eee;border-color:#bbb}.datepicker table tr td.range.focused{background:#d5d5d5}.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:active{background:#eee;color:#777}.datepicker table tr td.range.highlighted{color:#000;background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focus,.datepicker table tr td.range.highlighted:focus{color:#000;background-color:#c1d7e3;border-color:#4b88a6}.datepicker table tr td.range.highlighted:hover{color:#000;background-color:#c1d7e3;border-color:#73a6c0}.datepicker table tr td.range.highlighted.active,.datepicker table tr td.range.highlighted:active{color:#000;background-color:#c1d7e3;border-color:#73a6c0}.datepicker table tr td.range.highlighted.active.focus,.datepicker table tr td.range.highlighted.active:focus,.datepicker table tr td.range.highlighted.active:hover,.datepicker table tr td.range.highlighted:active.focus,.datepicker table tr td.range.highlighted:active:focus,.datepicker table tr td.range.highlighted:active:hover{color:#000;background-color:#a8c8d8;border-color:#4b88a6}.datepicker table tr td.range.highlighted.disabled.focus,.datepicker table tr td.range.highlighted.disabled:focus,.datepicker table tr td.range.highlighted.disabled:hover,.datepicker table tr td.range.highlighted[disabled].focus,.datepicker table tr td.range.highlighted[disabled]:focus,.datepicker table tr td.range.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.highlighted.focus,fieldset[disabled] .datepicker table tr td.range.highlighted:focus,fieldset[disabled] .datepicker table tr td.range.highlighted:hover{background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focused{background:#c1d7e3}.datepicker table tr td.range.highlighted.disabled,.datepicker table tr td.range.highlighted.disabled:active{background:#e4eef3;color:#777}.datepicker table tr td.range.today{color:#000;background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.focus,.datepicker table tr td.range.today:focus{color:#000;background-color:#f4b747;border-color:#815608}.datepicker table tr td.range.today:hover{color:#000;background-color:#f4b747;border-color:#bf800c}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today:active{color:#000;background-color:#f4b747;border-color:#bf800c}.datepicker table tr td.range.today.active.focus,.datepicker table tr td.range.today.active:focus,.datepicker table tr td.range.today.active:hover,.datepicker table tr td.range.today:active.focus,.datepicker table tr td.range.today:active:focus,.datepicker table tr td.range.today:active:hover{color:#000;background-color:#f2aa25;border-color:#815608}.datepicker table tr td.range.today.disabled.focus,.datepicker table tr td.range.today.disabled:focus,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today[disabled].focus,.datepicker table tr td.range.today[disabled]:focus,.datepicker table tr td.range.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.today.focus,fieldset[disabled] .datepicker table tr td.range.today:focus,fieldset[disabled] .datepicker table tr td.range.today:hover{background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:active{background:#f7ca77;color:#777}.datepicker table tr td.selected,.datepicker table tr td.selected.highlighted{color:#fff;background-color:#777;border-color:#555;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.focus,.datepicker table tr td.selected.highlighted.focus,.datepicker table tr td.selected.highlighted:focus,.datepicker table tr td.selected:focus{color:#fff;background-color:#5e5e5e;border-color:#161616}.datepicker table tr td.selected.highlighted:hover,.datepicker table tr td.selected:hover{color:#fff;background-color:#5e5e5e;border-color:#373737}.datepicker table tr td.selected.active,.datepicker table tr td.selected.highlighted.active,.datepicker table tr td.selected.highlighted:active,.datepicker table tr td.selected:active{color:#fff;background-color:#5e5e5e;border-color:#373737}.datepicker table tr td.selected.active.focus,.datepicker table tr td.selected.active:focus,.datepicker table tr td.selected.active:hover,.datepicker table tr td.selected.highlighted.active.focus,.datepicker table tr td.selected.highlighted.active:focus,.datepicker table tr td.selected.highlighted.active:hover,.datepicker table tr td.selected.highlighted:active.focus,.datepicker table tr td.selected.highlighted:active:focus,.datepicker table tr td.selected.highlighted:active:hover,.datepicker table tr td.selected:active.focus,.datepicker table tr td.selected:active:focus,.datepicker table tr td.selected:active:hover{color:#fff;background-color:#4c4c4c;border-color:#161616}.datepicker table tr td.selected.disabled.focus,.datepicker table tr td.selected.disabled:focus,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.highlighted.disabled.focus,.datepicker table tr td.selected.highlighted.disabled:focus,.datepicker table tr td.selected.highlighted.disabled:hover,.datepicker table tr td.selected.highlighted[disabled].focus,.datepicker table tr td.selected.highlighted[disabled]:focus,.datepicker table tr td.selected.highlighted[disabled]:hover,.datepicker table tr td.selected[disabled].focus,.datepicker table tr td.selected[disabled]:focus,.datepicker table tr td.selected[disabled]:hover,fieldset[disabled] .datepicker table tr td.selected.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:hover,fieldset[disabled] .datepicker table tr td.selected:focus,fieldset[disabled] .datepicker table tr td.selected:hover{background-color:#777;border-color:#555}.datepicker table tr td.active,.datepicker table tr td.active.highlighted{color:#fff;background-color:#337ab7;border-color:#2e6da4;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.focus,.datepicker table tr td.active.highlighted.focus,.datepicker table tr td.active.highlighted:focus,.datepicker table tr td.active:focus{color:#fff;background-color:#286090;border-color:#122b40}.datepicker table tr td.active.highlighted:hover,.datepicker table tr td.active:hover{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td.active.active,.datepicker table tr td.active.highlighted.active,.datepicker table tr td.active.highlighted:active,.datepicker table tr td.active:active{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td.active.active.focus,.datepicker table tr td.active.active:focus,.datepicker table tr td.active.active:hover,.datepicker table tr td.active.highlighted.active.focus,.datepicker table tr td.active.highlighted.active:focus,.datepicker table tr td.active.highlighted.active:hover,.datepicker table tr td.active.highlighted:active.focus,.datepicker table tr td.active.highlighted:active:focus,.datepicker table tr td.active.highlighted:active:hover,.datepicker table tr td.active:active.focus,.datepicker table tr td.active:active:focus,.datepicker table tr td.active:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.datepicker table tr td.active.disabled.focus,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.highlighted.disabled.focus,.datepicker table tr td.active.highlighted.disabled:focus,.datepicker table tr td.active.highlighted.disabled:hover,.datepicker table tr td.active.highlighted[disabled].focus,.datepicker table tr td.active.highlighted[disabled]:focus,.datepicker table tr td.active.highlighted[disabled]:hover,.datepicker table tr td.active[disabled].focus,.datepicker table tr td.active[disabled]:focus,.datepicker table tr td.active[disabled]:hover,fieldset[disabled] .datepicker table tr td.active.focus,fieldset[disabled] .datepicker table tr td.active.highlighted.focus,fieldset[disabled] .datepicker table tr td.active.highlighted:focus,fieldset[disabled] .datepicker table tr td.active.highlighted:hover,fieldset[disabled] .datepicker table tr td.active:focus,fieldset[disabled] .datepicker table tr td.active:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#777;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{color:#fff;background-color:#337ab7;border-color:#2e6da4;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover.focus,.datepicker table tr td span.active.disabled:hover:focus,.datepicker table tr td span.active.focus,.datepicker table tr td span.active:focus,.datepicker table tr td span.active:hover.focus,.datepicker table tr td span.active:hover:focus{color:#fff;background-color:#286090;border-color:#122b40}.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover:hover{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td span.active.active.focus,.datepicker table tr td span.active.active:focus,.datepicker table tr td span.active.active:hover,.datepicker table tr td span.active.disabled.active.focus,.datepicker table tr td span.active.disabled.active:focus,.datepicker table tr td span.active.disabled.active:hover,.datepicker table tr td span.active.disabled:active.focus,.datepicker table tr td span.active.disabled:active:focus,.datepicker table tr td span.active.disabled:active:hover,.datepicker table tr td span.active.disabled:hover.active.focus,.datepicker table tr td span.active.disabled:hover.active:focus,.datepicker table tr td span.active.disabled:hover.active:hover,.datepicker table tr td span.active.disabled:hover:active.focus,.datepicker table tr td span.active.disabled:hover:active:focus,.datepicker table tr td span.active.disabled:hover:active:hover,.datepicker table tr td span.active:active.focus,.datepicker table tr td span.active:active:focus,.datepicker table tr td span.active:active:hover,.datepicker table tr td span.active:hover.active.focus,.datepicker table tr td span.active:hover.active:focus,.datepicker table tr td span.active:hover.active:hover,.datepicker table tr td span.active:hover:active.focus,.datepicker table tr td span.active:hover:active:focus,.datepicker table tr td span.active:hover:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.datepicker table tr td span.active.disabled.disabled.focus,.datepicker table tr td span.active.disabled.disabled:focus,.datepicker table tr td span.active.disabled.disabled:hover,.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.disabled.focus,.datepicker table tr td span.active.disabled:hover.disabled:focus,.datepicker table tr td span.active.disabled:hover.disabled:hover,.datepicker table tr td span.active.disabled:hover[disabled].focus,.datepicker table tr td span.active.disabled:hover[disabled]:focus,.datepicker table tr td span.active.disabled:hover[disabled]:hover,.datepicker table tr td span.active.disabled[disabled].focus,.datepicker table tr td span.active.disabled[disabled]:focus,.datepicker table tr td span.active.disabled[disabled]:hover,.datepicker table tr td span.active:hover.disabled.focus,.datepicker table tr td span.active:hover.disabled:focus,.datepicker table tr td span.active:hover.disabled:hover,.datepicker table tr td span.active:hover[disabled].focus,.datepicker table tr td span.active:hover[disabled]:focus,.datepicker table tr td span.active:hover[disabled]:hover,.datepicker table tr td span.active[disabled].focus,.datepicker table tr td span.active[disabled]:focus,.datepicker table tr td span.active[disabled]:hover,fieldset[disabled] .datepicker table tr td span.active.disabled.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover,fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,fieldset[disabled] .datepicker table tr td span.active.focus,fieldset[disabled] .datepicker table tr td span.active:focus,fieldset[disabled] .datepicker table tr td span.active:hover,fieldset[disabled] .datepicker table tr td span.active:hover.focus,fieldset[disabled] .datepicker table tr td span.active:hover:focus,fieldset[disabled] .datepicker table tr td span.active:hover:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#777}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-group.date .input-group-addon{cursor:pointer}.input-daterange{width:100%}.input-daterange input{text-align:center}.input-daterange input:first-child{border-radius:3px 0 0 3px}.input-daterange input:last-child{border-radius:0 3px 3px 0}.input-daterange .input-group-addon{width:auto;min-width:16px;padding:4px 5px;line-height:1.42857143;text-shadow:0 1px 0 #fff;border-width:1px 0;margin-left:-5px;margin-right:-5px} \ No newline at end of file +.datepicker{border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0;padding:4px}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.15);border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid rgba(0,0,0,.15)}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker table tr td,.datepicker table tr th{text-align:center;width:30px;height:30px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.new,.datepicker table tr td.old{color:#777}.datepicker table tr td.day:hover,.datepicker table tr td.focused{background:#eee;cursor:pointer}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#777;cursor:default}.datepicker table tr td.highlighted{color:#000;background-color:#d9edf7;border-color:#85c5e5;border-radius:0}.datepicker table tr td.highlighted.focus,.datepicker table tr td.highlighted:focus{color:#000;background-color:#afd9ee;border-color:#298fc2}.datepicker table tr td.highlighted:hover{color:#000;background-color:#afd9ee;border-color:#52addb}.datepicker table tr td.highlighted.active,.datepicker table tr td.highlighted:active{color:#000;background-color:#afd9ee;border-color:#52addb}.datepicker table tr td.highlighted.active.focus,.datepicker table tr td.highlighted.active:focus,.datepicker table tr td.highlighted.active:hover,.datepicker table tr td.highlighted:active.focus,.datepicker table tr td.highlighted:active:focus,.datepicker table tr td.highlighted:active:hover{color:#000;background-color:#91cbe8;border-color:#298fc2}.datepicker table tr td.highlighted.disabled.focus,.datepicker table tr td.highlighted.disabled:focus,.datepicker table tr td.highlighted.disabled:hover,.datepicker table tr td.highlighted[disabled].focus,.datepicker table tr td.highlighted[disabled]:focus,.datepicker table tr td.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.highlighted.focus,fieldset[disabled] .datepicker table tr td.highlighted:focus,fieldset[disabled] .datepicker table tr td.highlighted:hover{background-color:#d9edf7;border-color:#85c5e5}.datepicker table tr td.highlighted.focused{background:#afd9ee}.datepicker table tr td.highlighted.disabled,.datepicker table tr td.highlighted.disabled:active{background:#d9edf7;color:#777}.datepicker table tr td.today{color:#000;background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focus,.datepicker table tr td.today:focus{color:#000;background-color:#ffc966;border-color:#b37400}.datepicker table tr td.today:hover{color:#000;background-color:#ffc966;border-color:#f59e00}.datepicker table tr td.today.active,.datepicker table tr td.today:active{color:#000;background-color:#ffc966;border-color:#f59e00}.datepicker table tr td.today.active.focus,.datepicker table tr td.today.active:focus,.datepicker table tr td.today.active:hover,.datepicker table tr td.today:active.focus,.datepicker table tr td.today:active:focus,.datepicker table tr td.today:active:hover{color:#000;background-color:#ffbc42;border-color:#b37400}.datepicker table tr td.today.disabled.focus,.datepicker table tr td.today.disabled:focus,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today[disabled].focus,.datepicker table tr td.today[disabled]:focus,.datepicker table tr td.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.today.focus,fieldset[disabled] .datepicker table tr td.today:focus,fieldset[disabled] .datepicker table tr td.today:hover{background-color:#ffdb99;border-color:#ffb733}.datepicker table tr td.today.focused{background:#ffc966}.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:active{background:#ffdb99;color:#777}.datepicker table tr td.range{color:#000;background-color:#eee;border-color:#bbb;border-radius:0}.datepicker table tr td.range.focus,.datepicker table tr td.range:focus{color:#000;background-color:#d5d5d5;border-color:#7c7c7c}.datepicker table tr td.range:hover{color:#000;background-color:#d5d5d5;border-color:#9d9d9d}.datepicker table tr td.range.active,.datepicker table tr td.range:active{color:#000;background-color:#d5d5d5;border-color:#9d9d9d}.datepicker table tr td.range.active.focus,.datepicker table tr td.range.active:focus,.datepicker table tr td.range.active:hover,.datepicker table tr td.range:active.focus,.datepicker table tr td.range:active:focus,.datepicker table tr td.range:active:hover{color:#000;background-color:#c3c3c3;border-color:#7c7c7c}.datepicker table tr td.range.disabled.focus,.datepicker table tr td.range.disabled:focus,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range[disabled].focus,.datepicker table tr td.range[disabled]:focus,.datepicker table tr td.range[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.focus,fieldset[disabled] .datepicker table tr td.range:focus,fieldset[disabled] .datepicker table tr td.range:hover{background-color:#eee;border-color:#bbb}.datepicker table tr td.range.focused{background:#d5d5d5}.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:active{background:#eee;color:#777}.datepicker table tr td.range.highlighted{color:#000;background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focus,.datepicker table tr td.range.highlighted:focus{color:#000;background-color:#c1d7e3;border-color:#4b88a6}.datepicker table tr td.range.highlighted:hover{color:#000;background-color:#c1d7e3;border-color:#73a6c0}.datepicker table tr td.range.highlighted.active,.datepicker table tr td.range.highlighted:active{color:#000;background-color:#c1d7e3;border-color:#73a6c0}.datepicker table tr td.range.highlighted.active.focus,.datepicker table tr td.range.highlighted.active:focus,.datepicker table tr td.range.highlighted.active:hover,.datepicker table tr td.range.highlighted:active.focus,.datepicker table tr td.range.highlighted:active:focus,.datepicker table tr td.range.highlighted:active:hover{color:#000;background-color:#a8c8d8;border-color:#4b88a6}.datepicker table tr td.range.highlighted.disabled.focus,.datepicker table tr td.range.highlighted.disabled:focus,.datepicker table tr td.range.highlighted.disabled:hover,.datepicker table tr td.range.highlighted[disabled].focus,.datepicker table tr td.range.highlighted[disabled]:focus,.datepicker table tr td.range.highlighted[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.highlighted.focus,fieldset[disabled] .datepicker table tr td.range.highlighted:focus,fieldset[disabled] .datepicker table tr td.range.highlighted:hover{background-color:#e4eef3;border-color:#9dc1d3}.datepicker table tr td.range.highlighted.focused{background:#c1d7e3}.datepicker table tr td.range.highlighted.disabled,.datepicker table tr td.range.highlighted.disabled:active{background:#e4eef3;color:#777}.datepicker table tr td.range.today{color:#000;background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.focus,.datepicker table tr td.range.today:focus{color:#000;background-color:#f4b747;border-color:#815608}.datepicker table tr td.range.today:hover{color:#000;background-color:#f4b747;border-color:#bf800c}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today:active{color:#000;background-color:#f4b747;border-color:#bf800c}.datepicker table tr td.range.today.active.focus,.datepicker table tr td.range.today.active:focus,.datepicker table tr td.range.today.active:hover,.datepicker table tr td.range.today:active.focus,.datepicker table tr td.range.today:active:focus,.datepicker table tr td.range.today:active:hover{color:#000;background-color:#f2aa25;border-color:#815608}.datepicker table tr td.range.today.disabled.focus,.datepicker table tr td.range.today.disabled:focus,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today[disabled].focus,.datepicker table tr td.range.today[disabled]:focus,.datepicker table tr td.range.today[disabled]:hover,fieldset[disabled] .datepicker table tr td.range.today.focus,fieldset[disabled] .datepicker table tr td.range.today:focus,fieldset[disabled] .datepicker table tr td.range.today:hover{background-color:#f7ca77;border-color:#f1a417}.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:active{background:#f7ca77;color:#777}.datepicker table tr td.selected,.datepicker table tr td.selected.highlighted{color:#fff;background-color:#777;border-color:#555;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.focus,.datepicker table tr td.selected.highlighted.focus,.datepicker table tr td.selected.highlighted:focus,.datepicker table tr td.selected:focus{color:#fff;background-color:#5e5e5e;border-color:#161616}.datepicker table tr td.selected.highlighted:hover,.datepicker table tr td.selected:hover{color:#fff;background-color:#5e5e5e;border-color:#373737}.datepicker table tr td.selected.active,.datepicker table tr td.selected.highlighted.active,.datepicker table tr td.selected.highlighted:active,.datepicker table tr td.selected:active{color:#fff;background-color:#5e5e5e;border-color:#373737}.datepicker table tr td.selected.active.focus,.datepicker table tr td.selected.active:focus,.datepicker table tr td.selected.active:hover,.datepicker table tr td.selected.highlighted.active.focus,.datepicker table tr td.selected.highlighted.active:focus,.datepicker table tr td.selected.highlighted.active:hover,.datepicker table tr td.selected.highlighted:active.focus,.datepicker table tr td.selected.highlighted:active:focus,.datepicker table tr td.selected.highlighted:active:hover,.datepicker table tr td.selected:active.focus,.datepicker table tr td.selected:active:focus,.datepicker table tr td.selected:active:hover{color:#fff;background-color:#4c4c4c;border-color:#161616}.datepicker table tr td.selected.disabled.focus,.datepicker table tr td.selected.disabled:focus,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.highlighted.disabled.focus,.datepicker table tr td.selected.highlighted.disabled:focus,.datepicker table tr td.selected.highlighted.disabled:hover,.datepicker table tr td.selected.highlighted[disabled].focus,.datepicker table tr td.selected.highlighted[disabled]:focus,.datepicker table tr td.selected.highlighted[disabled]:hover,.datepicker table tr td.selected[disabled].focus,.datepicker table tr td.selected[disabled]:focus,.datepicker table tr td.selected[disabled]:hover,fieldset[disabled] .datepicker table tr td.selected.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted.focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:focus,fieldset[disabled] .datepicker table tr td.selected.highlighted:hover,fieldset[disabled] .datepicker table tr td.selected:focus,fieldset[disabled] .datepicker table tr td.selected:hover{background-color:#777;border-color:#555}.datepicker table tr td.active,.datepicker table tr td.active.highlighted{color:#fff;background-color:#337ab7;border-color:#2e6da4;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.focus,.datepicker table tr td.active.highlighted.focus,.datepicker table tr td.active.highlighted:focus,.datepicker table tr td.active:focus{color:#fff;background-color:#286090;border-color:#122b40}.datepicker table tr td.active.highlighted:hover,.datepicker table tr td.active:hover{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td.active.active,.datepicker table tr td.active.highlighted.active,.datepicker table tr td.active.highlighted:active,.datepicker table tr td.active:active{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td.active.active.focus,.datepicker table tr td.active.active:focus,.datepicker table tr td.active.active:hover,.datepicker table tr td.active.highlighted.active.focus,.datepicker table tr td.active.highlighted.active:focus,.datepicker table tr td.active.highlighted.active:hover,.datepicker table tr td.active.highlighted:active.focus,.datepicker table tr td.active.highlighted:active:focus,.datepicker table tr td.active.highlighted:active:hover,.datepicker table tr td.active:active.focus,.datepicker table tr td.active:active:focus,.datepicker table tr td.active:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.datepicker table tr td.active.disabled.focus,.datepicker table tr td.active.disabled:focus,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.highlighted.disabled.focus,.datepicker table tr td.active.highlighted.disabled:focus,.datepicker table tr td.active.highlighted.disabled:hover,.datepicker table tr td.active.highlighted[disabled].focus,.datepicker table tr td.active.highlighted[disabled]:focus,.datepicker table tr td.active.highlighted[disabled]:hover,.datepicker table tr td.active[disabled].focus,.datepicker table tr td.active[disabled]:focus,.datepicker table tr td.active[disabled]:hover,fieldset[disabled] .datepicker table tr td.active.focus,fieldset[disabled] .datepicker table tr td.active.highlighted.focus,fieldset[disabled] .datepicker table tr td.active.highlighted:focus,fieldset[disabled] .datepicker table tr td.active.highlighted:hover,fieldset[disabled] .datepicker table tr td.active:focus,fieldset[disabled] .datepicker table tr td.active:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#777;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{color:#fff;background-color:#337ab7;border-color:#2e6da4;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover.focus,.datepicker table tr td span.active.disabled:hover:focus,.datepicker table tr td span.active.focus,.datepicker table tr td span.active:focus,.datepicker table tr td span.active:hover.focus,.datepicker table tr td span.active:hover:focus{color:#fff;background-color:#286090;border-color:#122b40}.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover:hover{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{color:#fff;background-color:#286090;border-color:#204d74}.datepicker table tr td span.active.active.focus,.datepicker table tr td span.active.active:focus,.datepicker table tr td span.active.active:hover,.datepicker table tr td span.active.disabled.active.focus,.datepicker table tr td span.active.disabled.active:focus,.datepicker table tr td span.active.disabled.active:hover,.datepicker table tr td span.active.disabled:active.focus,.datepicker table tr td span.active.disabled:active:focus,.datepicker table tr td span.active.disabled:active:hover,.datepicker table tr td span.active.disabled:hover.active.focus,.datepicker table tr td span.active.disabled:hover.active:focus,.datepicker table tr td span.active.disabled:hover.active:hover,.datepicker table tr td span.active.disabled:hover:active.focus,.datepicker table tr td span.active.disabled:hover:active:focus,.datepicker table tr td span.active.disabled:hover:active:hover,.datepicker table tr td span.active:active.focus,.datepicker table tr td span.active:active:focus,.datepicker table tr td span.active:active:hover,.datepicker table tr td span.active:hover.active.focus,.datepicker table tr td span.active:hover.active:focus,.datepicker table tr td span.active:hover.active:hover,.datepicker table tr td span.active:hover:active.focus,.datepicker table tr td span.active:hover:active:focus,.datepicker table tr td span.active:hover:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.datepicker table tr td span.active.disabled.disabled.focus,.datepicker table tr td span.active.disabled.disabled:focus,.datepicker table tr td span.active.disabled.disabled:hover,.datepicker table tr td span.active.disabled.focus,.datepicker table tr td span.active.disabled:focus,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.disabled.focus,.datepicker table tr td span.active.disabled:hover.disabled:focus,.datepicker table tr td span.active.disabled:hover.disabled:hover,.datepicker table tr td span.active.disabled:hover[disabled].focus,.datepicker table tr td span.active.disabled:hover[disabled]:focus,.datepicker table tr td span.active.disabled:hover[disabled]:hover,.datepicker table tr td span.active.disabled[disabled].focus,.datepicker table tr td span.active.disabled[disabled]:focus,.datepicker table tr td span.active.disabled[disabled]:hover,.datepicker table tr td span.active:hover.disabled.focus,.datepicker table tr td span.active:hover.disabled:focus,.datepicker table tr td span.active:hover.disabled:hover,.datepicker table tr td span.active:hover[disabled].focus,.datepicker table tr td span.active:hover[disabled]:focus,.datepicker table tr td span.active:hover[disabled]:hover,.datepicker table tr td span.active[disabled].focus,.datepicker table tr td span.active[disabled]:focus,.datepicker table tr td span.active[disabled]:hover,fieldset[disabled] .datepicker table tr td span.active.disabled.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover,fieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,fieldset[disabled] .datepicker table tr td span.active.focus,fieldset[disabled] .datepicker table tr td span.active:focus,fieldset[disabled] .datepicker table tr td span.active:hover,fieldset[disabled] .datepicker table tr td span.active:hover.focus,fieldset[disabled] .datepicker table tr td span.active:hover:focus,fieldset[disabled] .datepicker table tr td span.active:hover:hover{background-color:#337ab7;border-color:#2e6da4}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#777}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-group.date .input-group-addon{cursor:pointer}.input-daterange{width:100%}.input-daterange input{text-align:center}.input-daterange input:first-child{border-radius:3px 0 0 3px}.input-daterange input:last-child{border-radius:0 3px 3px 0}.input-daterange .input-group-addon{width:auto;min-width:16px;padding:4px 5px;line-height:1.42857143;border-width:1px 0;margin-left:-5px;margin-right:-5px} \ No newline at end of file diff --git a/cps/static/js/caliBlur.js b/cps/static/js/caliBlur.js index 5d0ea612..2f159683 100644 --- a/cps/static/js/caliBlur.js +++ b/cps/static/js/caliBlur.js @@ -40,7 +40,7 @@ $( 'a.navbar-brand' ).clone().appendTo( '.home-btn' ).empty().removeClass('navba // Wrap book description in div container if ( $( 'body.book' ).length > 0 ) { - + description = $( '.comments' ); bookInfo = $( '.author' ).nextUntil( 'h3:contains("Description")'); $( 'h3:contains("Description")' ).detach(); @@ -144,7 +144,7 @@ return $(this).text().replace(/^\s+|^\t+|\t+|\s+$/g, ""); $.each(published, function(i, val) { $( '.publishing-date' ).append( '<span>' + published[i] + '</span>' ); }); - + languages = $( '.languages p span' ).text().split( ': ' ); $( '.languages p span' ).remove(); $.each(languages, function(i, val) { @@ -335,7 +335,7 @@ $( 'input#query' ).focusout(function() { $( 'form[role="search"]' ).removeClass( 'search-focus' ); }, 100); }); - + // Check if dropdown goes out of viewport and add class $(document).on('click','.dropdown-toggle',function() { @@ -521,8 +521,6 @@ $( '#add-to-shelf' ).attr({ 'data-viewport': '.btn-toolbar' }) .addClass('addtoshelf-btn-tooltip'); -var teetet = $( '#add-to-shelf' ).text() - $( '#have_read_cb' ).attr({ 'data-toggle': 'tooltip', 'title': 'Mark As Read', @@ -559,8 +557,6 @@ $( '.btn-group[aria-label="Edit/Delete book"] a' ).attr({ 'data-viewport': '.btn-toolbar' }) .addClass('edit-btn-tooltip'); -var teetet = $( '#edit_book' ).text() - $( '#sendbtn' ).attr({ 'data-toggle': 'tooltip', 'title': 'Send to Kindle', diff --git a/cps/static/js/libs/bootstrap-datepicker/bootstrap-datepicker.min.js b/cps/static/js/libs/bootstrap-datepicker/bootstrap-datepicker.min.js index 1474f09b..14457e0c 100644 --- a/cps/static/js/libs/bootstrap-datepicker/bootstrap-datepicker.min.js +++ b/cps/static/js/libs/bootstrap-datepicker/bootstrap-datepicker.min.js @@ -1,8 +1,8 @@ /*! - * Datepicker for Bootstrap v1.7.1 (https://github.com/uxsolutions/bootstrap-datepicker) + * Datepicker for Bootstrap v1.8.0 (https://github.com/uxsolutions/bootstrap-datepicker) * * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) */ -!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a,b){function c(){return new Date(Date.UTC.apply(Date,arguments))}function d(){var a=new Date;return c(a.getFullYear(),a.getMonth(),a.getDate())}function e(a,b){return a.getUTCFullYear()===b.getUTCFullYear()&&a.getUTCMonth()===b.getUTCMonth()&&a.getUTCDate()===b.getUTCDate()}function f(c,d){return function(){return d!==b&&a.fn.datepicker.deprecated(d),this[c].apply(this,arguments)}}function g(a){return a&&!isNaN(a.getTime())}function h(b,c){function d(a,b){return b.toLowerCase()}var e,f=a(b).data(),g={},h=new RegExp("^"+c.toLowerCase()+"([A-Z])");c=new RegExp("^"+c.toLowerCase());for(var i in f)c.test(i)&&(e=i.replace(h,d),g[e]=f[i]);return g}function i(b){var c={};if(q[b]||(b=b.split("-")[0],q[b])){var d=q[b];return a.each(p,function(a,b){b in d&&(c[b]=d[b])}),c}}var j=function(){var b={get:function(a){return this.slice(a)[0]},contains:function(a){for(var b=a&&a.valueOf(),c=0,d=this.length;c<d;c++)if(0<=this[c].valueOf()-b&&this[c].valueOf()-b<864e5)return c;return-1},remove:function(a){this.splice(a,1)},replace:function(b){b&&(a.isArray(b)||(b=[b]),this.clear(),this.push.apply(this,b))},clear:function(){this.length=0},copy:function(){var a=new j;return a.replace(this),a}};return function(){var c=[];return c.push.apply(c,arguments),a.extend(c,b),c}}(),k=function(b,c){a.data(b,"datepicker",this),this._process_options(c),this.dates=new j,this.viewDate=this.o.defaultViewDate,this.focusDate=null,this.element=a(b),this.isInput=this.element.is("input"),this.inputField=this.isInput?this.element:this.element.find("input"),this.component=!!this.element.hasClass("date")&&this.element.find(".add-on, .input-group-addon, .btn"),this.component&&0===this.component.length&&(this.component=!1),this.isInline=!this.component&&this.element.is("div"),this.picker=a(r.template),this._check_template(this.o.templates.leftArrow)&&this.picker.find(".prev").html(this.o.templates.leftArrow),this._check_template(this.o.templates.rightArrow)&&this.picker.find(".next").html(this.o.templates.rightArrow),this._buildEvents(),this._attachEvents(),this.isInline?this.picker.addClass("datepicker-inline").appendTo(this.element):this.picker.addClass("datepicker-dropdown dropdown-menu"),this.o.rtl&&this.picker.addClass("datepicker-rtl"),this.o.calendarWeeks&&this.picker.find(".datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear").attr("colspan",function(a,b){return Number(b)+1}),this._process_options({startDate:this._o.startDate,endDate:this._o.endDate,daysOfWeekDisabled:this.o.daysOfWeekDisabled,daysOfWeekHighlighted:this.o.daysOfWeekHighlighted,datesDisabled:this.o.datesDisabled}),this._allow_update=!1,this.setViewMode(this.o.startView),this._allow_update=!0,this.fillDow(),this.fillMonths(),this.update(),this.isInline&&this.show()};k.prototype={constructor:k,_resolveViewName:function(b){return a.each(r.viewModes,function(c,d){if(b===c||a.inArray(b,d.names)!==-1)return b=c,!1}),b},_resolveDaysOfWeek:function(b){return a.isArray(b)||(b=b.split(/[,\s]*/)),a.map(b,Number)},_check_template:function(c){try{if(c===b||""===c)return!1;if((c.match(/[<>]/g)||[]).length<=0)return!0;var d=a(c);return d.length>0}catch(a){return!1}},_process_options:function(b){this._o=a.extend({},this._o,b);var e=this.o=a.extend({},this._o),f=e.language;q[f]||(f=f.split("-")[0],q[f]||(f=o.language)),e.language=f,e.startView=this._resolveViewName(e.startView),e.minViewMode=this._resolveViewName(e.minViewMode),e.maxViewMode=this._resolveViewName(e.maxViewMode),e.startView=Math.max(this.o.minViewMode,Math.min(this.o.maxViewMode,e.startView)),e.multidate!==!0&&(e.multidate=Number(e.multidate)||!1,e.multidate!==!1&&(e.multidate=Math.max(0,e.multidate))),e.multidateSeparator=String(e.multidateSeparator),e.weekStart%=7,e.weekEnd=(e.weekStart+6)%7;var g=r.parseFormat(e.format);e.startDate!==-(1/0)&&(e.startDate?e.startDate instanceof Date?e.startDate=this._local_to_utc(this._zero_time(e.startDate)):e.startDate=r.parseDate(e.startDate,g,e.language,e.assumeNearbyYear):e.startDate=-(1/0)),e.endDate!==1/0&&(e.endDate?e.endDate instanceof Date?e.endDate=this._local_to_utc(this._zero_time(e.endDate)):e.endDate=r.parseDate(e.endDate,g,e.language,e.assumeNearbyYear):e.endDate=1/0),e.daysOfWeekDisabled=this._resolveDaysOfWeek(e.daysOfWeekDisabled||[]),e.daysOfWeekHighlighted=this._resolveDaysOfWeek(e.daysOfWeekHighlighted||[]),e.datesDisabled=e.datesDisabled||[],a.isArray(e.datesDisabled)||(e.datesDisabled=e.datesDisabled.split(",")),e.datesDisabled=a.map(e.datesDisabled,function(a){return r.parseDate(a,g,e.language,e.assumeNearbyYear)});var h=String(e.orientation).toLowerCase().split(/\s+/g),i=e.orientation.toLowerCase();if(h=a.grep(h,function(a){return/^auto|left|right|top|bottom$/.test(a)}),e.orientation={x:"auto",y:"auto"},i&&"auto"!==i)if(1===h.length)switch(h[0]){case"top":case"bottom":e.orientation.y=h[0];break;case"left":case"right":e.orientation.x=h[0]}else i=a.grep(h,function(a){return/^left|right$/.test(a)}),e.orientation.x=i[0]||"auto",i=a.grep(h,function(a){return/^top|bottom$/.test(a)}),e.orientation.y=i[0]||"auto";else;if(e.defaultViewDate instanceof Date||"string"==typeof e.defaultViewDate)e.defaultViewDate=r.parseDate(e.defaultViewDate,g,e.language,e.assumeNearbyYear);else if(e.defaultViewDate){var j=e.defaultViewDate.year||(new Date).getFullYear(),k=e.defaultViewDate.month||0,l=e.defaultViewDate.day||1;e.defaultViewDate=c(j,k,l)}else e.defaultViewDate=d()},_events:[],_secondaryEvents:[],_applyEvents:function(a){for(var c,d,e,f=0;f<a.length;f++)c=a[f][0],2===a[f].length?(d=b,e=a[f][1]):3===a[f].length&&(d=a[f][1],e=a[f][2]),c.on(e,d)},_unapplyEvents:function(a){for(var c,d,e,f=0;f<a.length;f++)c=a[f][0],2===a[f].length?(e=b,d=a[f][1]):3===a[f].length&&(e=a[f][1],d=a[f][2]),c.off(d,e)},_buildEvents:function(){var b={keyup:a.proxy(function(b){a.inArray(b.keyCode,[27,37,39,38,40,32,13,9])===-1&&this.update()},this),keydown:a.proxy(this.keydown,this),paste:a.proxy(this.paste,this)};this.o.showOnFocus===!0&&(b.focus=a.proxy(this.show,this)),this.isInput?this._events=[[this.element,b]]:this.component&&this.inputField.length?this._events=[[this.inputField,b],[this.component,{click:a.proxy(this.show,this)}]]:this._events=[[this.element,{click:a.proxy(this.show,this),keydown:a.proxy(this.keydown,this)}]],this._events.push([this.element,"*",{blur:a.proxy(function(a){this._focused_from=a.target},this)}],[this.element,{blur:a.proxy(function(a){this._focused_from=a.target},this)}]),this.o.immediateUpdates&&this._events.push([this.element,{"changeYear changeMonth":a.proxy(function(a){this.update(a.date)},this)}]),this._secondaryEvents=[[this.picker,{click:a.proxy(this.click,this)}],[this.picker,".prev, .next",{click:a.proxy(this.navArrowsClick,this)}],[this.picker,".day:not(.disabled)",{click:a.proxy(this.dayCellClick,this)}],[a(window),{resize:a.proxy(this.place,this)}],[a(document),{"mousedown touchstart":a.proxy(function(a){this.element.is(a.target)||this.element.find(a.target).length||this.picker.is(a.target)||this.picker.find(a.target).length||this.isInline||this.hide()},this)}]]},_attachEvents:function(){this._detachEvents(),this._applyEvents(this._events)},_detachEvents:function(){this._unapplyEvents(this._events)},_attachSecondaryEvents:function(){this._detachSecondaryEvents(),this._applyEvents(this._secondaryEvents)},_detachSecondaryEvents:function(){this._unapplyEvents(this._secondaryEvents)},_trigger:function(b,c){var d=c||this.dates.get(-1),e=this._utc_to_local(d);this.element.trigger({type:b,date:e,viewMode:this.viewMode,dates:a.map(this.dates,this._utc_to_local),format:a.proxy(function(a,b){0===arguments.length?(a=this.dates.length-1,b=this.o.format):"string"==typeof a&&(b=a,a=this.dates.length-1),b=b||this.o.format;var c=this.dates.get(a);return r.formatDate(c,b,this.o.language)},this)})},show:function(){if(!(this.inputField.prop("disabled")||this.inputField.prop("readonly")&&this.o.enableOnReadonly===!1))return this.isInline||this.picker.appendTo(this.o.container),this.place(),this.picker.show(),this._attachSecondaryEvents(),this._trigger("show"),(window.navigator.msMaxTouchPoints||"ontouchstart"in document)&&this.o.disableTouchKeyboard&&a(this.element).blur(),this},hide:function(){return this.isInline||!this.picker.is(":visible")?this:(this.focusDate=null,this.picker.hide().detach(),this._detachSecondaryEvents(),this.setViewMode(this.o.startView),this.o.forceParse&&this.inputField.val()&&this.setValue(),this._trigger("hide"),this)},destroy:function(){return this.hide(),this._detachEvents(),this._detachSecondaryEvents(),this.picker.remove(),delete this.element.data().datepicker,this.isInput||delete this.element.data().date,this},paste:function(b){var c;if(b.originalEvent.clipboardData&&b.originalEvent.clipboardData.types&&a.inArray("text/plain",b.originalEvent.clipboardData.types)!==-1)c=b.originalEvent.clipboardData.getData("text/plain");else{if(!window.clipboardData)return;c=window.clipboardData.getData("Text")}this.setDate(c),this.update(),b.preventDefault()},_utc_to_local:function(a){if(!a)return a;var b=new Date(a.getTime()+6e4*a.getTimezoneOffset());return b.getTimezoneOffset()!==a.getTimezoneOffset()&&(b=new Date(a.getTime()+6e4*b.getTimezoneOffset())),b},_local_to_utc:function(a){return a&&new Date(a.getTime()-6e4*a.getTimezoneOffset())},_zero_time:function(a){return a&&new Date(a.getFullYear(),a.getMonth(),a.getDate())},_zero_utc_time:function(a){return a&&c(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate())},getDates:function(){return a.map(this.dates,this._utc_to_local)},getUTCDates:function(){return a.map(this.dates,function(a){return new Date(a)})},getDate:function(){return this._utc_to_local(this.getUTCDate())},getUTCDate:function(){var a=this.dates.get(-1);return a!==b?new Date(a):null},clearDates:function(){this.inputField.val(""),this.update(),this._trigger("changeDate"),this.o.autoclose&&this.hide()},setDates:function(){var b=a.isArray(arguments[0])?arguments[0]:arguments;return this.update.apply(this,b),this._trigger("changeDate"),this.setValue(),this},setUTCDates:function(){var b=a.isArray(arguments[0])?arguments[0]:arguments;return this.setDates.apply(this,a.map(b,this._utc_to_local)),this},setDate:f("setDates"),setUTCDate:f("setUTCDates"),remove:f("destroy","Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead"),setValue:function(){var a=this.getFormattedDate();return this.inputField.val(a),this},getFormattedDate:function(c){c===b&&(c=this.o.format);var d=this.o.language;return a.map(this.dates,function(a){return r.formatDate(a,c,d)}).join(this.o.multidateSeparator)},getStartDate:function(){return this.o.startDate},setStartDate:function(a){return this._process_options({startDate:a}),this.update(),this.updateNavArrows(),this},getEndDate:function(){return this.o.endDate},setEndDate:function(a){return this._process_options({endDate:a}),this.update(),this.updateNavArrows(),this},setDaysOfWeekDisabled:function(a){return this._process_options({daysOfWeekDisabled:a}),this.update(),this},setDaysOfWeekHighlighted:function(a){return this._process_options({daysOfWeekHighlighted:a}),this.update(),this},setDatesDisabled:function(a){return this._process_options({datesDisabled:a}),this.update(),this},place:function(){if(this.isInline)return this;var b=this.picker.outerWidth(),c=this.picker.outerHeight(),d=10,e=a(this.o.container),f=e.width(),g="body"===this.o.container?a(document).scrollTop():e.scrollTop(),h=e.offset(),i=[0];this.element.parents().each(function(){var b=a(this).css("z-index");"auto"!==b&&0!==Number(b)&&i.push(Number(b))});var j=Math.max.apply(Math,i)+this.o.zIndexOffset,k=this.component?this.component.parent().offset():this.element.offset(),l=this.component?this.component.outerHeight(!0):this.element.outerHeight(!1),m=this.component?this.component.outerWidth(!0):this.element.outerWidth(!1),n=k.left-h.left,o=k.top-h.top;"body"!==this.o.container&&(o+=g),this.picker.removeClass("datepicker-orient-top datepicker-orient-bottom datepicker-orient-right datepicker-orient-left"),"auto"!==this.o.orientation.x?(this.picker.addClass("datepicker-orient-"+this.o.orientation.x),"right"===this.o.orientation.x&&(n-=b-m)):k.left<0?(this.picker.addClass("datepicker-orient-left"),n-=k.left-d):n+b>f?(this.picker.addClass("datepicker-orient-right"),n+=m-b):this.o.rtl?this.picker.addClass("datepicker-orient-right"):this.picker.addClass("datepicker-orient-left");var p,q=this.o.orientation.y;if("auto"===q&&(p=-g+o-c,q=p<0?"bottom":"top"),this.picker.addClass("datepicker-orient-"+q),"top"===q?o-=c+parseInt(this.picker.css("padding-top")):o+=l,this.o.rtl){var r=f-(n+m);this.picker.css({top:o,right:r,zIndex:j})}else this.picker.css({top:o,left:n,zIndex:j});return this},_allow_update:!0,update:function(){if(!this._allow_update)return this;var b=this.dates.copy(),c=[],d=!1;return arguments.length?(a.each(arguments,a.proxy(function(a,b){b instanceof Date&&(b=this._local_to_utc(b)),c.push(b)},this)),d=!0):(c=this.isInput?this.element.val():this.element.data("date")||this.inputField.val(),c=c&&this.o.multidate?c.split(this.o.multidateSeparator):[c],delete this.element.data().date),c=a.map(c,a.proxy(function(a){return r.parseDate(a,this.o.format,this.o.language,this.o.assumeNearbyYear)},this)),c=a.grep(c,a.proxy(function(a){return!this.dateWithinRange(a)||!a},this),!0),this.dates.replace(c),this.o.updateViewDate&&(this.dates.length?this.viewDate=new Date(this.dates.get(-1)):this.viewDate<this.o.startDate?this.viewDate=new Date(this.o.startDate):this.viewDate>this.o.endDate?this.viewDate=new Date(this.o.endDate):this.viewDate=this.o.defaultViewDate),d?(this.setValue(),this.element.change()):this.dates.length&&String(b)!==String(this.dates)&&d&&(this._trigger("changeDate"),this.element.change()),!this.dates.length&&b.length&&(this._trigger("clearDate"),this.element.change()),this.fill(),this},fillDow:function(){if(this.o.showWeekDays){var b=this.o.weekStart,c="<tr>";for(this.o.calendarWeeks&&(c+='<th class="cw"> </th>');b<this.o.weekStart+7;)c+='<th class="dow',a.inArray(b,this.o.daysOfWeekDisabled)!==-1&&(c+=" disabled"),c+='">'+q[this.o.language].daysMin[b++%7]+"</th>";c+="</tr>",this.picker.find(".datepicker-days thead").append(c)}},fillMonths:function(){for(var a,b=this._utc_to_local(this.viewDate),c="",d=0;d<12;d++)a=b&&b.getMonth()===d?" focused":"",c+='<span class="month'+a+'">'+q[this.o.language].monthsShort[d]+"</span>";this.picker.find(".datepicker-months td").html(c)},setRange:function(b){b&&b.length?this.range=a.map(b,function(a){return a.valueOf()}):delete this.range,this.fill()},getClassNames:function(b){var c=[],f=this.viewDate.getUTCFullYear(),g=this.viewDate.getUTCMonth(),h=d();return b.getUTCFullYear()<f||b.getUTCFullYear()===f&&b.getUTCMonth()<g?c.push("old"):(b.getUTCFullYear()>f||b.getUTCFullYear()===f&&b.getUTCMonth()>g)&&c.push("new"),this.focusDate&&b.valueOf()===this.focusDate.valueOf()&&c.push("focused"),this.o.todayHighlight&&e(b,h)&&c.push("today"),this.dates.contains(b)!==-1&&c.push("active"),this.dateWithinRange(b)||c.push("disabled"),this.dateIsDisabled(b)&&c.push("disabled","disabled-date"),a.inArray(b.getUTCDay(),this.o.daysOfWeekHighlighted)!==-1&&c.push("highlighted"),this.range&&(b>this.range[0]&&b<this.range[this.range.length-1]&&c.push("range"),a.inArray(b.valueOf(),this.range)!==-1&&c.push("selected"),b.valueOf()===this.range[0]&&c.push("range-start"),b.valueOf()===this.range[this.range.length-1]&&c.push("range-end")),c},_fill_yearsView:function(c,d,e,f,g,h,i){for(var j,k,l,m="",n=e/10,o=this.picker.find(c),p=Math.floor(f/e)*e,q=p+9*n,r=Math.floor(this.viewDate.getFullYear()/n)*n,s=a.map(this.dates,function(a){return Math.floor(a.getUTCFullYear()/n)*n}),t=p-n;t<=q+n;t+=n)j=[d],k=null,t===p-n?j.push("old"):t===q+n&&j.push("new"),a.inArray(t,s)!==-1&&j.push("active"),(t<g||t>h)&&j.push("disabled"),t===r&&j.push("focused"),i!==a.noop&&(l=i(new Date(t,0,1)),l===b?l={}:"boolean"==typeof l?l={enabled:l}:"string"==typeof l&&(l={classes:l}),l.enabled===!1&&j.push("disabled"),l.classes&&(j=j.concat(l.classes.split(/\s+/))),l.tooltip&&(k=l.tooltip)),m+='<span class="'+j.join(" ")+'"'+(k?' title="'+k+'"':"")+">"+t+"</span>";o.find(".datepicker-switch").text(p+"-"+q),o.find("td").html(m)},fill:function(){var d,e,f=new Date(this.viewDate),g=f.getUTCFullYear(),h=f.getUTCMonth(),i=this.o.startDate!==-(1/0)?this.o.startDate.getUTCFullYear():-(1/0),j=this.o.startDate!==-(1/0)?this.o.startDate.getUTCMonth():-(1/0),k=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,l=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,m=q[this.o.language].today||q.en.today||"",n=q[this.o.language].clear||q.en.clear||"",o=q[this.o.language].titleFormat||q.en.titleFormat;if(!isNaN(g)&&!isNaN(h)){this.picker.find(".datepicker-days .datepicker-switch").text(r.formatDate(f,o,this.o.language)),this.picker.find("tfoot .today").text(m).css("display",this.o.todayBtn===!0||"linked"===this.o.todayBtn?"table-cell":"none"),this.picker.find("tfoot .clear").text(n).css("display",this.o.clearBtn===!0?"table-cell":"none"),this.picker.find("thead .datepicker-title").text(this.o.title).css("display","string"==typeof this.o.title&&""!==this.o.title?"table-cell":"none"),this.updateNavArrows(),this.fillMonths();var p=c(g,h,0),s=p.getUTCDate();p.setUTCDate(s-(p.getUTCDay()-this.o.weekStart+7)%7);var t=new Date(p);p.getUTCFullYear()<100&&t.setUTCFullYear(p.getUTCFullYear()),t.setUTCDate(t.getUTCDate()+42),t=t.valueOf();for(var u,v,w=[];p.valueOf()<t;){if(u=p.getUTCDay(),u===this.o.weekStart&&(w.push("<tr>"),this.o.calendarWeeks)){var x=new Date(+p+(this.o.weekStart-u-7)%7*864e5),y=new Date(Number(x)+(11-x.getUTCDay())%7*864e5),z=new Date(Number(z=c(y.getUTCFullYear(),0,1))+(11-z.getUTCDay())%7*864e5),A=(y-z)/864e5/7+1;w.push('<td class="cw">'+A+"</td>")}v=this.getClassNames(p),v.push("day");var B=p.getUTCDate();this.o.beforeShowDay!==a.noop&&(e=this.o.beforeShowDay(this._utc_to_local(p)),e===b?e={}:"boolean"==typeof e?e={enabled:e}:"string"==typeof e&&(e={classes:e}),e.enabled===!1&&v.push("disabled"),e.classes&&(v=v.concat(e.classes.split(/\s+/))),e.tooltip&&(d=e.tooltip),e.content&&(B=e.content)),v=a.isFunction(a.uniqueSort)?a.uniqueSort(v):a.unique(v),w.push('<td class="'+v.join(" ")+'"'+(d?' title="'+d+'"':"")+' data-date="'+p.getTime().toString()+'">'+B+"</td>"),d=null,u===this.o.weekEnd&&w.push("</tr>"),p.setUTCDate(p.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").html(w.join(""));var C=q[this.o.language].monthsTitle||q.en.monthsTitle||"Months",D=this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode<2?C:g).end().find("tbody span").removeClass("active");if(a.each(this.dates,function(a,b){b.getUTCFullYear()===g&&D.eq(b.getUTCMonth()).addClass("active")}),(g<i||g>k)&&D.addClass("disabled"),g===i&&D.slice(0,j).addClass("disabled"),g===k&&D.slice(l+1).addClass("disabled"),this.o.beforeShowMonth!==a.noop){var E=this;a.each(D,function(c,d){var e=new Date(g,c,1),f=E.o.beforeShowMonth(e);f===b?f={}:"boolean"==typeof f?f={enabled:f}:"string"==typeof f&&(f={classes:f}),f.enabled!==!1||a(d).hasClass("disabled")||a(d).addClass("disabled"),f.classes&&a(d).addClass(f.classes),f.tooltip&&a(d).prop("title",f.tooltip)})}this._fill_yearsView(".datepicker-years","year",10,g,i,k,this.o.beforeShowYear),this._fill_yearsView(".datepicker-decades","decade",100,g,i,k,this.o.beforeShowDecade),this._fill_yearsView(".datepicker-centuries","century",1e3,g,i,k,this.o.beforeShowCentury)}},updateNavArrows:function(){if(this._allow_update){var a,b,c=new Date(this.viewDate),d=c.getUTCFullYear(),e=c.getUTCMonth(),f=this.o.startDate!==-(1/0)?this.o.startDate.getUTCFullYear():-(1/0),g=this.o.startDate!==-(1/0)?this.o.startDate.getUTCMonth():-(1/0),h=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,i=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,j=1;switch(this.viewMode){case 0:a=d<=f&&e<=g,b=d>=h&&e>=i;break;case 4:j*=10;case 3:j*=10;case 2:j*=10;case 1:a=Math.floor(d/j)*j<=f,b=Math.floor(d/j)*j+j>=h}this.picker.find(".prev").toggleClass("disabled",a),this.picker.find(".next").toggleClass("disabled",b)}},click:function(b){b.preventDefault(),b.stopPropagation();var e,f,g,h;e=a(b.target),e.hasClass("datepicker-switch")&&this.viewMode!==this.o.maxViewMode&&this.setViewMode(this.viewMode+1),e.hasClass("today")&&!e.hasClass("day")&&(this.setViewMode(0),this._setDate(d(),"linked"===this.o.todayBtn?null:"view")),e.hasClass("clear")&&this.clearDates(),e.hasClass("disabled")||(e.hasClass("month")||e.hasClass("year")||e.hasClass("decade")||e.hasClass("century"))&&(this.viewDate.setUTCDate(1),f=1,1===this.viewMode?(h=e.parent().find("span").index(e),g=this.viewDate.getUTCFullYear(),this.viewDate.setUTCMonth(h)):(h=0,g=Number(e.text()),this.viewDate.setUTCFullYear(g)),this._trigger(r.viewModes[this.viewMode-1].e,this.viewDate),this.viewMode===this.o.minViewMode?this._setDate(c(g,h,f)):(this.setViewMode(this.viewMode-1),this.fill())),this.picker.is(":visible")&&this._focused_from&&this._focused_from.focus(),delete this._focused_from},dayCellClick:function(b){var c=a(b.currentTarget),d=c.data("date"),e=new Date(d);this.o.updateViewDate&&(e.getUTCFullYear()!==this.viewDate.getUTCFullYear()&&this._trigger("changeYear",this.viewDate),e.getUTCMonth()!==this.viewDate.getUTCMonth()&&this._trigger("changeMonth",this.viewDate)),this._setDate(e)},navArrowsClick:function(b){var c=a(b.currentTarget),d=c.hasClass("prev")?-1:1;0!==this.viewMode&&(d*=12*r.viewModes[this.viewMode].navStep),this.viewDate=this.moveMonth(this.viewDate,d),this._trigger(r.viewModes[this.viewMode].e,this.viewDate),this.fill()},_toggle_multidate:function(a){var b=this.dates.contains(a);if(a||this.dates.clear(),b!==-1?(this.o.multidate===!0||this.o.multidate>1||this.o.toggleActive)&&this.dates.remove(b):this.o.multidate===!1?(this.dates.clear(),this.dates.push(a)):this.dates.push(a),"number"==typeof this.o.multidate)for(;this.dates.length>this.o.multidate;)this.dates.remove(0)},_setDate:function(a,b){b&&"date"!==b||this._toggle_multidate(a&&new Date(a)),(!b&&this.o.updateViewDate||"view"===b)&&(this.viewDate=a&&new Date(a)),this.fill(),this.setValue(),b&&"view"===b||this._trigger("changeDate"),this.inputField.trigger("change"),!this.o.autoclose||b&&"date"!==b||this.hide()},moveDay:function(a,b){var c=new Date(a);return c.setUTCDate(a.getUTCDate()+b),c},moveWeek:function(a,b){return this.moveDay(a,7*b)},moveMonth:function(a,b){if(!g(a))return this.o.defaultViewDate;if(!b)return a;var c,d,e=new Date(a.valueOf()),f=e.getUTCDate(),h=e.getUTCMonth(),i=Math.abs(b);if(b=b>0?1:-1,1===i)d=b===-1?function(){return e.getUTCMonth()===h}:function(){return e.getUTCMonth()!==c},c=h+b,e.setUTCMonth(c),c=(c+12)%12;else{for(var j=0;j<i;j++)e=this.moveMonth(e,b);c=e.getUTCMonth(),e.setUTCDate(f),d=function(){return c!==e.getUTCMonth()}}for(;d();)e.setUTCDate(--f),e.setUTCMonth(c);return e},moveYear:function(a,b){return this.moveMonth(a,12*b)},moveAvailableDate:function(a,b,c){do{if(a=this[c](a,b),!this.dateWithinRange(a))return!1;c="moveDay"}while(this.dateIsDisabled(a));return a},weekOfDateIsDisabled:function(b){return a.inArray(b.getUTCDay(),this.o.daysOfWeekDisabled)!==-1},dateIsDisabled:function(b){return this.weekOfDateIsDisabled(b)||a.grep(this.o.datesDisabled,function(a){return e(b,a)}).length>0},dateWithinRange:function(a){return a>=this.o.startDate&&a<=this.o.endDate},keydown:function(a){if(!this.picker.is(":visible"))return void(40!==a.keyCode&&27!==a.keyCode||(this.show(),a.stopPropagation()));var b,c,d=!1,e=this.focusDate||this.viewDate;switch(a.keyCode){case 27:this.focusDate?(this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill()):this.hide(),a.preventDefault(),a.stopPropagation();break;case 37:case 38:case 39:case 40:if(!this.o.keyboardNavigation||7===this.o.daysOfWeekDisabled.length)break;b=37===a.keyCode||38===a.keyCode?-1:1,0===this.viewMode?a.ctrlKey?(c=this.moveAvailableDate(e,b,"moveYear"),c&&this._trigger("changeYear",this.viewDate)):a.shiftKey?(c=this.moveAvailableDate(e,b,"moveMonth"),c&&this._trigger("changeMonth",this.viewDate)):37===a.keyCode||39===a.keyCode?c=this.moveAvailableDate(e,b,"moveDay"):this.weekOfDateIsDisabled(e)||(c=this.moveAvailableDate(e,b,"moveWeek")):1===this.viewMode?(38!==a.keyCode&&40!==a.keyCode||(b*=4),c=this.moveAvailableDate(e,b,"moveMonth")):2===this.viewMode&&(38!==a.keyCode&&40!==a.keyCode||(b*=4),c=this.moveAvailableDate(e,b,"moveYear")),c&&(this.focusDate=this.viewDate=c,this.setValue(),this.fill(),a.preventDefault());break;case 13:if(!this.o.forceParse)break;e=this.focusDate||this.dates.get(-1)||this.viewDate,this.o.keyboardNavigation&&(this._toggle_multidate(e),d=!0),this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.setValue(),this.fill(),this.picker.is(":visible")&&(a.preventDefault(),a.stopPropagation(),this.o.autoclose&&this.hide());break;case 9:this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill(),this.hide()}d&&(this.dates.length?this._trigger("changeDate"):this._trigger("clearDate"),this.inputField.trigger("change"))},setViewMode:function(a){this.viewMode=a,this.picker.children("div").hide().filter(".datepicker-"+r.viewModes[this.viewMode].clsName).show(),this.updateNavArrows(),this._trigger("changeViewMode",new Date(this.viewDate))}};var l=function(b,c){a.data(b,"datepicker",this),this.element=a(b),this.inputs=a.map(c.inputs,function(a){return a.jquery?a[0]:a}),delete c.inputs,this.keepEmptyValues=c.keepEmptyValues,delete c.keepEmptyValues,n.call(a(this.inputs),c).on("changeDate",a.proxy(this.dateUpdated,this)),this.pickers=a.map(this.inputs,function(b){return a.data(b,"datepicker")}),this.updateDates()};l.prototype={updateDates:function(){this.dates=a.map(this.pickers,function(a){return a.getUTCDate()}),this.updateRanges()},updateRanges:function(){var b=a.map(this.dates,function(a){return a.valueOf()});a.each(this.pickers,function(a,c){c.setRange(b)})},dateUpdated:function(c){if(!this.updating){this.updating=!0;var d=a.data(c.target,"datepicker");if(d!==b){var e=d.getUTCDate(),f=this.keepEmptyValues,g=a.inArray(c.target,this.inputs),h=g-1,i=g+1,j=this.inputs.length;if(g!==-1){if(a.each(this.pickers,function(a,b){b.getUTCDate()||b!==d&&f||b.setUTCDate(e)}),e<this.dates[h])for(;h>=0&&e<this.dates[h];)this.pickers[h--].setUTCDate(e);else if(e>this.dates[i])for(;i<j&&e>this.dates[i];)this.pickers[i++].setUTCDate(e);this.updateDates(),delete this.updating}}}},destroy:function(){a.map(this.pickers,function(a){a.destroy()}),a(this.inputs).off("changeDate",this.dateUpdated),delete this.element.data().datepicker},remove:f("destroy","Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead")};var m=a.fn.datepicker,n=function(c){var d=Array.apply(null,arguments);d.shift();var e;if(this.each(function(){var b=a(this),f=b.data("datepicker"),g="object"==typeof c&&c;if(!f){var j=h(this,"date"),m=a.extend({},o,j,g),n=i(m.language),p=a.extend({},o,n,j,g);b.hasClass("input-daterange")||p.inputs?(a.extend(p,{inputs:p.inputs||b.find("input").toArray()}),f=new l(this,p)):f=new k(this,p),b.data("datepicker",f)}"string"==typeof c&&"function"==typeof f[c]&&(e=f[c].apply(f,d))}),e===b||e instanceof k||e instanceof l)return this;if(this.length>1)throw new Error("Using only allowed for the collection of a single element ("+c+" function)");return e};a.fn.datepicker=n;var o=a.fn.datepicker.defaults={assumeNearbyYear:!1,autoclose:!1,beforeShowDay:a.noop,beforeShowMonth:a.noop,beforeShowYear:a.noop,beforeShowDecade:a.noop,beforeShowCentury:a.noop,calendarWeeks:!1,clearBtn:!1,toggleActive:!1,daysOfWeekDisabled:[],daysOfWeekHighlighted:[],datesDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",keepEmptyValues:!1,keyboardNavigation:!0,language:"en",minViewMode:0,maxViewMode:4,multidate:!1,multidateSeparator:",",orientation:"auto",rtl:!1,startDate:-(1/0),startView:0,todayBtn:!1,todayHighlight:!1,updateViewDate:!0,weekStart:0,disableTouchKeyboard:!1,enableOnReadonly:!0,showOnFocus:!0,zIndexOffset:10,container:"body",immediateUpdates:!1,title:"",templates:{leftArrow:"«",rightArrow:"»"},showWeekDays:!0},p=a.fn.datepicker.locale_opts=["format","rtl","weekStart"];a.fn.datepicker.Constructor=k;var q=a.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear",titleFormat:"MM yyyy"}},r={viewModes:[{names:["days","month"],clsName:"days",e:"changeMonth"},{names:["months","year"],clsName:"months",e:"changeYear",navStep:1},{names:["years","decade"],clsName:"years",e:"changeDecade",navStep:10},{names:["decades","century"],clsName:"decades",e:"changeCentury",navStep:100},{names:["centuries","millennium"],clsName:"centuries",e:"changeMillennium",navStep:1e3}],validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,parseFormat:function(a){if("function"==typeof a.toValue&&"function"==typeof a.toDisplay)return a;var b=a.replace(this.validParts,"\0").split("\0"),c=a.match(this.validParts);if(!b||!b.length||!c||0===c.length)throw new Error("Invalid date format.");return{separators:b,parts:c}},parseDate:function(c,e,f,g){function h(a,b){return b===!0&&(b=10),a<100&&(a+=2e3,a>(new Date).getFullYear()+b&&(a-=100)),a}function i(){var a=this.slice(0,j[n].length),b=j[n].slice(0,a.length);return a.toLowerCase()===b.toLowerCase()}if(!c)return b;if(c instanceof Date)return c;if("string"==typeof e&&(e=r.parseFormat(e)),e.toValue)return e.toValue(c,e,f);var j,l,m,n,o,p={d:"moveDay",m:"moveMonth",w:"moveWeek",y:"moveYear"},s={yesterday:"-1d",today:"+0d",tomorrow:"+1d"};if(c in s&&(c=s[c]),/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/i.test(c)){for(j=c.match(/([\-+]\d+)([dmwy])/gi),c=new Date,n=0;n<j.length;n++)l=j[n].match(/([\-+]\d+)([dmwy])/i),m=Number(l[1]),o=p[l[2].toLowerCase()],c=k.prototype[o](c,m);return k.prototype._zero_utc_time(c)}j=c&&c.match(this.nonpunctuation)||[];var t,u,v={},w=["yyyy","yy","M","MM","m","mm","d","dd"],x={yyyy:function(a,b){return a.setUTCFullYear(g?h(b,g):b)},m:function(a,b){if(isNaN(a))return a;for(b-=1;b<0;)b+=12;for(b%=12,a.setUTCMonth(b);a.getUTCMonth()!==b;)a.setUTCDate(a.getUTCDate()-1);return a},d:function(a,b){return a.setUTCDate(b)}};x.yy=x.yyyy,x.M=x.MM=x.mm=x.m,x.dd=x.d,c=d();var y=e.parts.slice();if(j.length!==y.length&&(y=a(y).filter(function(b,c){return a.inArray(c,w)!==-1}).toArray()),j.length===y.length){var z;for(n=0,z=y.length;n<z;n++){if(t=parseInt(j[n],10),l=y[n],isNaN(t))switch(l){case"MM":u=a(q[f].months).filter(i),t=a.inArray(u[0],q[f].months)+1;break;case"M":u=a(q[f].monthsShort).filter(i),t=a.inArray(u[0],q[f].monthsShort)+1}v[l]=t}var A,B;for(n=0;n<w.length;n++)B=w[n],B in v&&!isNaN(v[B])&&(A=new Date(c),x[B](A,v[B]),isNaN(A)||(c=A))}return c},formatDate:function(b,c,d){if(!b)return"";if("string"==typeof c&&(c=r.parseFormat(c)),c.toDisplay)return c.toDisplay(b,c,d);var e={d:b.getUTCDate(),D:q[d].daysShort[b.getUTCDay()],DD:q[d].days[b.getUTCDay()],m:b.getUTCMonth()+1,M:q[d].monthsShort[b.getUTCMonth()],MM:q[d].months[b.getUTCMonth()],yy:b.getUTCFullYear().toString().substring(2),yyyy:b.getUTCFullYear()};e.dd=(e.d<10?"0":"")+e.d,e.mm=(e.m<10?"0":"")+e.m,b=[];for(var f=a.extend([],c.separators),g=0,h=c.parts.length;g<=h;g++)f.length&&b.push(f.shift()),b.push(e[c.parts[g]]);return b.join("")},headTemplate:'<thead><tr><th colspan="7" class="datepicker-title"></th></tr><tr><th class="prev">'+o.templates.leftArrow+'</th><th colspan="5" class="datepicker-switch"></th><th class="next">'+o.templates.rightArrow+"</th></tr></thead>", -contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>',footTemplate:'<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'};r.template='<div class="datepicker"><div class="datepicker-days"><table class="table-condensed">'+r.headTemplate+"<tbody></tbody>"+r.footTemplate+'</table></div><div class="datepicker-months"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-years"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-decades"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-centuries"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+"</table></div></div>",a.fn.datepicker.DPGlobal=r,a.fn.datepicker.noConflict=function(){return a.fn.datepicker=m,this},a.fn.datepicker.version="1.7.1",a.fn.datepicker.deprecated=function(a){var b=window.console;b&&b.warn&&b.warn("DEPRECATED: "+a)},a(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(b){var c=a(this);c.data("datepicker")||(b.preventDefault(),n.call(c,"show"))}),a(function(){n.call(a('[data-provide="datepicker-inline"]'))})}); \ No newline at end of file +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a,b){function c(){return new Date(Date.UTC.apply(Date,arguments))}function d(){var a=new Date;return c(a.getFullYear(),a.getMonth(),a.getDate())}function e(a,b){return a.getUTCFullYear()===b.getUTCFullYear()&&a.getUTCMonth()===b.getUTCMonth()&&a.getUTCDate()===b.getUTCDate()}function f(c,d){return function(){return d!==b&&a.fn.datepicker.deprecated(d),this[c].apply(this,arguments)}}function g(a){return a&&!isNaN(a.getTime())}function h(b,c){function d(a,b){return b.toLowerCase()}var e,f=a(b).data(),g={},h=new RegExp("^"+c.toLowerCase()+"([A-Z])");c=new RegExp("^"+c.toLowerCase());for(var i in f)c.test(i)&&(e=i.replace(h,d),g[e]=f[i]);return g}function i(b){var c={};if(q[b]||(b=b.split("-")[0],q[b])){var d=q[b];return a.each(p,function(a,b){b in d&&(c[b]=d[b])}),c}}var j=function(){var b={get:function(a){return this.slice(a)[0]},contains:function(a){for(var b=a&&a.valueOf(),c=0,d=this.length;c<d;c++)if(0<=this[c].valueOf()-b&&this[c].valueOf()-b<864e5)return c;return-1},remove:function(a){this.splice(a,1)},replace:function(b){b&&(a.isArray(b)||(b=[b]),this.clear(),this.push.apply(this,b))},clear:function(){this.length=0},copy:function(){var a=new j;return a.replace(this),a}};return function(){var c=[];return c.push.apply(c,arguments),a.extend(c,b),c}}(),k=function(b,c){a.data(b,"datepicker",this),this._process_options(c),this.dates=new j,this.viewDate=this.o.defaultViewDate,this.focusDate=null,this.element=a(b),this.isInput=this.element.is("input"),this.inputField=this.isInput?this.element:this.element.find("input"),this.component=!!this.element.hasClass("date")&&this.element.find(".add-on, .input-group-addon, .btn"),this.component&&0===this.component.length&&(this.component=!1),this.isInline=!this.component&&this.element.is("div"),this.picker=a(r.template),this._check_template(this.o.templates.leftArrow)&&this.picker.find(".prev").html(this.o.templates.leftArrow),this._check_template(this.o.templates.rightArrow)&&this.picker.find(".next").html(this.o.templates.rightArrow),this._buildEvents(),this._attachEvents(),this.isInline?this.picker.addClass("datepicker-inline").appendTo(this.element):this.picker.addClass("datepicker-dropdown dropdown-menu"),this.o.rtl&&this.picker.addClass("datepicker-rtl"),this.o.calendarWeeks&&this.picker.find(".datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear").attr("colspan",function(a,b){return Number(b)+1}),this._process_options({startDate:this._o.startDate,endDate:this._o.endDate,daysOfWeekDisabled:this.o.daysOfWeekDisabled,daysOfWeekHighlighted:this.o.daysOfWeekHighlighted,datesDisabled:this.o.datesDisabled}),this._allow_update=!1,this.setViewMode(this.o.startView),this._allow_update=!0,this.fillDow(),this.fillMonths(),this.update(),this.isInline&&this.show()};k.prototype={constructor:k,_resolveViewName:function(b){return a.each(r.viewModes,function(c,d){if(b===c||a.inArray(b,d.names)!==-1)return b=c,!1}),b},_resolveDaysOfWeek:function(b){return a.isArray(b)||(b=b.split(/[,\s]*/)),a.map(b,Number)},_check_template:function(c){try{if(c===b||""===c)return!1;if((c.match(/[<>]/g)||[]).length<=0)return!0;var d=a(c);return d.length>0}catch(a){return!1}},_process_options:function(b){this._o=a.extend({},this._o,b);var e=this.o=a.extend({},this._o),f=e.language;q[f]||(f=f.split("-")[0],q[f]||(f=o.language)),e.language=f,e.startView=this._resolveViewName(e.startView),e.minViewMode=this._resolveViewName(e.minViewMode),e.maxViewMode=this._resolveViewName(e.maxViewMode),e.startView=Math.max(this.o.minViewMode,Math.min(this.o.maxViewMode,e.startView)),e.multidate!==!0&&(e.multidate=Number(e.multidate)||!1,e.multidate!==!1&&(e.multidate=Math.max(0,e.multidate))),e.multidateSeparator=String(e.multidateSeparator),e.weekStart%=7,e.weekEnd=(e.weekStart+6)%7;var g=r.parseFormat(e.format);e.startDate!==-(1/0)&&(e.startDate?e.startDate instanceof Date?e.startDate=this._local_to_utc(this._zero_time(e.startDate)):e.startDate=r.parseDate(e.startDate,g,e.language,e.assumeNearbyYear):e.startDate=-(1/0)),e.endDate!==1/0&&(e.endDate?e.endDate instanceof Date?e.endDate=this._local_to_utc(this._zero_time(e.endDate)):e.endDate=r.parseDate(e.endDate,g,e.language,e.assumeNearbyYear):e.endDate=1/0),e.daysOfWeekDisabled=this._resolveDaysOfWeek(e.daysOfWeekDisabled||[]),e.daysOfWeekHighlighted=this._resolveDaysOfWeek(e.daysOfWeekHighlighted||[]),e.datesDisabled=e.datesDisabled||[],a.isArray(e.datesDisabled)||(e.datesDisabled=e.datesDisabled.split(",")),e.datesDisabled=a.map(e.datesDisabled,function(a){return r.parseDate(a,g,e.language,e.assumeNearbyYear)});var h=String(e.orientation).toLowerCase().split(/\s+/g),i=e.orientation.toLowerCase();if(h=a.grep(h,function(a){return/^auto|left|right|top|bottom$/.test(a)}),e.orientation={x:"auto",y:"auto"},i&&"auto"!==i)if(1===h.length)switch(h[0]){case"top":case"bottom":e.orientation.y=h[0];break;case"left":case"right":e.orientation.x=h[0]}else i=a.grep(h,function(a){return/^left|right$/.test(a)}),e.orientation.x=i[0]||"auto",i=a.grep(h,function(a){return/^top|bottom$/.test(a)}),e.orientation.y=i[0]||"auto";else;if(e.defaultViewDate instanceof Date||"string"==typeof e.defaultViewDate)e.defaultViewDate=r.parseDate(e.defaultViewDate,g,e.language,e.assumeNearbyYear);else if(e.defaultViewDate){var j=e.defaultViewDate.year||(new Date).getFullYear(),k=e.defaultViewDate.month||0,l=e.defaultViewDate.day||1;e.defaultViewDate=c(j,k,l)}else e.defaultViewDate=d()},_events:[],_secondaryEvents:[],_applyEvents:function(a){for(var c,d,e,f=0;f<a.length;f++)c=a[f][0],2===a[f].length?(d=b,e=a[f][1]):3===a[f].length&&(d=a[f][1],e=a[f][2]),c.on(e,d)},_unapplyEvents:function(a){for(var c,d,e,f=0;f<a.length;f++)c=a[f][0],2===a[f].length?(e=b,d=a[f][1]):3===a[f].length&&(e=a[f][1],d=a[f][2]),c.off(d,e)},_buildEvents:function(){var b={keyup:a.proxy(function(b){a.inArray(b.keyCode,[27,37,39,38,40,32,13,9])===-1&&this.update()},this),keydown:a.proxy(this.keydown,this),paste:a.proxy(this.paste,this)};this.o.showOnFocus===!0&&(b.focus=a.proxy(this.show,this)),this.isInput?this._events=[[this.element,b]]:this.component&&this.inputField.length?this._events=[[this.inputField,b],[this.component,{click:a.proxy(this.show,this)}]]:this._events=[[this.element,{click:a.proxy(this.show,this),keydown:a.proxy(this.keydown,this)}]],this._events.push([this.element,"*",{blur:a.proxy(function(a){this._focused_from=a.target},this)}],[this.element,{blur:a.proxy(function(a){this._focused_from=a.target},this)}]),this.o.immediateUpdates&&this._events.push([this.element,{"changeYear changeMonth":a.proxy(function(a){this.update(a.date)},this)}]),this._secondaryEvents=[[this.picker,{click:a.proxy(this.click,this)}],[this.picker,".prev, .next",{click:a.proxy(this.navArrowsClick,this)}],[this.picker,".day:not(.disabled)",{click:a.proxy(this.dayCellClick,this)}],[a(window),{resize:a.proxy(this.place,this)}],[a(document),{"mousedown touchstart":a.proxy(function(a){this.element.is(a.target)||this.element.find(a.target).length||this.picker.is(a.target)||this.picker.find(a.target).length||this.isInline||this.hide()},this)}]]},_attachEvents:function(){this._detachEvents(),this._applyEvents(this._events)},_detachEvents:function(){this._unapplyEvents(this._events)},_attachSecondaryEvents:function(){this._detachSecondaryEvents(),this._applyEvents(this._secondaryEvents)},_detachSecondaryEvents:function(){this._unapplyEvents(this._secondaryEvents)},_trigger:function(b,c){var d=c||this.dates.get(-1),e=this._utc_to_local(d);this.element.trigger({type:b,date:e,viewMode:this.viewMode,dates:a.map(this.dates,this._utc_to_local),format:a.proxy(function(a,b){0===arguments.length?(a=this.dates.length-1,b=this.o.format):"string"==typeof a&&(b=a,a=this.dates.length-1),b=b||this.o.format;var c=this.dates.get(a);return r.formatDate(c,b,this.o.language)},this)})},show:function(){if(!(this.inputField.prop("disabled")||this.inputField.prop("readonly")&&this.o.enableOnReadonly===!1))return this.isInline||this.picker.appendTo(this.o.container),this.place(),this.picker.show(),this._attachSecondaryEvents(),this._trigger("show"),(window.navigator.msMaxTouchPoints||"ontouchstart"in document)&&this.o.disableTouchKeyboard&&a(this.element).blur(),this},hide:function(){return this.isInline||!this.picker.is(":visible")?this:(this.focusDate=null,this.picker.hide().detach(),this._detachSecondaryEvents(),this.setViewMode(this.o.startView),this.o.forceParse&&this.inputField.val()&&this.setValue(),this._trigger("hide"),this)},destroy:function(){return this.hide(),this._detachEvents(),this._detachSecondaryEvents(),this.picker.remove(),delete this.element.data().datepicker,this.isInput||delete this.element.data().date,this},paste:function(b){var c;if(b.originalEvent.clipboardData&&b.originalEvent.clipboardData.types&&a.inArray("text/plain",b.originalEvent.clipboardData.types)!==-1)c=b.originalEvent.clipboardData.getData("text/plain");else{if(!window.clipboardData)return;c=window.clipboardData.getData("Text")}this.setDate(c),this.update(),b.preventDefault()},_utc_to_local:function(a){if(!a)return a;var b=new Date(a.getTime()+6e4*a.getTimezoneOffset());return b.getTimezoneOffset()!==a.getTimezoneOffset()&&(b=new Date(a.getTime()+6e4*b.getTimezoneOffset())),b},_local_to_utc:function(a){return a&&new Date(a.getTime()-6e4*a.getTimezoneOffset())},_zero_time:function(a){return a&&new Date(a.getFullYear(),a.getMonth(),a.getDate())},_zero_utc_time:function(a){return a&&c(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate())},getDates:function(){return a.map(this.dates,this._utc_to_local)},getUTCDates:function(){return a.map(this.dates,function(a){return new Date(a)})},getDate:function(){return this._utc_to_local(this.getUTCDate())},getUTCDate:function(){var a=this.dates.get(-1);return a!==b?new Date(a):null},clearDates:function(){this.inputField.val(""),this.update(),this._trigger("changeDate"),this.o.autoclose&&this.hide()},setDates:function(){var b=a.isArray(arguments[0])?arguments[0]:arguments;return this.update.apply(this,b),this._trigger("changeDate"),this.setValue(),this},setUTCDates:function(){var b=a.isArray(arguments[0])?arguments[0]:arguments;return this.setDates.apply(this,a.map(b,this._utc_to_local)),this},setDate:f("setDates"),setUTCDate:f("setUTCDates"),remove:f("destroy","Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead"),setValue:function(){var a=this.getFormattedDate();return this.inputField.val(a),this},getFormattedDate:function(c){c===b&&(c=this.o.format);var d=this.o.language;return a.map(this.dates,function(a){return r.formatDate(a,c,d)}).join(this.o.multidateSeparator)},getStartDate:function(){return this.o.startDate},setStartDate:function(a){return this._process_options({startDate:a}),this.update(),this.updateNavArrows(),this},getEndDate:function(){return this.o.endDate},setEndDate:function(a){return this._process_options({endDate:a}),this.update(),this.updateNavArrows(),this},setDaysOfWeekDisabled:function(a){return this._process_options({daysOfWeekDisabled:a}),this.update(),this},setDaysOfWeekHighlighted:function(a){return this._process_options({daysOfWeekHighlighted:a}),this.update(),this},setDatesDisabled:function(a){return this._process_options({datesDisabled:a}),this.update(),this},place:function(){if(this.isInline)return this;var b=this.picker.outerWidth(),c=this.picker.outerHeight(),d=10,e=a(this.o.container),f=e.width(),g="body"===this.o.container?a(document).scrollTop():e.scrollTop(),h=e.offset(),i=[0];this.element.parents().each(function(){var b=a(this).css("z-index");"auto"!==b&&0!==Number(b)&&i.push(Number(b))});var j=Math.max.apply(Math,i)+this.o.zIndexOffset,k=this.component?this.component.parent().offset():this.element.offset(),l=this.component?this.component.outerHeight(!0):this.element.outerHeight(!1),m=this.component?this.component.outerWidth(!0):this.element.outerWidth(!1),n=k.left-h.left,o=k.top-h.top;"body"!==this.o.container&&(o+=g),this.picker.removeClass("datepicker-orient-top datepicker-orient-bottom datepicker-orient-right datepicker-orient-left"),"auto"!==this.o.orientation.x?(this.picker.addClass("datepicker-orient-"+this.o.orientation.x),"right"===this.o.orientation.x&&(n-=b-m)):k.left<0?(this.picker.addClass("datepicker-orient-left"),n-=k.left-d):n+b>f?(this.picker.addClass("datepicker-orient-right"),n+=m-b):this.o.rtl?this.picker.addClass("datepicker-orient-right"):this.picker.addClass("datepicker-orient-left");var p,q=this.o.orientation.y;if("auto"===q&&(p=-g+o-c,q=p<0?"bottom":"top"),this.picker.addClass("datepicker-orient-"+q),"top"===q?o-=c+parseInt(this.picker.css("padding-top")):o+=l,this.o.rtl){var r=f-(n+m);this.picker.css({top:o,right:r,zIndex:j})}else this.picker.css({top:o,left:n,zIndex:j});return this},_allow_update:!0,update:function(){if(!this._allow_update)return this;var b=this.dates.copy(),c=[],d=!1;return arguments.length?(a.each(arguments,a.proxy(function(a,b){b instanceof Date&&(b=this._local_to_utc(b)),c.push(b)},this)),d=!0):(c=this.isInput?this.element.val():this.element.data("date")||this.inputField.val(),c=c&&this.o.multidate?c.split(this.o.multidateSeparator):[c],delete this.element.data().date),c=a.map(c,a.proxy(function(a){return r.parseDate(a,this.o.format,this.o.language,this.o.assumeNearbyYear)},this)),c=a.grep(c,a.proxy(function(a){return!this.dateWithinRange(a)||!a},this),!0),this.dates.replace(c),this.o.updateViewDate&&(this.dates.length?this.viewDate=new Date(this.dates.get(-1)):this.viewDate<this.o.startDate?this.viewDate=new Date(this.o.startDate):this.viewDate>this.o.endDate?this.viewDate=new Date(this.o.endDate):this.viewDate=this.o.defaultViewDate),d?(this.setValue(),this.element.change()):this.dates.length&&String(b)!==String(this.dates)&&d&&(this._trigger("changeDate"),this.element.change()),!this.dates.length&&b.length&&(this._trigger("clearDate"),this.element.change()),this.fill(),this},fillDow:function(){if(this.o.showWeekDays){var b=this.o.weekStart,c="<tr>";for(this.o.calendarWeeks&&(c+='<th class="cw"> </th>');b<this.o.weekStart+7;)c+='<th class="dow',a.inArray(b,this.o.daysOfWeekDisabled)!==-1&&(c+=" disabled"),c+='">'+q[this.o.language].daysMin[b++%7]+"</th>";c+="</tr>",this.picker.find(".datepicker-days thead").append(c)}},fillMonths:function(){for(var a,b=this._utc_to_local(this.viewDate),c="",d=0;d<12;d++)a=b&&b.getMonth()===d?" focused":"",c+='<span class="month'+a+'">'+q[this.o.language].monthsShort[d]+"</span>";this.picker.find(".datepicker-months td").html(c)},setRange:function(b){b&&b.length?this.range=a.map(b,function(a){return a.valueOf()}):delete this.range,this.fill()},getClassNames:function(b){var c=[],f=this.viewDate.getUTCFullYear(),g=this.viewDate.getUTCMonth(),h=d();return b.getUTCFullYear()<f||b.getUTCFullYear()===f&&b.getUTCMonth()<g?c.push("old"):(b.getUTCFullYear()>f||b.getUTCFullYear()===f&&b.getUTCMonth()>g)&&c.push("new"),this.focusDate&&b.valueOf()===this.focusDate.valueOf()&&c.push("focused"),this.o.todayHighlight&&e(b,h)&&c.push("today"),this.dates.contains(b)!==-1&&c.push("active"),this.dateWithinRange(b)||c.push("disabled"),this.dateIsDisabled(b)&&c.push("disabled","disabled-date"),a.inArray(b.getUTCDay(),this.o.daysOfWeekHighlighted)!==-1&&c.push("highlighted"),this.range&&(b>this.range[0]&&b<this.range[this.range.length-1]&&c.push("range"),a.inArray(b.valueOf(),this.range)!==-1&&c.push("selected"),b.valueOf()===this.range[0]&&c.push("range-start"),b.valueOf()===this.range[this.range.length-1]&&c.push("range-end")),c},_fill_yearsView:function(c,d,e,f,g,h,i){for(var j,k,l,m="",n=e/10,o=this.picker.find(c),p=Math.floor(f/e)*e,q=p+9*n,r=Math.floor(this.viewDate.getFullYear()/n)*n,s=a.map(this.dates,function(a){return Math.floor(a.getUTCFullYear()/n)*n}),t=p-n;t<=q+n;t+=n)j=[d],k=null,t===p-n?j.push("old"):t===q+n&&j.push("new"),a.inArray(t,s)!==-1&&j.push("active"),(t<g||t>h)&&j.push("disabled"),t===r&&j.push("focused"),i!==a.noop&&(l=i(new Date(t,0,1)),l===b?l={}:"boolean"==typeof l?l={enabled:l}:"string"==typeof l&&(l={classes:l}),l.enabled===!1&&j.push("disabled"),l.classes&&(j=j.concat(l.classes.split(/\s+/))),l.tooltip&&(k=l.tooltip)),m+='<span class="'+j.join(" ")+'"'+(k?' title="'+k+'"':"")+">"+t+"</span>";o.find(".datepicker-switch").text(p+"-"+q),o.find("td").html(m)},fill:function(){var d,e,f=new Date(this.viewDate),g=f.getUTCFullYear(),h=f.getUTCMonth(),i=this.o.startDate!==-(1/0)?this.o.startDate.getUTCFullYear():-(1/0),j=this.o.startDate!==-(1/0)?this.o.startDate.getUTCMonth():-(1/0),k=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,l=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,m=q[this.o.language].today||q.en.today||"",n=q[this.o.language].clear||q.en.clear||"",o=q[this.o.language].titleFormat||q.en.titleFormat;if(!isNaN(g)&&!isNaN(h)){this.picker.find(".datepicker-days .datepicker-switch").text(r.formatDate(f,o,this.o.language)),this.picker.find("tfoot .today").text(m).css("display",this.o.todayBtn===!0||"linked"===this.o.todayBtn?"table-cell":"none"),this.picker.find("tfoot .clear").text(n).css("display",this.o.clearBtn===!0?"table-cell":"none"),this.picker.find("thead .datepicker-title").text(this.o.title).css("display","string"==typeof this.o.title&&""!==this.o.title?"table-cell":"none"),this.updateNavArrows(),this.fillMonths();var p=c(g,h,0),s=p.getUTCDate();p.setUTCDate(s-(p.getUTCDay()-this.o.weekStart+7)%7);var t=new Date(p);p.getUTCFullYear()<100&&t.setUTCFullYear(p.getUTCFullYear()),t.setUTCDate(t.getUTCDate()+42),t=t.valueOf();for(var u,v,w=[];p.valueOf()<t;){if(u=p.getUTCDay(),u===this.o.weekStart&&(w.push("<tr>"),this.o.calendarWeeks)){var x=new Date(+p+(this.o.weekStart-u-7)%7*864e5),y=new Date(Number(x)+(11-x.getUTCDay())%7*864e5),z=new Date(Number(z=c(y.getUTCFullYear(),0,1))+(11-z.getUTCDay())%7*864e5),A=(y-z)/864e5/7+1;w.push('<td class="cw">'+A+"</td>")}v=this.getClassNames(p),v.push("day");var B=p.getUTCDate();this.o.beforeShowDay!==a.noop&&(e=this.o.beforeShowDay(this._utc_to_local(p)),e===b?e={}:"boolean"==typeof e?e={enabled:e}:"string"==typeof e&&(e={classes:e}),e.enabled===!1&&v.push("disabled"),e.classes&&(v=v.concat(e.classes.split(/\s+/))),e.tooltip&&(d=e.tooltip),e.content&&(B=e.content)),v=a.isFunction(a.uniqueSort)?a.uniqueSort(v):a.unique(v),w.push('<td class="'+v.join(" ")+'"'+(d?' title="'+d+'"':"")+' data-date="'+p.getTime().toString()+'">'+B+"</td>"),d=null,u===this.o.weekEnd&&w.push("</tr>"),p.setUTCDate(p.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").html(w.join(""));var C=q[this.o.language].monthsTitle||q.en.monthsTitle||"Months",D=this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode<2?C:g).end().find("tbody span").removeClass("active");if(a.each(this.dates,function(a,b){b.getUTCFullYear()===g&&D.eq(b.getUTCMonth()).addClass("active")}),(g<i||g>k)&&D.addClass("disabled"),g===i&&D.slice(0,j).addClass("disabled"),g===k&&D.slice(l+1).addClass("disabled"),this.o.beforeShowMonth!==a.noop){var E=this;a.each(D,function(c,d){var e=new Date(g,c,1),f=E.o.beforeShowMonth(e);f===b?f={}:"boolean"==typeof f?f={enabled:f}:"string"==typeof f&&(f={classes:f}),f.enabled!==!1||a(d).hasClass("disabled")||a(d).addClass("disabled"),f.classes&&a(d).addClass(f.classes),f.tooltip&&a(d).prop("title",f.tooltip)})}this._fill_yearsView(".datepicker-years","year",10,g,i,k,this.o.beforeShowYear),this._fill_yearsView(".datepicker-decades","decade",100,g,i,k,this.o.beforeShowDecade),this._fill_yearsView(".datepicker-centuries","century",1e3,g,i,k,this.o.beforeShowCentury)}},updateNavArrows:function(){if(this._allow_update){var a,b,c=new Date(this.viewDate),d=c.getUTCFullYear(),e=c.getUTCMonth(),f=this.o.startDate!==-(1/0)?this.o.startDate.getUTCFullYear():-(1/0),g=this.o.startDate!==-(1/0)?this.o.startDate.getUTCMonth():-(1/0),h=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,i=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,j=1;switch(this.viewMode){case 4:j*=10;case 3:j*=10;case 2:j*=10;case 1:a=Math.floor(d/j)*j<f,b=Math.floor(d/j)*j+j>h;break;case 0:a=d<=f&&e<g,b=d>=h&&e>i}this.picker.find(".prev").toggleClass("disabled",a),this.picker.find(".next").toggleClass("disabled",b)}},click:function(b){b.preventDefault(),b.stopPropagation();var e,f,g,h;e=a(b.target),e.hasClass("datepicker-switch")&&this.viewMode!==this.o.maxViewMode&&this.setViewMode(this.viewMode+1),e.hasClass("today")&&!e.hasClass("day")&&(this.setViewMode(0),this._setDate(d(),"linked"===this.o.todayBtn?null:"view")),e.hasClass("clear")&&this.clearDates(),e.hasClass("disabled")||(e.hasClass("month")||e.hasClass("year")||e.hasClass("decade")||e.hasClass("century"))&&(this.viewDate.setUTCDate(1),f=1,1===this.viewMode?(h=e.parent().find("span").index(e),g=this.viewDate.getUTCFullYear(),this.viewDate.setUTCMonth(h)):(h=0,g=Number(e.text()),this.viewDate.setUTCFullYear(g)),this._trigger(r.viewModes[this.viewMode-1].e,this.viewDate),this.viewMode===this.o.minViewMode?this._setDate(c(g,h,f)):(this.setViewMode(this.viewMode-1),this.fill())),this.picker.is(":visible")&&this._focused_from&&this._focused_from.focus(),delete this._focused_from},dayCellClick:function(b){var c=a(b.currentTarget),d=c.data("date"),e=new Date(d);this.o.updateViewDate&&(e.getUTCFullYear()!==this.viewDate.getUTCFullYear()&&this._trigger("changeYear",this.viewDate),e.getUTCMonth()!==this.viewDate.getUTCMonth()&&this._trigger("changeMonth",this.viewDate)),this._setDate(e)},navArrowsClick:function(b){var c=a(b.currentTarget),d=c.hasClass("prev")?-1:1;0!==this.viewMode&&(d*=12*r.viewModes[this.viewMode].navStep),this.viewDate=this.moveMonth(this.viewDate,d),this._trigger(r.viewModes[this.viewMode].e,this.viewDate),this.fill()},_toggle_multidate:function(a){var b=this.dates.contains(a);if(a||this.dates.clear(),b!==-1?(this.o.multidate===!0||this.o.multidate>1||this.o.toggleActive)&&this.dates.remove(b):this.o.multidate===!1?(this.dates.clear(),this.dates.push(a)):this.dates.push(a),"number"==typeof this.o.multidate)for(;this.dates.length>this.o.multidate;)this.dates.remove(0)},_setDate:function(a,b){b&&"date"!==b||this._toggle_multidate(a&&new Date(a)),(!b&&this.o.updateViewDate||"view"===b)&&(this.viewDate=a&&new Date(a)),this.fill(),this.setValue(),b&&"view"===b||this._trigger("changeDate"),this.inputField.trigger("change"),!this.o.autoclose||b&&"date"!==b||this.hide()},moveDay:function(a,b){var c=new Date(a);return c.setUTCDate(a.getUTCDate()+b),c},moveWeek:function(a,b){return this.moveDay(a,7*b)},moveMonth:function(a,b){if(!g(a))return this.o.defaultViewDate;if(!b)return a;var c,d,e=new Date(a.valueOf()),f=e.getUTCDate(),h=e.getUTCMonth(),i=Math.abs(b);if(b=b>0?1:-1,1===i)d=b===-1?function(){return e.getUTCMonth()===h}:function(){return e.getUTCMonth()!==c},c=h+b,e.setUTCMonth(c),c=(c+12)%12;else{for(var j=0;j<i;j++)e=this.moveMonth(e,b);c=e.getUTCMonth(),e.setUTCDate(f),d=function(){return c!==e.getUTCMonth()}}for(;d();)e.setUTCDate(--f),e.setUTCMonth(c);return e},moveYear:function(a,b){return this.moveMonth(a,12*b)},moveAvailableDate:function(a,b,c){do{if(a=this[c](a,b),!this.dateWithinRange(a))return!1;c="moveDay"}while(this.dateIsDisabled(a));return a},weekOfDateIsDisabled:function(b){return a.inArray(b.getUTCDay(),this.o.daysOfWeekDisabled)!==-1},dateIsDisabled:function(b){return this.weekOfDateIsDisabled(b)||a.grep(this.o.datesDisabled,function(a){return e(b,a)}).length>0},dateWithinRange:function(a){return a>=this.o.startDate&&a<=this.o.endDate},keydown:function(a){if(!this.picker.is(":visible"))return void(40!==a.keyCode&&27!==a.keyCode||(this.show(),a.stopPropagation()));var b,c,d=!1,e=this.focusDate||this.viewDate;switch(a.keyCode){case 27:this.focusDate?(this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill()):this.hide(),a.preventDefault(),a.stopPropagation();break;case 37:case 38:case 39:case 40:if(!this.o.keyboardNavigation||7===this.o.daysOfWeekDisabled.length)break;b=37===a.keyCode||38===a.keyCode?-1:1,0===this.viewMode?a.ctrlKey?(c=this.moveAvailableDate(e,b,"moveYear"),c&&this._trigger("changeYear",this.viewDate)):a.shiftKey?(c=this.moveAvailableDate(e,b,"moveMonth"),c&&this._trigger("changeMonth",this.viewDate)):37===a.keyCode||39===a.keyCode?c=this.moveAvailableDate(e,b,"moveDay"):this.weekOfDateIsDisabled(e)||(c=this.moveAvailableDate(e,b,"moveWeek")):1===this.viewMode?(38!==a.keyCode&&40!==a.keyCode||(b*=4),c=this.moveAvailableDate(e,b,"moveMonth")):2===this.viewMode&&(38!==a.keyCode&&40!==a.keyCode||(b*=4),c=this.moveAvailableDate(e,b,"moveYear")),c&&(this.focusDate=this.viewDate=c,this.setValue(),this.fill(),a.preventDefault());break;case 13:if(!this.o.forceParse)break;e=this.focusDate||this.dates.get(-1)||this.viewDate,this.o.keyboardNavigation&&(this._toggle_multidate(e),d=!0),this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.setValue(),this.fill(),this.picker.is(":visible")&&(a.preventDefault(),a.stopPropagation(),this.o.autoclose&&this.hide());break;case 9:this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill(),this.hide()}d&&(this.dates.length?this._trigger("changeDate"):this._trigger("clearDate"),this.inputField.trigger("change"))},setViewMode:function(a){this.viewMode=a,this.picker.children("div").hide().filter(".datepicker-"+r.viewModes[this.viewMode].clsName).show(),this.updateNavArrows(),this._trigger("changeViewMode",new Date(this.viewDate))}};var l=function(b,c){a.data(b,"datepicker",this),this.element=a(b),this.inputs=a.map(c.inputs,function(a){return a.jquery?a[0]:a}),delete c.inputs,this.keepEmptyValues=c.keepEmptyValues,delete c.keepEmptyValues,n.call(a(this.inputs),c).on("changeDate",a.proxy(this.dateUpdated,this)),this.pickers=a.map(this.inputs,function(b){return a.data(b,"datepicker")}),this.updateDates()};l.prototype={updateDates:function(){this.dates=a.map(this.pickers,function(a){return a.getUTCDate()}),this.updateRanges()},updateRanges:function(){var b=a.map(this.dates,function(a){return a.valueOf()});a.each(this.pickers,function(a,c){c.setRange(b)})},clearDates:function(){a.each(this.pickers,function(a,b){b.clearDates()})},dateUpdated:function(c){if(!this.updating){this.updating=!0;var d=a.data(c.target,"datepicker");if(d!==b){var e=d.getUTCDate(),f=this.keepEmptyValues,g=a.inArray(c.target,this.inputs),h=g-1,i=g+1,j=this.inputs.length;if(g!==-1){if(a.each(this.pickers,function(a,b){b.getUTCDate()||b!==d&&f||b.setUTCDate(e)}),e<this.dates[h])for(;h>=0&&e<this.dates[h];)this.pickers[h--].setUTCDate(e);else if(e>this.dates[i])for(;i<j&&e>this.dates[i];)this.pickers[i++].setUTCDate(e);this.updateDates(),delete this.updating}}}},destroy:function(){a.map(this.pickers,function(a){a.destroy()}),a(this.inputs).off("changeDate",this.dateUpdated),delete this.element.data().datepicker},remove:f("destroy","Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead")};var m=a.fn.datepicker,n=function(c){var d=Array.apply(null,arguments);d.shift();var e;if(this.each(function(){var b=a(this),f=b.data("datepicker"),g="object"==typeof c&&c;if(!f){var j=h(this,"date"),m=a.extend({},o,j,g),n=i(m.language),p=a.extend({},o,n,j,g);b.hasClass("input-daterange")||p.inputs?(a.extend(p,{inputs:p.inputs||b.find("input").toArray()}),f=new l(this,p)):f=new k(this,p),b.data("datepicker",f)}"string"==typeof c&&"function"==typeof f[c]&&(e=f[c].apply(f,d))}),e===b||e instanceof k||e instanceof l)return this;if(this.length>1)throw new Error("Using only allowed for the collection of a single element ("+c+" function)");return e};a.fn.datepicker=n;var o=a.fn.datepicker.defaults={assumeNearbyYear:!1,autoclose:!1,beforeShowDay:a.noop,beforeShowMonth:a.noop,beforeShowYear:a.noop,beforeShowDecade:a.noop,beforeShowCentury:a.noop,calendarWeeks:!1,clearBtn:!1,toggleActive:!1,daysOfWeekDisabled:[],daysOfWeekHighlighted:[],datesDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",keepEmptyValues:!1,keyboardNavigation:!0,language:"en",minViewMode:0,maxViewMode:4,multidate:!1,multidateSeparator:",",orientation:"auto",rtl:!1,startDate:-(1/0),startView:0,todayBtn:!1,todayHighlight:!1,updateViewDate:!0,weekStart:0,disableTouchKeyboard:!1,enableOnReadonly:!0,showOnFocus:!0,zIndexOffset:10,container:"body",immediateUpdates:!1,title:"",templates:{leftArrow:"«",rightArrow:"»"},showWeekDays:!0},p=a.fn.datepicker.locale_opts=["format","rtl","weekStart"];a.fn.datepicker.Constructor=k;var q=a.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear",titleFormat:"MM yyyy"}},r={viewModes:[{names:["days","month"],clsName:"days",e:"changeMonth"},{names:["months","year"],clsName:"months",e:"changeYear",navStep:1},{names:["years","decade"],clsName:"years",e:"changeDecade",navStep:10},{names:["decades","century"],clsName:"decades",e:"changeCentury",navStep:100},{names:["centuries","millennium"],clsName:"centuries",e:"changeMillennium",navStep:1e3}],validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,parseFormat:function(a){if("function"==typeof a.toValue&&"function"==typeof a.toDisplay)return a;var b=a.replace(this.validParts,"\0").split("\0"),c=a.match(this.validParts);if(!b||!b.length||!c||0===c.length)throw new Error("Invalid date format.");return{separators:b,parts:c}},parseDate:function(c,e,f,g){function h(a,b){return b===!0&&(b=10),a<100&&(a+=2e3,a>(new Date).getFullYear()+b&&(a-=100)),a}function i(){var a=this.slice(0,j[n].length),b=j[n].slice(0,a.length);return a.toLowerCase()===b.toLowerCase()}if(!c)return b;if(c instanceof Date)return c;if("string"==typeof e&&(e=r.parseFormat(e)),e.toValue)return e.toValue(c,e,f);var j,l,m,n,o,p={d:"moveDay",m:"moveMonth",w:"moveWeek",y:"moveYear"},s={yesterday:"-1d",today:"+0d",tomorrow:"+1d"};if(c in s&&(c=s[c]),/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/i.test(c)){for(j=c.match(/([\-+]\d+)([dmwy])/gi),c=new Date,n=0;n<j.length;n++)l=j[n].match(/([\-+]\d+)([dmwy])/i),m=Number(l[1]),o=p[l[2].toLowerCase()],c=k.prototype[o](c,m);return k.prototype._zero_utc_time(c)}j=c&&c.match(this.nonpunctuation)||[];var t,u,v={},w=["yyyy","yy","M","MM","m","mm","d","dd"],x={yyyy:function(a,b){return a.setUTCFullYear(g?h(b,g):b)},m:function(a,b){if(isNaN(a))return a;for(b-=1;b<0;)b+=12;for(b%=12,a.setUTCMonth(b);a.getUTCMonth()!==b;)a.setUTCDate(a.getUTCDate()-1);return a},d:function(a,b){return a.setUTCDate(b)}};x.yy=x.yyyy,x.M=x.MM=x.mm=x.m,x.dd=x.d,c=d();var y=e.parts.slice();if(j.length!==y.length&&(y=a(y).filter(function(b,c){return a.inArray(c,w)!==-1}).toArray()),j.length===y.length){var z;for(n=0,z=y.length;n<z;n++){if(t=parseInt(j[n],10),l=y[n],isNaN(t))switch(l){case"MM":u=a(q[f].months).filter(i),t=a.inArray(u[0],q[f].months)+1;break;case"M":u=a(q[f].monthsShort).filter(i),t=a.inArray(u[0],q[f].monthsShort)+1}v[l]=t}var A,B;for(n=0;n<w.length;n++)B=w[n],B in v&&!isNaN(v[B])&&(A=new Date(c),x[B](A,v[B]),isNaN(A)||(c=A))}return c},formatDate:function(b,c,d){if(!b)return"";if("string"==typeof c&&(c=r.parseFormat(c)),c.toDisplay)return c.toDisplay(b,c,d);var e={d:b.getUTCDate(),D:q[d].daysShort[b.getUTCDay()],DD:q[d].days[b.getUTCDay()],m:b.getUTCMonth()+1,M:q[d].monthsShort[b.getUTCMonth()],MM:q[d].months[b.getUTCMonth()],yy:b.getUTCFullYear().toString().substring(2),yyyy:b.getUTCFullYear()};e.dd=(e.d<10?"0":"")+e.d,e.mm=(e.m<10?"0":"")+e.m,b=[];for(var f=a.extend([],c.separators),g=0,h=c.parts.length;g<=h;g++)f.length&&b.push(f.shift()),b.push(e[c.parts[g]]);return b.join("")},headTemplate:'<thead><tr><th colspan="7" class="datepicker-title"></th></tr><tr><th class="prev">'+o.templates.leftArrow+'</th><th colspan="5" class="datepicker-switch"></th><th class="next">'+o.templates.rightArrow+"</th></tr></thead>", +contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>',footTemplate:'<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'};r.template='<div class="datepicker"><div class="datepicker-days"><table class="table-condensed">'+r.headTemplate+"<tbody></tbody>"+r.footTemplate+'</table></div><div class="datepicker-months"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-years"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-decades"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-centuries"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+"</table></div></div>",a.fn.datepicker.DPGlobal=r,a.fn.datepicker.noConflict=function(){return a.fn.datepicker=m,this},a.fn.datepicker.version="1.8.0",a.fn.datepicker.deprecated=function(a){var b=window.console;b&&b.warn&&b.warn("DEPRECATED: "+a)},a(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(b){var c=a(this);c.data("datepicker")||(b.preventDefault(),n.call(c,"show"))}),a(function(){n.call(a('[data-provide="datepicker-inline"]'))})}); \ No newline at end of file diff --git a/cps/static/js/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ja.min.js b/cps/static/js/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ja.min.js new file mode 100644 index 00000000..e321f04f --- /dev/null +++ b/cps/static/js/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ja.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ja={days:["日曜","月曜","火曜","水曜","木曜","金曜","土曜"],daysShort:["日","月","火","水","木","金","土"],daysMin:["日","月","火","水","木","金","土"],months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今日",format:"yyyy/mm/dd",titleFormat:"yyyy年mm月",clear:"クリア"}}(jQuery); \ No newline at end of file diff --git a/cps/static/js/unrar.js b/cps/static/js/unrar.js index c43dbd1d..30263bb2 100644 --- a/cps/static/js/unrar.js +++ b/cps/static/js/unrar.js @@ -79,7 +79,7 @@ var RarVolumeHeader = function(bstream) { // bytes 4,5 this.flags = {}; this.flags.value = bstream.peekBits(16); - + info(" flags=" + twoByteValueToHexString(this.flags.value)); switch (this.headType) { case MAIN_HEAD: @@ -115,7 +115,7 @@ var RarVolumeHeader = function(bstream) { default: bstream.readBits(16); } - + // byte 6,7 this.headSize = bstream.readBits(16); info(" headSize=" + this.headSize); @@ -212,12 +212,12 @@ var RarVolumeHeader = function(bstream) { //var BLOCK_LZ = 0; -var rLDecode = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224], +var rLDecode = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224], rLBits = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5], rDBitLengthCounts = [4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 14, 0, 12], rSDDecode = [0, 4, 8, 16, 32, 64, 128, 192], rSDBits = [2, 2, 3, 4, 5, 6, 6, 6]; - + var rDDecode = [0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576, 32768, 49152, 65536, 98304, @@ -275,12 +275,12 @@ function rarReadTables(bstream) { var i; // before we start anything we need to get byte-aligned bstream.readBits( (8 - bstream.bitPtr) & 0x7 ); - + if (bstream.readBits(1)) { info("Error! PPM not implemented yet"); return; } - + if (!bstream.readBits(1)) { //discard old table for (i = UnpOldTable.length; i--;) UnpOldTable[i] = 0; } @@ -308,7 +308,7 @@ function rarReadTables(bstream) { // now all 20 bit lengths are obtained, we construct the Huffman Table: rarMakeDecodeTables(BitLength, 0, BD, rBC); - + var TableSize = rHuffTableSize; //console.log(DecodeLen, DecodePos, DecodeNum); for (i = 0; i < TableSize;) { @@ -332,12 +332,12 @@ function rarReadTables(bstream) { } } } - + rarMakeDecodeTables(Table, 0, LD, rNC); rarMakeDecodeTables(Table, rNC, DD, rDC); rarMakeDecodeTables(Table, rNC + rDC, LDD, rLDC); rarMakeDecodeTables(Table, rNC + rDC + rLDC, RD, rRC); - + for (i = UnpOldTable.length; i--;) { UnpOldTable[i] = Table[i]; } @@ -366,7 +366,7 @@ function rarDecodeNumber(bstream, dec) { : 15)); bstream.readBits(bits); var N = DecodePos[bits] + ((bitField - DecodeLen[bits - 1]) >>> (16 - bits)); - + return DecodeNum[N]; } @@ -568,7 +568,7 @@ function Unpack29(bstream) { DBits[Slot] = BitLength; } } - + var Bits; //tablesRead = false; @@ -578,13 +578,13 @@ function Unpack29(bstream) { lastLength = 0; var i; for (i = UnpOldTable.length; i--;) UnpOldTable[i] = 0; - + // read in Huffman tables rarReadTables(bstream); - + while (true) { var num = rarDecodeNumber(bstream, LD); - + if (num < 256) { rBuffer.insertByte(num); continue; @@ -675,11 +675,11 @@ function Unpack29(bstream) { continue; } } - rarUpdateProgress() + rarUpdateProgress(); } function rarReadEndOfBlock(bstream) { - + rarUpdateProgress(); var NewTable = false, NewFile = false; @@ -703,7 +703,7 @@ function rarReadVMCode(bstream) { Length = bstream.readBits(16); } var vmCode = []; - for(var I = 0; I < Length; I++) { + for (var I = 0; I < Length; I++) { //do something here with cheking readbuf vmCode.push(bstream.readBits(8)); } @@ -724,8 +724,8 @@ function rarInsertLastMatch(length, distance) { } function rarInsertOldDist(distance) { - rOldDist.splice(3,1); - rOldDist.splice(0,0,distance); + rOldDist.splice(3, 1); + rOldDist.splice(0, 0, distance); } //this is the real function, the other one is for debugging @@ -737,28 +737,28 @@ function rarCopyString(length, distance) { destPtr = rOldBuffers[--l].data.length + destPtr; } //TODO: lets hope that it never needs to read beyond file boundaries - while(length--) rBuffer.insertByte(rOldBuffers[l].data[destPtr++]); + while (length--) rBuffer.insertByte(rOldBuffers[l].data[destPtr++]); } if (length > distance) { - while(length--) rBuffer.insertByte(rBuffer.data[destPtr++]); + while (length--) rBuffer.insertByte(rBuffer.data[destPtr++]); } else { rBuffer.insertBytes(rBuffer.data.subarray(destPtr, destPtr + length)); } } -var rOldBuffers = [] +var rOldBuffers = []; // v must be a valid RarVolume function unpack(v) { - // TODO: implement what happens when unpVer is < 15 + // TODO: implement what happens when unpVer is < 15 var Ver = v.header.unpVer <= 15 ? 15 : v.header.unpVer, Solid = v.header.LHD_SOLID, bstream = new bitjs.io.BitStream(v.fileData.buffer, true /* rtl */, v.fileData.byteOffset, v.fileData.byteLength ); - + rBuffer = new bitjs.io.ByteBuffer(v.header.unpackedSize); - info("Unpacking " + v.filename+" RAR v" + Ver); - + info("Unpacking " + v.filename + " RAR v" + Ver); + switch(Ver) { case 15: // rar 1.5 compression Unpack15(); //(bstream, Solid); @@ -772,7 +772,7 @@ function unpack(v) { Unpack29(bstream); break; } // switch(method) - + rOldBuffers.push(rBuffer); //TODO: clear these old buffers when there's over 4MB of history return rBuffer.data; @@ -780,10 +780,10 @@ function unpack(v) { // bstream is a bit stream var RarLocalFile = function(bstream) { - + this.header = new RarVolumeHeader(bstream); this.filename = this.header.filename; - + if (this.header.headType != FILE_HEAD && this.header.headType != ENDARC_HEAD) { this.isValid = false; info("Error! RAR Volume did not include a FILE_HEAD header "); @@ -804,7 +804,7 @@ RarLocalFile.prototype.unrar = function() { if (this.header.method === 0x30) { info("Unstore " + this.filename); this.isValid = true; - + currentBytesUnarchivedInFile += this.fileData.length; currentBytesUnarchived += this.fileData.length; @@ -818,7 +818,7 @@ RarLocalFile.prototype.unrar = function() { this.fileData = unpack(this); } } -} +}; var unrar = function(arrayBuffer) { currentFilename = ""; @@ -835,16 +835,16 @@ var unrar = function(arrayBuffer) { if (header.crc === 0x6152 && header.headType === 0x72 && header.flags.value === 0x1A21 && - header.headSize === 7) - { + header.headSize === 7) { + info("Found RAR signature"); var mhead = new RarVolumeHeader(bstream); if (mhead.headType != MAIN_HEAD) { info("Error! RAR did not include a MAIN_HEAD header"); } else { - var localFiles = [], - localFile = null; + var localFiles = []; + var localFile = null; do { try { localFile = new RarLocalFile(bstream); @@ -853,24 +853,24 @@ var unrar = function(arrayBuffer) { totalUncompressedBytesInArchive += localFile.header.unpackedSize; localFiles.push(localFile); } else if (localFile.header.packSize === 0 && localFile.header.unpackedSize === 0) { - localFile.isValid = true; + localFile.isValid = true; } - } catch(err) { + } catch (err) { break; } //info("bstream" + bstream.bytePtr+"/"+bstream.bytes.length); - } while( localFile.isValid ); + } while ( localFile.isValid ); totalFilesInArchive = localFiles.length; // now we have all information but things are unpacked // TODO: unpack - localFiles = localFiles.sort(function(a,b) { + localFiles = localFiles.sort(function(a, b) { var aname = a.filename.toLowerCase(); var bname = b.filename.toLowerCase(); return aname > bname ? 1 : -1; }); - info(localFiles.map(function(a) {return a.filename}).join(', ')); + info(localFiles.map(function(a) {return a.filename;}).join(", ")); for (var i = 0; i < localFiles.length; ++i) { var localfile = localFiles[i]; diff --git a/cps/static/js/unzip.js b/cps/static/js/unzip.js index c90cf446..f0370f53 100644 --- a/cps/static/js/unzip.js +++ b/cps/static/js/unzip.js @@ -236,11 +236,11 @@ var unzip = function(arrayBuffer) { } postProgress(); postMessage(new bitjs.archive.UnarchiveFinishEvent()); - } + } }; -// returns a table of Huffman codes -// each entry's index is its code and its value is a JavaScript object +// returns a table of Huffman codes +// each entry's index is its code and its value is a JavaScript object // containing {length: 6, symbol: X} function getHuffmanCodes(bitLengths) { // ensure bitLengths is an array containing at least one element @@ -389,14 +389,14 @@ Code Bits Length(s) Code Bits Lengths Code Bits Length(s) */ var LengthLookupTable = [ - [0,3], [0,4], [0,5], [0,6], - [0,7], [0,8], [0,9], [0,10], - [1,11], [1,13], [1,15], [1,17], - [2,19], [2,23], [2,27], [2,31], - [3,35], [3,43], [3,51], [3,59], - [4,67], [4,83], [4,99], [4,115], - [5,131], [5,163], [5,195], [5,227], - [0,258] + [0, 3], [0, 4], [0, 5], [0, 6], + [0, 7], [0, 8], [0, 9], [0, 10], + [1, 11], [1, 13], [1, 15], [1, 17], + [2, 19], [2, 23], [2, 27], [2, 31], + [3, 35], [3, 43], [3, 51], [3, 59], + [4, 67], [4, 83], [4, 99], [4, 115], + [5, 131], [5, 163], [5, 195], [5, 227], + [0, 258] ]; /* Extra Extra Extra @@ -414,20 +414,20 @@ var LengthLookupTable = [ 9 3 25-32 19 8 769-1024 29 13 24577-32768 */ var DistLookupTable = [ - [0,1], [0,2], [0,3], [0,4], - [1,5], [1,7], - [2,9], [2,13], - [3,17], [3,25], - [4,33], [4,49], - [5,65], [5,97], - [6,129], [6,193], - [7,257], [7,385], - [8,513], [8,769], - [9,1025], [9,1537], - [10,2049], [10,3073], - [11,4097], [11,6145], - [12,8193], [12,12289], - [13,16385], [13,24577] + [0, 1], [0, 2], [0, 3], [0, 4], + [1, 5], [1, 7], + [2, 9], [2, 13], + [3, 17], [3, 25], + [4, 33], [4, 49], + [5, 65], [5, 97], + [6, 129], [6, 193], + [7, 257], [7, 385], + [8, 513], [8, 769], + [9, 1025], [9, 1537], + [10, 2049], [10, 3073], + [11, 4097], [11, 6145], + [12, 8193], [12, 12289], + [13, 16385], [13, 24577] ]; function inflateBlockData(bstream, hcLiteralTable, hcDistanceTable, buffer) { @@ -572,14 +572,13 @@ function inflate(compressedData, numDecompressedBytes) { } } else if (symbol == 17) { - var repeat = bstream.readBits(3) + 3; - while (repeat--) { + var repeat1 = bstream.readBits(3) + 3; + while (repeat1--) { literalCodeLengths.push(0); } - } - else if (symbol == 18) { - var repeat = bstream.readBits(7) + 11; - while (repeat--) { + } else if (symbol == 18) { + var repeat2 = bstream.readBits(7) + 11; + while (repeat2--) { literalCodeLengths.push(0); } } diff --git a/cps/templates/admin.html b/cps/templates/admin.html index 1d038393..e196019f 100644 --- a/cps/templates/admin.html +++ b/cps/templates/admin.html @@ -176,7 +176,7 @@ </div> <div class="modal-body text-center"> <div id="spinner2" class="spinner2" style="display:none;"> - <img id="img-spinner" src="{{ url_for('static', filename='css/images/loading-icon.gif') }}"/> + <img id="img-spinner2" src="{{ url_for('static', filename='css/images/loading-icon.gif') }}"/> </div> <p></p> <div id="Updatecontent"></div> diff --git a/cps/templates/detail.html b/cps/templates/detail.html index 5c96fe61..a49670e6 100644 --- a/cps/templates/detail.html +++ b/cps/templates/detail.html @@ -103,7 +103,7 @@ {% if entry.languages.__len__() > 0 %} <div class="languages"> <p> - <span class="label label-default">{{_('language')}}: {% for language in entry.languages %} {{language.language_name}}{% if not loop.last %},{% endif %}{% endfor %} </span> + <span class="label label-default">{{_('language')}}: {% for language in entry.languages %}{{language.language_name}}{% if not loop.last %}, {% endif %}{% endfor %}</span> </p> </div> {% endif %} diff --git a/cps/templates/readpdf.html b/cps/templates/readpdf.html index abd5df65..44955bf4 100644 --- a/cps/templates/readpdf.html +++ b/cps/templates/readpdf.html @@ -41,16 +41,11 @@ See https://github.com/adobe-type-tools/cmap-resources <!--<link rel="resource" type="application/l10n" href="locale/locale.properties">--> <link rel="resource" type="application/l10n" href="{{ url_for('static', filename='locale/locale.properties') }}"> <script src="{{ url_for('static', filename='js/libs/l10n.js') }}"></script> -<!--<script src="l10n.js"></script>--> -<!--script src="{{ url_for('static', filename='js/libs/debugger.js') }}"></script--> -<!--<script src="debugger.js"></script>--> <script src="{{ url_for('static', filename='js/libs/pdf.js') }}"></script> -<!--<script src="pdf.js"></script>--> <script type="text/javascript"> var DEFAULT_URL = "{{ url_for('serve_book', book_id=pdffile, book_format='pdf') }}"; var PDFWORKER_LOCATION="{{ url_for('static', filename='js/libs/pdf.worker.js') }}"; - // var IMAGE_LOCATION="{{ url_for('static', filename='css/../images') }}"; var IMAGE_LOCATION="{{ url_for('static', filename='/images/') }}"; var PDFWORKER_LOCATION_JS="{{ url_for('static', filename='js/libs/pdf.worker') }}"; </script> @@ -420,8 +415,7 @@ See https://github.com/adobe-type-tools/cmap-resources } </style> <div class="mozPrintCallback-dialog-box"> - <!-- TODO: Localise the following strings --> - Preparing document for printing... + {{_('Preparing document for printing...')}} <div class="progress-row"> <progress value="0" max="100"></progress> <span class="relative-progress">0%</span> diff --git a/cps/templates/search_form.html b/cps/templates/search_form.html index a665f656..a0eca539 100644 --- a/cps/templates/search_form.html +++ b/cps/templates/search_form.html @@ -141,10 +141,7 @@ {% endif %} {% if c.datatype == 'rating' %} - <input type="number" min="1" max="5" step="1" class="form-control" name="{{ 'custom_column_' ~ c.id }}" id="{{ 'custom_column_' ~ c.id }}" - {% if book['custom_column_' ~ c.id]|length > 0 %} - value="{{ '%d' % (book['custom_column_' ~ c.id][0].value / 2) }}" - {% endif %}> + <input type="number" min="1" max="5" step="1" class="form-control" name="{{ 'custom_column_' ~ c.id }}" id="{{ 'custom_column_' ~ c.id }}"> {% endif %} </div> {% endfor %} diff --git a/cps/ub.py b/cps/ub.py index 80b4f354..f5822738 100644 --- a/cps/ub.py +++ b/cps/ub.py @@ -268,8 +268,8 @@ class Registration(Base): domain = Column(String) def __repr__(self): - return u"<Registration('{0}')>".format(self.domain) - + return u"<Registration('{0}')>".format(self.domain) + # Baseclass for representing settings in app.db with email server settings and Calibre database settings # (application settings) @@ -555,7 +555,7 @@ def migrate_Database(): conn.execute("ALTER TABLE Settings ADD column `config_use_google_drive` INTEGER DEFAULT 0") conn.execute("ALTER TABLE Settings ADD column `config_google_drive_folder` String DEFAULT ''") conn.execute("ALTER TABLE Settings ADD column `config_google_drive_watch_changes_response` String DEFAULT ''") - session.commit() + session.commit() try: session.query(exists().where(Settings.config_columns_to_ignore)).scalar() except exc.OperationalError: diff --git a/cps/web.py b/cps/web.py index f6720fea..0a52947e 100644 --- a/cps/web.py +++ b/cps/web.py @@ -1072,7 +1072,7 @@ def get_publishers_json(): json_dumps = json.dumps([dict(name=r.name.replace('|',',')) for r in entries]) return json_dumps - + @app.route("/get_tags_json", methods=['GET', 'POST']) @login_required_if_no_ano def get_tags_json(): @@ -1192,8 +1192,8 @@ def get_update_status(): r = requests.get(repository_url + '/git/commits/' + commit['object']['sha']) r.raise_for_status() update_data = r.json() - except requests.exceptions.HTTPError as ex: - status['error'] = _(u'HTTP Error') + ' ' + str(ex) + except requests.exceptions.HTTPError as e: + status['error'] = _(u'HTTP Error') + ' ' + str(e) except requests.exceptions.ConnectionError: status['error'] = _(u'Connection error') except requests.exceptions.Timeout: diff --git a/cps/worker.py b/cps/worker.py index 91794642..3dd7a68c 100644 --- a/cps/worker.py +++ b/cps/worker.py @@ -108,7 +108,7 @@ class emailbase(): self.transferSize = len(strg) lock.release() for i in range(0, self.transferSize, chunksize): - if type(strg) == bytes: + if isinstance(strg, bytes): self.sock.send((strg[i:i+chunksize])) else: self.sock.send((strg[i:i + chunksize]).encode('utf-8')) @@ -455,6 +455,8 @@ class WorkerThread(threading.Thread): except (smtplib.SMTPException) as e: if hasattr(e, "smtp_error"): text = e.smtp_error.replace("\n",'. ') + elif hasattr(e, "message"): + text = e.message else: text = '' self._handleError(u'Error sending email: ' + text) @@ -501,10 +503,13 @@ class StderrLogger(object): self.logger = web.app.logger def write(self, message): - if message == '\n': - self.logger.debug(self.buffer) - print(self.buffer) - self.buffer = '' - else: - self.buffer += message + try: + if message == '\n': + self.logger.debug(self.buffer) + print(self.buffer) + self.buffer = '' + else: + self.buffer += message + except: + pass diff --git a/test/Calibre-Web TestSummary.html b/test/Calibre-Web TestSummary.html index 358b7b0e..eb381c0a 100644 --- a/test/Calibre-Web TestSummary.html +++ b/test/Calibre-Web TestSummary.html @@ -30,15 +30,15 @@ <div id='header_parameters' class='row text-center report-parameters'> <div class="col-xs-6 col-md-4"> - <p class='text-justify attribute'><strong>Start Time:</strong> 2018-12-28 13:43:29.420375</p> + <p class='text-justify attribute'><strong>Start Time:</strong> 2019-01-14 19:29:43.924290</p> </div> <div class="col-xs-6 col-md-4"> - <p class='text-justify attribute'><strong>Stop Time:</strong> 2018-12-28 13:43:30.101176</p> + <p class='text-justify attribute'><strong>Stop Time:</strong> 2019-01-14 20:13:57.436630</p> </div> <div class="col-xs-6 col-md-4"> - <p class='text-justify attribute'><strong>Duration:</strong> 0:00:00.680801</p> + <p class='text-justify attribute'><strong>Duration:</strong> 0:44:13.512340</p> </div> </div> @@ -95,99 +95,195 @@ <td>Skip</td> <td>View</td> </tr> - <tr class='errorClass'> - <td>test_helper.calibre_helper</td> - <td class="text-center">13</td> - <td class="text-center">10</td> - <td class="text-center">1</td> - <td class="text-center">1</td> - <td class="text-center">1</td> + <tr class='skipClass'> + <td>test_opds_feed.test_opds_feed</td> + <td class="text-center">16</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">16</td> <td class="text-center"> - <a onclick="showClassDetail('c1', 13)">Detail</a> + <a onclick="showClassDetail('c1', 16)">Detail</a> </td> </tr> -<tr id='pt1.1' class='hiddenRow bg-success'> +<tr id='st1.1' class='none bg-warning'> <td> - <div class='testcase'>test_author_sort</div> - </td> - <td colspan='6' align='center'>PASS</td> -</tr> -<tr id='et1.2' class='none bg-info'> - <td> - <div class='testcase'>test_author_sort_comma</div> + <div class='testcase'>test_opds</div> </td> <td colspan='6'> <div class="text-center"> - <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et1.2')">ERROR</a> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.1')">SKIP</a> </div> <!--css div popup start--> - <div id='div_et1.2' class="popup_window test_output" style="display:none;"> + <div id='div_st1.1' class="popup_window test_output" style="display:none;"> <div class='close_button pull-right'> <button type="button" class="close" aria-label="Close" onfocus='this.blur();' - onclick="document.getElementById('div_et1.2').style.display='none'"><span + onclick="document.getElementById('div_st1.1').style.display='none'"><span aria-hidden="true">×</span></button> </div> <div class="text-left pull-left"> - <pre class="text-left">et1.2: Traceback (most recent call last): - File "/home/matthias/Entwicklung/calibre-web-test/test/test_helper.py", line 70, in test_author_sort_comma - print ('ssus' % d) -NameError: global name 'd' is not defined</pre> + <pre class="text-left">st1.1: Not Implemented</pre> </div> <div class="clearfix"></div> </div> <!--css div popup end--> </td> </tr> -<tr id='pt1.3' class='hiddenRow bg-success'> +<tr id='st1.2' class='none bg-warning'> <td> - <div class='testcase'>test_author_sort_junior</div> - </td> - <td colspan='6' align='center'>PASS</td> -</tr> -<tr id='pt1.4' class='hiddenRow bg-success'> - <td> - <div class='testcase'>test_author_sort_oneword</div> - </td> - <td colspan='6' align='center'>PASS</td> -</tr> -<tr id='pt1.5' class='hiddenRow bg-success'> - <td> - <div class='testcase'>test_author_sort_roman</div> - </td> - <td colspan='6' align='center'>PASS</td> -</tr> -<tr id='pt1.6' class='hiddenRow bg-success'> - <td> - <div class='testcase'>test_check_Limit_Length</div> - </td> - <td colspan='6' align='center'>PASS</td> -</tr> -<tr id='pt1.7' class='hiddenRow bg-success'> - <td> - <div class='testcase'>test_check_char_replacement</div> - </td> - <td colspan='6' align='center'>PASS</td> -</tr> -<tr id='ft1.8' class='none bg-danger'> - <td> - <div class='testcase'>test_check_chinese_Characters</div> + <div class='testcase'>test_opds_author</div> </td> <td colspan='6'> <div class="text-center"> - <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft1.8')">FAIL</a> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.2')">SKIP</a> </div> <!--css div popup start--> - <div id='div_ft1.8' class="popup_window test_output" style="display:none;"> + <div id='div_st1.2' class="popup_window test_output" style="display:none;"> <div class='close_button pull-right'> <button type="button" class="close" aria-label="Close" onfocus='this.blur();' - onclick="document.getElementById('div_ft1.8').style.display='none'"><span + onclick="document.getElementById('div_st1.2').style.display='none'"><span aria-hidden="true">×</span></button> </div> <div class="text-left pull-left"> - <pre class="text-left">ft1.8: Traceback (most recent call last): - File "/home/matthias/Entwicklung/calibre-web-test/test/test_helper.py", line 32, in test_check_chinese_Characters - self.assertEqual(helper.get_valid_filename(u'æ§ä¸'), u'Zhi Yik') -AssertionError: 'Zhi Yi' != u'Zhi Yik'</pre> + <pre class="text-left">st1.2: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st1.3' class='none bg-warning'> + <td> + <div class='testcase'>test_opds_calibre_companion</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.3')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st1.3' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st1.3').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st1.3: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st1.4' class='none bg-warning'> + <td> + <div class='testcase'>test_opds_cover</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.4')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st1.4' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st1.4').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st1.4: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st1.5' class='none bg-warning'> + <td> + <div class='testcase'>test_opds_download_book</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.5')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st1.5' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st1.5').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st1.5: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st1.6' class='none bg-warning'> + <td> + <div class='testcase'>test_opds_guest_user</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.6')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st1.6' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st1.6').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st1.6: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st1.7' class='none bg-warning'> + <td> + <div class='testcase'>test_opds_hot</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.7')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st1.7' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st1.7').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st1.7: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st1.8' class='none bg-warning'> + <td> + <div class='testcase'>test_opds_language</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.8')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st1.8' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st1.8').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st1.8: Not Implemented</pre> </div> <div class="clearfix"></div> </div> @@ -196,7 +292,7 @@ AssertionError: 'Zhi Yi' != u'Zhi Yik'</pre> </tr> <tr id='st1.9' class='none bg-warning'> <td> - <div class='testcase'>test_check_degEUR_replacement</div> + <div class='testcase'>test_opds_non_admin</div> </td> <td colspan='6'> <div class="text-center"> @@ -217,25 +313,3715 @@ AssertionError: 'Zhi Yi' != u'Zhi Yik'</pre> <!--css div popup end--> </td> </tr> -<tr id='pt1.10' class='hiddenRow bg-success'> +<tr id='st1.10' class='none bg-warning'> + <td> + <div class='testcase'>test_opds_paging</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.10')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st1.10' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st1.10').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st1.10: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st1.11' class='none bg-warning'> + <td> + <div class='testcase'>test_opds_publisher</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.11')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st1.11' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st1.11').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st1.11: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st1.12' class='none bg-warning'> + <td> + <div class='testcase'>test_opds_random</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.12')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st1.12' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st1.12').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st1.12: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st1.13' class='none bg-warning'> + <td> + <div class='testcase'>test_opds_read_unread</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.13')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st1.13' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st1.13').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st1.13: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st1.14' class='none bg-warning'> + <td> + <div class='testcase'>test_opds_search</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.14')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st1.14' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st1.14').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st1.14: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st1.15' class='none bg-warning'> + <td> + <div class='testcase'>test_opds_series</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.15')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st1.15' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st1.15').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st1.15: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st1.16' class='none bg-warning'> + <td> + <div class='testcase'>test_opds_shelf_access</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st1.16')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st1.16' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st1.16').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st1.16: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='skipClass'> + <td>test_register.test_register</td> + <td class="text-center">4</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">4</td> + <td class="text-center"> + <a onclick="showClassDetail('c2', 4)">Detail</a> + </td> +</tr> +<tr id='st2.1' class='none bg-warning'> + <td> + <div class='testcase'>test_login_with_password</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st2.1')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st2.1' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st2.1').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st2.1: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st2.2' class='none bg-warning'> + <td> + <div class='testcase'>test_registering_user</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st2.2')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st2.2' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st2.2').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st2.2: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st2.3' class='none bg-warning'> + <td> + <div class='testcase'>test_registering_user_fail</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st2.3')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st2.3' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st2.3').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st2.3: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st2.4' class='none bg-warning'> + <td> + <div class='testcase'>test_resend_password</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st2.4')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st2.4' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st2.4').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st2.4: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='passClass'> + <td>test_email_ssl.test_SSL_Python27</td> + <td class="text-center">4</td> + <td class="text-center">4</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center"> + <a onclick="showClassDetail('c3', 4)">Detail</a> + </td> +</tr> +<tr id='pt3.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_SSL_None_setup_error</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt3.1')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt3.1' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt3.1').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt3.1: /home/matthias/Entwicklung/calibre-web-test/test/ui_helper.py:621: FutureWarning: The behavior of this method will change in future versions. Use specific 'len(elem)' or 'elem is not None' test instead. + ret['edit_enable'] = bool(tree.find("//*[@class='glyphicon glyphicon-edit']")) +/home/matthias/Entwicklung/calibre-web-test/test/ui_helper.py:664: FutureWarning: The behavior of this method will change in future versions. Use specific 'len(elem)' or 'elem is not None' test instead. + ret['read']= bool(tree.find("//*[@id='have_read_cb']")) +Incomming connection 127.0.0.1:54218 +127.0.0.1:54218 Timeouted</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt3.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_SSL_STARTTLS_setup_error</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt3.2')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt3.2' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt3.2').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt3.2: Incomming connection 127.0.0.1:54222 +127.0.0.1:54222 Timeouted</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt3.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_SSL_only</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt3.3')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt3.3' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt3.3').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt3.3: Incomming connection 127.0.0.1:54224 +Received: EHLO +Received: AUTH +User: name@host.com, Password: 10234 +Received: MAIL +Received: RCPT +Received: DATA +('Receiving message from:', ('127.0.0.1', 54224)) +('Message addressed from:', '<name@host.com> size=30379') +('Message addressed to :', ['a1@b.com']) +('Message length :', 30378) +Received: QUIT</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt3.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_logging_email</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt3.4')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt3.4' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt3.4').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt3.4: Incomming connection 127.0.0.1:54226 +Received: EHLO +Received: AUTH +User: name@host.com, Password: 10234 +Received: MAIL +Received: RCPT +Received: DATA +('Receiving message from:', ('127.0.0.1', 54226)) +('Message addressed from:', '<name@host.com> size=507') +('Message addressed to :', ['a1@b.com']) +('Message length :', 506) +Received: QUIT</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='failClass'> + <td>test_email_ssl.test_SSL_Python36</td> + <td class="text-center">4</td> + <td class="text-center">3</td> + <td class="text-center">1</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center"> + <a onclick="showClassDetail('c4', 4)">Detail</a> + </td> +</tr> +<tr id='pt4.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_SSL_None_setup_error</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt4.1')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt4.1' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt4.1').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt4.1: Incomming connection 127.0.0.1:54318 +127.0.0.1:54318 Timeouted</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt4.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_SSL_STARTTLS_setup_error</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt4.2')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt4.2' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt4.2').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt4.2: Incomming connection 127.0.0.1:54324 +127.0.0.1:54324 Timeouted</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt4.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_SSL_only</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt4.3')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt4.3' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt4.3').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt4.3: Incomming connection 127.0.0.1:54326 +Received: EHLO +Received: AUTH +User: name@host.com, Password: 10234 +Received: MAIL +Received: RCPT +Received: DATA +('Receiving message from:', ('127.0.0.1', 54326)) +('Message addressed from:', '<name@host.com> size=30788') +('Message addressed to :', ['a1@b.com']) +('Message length :', 30378) +Received: QUIT</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='ft4.4' class='none bg-danger'> + <td> + <div class='testcase'>test_logging_email</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft4.4')">FAIL</a> + </div> + <!--css div popup start--> + <div id='div_ft4.4' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_ft4.4').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">ft4.4: Traceback (most recent call last): + File "/home/matthias/Entwicklung/calibre-web-test/test/test_email_ssl.py", line 168, in test_logging_email + self.assertTrue(False, "Email logging not working in python3 testing") +AssertionError: Email logging not working in python3 testing</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='failClass'> + <td>test_logging.test_logging_Python27</td> + <td class="text-center">5</td> + <td class="text-center">3</td> + <td class="text-center">1</td> + <td class="text-center">0</td> + <td class="text-center">1</td> + <td class="text-center"> + <a onclick="showClassDetail('c5', 5)">Detail</a> + </td> +</tr> +<tr id='pt5.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_debug_log</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt5.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_failed_login</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='st5.3' class='none bg-warning'> + <td> + <div class='testcase'>test_failed_register</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st5.3')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st5.3' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st5.3').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st5.3: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt5.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_logfile_change</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='ft5.5' class='none bg-danger'> + <td> + <div class='testcase'>test_logfile_recover</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft5.5')">FAIL</a> + </div> + <!--css div popup start--> + <div id='div_ft5.5' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_ft5.5').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">ft5.5: Traceback (most recent call last): + File "/home/matthias/Entwicklung/calibre-web-test/test/test_logging.py", line 165, in test_logfile_recover + self.assertTrue(logpath=="", "logfile config value is not empty after reseting to default") +AssertionError: logfile config value is not empty after reseting to default</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='errorClass'> + <td>test_logging.test_logging_Python36</td> + <td class="text-center">5</td> + <td class="text-center">2</td> + <td class="text-center">1</td> + <td class="text-center">1</td> + <td class="text-center">1</td> + <td class="text-center"> + <a onclick="showClassDetail('c6', 5)">Detail</a> + </td> +</tr> +<tr id='pt6.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_debug_log</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt6.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_failed_login</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='st6.3' class='none bg-warning'> + <td> + <div class='testcase'>test_failed_register</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st6.3')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st6.3' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st6.3').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st6.3: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='ft6.4' class='none bg-danger'> + <td> + <div class='testcase'>test_logfile_change</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft6.4')">FAIL</a> + </div> + <!--css div popup start--> + <div id='div_ft6.4' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_ft6.4').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">ft6.4: Traceback (most recent call last): + File "/home/matthias/Entwicklung/calibre-web-test/test/test_logging.py", line 137, in test_logfile_change + self.assertTrue(os.path.isfile(os.path.join(CALIBRE_WEB_PATH, 'hü lo','lö g'))) +AssertionError: False is not true</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='et6.5' class='none bg-info'> + <td> + <div class='testcase'>test_logfile_recover</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et6.5')">ERROR</a> + </div> + <!--css div popup start--> + <div id='div_et6.5' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_et6.5').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">et6.5: Traceback (most recent call last): + File "/home/matthias/Entwicklung/calibre-web-test/test/test_logging.py", line 148, in test_logfile_recover + os.makedirs(os.path.join(CALIBRE_WEB_PATH, 'hü lo')) + File "/usr/lib/python2.7/os.py", line 157, in makedirs + mkdir(name, mode) +OSError: [Errno 17] File exists: '/home/matthias/Entwicklung/calibre-web/h\xc3\xbc lo'</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='skipClass'> + <td>test_edit_books_gdrive.test_edit_books_gdrive</td> + <td class="text-center">22</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">22</td> + <td class="text-center"> + <a onclick="showClassDetail('c7', 22)">Detail</a> + </td> +</tr> +<tr id='st7.1' class='none bg-warning'> + <td> + <div class='testcase'>test_database_errors</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.1')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.1' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.1').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.1: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.2' class='none bg-warning'> + <td> + <div class='testcase'>test_delete_book</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.2')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.2' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.2').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.2: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.3' class='none bg-warning'> + <td> + <div class='testcase'>test_delete_format</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.3')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.3' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.3').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.3: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.4' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_author</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.4')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.4' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.4').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.4: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.5' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_category</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.5')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.5' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.5').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.5: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.6' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_comments</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.6')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.6' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.6').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.6: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.7' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_custom_bool</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.7')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.7' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.7').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.7: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.8' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_custom_rating</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.8')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.8' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.8').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.8: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.9' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_custom_single_select</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.9')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.9' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.9').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.9: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.10' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_custom_text</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.10')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.10' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.10').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.10: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.11' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_language</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.11')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.11' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.11').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.11: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.12' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_publisher</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.12')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.12' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.12').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.12: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.13' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_publishing_date</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.13')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.13' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.13').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.13: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.14' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_rating</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.14')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.14' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.14').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.14: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.15' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_series</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.15')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.15' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.15').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.15: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.16' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_title</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.16')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.16' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.16').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.16: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.17' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_author</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.17')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.17' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.17').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.17: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.18' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_language</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.18')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.18' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.18').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.18: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.19' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_publisher</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.19')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.19' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.19').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.19: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.20' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_series</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.20')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.20' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.20').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.20: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.21' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_tag</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.21')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.21' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.21').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.21: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st7.22' class='none bg-warning'> + <td> + <div class='testcase'>test_upload_cover_hdd</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st7.22')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st7.22' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st7.22').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st7.22: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='skipClass'> + <td>test_anonymous.test_anonymous_Python27</td> + <td class="text-center">1</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">1</td> + <td class="text-center"> + <a onclick="showClassDetail('c8', 1)">Detail</a> + </td> +</tr> +<tr id='st8.1' class='none bg-warning'> + <td> + <div class='testcase'>test_anonymous_user</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st8.1')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st8.1' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st8.1').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st8.1: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='skipClass'> + <td>test_anonymous.test_anonymous_Python36</td> + <td class="text-center">1</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">1</td> + <td class="text-center"> + <a onclick="showClassDetail('c9', 1)">Detail</a> + </td> +</tr> +<tr id='st9.1' class='none bg-warning'> + <td> + <div class='testcase'>test_anonymous_user</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st9.1')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st9.1' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st9.1').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st9.1: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='errorClass'> + <td>unittest.loader.ModuleImportFailure</td> + <td class="text-center">1</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">1</td> + <td class="text-center">0</td> + <td class="text-center"> + <a onclick="showClassDetail('c10', 1)">Detail</a> + </td> +</tr> +<tr id='et10.1' class='none bg-info'> + <td> + <div class='testcase'>test</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et10.1')">ERROR</a> + </div> + <!--css div popup start--> + <div id='div_et10.1' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_et10.1').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">et10.1: ImportError: Failed to import test module: parameterized.test +Traceback (most recent call last): + File "/usr/lib/python2.7/unittest/loader.py", line 254, in _find_tests + module = self._get_module_from_name(name) + File "/usr/lib/python2.7/unittest/loader.py", line 232, in _get_module_from_name + __import__(name) + File "/usr/local/lib/python2.7/dist-packages/gevent/builtins.py", line 96, in __import__ + result = _import(*args, **kwargs) + File "/home/matthias/Entwicklung/calibre-web-test/test/parameterized/test.py", line 4, in <module> + import mock + File "/usr/local/lib/python2.7/dist-packages/gevent/builtins.py", line 96, in __import__ + result = _import(*args, **kwargs) +ImportError: No module named mock</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='skipClass'> + <td>test_user_template.test_user_template_Python27</td> + <td class="text-center">15</td> + <td class="text-center">12</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">3</td> + <td class="text-center"> + <a onclick="showClassDetail('c11', 15)">Detail</a> + </td> +</tr> +<tr id='pt11.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_author_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt11.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_best_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt11.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_category_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt11.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_detail_random_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt11.5' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_hot_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt11.6' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_language_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='st11.7' class='none bg-warning'> + <td> + <div class='testcase'>test_limit_book_languages</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st11.7')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st11.7' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st11.7').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st11.7: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st11.8' class='none bg-warning'> + <td> + <div class='testcase'>test_mature_content_settings</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st11.8')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st11.8' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st11.8').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st11.8: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt11.9' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_publisher_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt11.10' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_random_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt11.11' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_read_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt11.12' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_recent_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt11.13' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_series_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt11.14' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_sorted_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='st11.15' class='none bg-warning'> + <td> + <div class='testcase'>test_ui_language_settings</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st11.15')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st11.15' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st11.15').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st11.15: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='skipClass'> + <td>test_user_template.test_user_template_Python36</td> + <td class="text-center">15</td> + <td class="text-center">12</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">3</td> + <td class="text-center"> + <a onclick="showClassDetail('c12', 15)">Detail</a> + </td> +</tr> +<tr id='pt12.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_author_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt12.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_best_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt12.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_category_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt12.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_detail_random_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt12.5' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_hot_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt12.6' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_language_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='st12.7' class='none bg-warning'> + <td> + <div class='testcase'>test_limit_book_languages</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st12.7')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st12.7' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st12.7').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st12.7: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st12.8' class='none bg-warning'> + <td> + <div class='testcase'>test_mature_content_settings</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st12.8')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st12.8' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st12.8').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st12.8: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt12.9' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_publisher_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt12.10' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_random_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt12.11' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_read_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt12.12' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_recent_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt12.13' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_series_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt12.14' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_sorted_user_template</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='st12.15' class='none bg-warning'> + <td> + <div class='testcase'>test_ui_language_settings</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st12.15')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st12.15' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st12.15').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st12.15: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='skipClass'> + <td>test_updater.test_updater</td> + <td class="text-center">1</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">1</td> + <td class="text-center"> + <a onclick="showClassDetail('c13', 1)">Detail</a> + </td> +</tr> +<tr id='st13.1' class='none bg-warning'> + <td> + <div class='testcase'>test_updater</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st13.1')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st13.1' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st13.1').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st13.1: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='skipClass'> + <td>test_cli.test_cli_Python27</td> + <td class="text-center">6</td> + <td class="text-center">5</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">1</td> + <td class="text-center"> + <a onclick="showClassDetail('c14', 6)">Detail</a> + </td> +</tr> +<tr id='pt14.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_already_started</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt14.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_cli_SSL_files</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt14.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_cli_different_folder</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt14.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_cli_different_settings_database</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='st14.5' class='none bg-warning'> + <td> + <div class='testcase'>test_cli_gdrive_location</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st14.5')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st14.5' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st14.5').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st14.5: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt14.6' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_environ_port_setting</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr class='skipClass'> + <td>test_cli.test_cli_Python36</td> + <td class="text-center">6</td> + <td class="text-center">5</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">1</td> + <td class="text-center"> + <a onclick="showClassDetail('c15', 6)">Detail</a> + </td> +</tr> +<tr id='pt15.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_already_started</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt15.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_cli_SSL_files</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt15.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_cli_different_folder</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt15.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_cli_different_settings_database</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='st15.5' class='none bg-warning'> + <td> + <div class='testcase'>test_cli_gdrive_location</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st15.5')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st15.5' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st15.5').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st15.5: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt15.6' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_environ_port_setting</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr class='failClass'> + <td>test_shelf.test_shelf_Python27</td> + <td class="text-center">7</td> + <td class="text-center">6</td> + <td class="text-center">1</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center"> + <a onclick="showClassDetail('c16', 7)">Detail</a> + </td> +</tr> +<tr id='pt16.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_delete_book_of_shelf</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt16.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_private_shelf</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt16.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_public_private_shelf</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt16.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_public_shelf</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt16.5' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_rename_shelf</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='ft16.6' class='none bg-danger'> + <td> + <div class='testcase'>test_shelf_database_change</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft16.6')">FAIL</a> + </div> + <!--css div popup start--> + <div id='div_ft16.6' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_ft16.6').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">ft16.6: Traceback (most recent call last): + File "/home/matthias/Entwicklung/calibre-web-test/test/test_shelf.py", line 315, in test_shelf_database_change + self.assertIsNone('Not Implemented', 'Database change') +AssertionError: Database change</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt16.7' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_shelf_long_name</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr class='failClass'> + <td>test_shelf.test_shelf_Python36</td> + <td class="text-center">7</td> + <td class="text-center">6</td> + <td class="text-center">1</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center"> + <a onclick="showClassDetail('c17', 7)">Detail</a> + </td> +</tr> +<tr id='pt17.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_delete_book_of_shelf</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt17.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_private_shelf</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt17.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_public_private_shelf</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt17.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_public_shelf</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt17.5' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_rename_shelf</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='ft17.6' class='none bg-danger'> + <td> + <div class='testcase'>test_shelf_database_change</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft17.6')">FAIL</a> + </div> + <!--css div popup start--> + <div id='div_ft17.6' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_ft17.6').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">ft17.6: Traceback (most recent call last): + File "/home/matthias/Entwicklung/calibre-web-test/test/test_shelf.py", line 315, in test_shelf_database_change + self.assertIsNone('Not Implemented', 'Database change') +AssertionError: Database change</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt17.7' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_shelf_long_name</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr class='passClass'> + <td>test_login.test_login_Python27</td> + <td class="text-center">7</td> + <td class="text-center">7</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center"> + <a onclick="showClassDetail('c18', 7)">Detail</a> + </td> +</tr> +<tr id='pt18.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_login_capital_letters_user_unicode_password_passwort</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt18.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_login_delete_admin</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt18.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_login_empty_password</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt18.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_login_locale_select</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt18.5' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_login_protected</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt18.6' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_login_unicode_user_space_end_passwort</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt18.7' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_login_user_with_space_passwort_end_space</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr class='passClass'> + <td>test_login.test_login_Python36</td> + <td class="text-center">7</td> + <td class="text-center">7</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center"> + <a onclick="showClassDetail('c19', 7)">Detail</a> + </td> +</tr> +<tr id='pt19.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_login_capital_letters_user_unicode_password_passwort</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt19.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_login_delete_admin</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt19.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_login_empty_password</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt19.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_login_locale_select</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt19.5' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_login_protected</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt19.6' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_login_unicode_user_space_end_passwort</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt19.7' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_login_user_with_space_passwort_end_space</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr class='failClass'> + <td>test_ebook_convert.test_ebook_convert_Python27</td> + <td class="text-center">11</td> + <td class="text-center">10</td> + <td class="text-center">1</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center"> + <a onclick="showClassDetail('c20', 11)">Detail</a> + </td> +</tr> +<tr id='pt20.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_SSL_smtp_setup_error</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt20.1')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt20.1' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt20.1').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt20.1: Incomming connection 127.0.0.1:58448 +Received: EHLO +Received: AUTH +User: name@host.com, Password: 1234 +Incomming connection 127.0.0.1:58450</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt20.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_STARTTLS_smtp_setup_error</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt20.2')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt20.2' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt20.2').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt20.2: Incomming connection 127.0.0.1:58452 +Received: EHLO</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt20.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_convert_deactivate</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt20.3')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt20.3' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt20.3').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt20.3: 127.0.0.1:58452 Timeouted</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='ft20.4' class='none bg-danger'> + <td> + <div class='testcase'>test_convert_email</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft20.4')">FAIL</a> + </div> + <!--css div popup start--> + <div id='div_ft20.4' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_ft20.4').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">ft20.4: Incomming connection 127.0.0.1:58456 +Received: EHLO +Incomming connection 127.0.0.1:58458 +Received: EHLOTraceback (most recent call last): + File "/home/matthias/Entwicklung/calibre-web-test/test/test_ebook_convert.py", line 220, in test_convert_email + self.assertEqual(ret[-1]['result'], 'Finished') +AssertionError: 'Failed' != 'Finished'</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt20.5' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_convert_failed_and_email</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt20.5')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt20.5' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt20.5').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt20.5: Incomming connection 127.0.0.1:58460 +Received: EHLO</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt20.6' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_convert_only</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt20.6')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt20.6' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt20.6').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt20.6: Incomming connection 127.0.0.1:58462 +Received: EHLO +127.0.0.1:58462 Timeouted</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt20.7' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_convert_parameter</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt20.8' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_convert_wrong_excecutable</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt20.9' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_email_failed</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt20.9')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt20.9' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt20.9').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt20.9: Incomming connection 127.0.0.1:58466 +Received: EHLO +127.0.0.1:58466 Timeouted</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt20.10' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_email_only</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt20.10')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt20.10' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt20.10').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt20.10: Incomming connection 127.0.0.1:58468 +Received: EHLO +Received: AUTH +User: name@host.com, Password: 10234 +Received: MAIL +Received: RCPT +Received: DATA +('Receiving message from:', ('127.0.0.1', 58468)) +('Message addressed from:', '<name@host.com> size=507') +('Message addressed to :', ['a1@b.com']) +('Message length :', 506) +Received: QUIT +Incomming connection 127.0.0.1:58470 +Received: EHLO +Received: AUTH +User: name@host.com, Password: 10234 +Received: MAIL +Received: RCPT +Received: DATA +('Receiving message from:', ('127.0.0.1', 58470)) +('Message addressed from:', '<name@host.com> size=30783') +('Message addressed to :', ['a1@b.com']) +('Message length :', 30782) +Received: QUIT</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt20.11' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_kindle_send_not_configured</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr class='failClass'> + <td>test_ebook_convert.test_ebook_convert_Python36</td> + <td class="text-center">11</td> + <td class="text-center">10</td> + <td class="text-center">1</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center"> + <a onclick="showClassDetail('c21', 11)">Detail</a> + </td> +</tr> +<tr id='pt21.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_SSL_smtp_setup_error</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt21.1')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt21.1' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt21.1').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt21.1: Incomming connection 127.0.0.1:58560 +Received: EHLO +Received: AUTH +User: name@host.com, Password: 1234 +Incomming connection 127.0.0.1:58562</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt21.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_STARTTLS_smtp_setup_error</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt21.2')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt21.2' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt21.2').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt21.2: Incomming connection 127.0.0.1:58564 +Received: EHLO</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt21.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_convert_deactivate</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt21.3')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt21.3' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt21.3').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt21.3: 127.0.0.1:58564 Timeouted</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='ft21.4' class='none bg-danger'> + <td> + <div class='testcase'>test_convert_email</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft21.4')">FAIL</a> + </div> + <!--css div popup start--> + <div id='div_ft21.4' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_ft21.4').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">ft21.4: Incomming connection 127.0.0.1:58570 +Received: EHLO +Incomming connection 127.0.0.1:58572 +Received: EHLOTraceback (most recent call last): + File "/home/matthias/Entwicklung/calibre-web-test/test/test_ebook_convert.py", line 220, in test_convert_email + self.assertEqual(ret[-1]['result'], 'Finished') +AssertionError: 'Failed' != 'Finished'</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt21.5' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_convert_failed_and_email</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt21.5')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt21.5' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt21.5').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt21.5: Incomming connection 127.0.0.1:58574 +Received: EHLO</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt21.6' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_convert_only</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt21.6')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt21.6' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt21.6').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt21.6: Incomming connection 127.0.0.1:58576 +Received: EHLO +127.0.0.1:58576 Timeouted</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt21.7' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_convert_parameter</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt21.8' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_convert_wrong_excecutable</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt21.9' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_email_failed</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt21.9')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt21.9' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt21.9').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt21.9: Incomming connection 127.0.0.1:58580 +Received: EHLO +127.0.0.1:58580 Timeouted</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt21.10' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_email_only</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt21.10')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt21.10' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt21.10').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt21.10: Incomming connection 127.0.0.1:58582 +Received: EHLO +Received: AUTH +User: name@host.com, Password: 10234 +Received: MAIL +Received: RCPT +Received: DATA +('Receiving message from:', ('127.0.0.1', 58582)) +('Message addressed from:', '<name@host.com> size=522') +('Message addressed to :', ['a1@b.com']) +('Message length :', 505) +Received: QUIT +Incomming connection 127.0.0.1:58584 +Received: EHLO +Received: AUTH +User: name@host.com, Password: 10234 +Received: MAIL +Received: RCPT +Received: DATA +('Receiving message from:', ('127.0.0.1', 58584)) +('Message addressed from:', '<name@host.com> size=31197') +('Message addressed to :', ['a1@b.com']) +('Message length :', 30782) +Received: QUIT</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt21.11' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_kindle_send_not_configured</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr class='passClass'> + <td>test_visiblilitys.calibre_web_visibilitys_Python27</td> + <td class="text-center">17</td> + <td class="text-center">17</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center"> + <a onclick="showClassDetail('c22', 17)">Detail</a> + </td> +</tr> +<tr id='pt22.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_about</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_SMTP_Settings</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_add_user</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_password</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.5' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_authors</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.6' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_category</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.7' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_hot</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.8' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_language</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.9' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_publisher</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.10' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_rated</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.11' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_read</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.12' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_series</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.13' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_sorted</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.14' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_checked_logged_in</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.15' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_random_books_available</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.16' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_user_email_available</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt22.17' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_user_visibility_sidebar</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr class='passClass'> + <td>test_visiblilitys.calibre_web_visibilitys_Python36</td> + <td class="text-center">17</td> + <td class="text-center">17</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center"> + <a onclick="showClassDetail('c23', 17)">Detail</a> + </td> +</tr> +<tr id='pt23.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_about</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_SMTP_Settings</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_add_user</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_password</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.5' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_authors</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.6' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_category</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.7' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_hot</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.8' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_language</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.9' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_publisher</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.10' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_rated</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.11' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_read</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.12' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_series</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.13' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_admin_change_visibility_sorted</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.14' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_checked_logged_in</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.15' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_random_books_available</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.16' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_user_email_available</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt23.17' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_user_visibility_sidebar</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr class='failClass'> + <td>test_edit_books.test_edit_books_Python27</td> + <td class="text-center">23</td> + <td class="text-center">11</td> + <td class="text-center">1</td> + <td class="text-center">0</td> + <td class="text-center">11</td> + <td class="text-center"> + <a onclick="showClassDetail('c24', 23)">Detail</a> + </td> +</tr> +<tr id='st24.1' class='none bg-warning'> + <td> + <div class='testcase'>test_database_errors</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st24.1')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st24.1' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st24.1').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st24.1: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st24.2' class='none bg-warning'> + <td> + <div class='testcase'>test_delete_book</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st24.2')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st24.2' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st24.2').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st24.2: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st24.3' class='none bg-warning'> + <td> + <div class='testcase'>test_delete_format</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st24.3')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st24.3' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st24.3').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st24.3: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt24.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_author</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt24.5' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_category</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt24.6' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_comments</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt24.7' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_custom_bool</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt24.8' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_custom_rating</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt24.9' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_custom_single_select</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt24.10' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_custom_text</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt24.11' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_language</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt24.12' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_publisher</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='st24.13' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_publishing_date</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st24.13')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st24.13' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st24.13').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st24.13: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt24.14' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_rating</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt24.15' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_series</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='ft24.16' class='none bg-danger'> + <td> + <div class='testcase'>test_edit_title</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft24.16')">FAIL</a> + </div> + <!--css div popup start--> + <div id='div_ft24.16' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_ft24.16').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">ft24.16: Traceback (most recent call last): + File "/home/matthias/Entwicklung/calibre-web-test/test/test_edit_books.py", line 128, in test_edit_title + self.assertEqual('The camicdemo', books[1][8]['title']) +AssertionError: 'The camicdemo' != '\n '</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st24.17' class='none bg-warning'> + <td> + <div class='testcase'>test_rename_uppercase_lowercase</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st24.17')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st24.17' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st24.17').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st24.17: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st24.18' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_author</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st24.18')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st24.18' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st24.18').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st24.18: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st24.19' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_language</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st24.19')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st24.19' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st24.19').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st24.19: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st24.20' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_publisher</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st24.20')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st24.20' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st24.20').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st24.20: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st24.21' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_series</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st24.21')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st24.21' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st24.21').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st24.21: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st24.22' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_tag</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st24.22')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st24.22' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st24.22').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st24.22: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st24.23' class='none bg-warning'> + <td> + <div class='testcase'>test_upload_cover_hdd</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st24.23')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st24.23' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st24.23').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st24.23: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='failClass'> + <td>test_edit_books.test_edit_books_Python36</td> + <td class="text-center">23</td> + <td class="text-center">11</td> + <td class="text-center">1</td> + <td class="text-center">0</td> + <td class="text-center">11</td> + <td class="text-center"> + <a onclick="showClassDetail('c25', 23)">Detail</a> + </td> +</tr> +<tr id='st25.1' class='none bg-warning'> + <td> + <div class='testcase'>test_database_errors</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st25.1')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st25.1' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st25.1').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st25.1: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st25.2' class='none bg-warning'> + <td> + <div class='testcase'>test_delete_book</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st25.2')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st25.2' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st25.2').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st25.2: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st25.3' class='none bg-warning'> + <td> + <div class='testcase'>test_delete_format</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st25.3')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st25.3' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st25.3').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st25.3: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt25.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_author</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt25.5' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_category</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt25.6' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_comments</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt25.7' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_custom_bool</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt25.8' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_custom_rating</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt25.9' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_custom_single_select</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt25.10' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_custom_text</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt25.11' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_language</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt25.12' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_publisher</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='st25.13' class='none bg-warning'> + <td> + <div class='testcase'>test_edit_publishing_date</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st25.13')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st25.13' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st25.13').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st25.13: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt25.14' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_rating</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt25.15' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_edit_series</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='ft25.16' class='none bg-danger'> + <td> + <div class='testcase'>test_edit_title</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft25.16')">FAIL</a> + </div> + <!--css div popup start--> + <div id='div_ft25.16' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_ft25.16').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">ft25.16: Traceback (most recent call last): + File "/home/matthias/Entwicklung/calibre-web-test/test/test_edit_books.py", line 128, in test_edit_title + self.assertEqual('The camicdemo', books[1][8]['title']) +AssertionError: 'The camicdemo' != '\n '</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st25.17' class='none bg-warning'> + <td> + <div class='testcase'>test_rename_uppercase_lowercase</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st25.17')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st25.17' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st25.17').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st25.17: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st25.18' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_author</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st25.18')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st25.18' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st25.18').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st25.18: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st25.19' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_language</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st25.19')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st25.19' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st25.19').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st25.19: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st25.20' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_publisher</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st25.20')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st25.20' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st25.20').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st25.20: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st25.21' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_series</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st25.21')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st25.21' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st25.21').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st25.21: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st25.22' class='none bg-warning'> + <td> + <div class='testcase'>test_typeahead_tag</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st25.22')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st25.22' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st25.22').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st25.22: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='st25.23' class='none bg-warning'> + <td> + <div class='testcase'>test_upload_cover_hdd</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st25.23')">SKIP</a> + </div> + <!--css div popup start--> + <div id='div_st25.23' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_st25.23').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">st25.23: Not Implemented</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='passClass'> + <td>test_email_STARTTLS.test_STARTTLS_Python27</td> + <td class="text-center">2</td> + <td class="text-center">2</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center"> + <a onclick="showClassDetail('c26', 2)">Detail</a> + </td> +</tr> +<tr id='pt26.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_STARTTLS</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt26.1')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt26.1' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt26.1').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt26.1: Incomming connection 127.0.0.1:47924 +Incomming connection 127.0.0.1:47926 +Received: EHLO +Received: STARTTLS +Received: EHLO +Received: AUTH +User: name@host.com, Password: 10234 +Received: MAIL +Received: RCPT +Received: DATA +('Receiving message from:', ('127.0.0.1', 47926)) +('Message addressed from:', '<name@host.com> size=30378') +('Message addressed to :', ['a1@b.com']) +('Message length :', 30377) +Received: QUIT</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt26.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_STARTTLS_SSL_setup_error</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt26.2')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt26.2' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt26.2').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt26.2: Incomming connection 127.0.0.1:47928</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='passClass'> + <td>test_email_STARTTLS.test_STARTTLS_Python36</td> + <td class="text-center">2</td> + <td class="text-center">2</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center"> + <a onclick="showClassDetail('c27', 2)">Detail</a> + </td> +</tr> +<tr id='pt27.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_STARTTLS</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt27.1')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt27.1' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt27.1').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt27.1: Incomming connection 127.0.0.1:48016 +Incomming connection 127.0.0.1:48018 +Received: EHLO +Received: STARTTLS +Received: EHLO +Received: AUTH +User: name@host.com, Password: 10234 +Received: MAIL +Received: RCPT +Received: DATA +('Receiving message from:', ('127.0.0.1', 48018)) +('Message addressed from:', '<name@host.com> size=30786') +('Message addressed to :', ['a1@b.com']) +('Message length :', 30376) +Received: QUIT</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr id='pt27.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_STARTTLS_SSL_setup_error</div> + </td> + <td colspan='6'> + <div class="text-center"> + <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_pt27.2')">PASS</a> + </div> + <!--css div popup start--> + <div id='div_pt27.2' class="popup_window test_output" style="display:none;"> + <div class='close_button pull-right'> + <button type="button" class="close" aria-label="Close" onfocus='this.blur();' + onclick="document.getElementById('div_pt27.2').style.display='none'"><span + aria-hidden="true">×</span></button> + </div> + <div class="text-left pull-left"> + <pre class="text-left">pt27.2: Incomming connection 127.0.0.1:48022</pre> + </div> + <div class="clearfix"></div> + </div> + <!--css div popup end--> + </td> +</tr> +<tr class='passClass'> + <td>test_helper.calibre_helper</td> + <td class="text-center">13</td> + <td class="text-center">13</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center">0</td> + <td class="text-center"> + <a onclick="showClassDetail('c28', 13)">Detail</a> + </td> +</tr> +<tr id='pt28.1' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_author_sort</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt28.2' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_author_sort_comma</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt28.3' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_author_sort_junior</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt28.4' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_author_sort_oneword</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt28.5' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_author_sort_roman</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt28.6' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_check_Limit_Length</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt28.7' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_check_char_replacement</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt28.8' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_check_chinese_Characters</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt28.9' class='hiddenRow bg-success'> + <td> + <div class='testcase'>test_check_degEUR_replacement</div> + </td> + <td colspan='6' align='center'>PASS</td> +</tr> +<tr id='pt28.10' class='hiddenRow bg-success'> <td> <div class='testcase'>test_check_doubleS</div> </td> <td colspan='6' align='center'>PASS</td> </tr> -<tr id='pt1.11' class='hiddenRow bg-success'> +<tr id='pt28.11' class='hiddenRow bg-success'> <td> <div class='testcase'>test_check_finish_Dot</div> </td> <td colspan='6' align='center'>PASS</td> </tr> -<tr id='pt1.12' class='hiddenRow bg-success'> +<tr id='pt28.12' class='hiddenRow bg-success'> <td> <div class='testcase'>test_check_high23</div> </td> <td colspan='6' align='center'>PASS</td> </tr> -<tr id='pt1.13' class='hiddenRow bg-success'> +<tr id='pt28.13' class='hiddenRow bg-success'> <td> <div class='testcase'>test_check_umlauts</div> </td> @@ -244,17 +4030,17 @@ AssertionError: 'Zhi Yi' != u'Zhi Yik'</pre> <tr id='total_row' class="text-center bg-grey"> <td>Total</td> - <td>13</td> - <td>10</td> - <td>1</td> - <td>1</td> - <td>1</td> + <td>253</td> + <td>165</td> + <td>9</td> + <td>2</td> + <td>77</td> <td> </td> </tr> </table> <script> - drawCircle(10, 1, 1, 1); + drawCircle(165, 9, 2, 77); </script> </div>