1
0
mirror of https://github.com/janeczku/calibre-web synced 2025-11-08 19:23:03 +00:00

Code cosmetics

This commit is contained in:
OzzieIsaacs
2017-03-31 18:31:16 +02:00
parent 00462237fe
commit 5044b78b08
4 changed files with 131 additions and 147 deletions

View File

@@ -1,6 +1,8 @@
/**
* Created by SpeedProg on 05.04.2015.
*/
/* global Bloodhound */
/*
Takes a prefix, query typeahead callback, Bloodhound typeahead adapter
@@ -33,38 +35,6 @@ var authors = new Bloodhound({
}
});
function authors_source(query, cb) {
var bhAdapter = authors.ttAdapter();
var tokens = query.split("&");
var current_author = tokens[tokens.length-1].trim();
tokens.splice(tokens.length-1, 1); // remove last element
var prefix = "";
for (var i = 0; i < tokens.length; i++) {
var author = tokens[i].trim();
prefix += author + " & ";
}
prefixed_source(prefix, current_author, cb, bhAdapter);
}
var promise = authors.initialize();
promise.done(function(){
$("#bookAuthor").typeahead(
{
highlight: true, minLength: 1,
hint: true
}, {
name: "authors",
displayKey: "name",
source: authors_source
}
)
});
var series = new Bloodhound({
name: "series",
datumTokenizer: function(datum) {
@@ -80,19 +50,7 @@ var series = new Bloodhound({
}
}
});
var promise = series.initialize();
promise.done(function(){
$("#series").typeahead(
{
highlight: true, minLength: 0,
hint: true
}, {
name: "series",
displayKey: "name",
source: series.ttAdapter()
}
)
});
var tags = new Bloodhound({
name: "tags",
@@ -109,36 +67,6 @@ var tags = new Bloodhound({
}
});
function tag_source(query, cb) {
var bhAdapter = tags.ttAdapter();
var tokens = query.split(",");
var current_tag = tokens[tokens.length-1].trim();
tokens.splice(tokens.length-1, 1); // remove last element
var prefix = "";
for (var i = 0; i < tokens.length; i++) {
var tag = tokens[i].trim();
prefix += tag + ", ";
}
prefixed_source(prefix, current_tag, cb, bhAdapter);
}
var promise = tags.initialize();
promise.done(function(){
$("#tags").typeahead(
{
highlight: true, minLength: 0,
hint: true
}, {
name: "tags",
displayKey: "name",
source: tag_source
}
)
});
var languages = new Bloodhound({
name: "languages",
datumTokenizer: function(datum) {
@@ -156,24 +84,72 @@ var languages = new Bloodhound({
}
});
function language_source(query, cb) {
var bhAdapter = languages.ttAdapter();
function sourceSplit(query, cb, split, source) {
var bhAdapter = source.ttAdapter();
var tokens = query.split(",");
var currentLanguage = tokens[tokens.length-1].trim();
var tokens = query.split(split);
var currentSource = tokens[tokens.length-1].trim();
tokens.splice(tokens.length-1, 1); // remove last element
var prefix = "";
for (var i = 0; i < tokens.length; i++) {
var tag = tokens[i].trim();
prefix += tag + ", ";
var newSplit;
if (split === "&"){
newSplit = " " + split + " ";
}else{
newSplit = split + " ";
}
prefixed_source(prefix, currentLanguage, cb, bhAdapter);
for (var i = 0; i < tokens.length; i++) {
prefix += tokens[i].trim() + newSplit;
}
prefixed_source(prefix, currentSource, cb, bhAdapter);
}
var promise = languages.initialize();
promise.done(function(){
var promiseAuthors = authors.initialize();
promiseAuthors.done(function(){
$("#bookAuthor").typeahead(
{
highlight: true, minLength: 1,
hint: true
}, {
name: "authors",
displayKey: "name",
source: function(query, cb){
return sourceSplit(query, cb, "&", authors); //sourceSplit //("&")
}
});
});
var promiseSeries = series.initialize();
promiseSeries.done(function(){
$("#series").typeahead(
{
highlight: true, minLength: 0,
hint: true
}, {
name: "series",
displayKey: "name",
source: series.ttAdapter()
}
)
});
var promiseTags = tags.initialize();
promiseTags.done(function(){
$("#tags").typeahead(
{
highlight: true, minLength: 0,
hint: true
}, {
name: "tags",
displayKey: "name",
source: function(query, cb){
return sourceSplit(query, cb, ",", tags);
}
});
});
var promiseLanguages = languages.initialize();
promiseLanguages.done(function(){
$("#languages").typeahead(
{
highlight: true, minLength: 0,
@@ -181,10 +157,11 @@ var promise = languages.initialize();
}, {
name: "languages",
displayKey: "name",
source: language_source
}
)
});
source: function(query, cb){
return sourceSplit(query, cb, ",", languages); //(",")
}
});
});
$("form").on("change input typeahead:selected", function(data){
var form = $("form").serialize();