first pass at creating a book, it works, but I have messed up the series-div* html in book.html

This commit is contained in:
2020-12-23 12:53:27 +11:00
parent 7bd81d3119
commit 73001dd24c
5 changed files with 109 additions and 36 deletions

View File

@@ -24,7 +24,7 @@
<div class="nav-item dropdown">
<a class="nav-item dropdown nav-link dropdown-toggle" href="#" id="BookMenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Books</a>
<div class="dropdown-menu" aria-labelledby="BookMenu">
<a class="dropdown-item" href="{{url_for('books')}}">Create</a>
<a class="dropdown-item" href="{{url_for('new_book')}}">Create</a>
<a class="dropdown-item" href="{{url_for('books')}}">Show All</a>
<a class="dropdown-item" href="{{url_for('stats')}}">Show Stats</a>
</div>

View File

@@ -3,8 +3,8 @@
<script>
function AddBookToSeries(bid) {
console.log("add Book (" +bid + ") to series")
function AddBookToSeries() {
console.log("add Book to series")
// Read the Number from that DIV's ID (i.e: 3 from "series-div-3") -- could
// also be the template (series-div-0), thats ok too
@@ -34,7 +34,7 @@ console.log( "reset buttons on last_div is=" + last_div.prop('id') )
// reset id/names to new series-div- created (for id on div, name on select
// for series_id and input text for book_num)
new_div.prop('id', 'series-div-'+num );
new_div.find('#series_minus_but').attr('onclick', "RemoveBookFromSeries({{books.id}},'series-div-"+num+"')" )
new_div.find('#series_minus_but').attr('onclick', "RemoveBookFromSeries('series-div-"+num+"')" )
new_div.find('#bsl-book_id-NUM').prop('name', 'bsl-book_id-'+num )
new_div.find('#bsl-series_id-NUM').prop('name', 'bsl-series_id-'+num )
new_div.find('#bsl-book_num-NUM').prop('name', 'bsl-book_num-'+num )
@@ -44,8 +44,8 @@ console.log( "reset buttons on last_div is=" + last_div.prop('id') )
new_div.show()
}
function RemoveBookFromSeries(bid, sid) {
console.log("remove Book: " + bid + " from Series: " + sid )
function RemoveBookFromSeries(sid) {
console.log("remove Book from Series: " + sid )
$('#'+sid).remove()
if( sid == 'series-div-1' ) {
console.log("remove Book: and it was the only series, so hide series-div-1 and put 'plus / empty' div back" )
@@ -94,7 +94,7 @@ function AddAuthorToBook(num) {
<div id="series_plus_only_tmpl" class="col input-group px-0" style="display:none">
<span class="form-control"> </span>
<div id="series_plus_but_div" class="input-group-append">
<button class="btn btn-outline-success" type="button" onClick="AddBookToSeries({{books.id}},1)"><i class="fas fa-plus"></i></button>
<button class="btn btn-outline-success" type="button" onClick="AddBookToSeries()"><i class="fas fa-plus"></i></button>
</div>
</div>
@@ -102,7 +102,7 @@ function AddAuthorToBook(num) {
<div class="container-fluid">
{% if message|length %}
<div class="row alert alert-{{alert}}">
{{message}}
{{message|safe}}
</div>
{% endif %}
<div class="row">
@@ -160,6 +160,16 @@ function AddAuthorToBook(num) {
</div class="col">
{% set cnt.idx = cnt.idx+1 %}
{% endfor %}
{% if cnt.idx == 0 %}
<div id="auth-div-{{cnt.idx}}" class="col input-group px-0">
<select class="form-control" name="author-{{cnt.idx}}" id="author-{{cnt.idx}}">
{% for auth in author_list %}
{% set aname=auth.surname+", "+auth.firstnames %}
<option value="{{auth.id}}">{{aname}}</option>
{% endfor %}
</select>
</div class="col">
{% endif %}
<div class="input-group-append">
<button id="author-plus" class="btn btn-outline-success" type="button" onClick="AddAuthorToBook({{cnt.idx}})"><i class="fas fa-plus"></i></button>
</div>
@@ -181,11 +191,11 @@ function AddAuthorToBook(num) {
{% endif %}
</div class="form-row">
{% endfor %}
<div class="form-row">
<div id="series_row" class="form-row">
<label for="series" class="col-lg-2 col-form-label">Series:</label>
<div class="form-row col mx-0">
{# use series-div-0 as a template & keep it hidden always #}
<div id="series-div-0" class="col input-group px-0" style="display:none" actual_series_data="0">
<div id="series-div-0" class="col input-group px-0" style="display:none">
<div class="input-group-prepend">
<button id="series_minus_but" class="btn btn-outline-danger" type="button"><i class="fas fa-minus"></i></button>
</div>
@@ -199,15 +209,15 @@ function AddAuthorToBook(num) {
{% endfor %}
</select>
<div id="series_plus_but_div" class="input-group-append">
<button class="btn btn-outline-success" type="button" onClick="AddBookToSeries({{books.id}},0)"><i class="fas fa-plus"></i></button>
<button class="btn btn-outline-success" type="button" onClick="AddBookToSeries()"><i class="fas fa-plus"></i></button>
</div>
</div>
</div id="series-div-0">
{% if books.series|length %}
{% for s in books.series %}
<div id="series-div-{{loop.index}}" class="col input-group px-0" actual_series_data="1">
<div id="series-div-{{loop.index}}" class="col input-group px-0">
{% if SeriesBookNum( s.id, books.id ) %}
<div class="input-group-prepend">
<button class="btn btn-outline-danger" type="button" onClick="RemoveBookFromSeries({{books.id}},'series-div-{{loop.index}}')"><i class="fas fa-minus"></i></button>
<button class="btn btn-outline-danger" type="button" onClick="RemoveBookFromSeries('series-div-{{loop.index}}')"><i class="fas fa-minus"></i></button>
</div>
<div class="form-control">
Book {{ SeriesBookNum( s.id, books.id ) }} of {{s.num_books}} in <a href=/series/{{s.id}}>{{s.title}}</a>
@@ -215,7 +225,7 @@ function AddAuthorToBook(num) {
<input type="hidden" name="bsl-book_num-{{loop.index}}" value={{SeriesBookNum( s.id, books.id )}}>
{% else %}
<div class="input-group-prepend">
<button class="btn btn-outline-danger" type="button" onClick="RemoveBookFromSeries({{books.id}},'series-div-{{loop.index}}')"><i class="fas fa-minus"></i></button>
<button class="btn btn-outline-danger" type="button" onClick="RemoveBookFromSeries('series-div-{{loop.index}}')"><i class="fas fa-minus"></i></button>
</div>
<div class="form-control">
Contains books in <a href='/series/{{s.id}}'>{{s.title}}</a>
@@ -224,21 +234,21 @@ function AddAuthorToBook(num) {
{% endif %}
<input type="hidden" name="bsl-book_id-{{loop.index}}" value={{books.id}}>
<input type="hidden" name="bsl-series_id-{{loop.index}}" value={{s.id}}>
</div id="series-div-{{loop.index}}>
{% endfor %}
<div id="series_plus_but_div" class="input-group-append">
<button class="btn btn-outline-success" type="button" onClick="AddBookToSeries({{books.id}},1)"><i class="fas fa-plus"></i></button>
<button class="btn btn-outline-success" type="button" onClick="AddBookToSeries()"><i class="fas fa-plus"></i></button>
</div>
{% else %}
<div id="series_plus_only" class="col input-group px-0" actual_series_data="0">
<div id="series_plus_only" class="col input-group px-0">
<span class="form-control"> </span>
<div id="series_plus_but_div" class="input-group-append">
<button class="btn btn-outline-success" type="button" onClick="AddBookToSeries({{books.id}},1)"><i class="fas fa-plus"></i></button>
<button class="btn btn-outline-success" type="button" onClick="AddBookToSeries()"><i class="fas fa-plus"></i></button>
</div>
</div>
{% endif %}
</div>
</div class="form-row col mx-0">
</div class="form-row">
</div id="series_row" class="form-row col mx-0">
</div id="wwwww" class="form-row">
{% if books.child_ref|length %}
<div class="form-row">
<label class="col-lg-2 col-form-label">Sub Books:</label>
@@ -247,9 +257,15 @@ function AddAuthorToBook(num) {
</div>
{% endif %}
<div id="spacer"><br></div>
<div class="form-row col-lg-12">
{{ book_form.delete( class="btn btn-outline-danger offset-lg-2 col-lg-2" )}}
{{ book_form.submit( class="btn btn-primary col-lg-2" )}}
<div class="form-row">
<div class="form-row col mx-0">
{{ book_form.delete( class="btn btn-outline-danger offset-lg-2 col-lg-2" )}}
{{ book_form.submit( class="btn btn-primary col-lg-2" )}}
{% if b.parent|length == 0 %}
<input type="hidden" name="add_sub_parent_id" value="{{books.id}}">
{{ book_form.add_sub( class="btn btn-outline-success offset-lg-4 col-lg-2" )}}
{% endif %}
</div class="form-row">
</div class="form-row">
</form>
{% if books.loan|length %}