mirror of
https://github.com/th3r00t/pyShelf.git
synced 2026-04-28 01:59:35 -04:00
Added blank entry to sort list, and reworked window.location.href
This commit is contained in:
2
src/interface/static/js/pyshelf_ux.js
vendored
2
src/interface/static/js/pyshelf_ux.js
vendored
@@ -78,6 +78,6 @@ $(document).ready(function(){
|
|||||||
var optionSelected = $(this).find("option:selected");
|
var optionSelected = $(this).find("option:selected");
|
||||||
var valueSelected = optionSelected.val();
|
var valueSelected = optionSelected.val();
|
||||||
var textSelected = optionSelected.text();
|
var textSelected = optionSelected.text();
|
||||||
window.location.href=valueSelected
|
window.location.href="/"+valueSelected
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
7
src/interface/templates/index.html
vendored
7
src/interface/templates/index.html
vendored
@@ -49,12 +49,13 @@
|
|||||||
<div id="horiz_nav_main">
|
<div id="horiz_nav_main">
|
||||||
<div id="horiz_nav_left">
|
<div id="horiz_nav_left">
|
||||||
<i class="fas fa-arrow-circle-left nav_icon prev_page" onclick="window.location.href = '/prev_page/{{ Set }}'"></i>
|
<i class="fas fa-arrow-circle-left nav_icon prev_page" onclick="window.location.href = '/prev_page/{{ Set }}'"></i>
|
||||||
<i class="fas fa-sort nav_icon"></i>
|
sort <i class="fas fa-sort nav_icon"></i>
|
||||||
<select id = "sortlist">
|
<select id = "sortlist">
|
||||||
|
<option valie = "" id="empty-sort"></option>
|
||||||
<option value = "sort/title" id="title-sort">Title</option>
|
<option value = "sort/title" id="title-sort">Title</option>
|
||||||
<option value = "sort/author" id="author-sort">Author</option>
|
<option value = "sort/author" id="author-sort">Author</option>
|
||||||
<option value = "sort/collections" id="collection-sort">Collection</option>
|
<option value = "sort/collections" id="collection-sort">Collection</option>
|
||||||
<option value = "sort/tag" id="tag-sort">Tags</option>
|
<option value = "sort/tags" id="tags-sort">Tags</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div id="horiz_nav_center">
|
<div id="horiz_nav_center">
|
||||||
@@ -64,7 +65,7 @@
|
|||||||
<i class="fas fa-search search_submit search_button" onclick="window.location.href = '/prev_page/{{ Set }}'">search</i>
|
<i class="fas fa-search search_submit search_button" onclick="window.location.href = '/prev_page/{{ Set }}'">search</i>
|
||||||
</div>
|
</div>
|
||||||
<div class="horiz_nav_stats">
|
<div class="horiz_nav_stats">
|
||||||
<i class="fas fa-book nav_icon"></i> 1-20 of {{ BookStats }}
|
<i class="fas fa-book nav_icon"></i> {{ NowShowing }} of {{ BookStats }}
|
||||||
<i class="fas fa-arrow-circle-right nav_icon next_page" onclick="window.location.href = '/next_page/{{ Set }}'"></i>
|
<i class="fas fa-arrow-circle-right nav_icon next_page" onclick="window.location.href = '/next_page/{{ Set }}'"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ def show_collection(request, _collection, _colset):
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
def next_page(request, bookset):
|
def next_page(request, bookset, query=None, _limit=None, _order='title'):
|
||||||
"""
|
"""
|
||||||
Goto next page in bookset
|
Goto next page in bookset
|
||||||
"""
|
"""
|
||||||
@@ -58,28 +58,14 @@ def next_page(request, bookset):
|
|||||||
_set = int(bookset) + 1
|
_set = int(bookset) + 1
|
||||||
except Exception:
|
except Exception:
|
||||||
_set = 1
|
_set = 1
|
||||||
|
_payload = payload(request, query, _set, _limit, _order)
|
||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
"""
|
"index.html",
|
||||||
index.html",
|
_payload,
|
||||||
{
|
|
||||||
"Books": book_set(None, _set),
|
|
||||||
"Set": str(_set),
|
|
||||||
"Version": config.VERSION,
|
|
||||||
"LeftNavCollections": menu("collections"),
|
|
||||||
"LeftNav": menu("collections"),
|
|
||||||
"Collections": collections_list(),
|
|
||||||
"LeftNavMenu0": menu("nav_l_0"),
|
|
||||||
"BookStats": Books.objects.all().count,
|
|
||||||
"CollectionStats": Collections.objects.all().count,
|
|
||||||
"CollectionObject": collections_list(),
|
|
||||||
"LeftNavCollections": menu("collections"),
|
|
||||||
"LeftNav": menu("collections"),
|
|
||||||
},
|
|
||||||
"""
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def prev_page(request, bookset):
|
def prev_page(request, bookset, query=None, _limit=None, _order='title'):
|
||||||
"""
|
"""
|
||||||
Goto previous page in bookset
|
Goto previous page in bookset
|
||||||
"""
|
"""
|
||||||
@@ -91,66 +77,11 @@ def prev_page(request, bookset):
|
|||||||
_set = int(bookset) - 1
|
_set = int(bookset) - 1
|
||||||
except Exception:
|
except Exception:
|
||||||
_set = 1
|
_set = 1
|
||||||
|
_payload = payload(request, query, _set, _limit, _order)
|
||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
"index.html",
|
"index.html",
|
||||||
{
|
_payload,
|
||||||
"Books": book_set(None, _set),
|
|
||||||
"Set": str(_set),
|
|
||||||
"Version": config.VERSION,
|
|
||||||
"LeftNavCollections": menu("collections"),
|
|
||||||
"LeftNav": menu("collections"),
|
|
||||||
"Collections": collections_list(),
|
|
||||||
"LeftNavMenu0": menu("nav_l_0"),
|
|
||||||
"BookStats": Books.objects.all().count,
|
|
||||||
"CollectionStats": Collections.objects.all().count,
|
|
||||||
"CollectionObject": collections_list(),
|
|
||||||
"LeftNavCollections": menu("collections"),
|
|
||||||
"LeftNav": menu("collections"),
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
def search(request, query=None, _set=1, _limit=None):
|
|
||||||
"""
|
|
||||||
Call generic search and return rendered results
|
|
||||||
"""
|
|
||||||
_set = int(_set)
|
|
||||||
if query is None:
|
|
||||||
return render(
|
|
||||||
request,
|
|
||||||
"index.html",
|
|
||||||
{
|
|
||||||
"Books": book_set(20, _set),
|
|
||||||
"Set": str(_set),
|
|
||||||
"Version": config.VERSION,
|
|
||||||
"LeftNavCollections": menu("collections"),
|
|
||||||
"LeftNavMenu0": menu("nav_l_0"),
|
|
||||||
"BookStats": Books.objects.all().count,
|
|
||||||
"CollectionStats": Collections.objects.all().count,
|
|
||||||
"CollectionObject": collections_list()
|
|
||||||
}
|
|
||||||
)
|
|
||||||
if _limit is None:
|
|
||||||
_limit = 20 ## TODO set to user defaults
|
|
||||||
if _set < 1:
|
|
||||||
_set = 1
|
|
||||||
_set_max = int(_set) * _limit
|
|
||||||
_set_min = _set_max - _limit
|
|
||||||
search = Books().generic_search(query)
|
|
||||||
search_len = search.count()
|
|
||||||
_r = search[_set_min:_set_max]
|
|
||||||
return render(
|
|
||||||
request,
|
|
||||||
"search.html",
|
|
||||||
{
|
|
||||||
"Books": _r,
|
|
||||||
"Query": query,
|
|
||||||
"Set": _set,
|
|
||||||
"len_results": search_len,
|
|
||||||
"Version": config.VERSION,
|
|
||||||
"LeftNavCollections": menu("collections"),
|
|
||||||
"LeftNav": menu("collections"),
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def book_set(_order, _limit=None, _set=1):
|
def book_set(_order, _limit=None, _set=1):
|
||||||
@@ -313,30 +244,30 @@ def payload(request, query, _set, _limit, _order):
|
|||||||
if _limit is None: _limit = 20
|
if _limit is None: _limit = 20
|
||||||
_set_max = int(_set) * _limit
|
_set_max = int(_set) * _limit
|
||||||
_set_min = _set_max - _limit
|
_set_min = _set_max - _limit
|
||||||
_now_showing = "%s of %s"%(_set_min, _set_max)
|
_now_showing = "%s-%s"%(_set_min, _set_max)
|
||||||
|
|
||||||
if query:
|
if query:
|
||||||
if query != request.session.get('cached_query'):
|
if query != request.session.get('cached_query'):
|
||||||
breakpoint()
|
|
||||||
request.session['cached_query'] = query
|
request.session['cached_query'] = query
|
||||||
request.session['cached_results'] = Books().generic_search(query)
|
_results = Books().generic_search(query)
|
||||||
_r, _r_len, _search = \
|
_r, _r_len = \
|
||||||
request.session.get('cached_results')[_set_min:_set_max],\
|
_results[_set_min:_set_max],\
|
||||||
request.session.get('cached_results').count(),\
|
_results.count()
|
||||||
request.session.get('cached_query')
|
|
||||||
elif query == request.session.get('cached_query'):
|
elif query == request.session.get('cached_query'):
|
||||||
_r, _r_len, _search = \
|
_results = Books().generic_search(query)
|
||||||
request.session.get('cached_results').order_by(_order)[_set_min:_set_max],\
|
_r, _r_len = \
|
||||||
request.session.get('cached_results').count(),\
|
_results.order_by(_order)[_set_min:_set_max],\
|
||||||
request.session.get('cached_query')
|
_results.count()
|
||||||
|
|
||||||
elif request.session['cached_query']:
|
else:
|
||||||
_r, _r_len, _search = \
|
try:
|
||||||
request.session.get('cached_results').order_by(_order)[_set_min:_set_max],\
|
query = request.session['cached_query']
|
||||||
request.session.get('cached_results').count(),\
|
_results = Books().generic_search(query)
|
||||||
request.session.get('cached_query')
|
_r, _r_len = \
|
||||||
|
_results.order_by(_order)[_set_min:_set_max],\
|
||||||
else: _r, _r_len, _search = book_set(_order, _limit, _set), None, None
|
_results.count()
|
||||||
|
except KeyError:
|
||||||
|
_r, _r_len, _search = book_set(_order, _limit, _set), None, None
|
||||||
|
|
||||||
_bookstats, _collectionstats, _collectionobject = \
|
_bookstats, _collectionstats, _collectionobject = \
|
||||||
Books.objects.all().count, Collections.objects.all().count, \
|
Books.objects.all().count, Collections.objects.all().count, \
|
||||||
@@ -355,7 +286,7 @@ def payload(request, query, _set, _limit, _order):
|
|||||||
"CollectionStats": _collectionstats,
|
"CollectionStats": _collectionstats,
|
||||||
"CollectionObject": _collectionobject,
|
"CollectionObject": _collectionobject,
|
||||||
"NowShowing": _now_showing,
|
"NowShowing": _now_showing,
|
||||||
"PostedSearch": _search,
|
"PostedSearch": query,
|
||||||
"SearchLen": _r_len,
|
"SearchLen": _r_len,
|
||||||
"Order": _order
|
"Order": _order
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user