* Target new class
Target new class for caliblur language support
* Move publishing date into div
Places publishing date in new div to assist caliBlur in targeting this element. This PR does not create any visual difference on the default theme.
* Target newly created div
Previous code was not targeting right element, additionally was only removing a single leading space. New regex will remove any leading spaces from span
Fix for new users created
Fix for options to the calibre-converter
Only the first 300 chars are logged for the emailbody (spamming of logfile is prevented)
Added class to "Random" header
Unified wording Calibre-Web
Replaced one table on admin page, deleted password column
Removed spaces on layout page
Removed uesless commit calls during db migration
Implementation of registering by email
fix generic cover path
browser reading for cbx and epub files no longer creates temp files on server
browser reading for cbx and epub files working (#502, #520)
-Added Current page indicator to the thumbnail list, as well as a hover state
-Thumbnail list now scrolls to the current page on open or page change
-Added @andy29485's request for controlling page with space/shift+space
-Added the book title to the top of the page -Fixed IE11 failing on imagecallback
* Add buttons to show/hide results from Douban & Google
* Trigger search with "Enter" key
* Use Underscore.js template instead of build HTML strings in JavaScript
* Keep click event handler in JavaScript instead of using HTML's `onclick`
* Normalize Douban & Google results
* Update cover image & add cover URL to the form input
Since this is closer to the elements, we can be more sure that we won't have events fire when we don't want them to. For example, if we're viewing the page in a modal, we don't want the event handler living longer than the content itself.
If the HTML that's returned from the `$.get` request contains a `<script src="..."/>` tag it loads the JavaScript file via ajax, and by default it attaches a timestamp to it to bust cache. That means the file loads every time the modal is opened, and the browser treats it as a new file each time. The result is that code fires multiple times and events listeners are added multiple times.
Event and selectors appear to have been accidentally combined. The result is that typing in any input triggers a call to the `/get_matching_tags` route. We can probably limit the selector farther to only fire when `#tags` is typed into.
Requires the "goodread" module (added to optional-requirements.txt) and an API key
Retrieves Goodreads author information and displays their photo and "about" text
With them shown in a modal, you don't lose your place in the pagination. If the request comes via Ajax, the minimal layout is used. If via a normal request, the full layout is used. That lets you open the details in a new tab and have the full experience, but if you're clicking through the results of a search, you can view many without losing your place.