Add a recently-read.cgi page Merged from the recently-read branch. * Bookworm/Book/web_recently_read.pm (added), Bookworm/Book.pm: + (web_recently_read): Uses the date_read fields of each book to show a breakdown of books read by year and month, with AJAX support for open/close of years and months. * cgi/recently-read.cgi (added), cgi/web-files.tbl: + Page for same. * cgi/book.cgi, cgi/find-book.cgi: + Add breadcrumbs on other pages that mention the date_read field.
* cgi/ajax-tree.cgi (removed): Not used with ModFrame
* Bookworm/Publisher.pm: web_search is not autoloaded
Fix book_author_map attribution_order when inserting a book * Bookworm/Book.pm: + (_update_author_data): Bug fix: Initialize book_author_map attribution_order properly when inserting multiple authors.
Insert multiple authors with different orders * Bookworm/Book/web_add_author.pm: + (web_add_author): Bug fix: When inserting multiple authorships, we must increment the attribution order.
Fix an authorship formatting bug * Bookworm/Book.pm: + (format_authorship_field): Bug fix: Find the author_id descriptor from the Bookworm::Author class, not ourself.
Remove the home page weight display * Bookworm/Base/web_home_page.pm: + (web_home_page): Remove the hack to find & display total weight.
Enable book search on parent location name * Bookworm/Book.pm: + Add a temporary location_name slot. + (default_search_fields): Add a dialog item to make location_name searchable. Also, reorder to match the result columns better. + ($web_search_base_query): Also join the parent location to make its name available.
Fix a compare_authors_arrays case sorting bug * Bookworm/Book.pm: + (compare_authors_arrays): Bug fix: Convert all names to lower case, so that Lester del Rey gets put in his place.
Sort books within a location by author, title * Bookworm/Location.pm: + (post_web_update): Show book content initially sorted by author, then by title. This is how they ought to appear on shelves.
Make location chain display shorter * Bookworm/Base.pm: + (format_location_chain_field): Leave off the root unless it's our immediate parent, since including the root is not very informative.
Fix AJAX location content sorting bug * Bookworm/Location.pm: + ($child_location_display_columns): Split this out so that AJAX and non-AJAX location content display can share it. This was the source of a bug that made AJAX-sorted location columns disappear. + ($book_display_columns): Pre-emptively do the same for books. + (ajax_sort_content, post_web_update): Use same.
Add move-locations.cgi * cgi/move-locations.cgi (added), cgi/web-files.tbl: + Page for moving multiple locations under a single location at once. * Bookworm/Location.pm: + (post_web_update): Add a "[Move location(s) here]" link. + (web_move_locations): New, implement the move-locations.cgi page.
Search for locations based on their parent * Bookworm/Location.pm: + (default_search_fields): Add a parent_name search field + (web_search): Add this method so we can hack the base_query to join the tables on the parent_location_id. * cgi/find-location.cgi: + Document the "Parent location:" search field.
Make book and location content sortable * Bookworm/Author.pm: + (post_web_update): Use present_sorted_content for the books. * Bookworm/Location.pm: + (post_web_update): Present locations and books sortably (and independently) using the Modframe present_sorted_content method. + (ajax_sort_content): Support for AJAX content sorting. * Bookworm/Book.pm: + (compare_authors_arrays): Pass this as the comparator for the authors field for locations, so that they sort properly. * cgi/ajax-author-sort.cgi (added), cgi/web-files.tbl: + Page for AJAX update of an author's books. * cgi/ajax-location-sort.cgi (added): + Page for AJAX content sorting.
Bookworm Release 0.2 * makefile: + Update the RELEASE macro. * database/schema.sql: + Merge schema changes for release 0.2 to change book.category and add location.bg_color.
Show n_total_books in location search results * Bookworm/Location.pm: + (default_display_columns): Show n_total_books in search results. This may turn out to be too expensive, but we'll try it for now.
Show book counts in the location tree * Bookworm/Location.pm: + (display_info): Show the number of books, in addition to what info the superclass provides.
Improve the authorship default role * Bookworm/Book/web_add_author.pm: + (web_add_author): If there is already at least one author, and they all have the same role, then make that the default.
* database/db-recipes.sql: + Add a "delete a book" recipe.