mirror of
				https://github.com/janeczku/calibre-web
				synced 2025-10-31 15:23:02 +00:00 
			
		
		
		
	Merge branch 'master' of https://github.com/janeczku/calibre-web
This commit is contained in:
		| @@ -21,10 +21,11 @@ var $list = $("#list").isotope({ | ||||
|     itemSelector: ".book", | ||||
|     layoutMode: "fitRows", | ||||
|     getSortData: { | ||||
|         title: ".title", | ||||
|     } | ||||
|         title: ".title" | ||||
|     }, | ||||
| }); | ||||
|  | ||||
|  | ||||
| $("#desc").click(function() { | ||||
|     if (direction === 0) { | ||||
|         return; | ||||
| @@ -37,9 +38,10 @@ $("#desc").click(function() { | ||||
|         url: getPath() + "/ajax/view", | ||||
|         data: "{\"" + page + "\": {\"dir\": \"desc\"}}", | ||||
|     }); | ||||
|     // invert sorting order to make already inverted start order working | ||||
|     $list.isotope({ | ||||
|         sortBy: "name", | ||||
|         sortAscending: true | ||||
|         sortAscending: !$list.data('isotope').options.sortAscending | ||||
|     }); | ||||
|     direction = 0; | ||||
| }); | ||||
| @@ -58,7 +60,7 @@ $("#asc").click(function() { | ||||
|     }); | ||||
|     $list.isotope({ | ||||
|         sortBy: "name", | ||||
|         sortAscending: false | ||||
|         sortAscending: !$list.data('isotope').options.sortAscending | ||||
|     }); | ||||
|     direction = 1; | ||||
| }); | ||||
|   | ||||
| @@ -22,7 +22,7 @@ | ||||
|   {% if author is not none %} | ||||
|     <h3>{{_("In Library")}}</h3> | ||||
|   {% endif %} | ||||
|     <div class="filterheader hidden-xs hidden-sm"> | ||||
|     <div class="filterheader hidden-xs"> | ||||
|       <a id="new" data-toggle="tooltip" title="{{_('Sort according to book date, newest first')}}" class="btn btn-primary" href="{{url_for('web.books_list', data='author', book_id=id, sort_param='new')}}"><span class="glyphicon glyphicon-book"></span> <span class="glyphicon glyphicon-calendar"></span><span class="glyphicon glyphicon-sort-by-order"></span></a> | ||||
|       <a id="old" data-toggle="tooltip" title="{{_('Sort according to book date, oldest first')}}" class="btn btn-primary" href="{{url_for('web.books_list', data='author', book_id=id, sort_param='old')}}"><span class="glyphicon glyphicon-book"></span> <span class="glyphicon glyphicon-calendar"></span><span class="glyphicon glyphicon-sort-by-order-alt"></span></a> | ||||
|       <a id="asc" data-toggle="tooltip" title="{{_('Sort title in alphabetical order')}}" class="btn btn-primary" href="{{url_for('web.books_list', data='author', book_id=id, sort_param='abc')}}"><span class="glyphicon glyphicon-font"></span><span class="glyphicon glyphicon-sort-by-alphabet"></span></a> | ||||
|   | ||||
| @@ -2,18 +2,17 @@ | ||||
| {% block body %} | ||||
| <h1 class="{{page}}">{{_(title)}}</h1> | ||||
|  | ||||
|     <div class="filterheader hidden-xs hidden-sm"> | ||||
|       {% if entries.__len__() %} | ||||
|        {% if entries[0][0].sort %} | ||||
|     <div class="filterheader hidden-xs"> | ||||
|       {% if entries.__len__() and data == 'author' %} | ||||
|         <button id="sort_name" class="btn btn-primary"><b>B,A <-> A B</b></button> | ||||
|        {% endif %} | ||||
|       {% endif %} | ||||
|       <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"> | ||||
|       <button id="asc" data-id="series" data-order="{{ order }}" class="btn btn-primary"><span class="glyphicon glyphicon-sort-by-alphabet"></span></button> | ||||
|       <button id="desc" data-id="series" class="btn btn-primary"><span class="glyphicon glyphicon-sort-by-alphabet-alt"></span></button> | ||||
|       {% if charlist|length %} | ||||
|       <button id="all" class="btn btn-primary">{{_('All')}}</button> | ||||
|       <button id="all" class="btn btn-primary {% if charlist|length > 9 %}hidden-sm{% endif %}">{{_('All')}}</button> | ||||
|       {% endif %} | ||||
|       <div class="btn-group character" role="group"> | ||||
|       <div class="btn-group character {% if charlist|length > 9 %}hidden-sm{% endif %}" role="group"> | ||||
|         {% for char in charlist%} | ||||
|         <button class="btn btn-primary char">{{char.char}}</button> | ||||
|         {% endfor %} | ||||
|   | ||||
| @@ -64,7 +64,7 @@ | ||||
| {% endif %} | ||||
| <div class="discover load-more"> | ||||
|   <h2 class="{{title}}">{{title}}</h2> | ||||
|     <div class="filterheader hidden-xs hidden-sm"> | ||||
|     <div class="filterheader hidden-xs"> | ||||
|       <a data-toggle="tooltip" title="{{_('Sort according to book date, newest first')}}" id="new" class="btn btn-primary" href="{{url_for('web.books_list', data=page, book_id=id, sort_param='new')}}"><span class="glyphicon glyphicon-book"></span> <span class="glyphicon glyphicon-calendar"></span><span class="glyphicon glyphicon-sort-by-order"></span></a> | ||||
|       <a data-toggle="tooltip" title="{{_('Sort according to book date, oldest first')}}" id="old" class="btn btn-primary" href="{{url_for('web.books_list', data=page, book_id=id, sort_param='old')}}"><span class="glyphicon glyphicon-book"></span> <span class="glyphicon glyphicon-calendar"></span><span class="glyphicon glyphicon-sort-by-order-alt"></span></a> | ||||
|       <a data-toggle="tooltip" title="{{_('Sort title in alphabetical order')}}" id="asc" class="btn btn-primary" href="{{url_for('web.books_list', data=page, book_id=id, sort_param='abc')}}"><span class="glyphicon glyphicon-font"></span><span class="glyphicon glyphicon-sort-by-alphabet"></span></a> | ||||
|   | ||||
| @@ -2,18 +2,16 @@ | ||||
| {% block body %} | ||||
| <h1 class="{{page}}">{{_(title)}}</h1> | ||||
|  | ||||
|     <div class="filterheader hidden-xs hidden-sm"> | ||||
|       {% if entries.__len__() %} | ||||
|        {% if data == 'author' %} | ||||
|     <div class="filterheader hidden-xs"> | ||||
|       {% if entries.__len__() and data == 'author' %} | ||||
|         <button id="sort_name" class="btn btn-primary"><b>B,A <-> A B</b></button> | ||||
|        {% endif %} | ||||
|       {% endif %} | ||||
|       <button id="asc" data-order="{{ order }}" data-id="{{ data }}" class="btn btn-primary"><span class="glyphicon glyphicon-sort-by-alphabet"></span></button> | ||||
|       <button id="desc" data-id="{{ data }}" class="btn btn-primary"><span class="glyphicon glyphicon-sort-by-alphabet-alt"></span></button> | ||||
|       {% if charlist|length %} | ||||
|       <button id="all" class="btn btn-primary">{{_('All')}}</button> | ||||
|       <button id="all" class="btn btn-primary {% if charlist|length > 9 %}hidden-sm{% endif %}">{{_('All')}}</button> | ||||
|       {% endif %} | ||||
|       <div class="btn-group character" role="group"> | ||||
|       <div class="btn-group character {% if charlist|length > 9 %}hidden-sm{% endif %}" role="group"> | ||||
|         {% for char in charlist%} | ||||
|         <button class="btn btn-primary char">{{char.char}}</button> | ||||
|         {% endfor %} | ||||
|   | ||||
| @@ -25,7 +25,7 @@ | ||||
|           </div> | ||||
|         {% endif %} | ||||
|       {% endif %} | ||||
|       <div class="filterheader hidden-xs hidden-sm"><!-- ToDo: Implement filter for search results --> | ||||
|       <div class="filterheader hidden-xs"><!-- ToDo: Implement filter for search results --> | ||||
|         <a id="new" data-toggle="tooltip" title="{{_('Sort according to book date, newest first')}}" class="btn btn-primary" href="{{url_for('web.books_list', data=page, sort_param='new', query=query)}}"><span class="glyphicon glyphicon-sort-by-order"></span></a> | ||||
|         <a id="old" data-toggle="tooltip" title="{{_('Sort according to book date, oldest first')}}" class="btn btn-primary" href="{{url_for('web.books_list', data=page, sort_param='old', query=query)}}"><span class="glyphicon glyphicon-sort-by-order-alt"></span></a> | ||||
|         <a id="asc" data-toggle="tooltip" title="{{_('Sort title in alphabetical order')}}" class="btn btn-primary" href="{{url_for('web.books_list', data=page, sort_param='abc', query=query)}}"><span class="glyphicon glyphicon-font"></span><span class="glyphicon glyphicon-sort-by-alphabet"></span></a> | ||||
|   | ||||
| @@ -13,7 +13,7 @@ | ||||
|       {% if entries.__len__() %} | ||||
|       <a id="order_shelf" href="{{ url_for('shelf.order_shelf', shelf_id=shelf.id) }}" class="btn btn-primary">{{ _('Arrange books manually') }} </a> | ||||
|       <button id="toggle_order_shelf" type="button" data-alt-text="{{ _('Disable Change order') }}" class="btn btn-primary">{{ _('Enable Change order') }}</button> | ||||
|         <div class="filterheader hidden-xs hidden-sm"> | ||||
|         <div class="filterheader hidden-xs"> | ||||
|           <a data-toggle="tooltip" title="{{_('Sort according to book date, newest first')}}" id="new" class="btn btn-primary disabled" href="{{url_for('shelf.show_shelf', shelf_id=shelf.id, sort_param='new')}}"><span class="glyphicon glyphicon-book"></span> <span class="glyphicon glyphicon-calendar"></span><span class="glyphicon glyphicon-sort-by-order"></span></a> | ||||
|           <a data-toggle="tooltip" title="{{_('Sort according to book date, oldest first')}}" id="old" class="btn btn-primary disabled" href="{{url_for('shelf.show_shelf', shelf_id=shelf.id, sort_param='old')}}"><span class="glyphicon glyphicon-book"></span> <span class="glyphicon glyphicon-calendar"></span><span class="glyphicon glyphicon-sort-by-order-alt"></span></a> | ||||
|           <a data-toggle="tooltip" title="{{_('Sort title in alphabetical order')}}" id="asc" class="btn btn-primary disabled" href="{{url_for('shelf.show_shelf', shelf_id=shelf.id, sort_param='abc')}}"><span class="glyphicon glyphicon-font"></span><span class="glyphicon glyphicon-sort-by-alphabet"></span></a> | ||||
|   | ||||
| @@ -85,6 +85,8 @@ def add_security_headers(resp): | ||||
|     resp.headers['Content-Security-Policy'] = "default-src 'self'" + ''.join([' '+host for host in config.config_trustedhosts.strip().split(',')]) + " 'unsafe-inline' 'unsafe-eval'; font-src 'self' data:; img-src 'self' data:" | ||||
|     if request.endpoint == "editbook.edit_book" or config.config_use_google_drive: | ||||
|         resp.headers['Content-Security-Policy'] += " *" | ||||
|     elif request.endpoint == "web.read_book": | ||||
|         resp.headers['Content-Security-Policy'] += " blob:;style-src-elem 'self' blob: 'unsafe-inline';" | ||||
|     resp.headers['X-Content-Type-Options'] = 'nosniff' | ||||
|     resp.headers['X-Frame-Options'] = 'SAMEORIGIN' | ||||
|     resp.headers['X-XSS-Protection'] = '1; mode=block' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 cbartondock
					cbartondock