2016-04-15 23:37:09 +02:00
|
|
|
/**
|
|
|
|
* Created by SpeedProg on 05.04.2015.
|
|
|
|
*/
|
2021-03-14 14:05:36 +01:00
|
|
|
/* global Bloodhound, language, Modernizr, tinymce, getPath */
|
2017-03-31 18:31:16 +02:00
|
|
|
|
2017-08-14 20:30:23 +02:00
|
|
|
if ($("#description").length) {
|
2017-08-28 02:27:23 +02:00
|
|
|
tinymce.init({
|
|
|
|
selector: "#description",
|
2021-10-24 17:14:50 +02:00
|
|
|
plugins: 'code',
|
2017-08-28 02:27:23 +02:00
|
|
|
branding: false,
|
|
|
|
menubar: "edit view format",
|
|
|
|
language: language
|
|
|
|
});
|
2021-05-13 14:00:01 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
if ($(".tiny_editor").length) {
|
|
|
|
tinymce.init({
|
|
|
|
selector: ".tiny_editor",
|
2021-10-24 17:14:50 +02:00
|
|
|
plugins: 'code',
|
2021-05-13 14:00:01 +02:00
|
|
|
branding: false,
|
|
|
|
menubar: "edit view format",
|
|
|
|
language: language
|
|
|
|
});
|
|
|
|
}
|
2017-08-14 20:30:23 +02:00
|
|
|
|
2021-05-14 19:58:06 +02:00
|
|
|
$(".datepicker").datepicker({
|
|
|
|
format: "yyyy-mm-dd",
|
2021-10-16 20:50:04 +02:00
|
|
|
language: language
|
2021-05-14 19:58:06 +02:00
|
|
|
}).on("change", function () {
|
|
|
|
// Show localized date over top of the standard YYYY-MM-DD date
|
|
|
|
var pubDate;
|
|
|
|
var results = /(\d{4})[-\/\\](\d{1,2})[-\/\\](\d{1,2})/.exec(this.value); // YYYY-MM-DD
|
|
|
|
if (results) {
|
|
|
|
pubDate = new Date(results[1], parseInt(results[2], 10) - 1, results[3]) || new Date(this.value);
|
|
|
|
$(this).next('input')
|
2022-02-24 18:12:22 +01:00
|
|
|
.val(pubDate.toLocaleDateString(language.replaceAll("_","-")))
|
2021-05-14 19:58:06 +02:00
|
|
|
.removeClass("hidden");
|
|
|
|
}
|
|
|
|
}).trigger("change");
|
2018-04-01 19:31:41 +02:00
|
|
|
|
2021-05-14 19:58:06 +02:00
|
|
|
$(".datepicker_delete").click(function() {
|
|
|
|
var inputs = $(this).parent().siblings('input');
|
|
|
|
$(inputs[0]).data('datepicker').clearDates();
|
|
|
|
$(inputs[1]).addClass('hidden');
|
|
|
|
});
|
2018-04-01 19:31:41 +02:00
|
|
|
|
2021-05-13 10:39:36 +02:00
|
|
|
|
2017-02-05 13:40:53 +01:00
|
|
|
/*
|
|
|
|
Takes a prefix, query typeahead callback, Bloodhound typeahead adapter
|
|
|
|
and returns the completions it gets from the bloodhound engine prefixed.
|
|
|
|
*/
|
2021-10-10 18:02:18 +02:00
|
|
|
function prefixedSource(prefix, query, cb, source) {
|
|
|
|
function async(retArray) {
|
|
|
|
retArray = retArray || [];
|
2017-02-05 13:40:53 +01:00
|
|
|
var matches = [];
|
|
|
|
for (var i = 0; i < retArray.length; i++) {
|
|
|
|
var obj = {name : prefix + retArray[i].name};
|
|
|
|
matches.push(obj);
|
2016-04-15 23:37:09 +02:00
|
|
|
}
|
2017-02-05 13:40:53 +01:00
|
|
|
cb(matches);
|
2021-10-10 18:02:18 +02:00
|
|
|
}
|
|
|
|
source.search(query, cb, async);
|
|
|
|
}
|
|
|
|
|
|
|
|
function sourceSplit(query, cb, split, source) {
|
|
|
|
var tokens = query.split(split);
|
|
|
|
var currentSource = tokens[tokens.length - 1].trim();
|
|
|
|
|
|
|
|
tokens.splice(tokens.length - 1, 1); // remove last element
|
|
|
|
var prefix = "";
|
|
|
|
var newSplit;
|
|
|
|
if (split === "&") {
|
|
|
|
newSplit = " " + split + " ";
|
|
|
|
} else {
|
|
|
|
newSplit = split + " ";
|
|
|
|
}
|
|
|
|
for (var i = 0; i < tokens.length; i++) {
|
|
|
|
prefix += tokens[i].trim() + newSplit;
|
|
|
|
}
|
|
|
|
prefixedSource(prefix, currentSource, cb, source);
|
2017-02-05 13:40:53 +01:00
|
|
|
}
|
2017-08-28 02:27:23 +02:00
|
|
|
|
2017-02-05 13:40:53 +01:00
|
|
|
var authors = new Bloodhound({
|
2017-03-29 21:43:55 +02:00
|
|
|
name: "authors",
|
2021-10-10 18:02:18 +02:00
|
|
|
identify: function(obj) { return obj.name; },
|
2017-08-13 07:24:56 +02:00
|
|
|
datumTokenizer: function datumTokenizer(datum) {
|
2017-02-05 13:40:53 +01:00
|
|
|
return [datum.name];
|
|
|
|
},
|
|
|
|
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
|
|
|
remote: {
|
2021-10-10 18:02:18 +02:00
|
|
|
url: getPath() + "/get_authors_json?q=%QUERY",
|
|
|
|
wildcard: '%QUERY',
|
|
|
|
},
|
2017-02-05 13:40:53 +01:00
|
|
|
});
|
2016-04-15 23:37:09 +02:00
|
|
|
|
2021-10-10 18:02:18 +02:00
|
|
|
$(".form-group #bookAuthor").typeahead(
|
|
|
|
{
|
|
|
|
highlight: true,
|
|
|
|
minLength: 1,
|
|
|
|
hint: true
|
|
|
|
}, {
|
|
|
|
name: "authors",
|
|
|
|
display: 'name',
|
|
|
|
source: function source(query, cb, asyncResults) {
|
|
|
|
return sourceSplit(query, cb, "&", authors);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
|
2017-02-05 13:40:53 +01:00
|
|
|
var series = new Bloodhound({
|
2017-03-29 21:43:55 +02:00
|
|
|
name: "series",
|
2017-08-13 07:24:56 +02:00
|
|
|
datumTokenizer: function datumTokenizer(datum) {
|
2017-02-05 13:40:53 +01:00
|
|
|
return [datum.name];
|
|
|
|
},
|
2021-10-10 18:02:18 +02:00
|
|
|
// queryTokenizer: Bloodhound.tokenizers.whitespace,
|
2017-08-13 07:24:56 +02:00
|
|
|
queryTokenizer: function queryTokenizer(query) {
|
2017-02-05 13:40:53 +01:00
|
|
|
return [query];
|
|
|
|
},
|
|
|
|
remote: {
|
2021-10-10 18:02:18 +02:00
|
|
|
url: getPath() + "/get_series_json?q=%QUERY",
|
|
|
|
wildcard: '%QUERY',
|
|
|
|
/*replace: function replace(url, query) {
|
2017-08-28 02:27:23 +02:00
|
|
|
return url + encodeURIComponent(query);
|
2021-10-10 18:02:18 +02:00
|
|
|
}*/
|
2017-02-05 13:40:53 +01:00
|
|
|
}
|
|
|
|
});
|
2021-10-10 18:02:18 +02:00
|
|
|
$(".form-group #series").typeahead(
|
|
|
|
{
|
|
|
|
highlight: true,
|
|
|
|
minLength: 0,
|
|
|
|
hint: true
|
|
|
|
}, {
|
|
|
|
name: "series",
|
|
|
|
displayKey: "name",
|
|
|
|
source: series
|
|
|
|
}
|
|
|
|
);
|
2017-02-05 13:40:53 +01:00
|
|
|
|
|
|
|
var tags = new Bloodhound({
|
2017-03-29 21:43:55 +02:00
|
|
|
name: "tags",
|
2017-08-13 07:24:56 +02:00
|
|
|
datumTokenizer: function datumTokenizer(datum) {
|
2017-02-05 13:40:53 +01:00
|
|
|
return [datum.name];
|
|
|
|
},
|
2017-08-13 07:24:56 +02:00
|
|
|
queryTokenizer: function queryTokenizer(query) {
|
2017-03-30 21:17:18 +02:00
|
|
|
var tokens = query.split(",");
|
2017-08-28 02:27:23 +02:00
|
|
|
tokens = [tokens[tokens.length - 1].trim()];
|
2017-03-30 21:17:18 +02:00
|
|
|
return tokens;
|
2017-02-05 13:40:53 +01:00
|
|
|
},
|
|
|
|
remote: {
|
2021-10-10 18:02:18 +02:00
|
|
|
url: getPath() + "/get_tags_json?q=%QUERY",
|
|
|
|
wildcard: '%QUERY'
|
2017-02-05 13:40:53 +01:00
|
|
|
}
|
|
|
|
});
|
2016-04-15 23:37:09 +02:00
|
|
|
|
2021-10-10 18:02:18 +02:00
|
|
|
$(".form-group #tags").typeahead(
|
|
|
|
{
|
|
|
|
highlight: true,
|
|
|
|
minLength: 0,
|
|
|
|
hint: true
|
|
|
|
}, {
|
|
|
|
name: "tags",
|
|
|
|
display: "name",
|
|
|
|
source: function source(query, cb, asyncResults) {
|
|
|
|
return sourceSplit(query, cb, ",", tags);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
2017-02-05 13:40:53 +01:00
|
|
|
var languages = new Bloodhound({
|
2017-03-29 21:43:55 +02:00
|
|
|
name: "languages",
|
2017-08-13 07:24:56 +02:00
|
|
|
datumTokenizer: function datumTokenizer(datum) {
|
2017-02-05 13:40:53 +01:00
|
|
|
return [datum.name];
|
|
|
|
},
|
2017-08-13 07:24:56 +02:00
|
|
|
queryTokenizer: function queryTokenizer(query) {
|
2017-02-05 13:40:53 +01:00
|
|
|
return [query];
|
|
|
|
},
|
|
|
|
remote: {
|
2021-10-10 18:02:18 +02:00
|
|
|
url: getPath() + "/get_languages_json?q=%QUERY",
|
|
|
|
wildcard: '%QUERY'
|
|
|
|
/*replace: function replace(url, query) {
|
2017-08-28 02:27:23 +02:00
|
|
|
return url + encodeURIComponent(query);
|
2021-10-10 18:02:18 +02:00
|
|
|
}*/
|
2017-02-05 13:40:53 +01:00
|
|
|
}
|
|
|
|
});
|
2016-11-09 19:24:33 +01:00
|
|
|
|
2021-10-10 18:02:18 +02:00
|
|
|
$(".form-group #languages").typeahead(
|
|
|
|
{
|
|
|
|
highlight: true, minLength: 0,
|
|
|
|
hint: true
|
|
|
|
}, {
|
|
|
|
name: "languages",
|
|
|
|
display: "name",
|
|
|
|
source: function source(query, cb, asyncResults) {
|
|
|
|
return sourceSplit(query, cb, ",", languages);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
2018-09-30 14:08:55 +02:00
|
|
|
var publishers = new Bloodhound({
|
|
|
|
name: "publisher",
|
|
|
|
datumTokenizer: function datumTokenizer(datum) {
|
|
|
|
return [datum.name];
|
|
|
|
},
|
|
|
|
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
|
|
|
remote: {
|
2021-10-10 18:02:18 +02:00
|
|
|
url: getPath() + "/get_publishers_json?q=%QUERY",
|
|
|
|
wildcard: '%QUERY'
|
2018-09-30 14:08:55 +02:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2021-10-10 18:02:18 +02:00
|
|
|
$(".form-group #publisher").typeahead(
|
|
|
|
{
|
|
|
|
highlight: true, minLength: 0,
|
|
|
|
hint: true
|
|
|
|
}, {
|
|
|
|
name: "publishers",
|
|
|
|
displayKey: "name",
|
|
|
|
source: publishers
|
2016-11-09 19:24:33 +01:00
|
|
|
}
|
2021-10-10 18:02:18 +02:00
|
|
|
);
|
2018-09-30 14:08:55 +02:00
|
|
|
|
2020-12-28 13:44:17 +01:00
|
|
|
$("#search").on("change input.typeahead:selected", function(event) {
|
2021-03-14 14:05:36 +01:00
|
|
|
if (event.target.type === "search" && event.target.tagName === "INPUT") {
|
2020-12-28 13:44:17 +01:00
|
|
|
return;
|
|
|
|
}
|
2017-03-30 21:17:18 +02:00
|
|
|
var form = $("form").serialize();
|
2017-08-28 02:27:23 +02:00
|
|
|
$.getJSON( getPath() + "/get_matching_tags", form, function( data ) {
|
2017-08-13 07:24:56 +02:00
|
|
|
$(".tags_click").each(function() {
|
2020-12-28 13:44:17 +01:00
|
|
|
if ($.inArray(parseInt($(this).val(), 10), data.tags) === -1) {
|
2021-03-14 14:05:36 +01:00
|
|
|
if (!$(this).prop("selected")) {
|
2020-12-28 13:44:17 +01:00
|
|
|
$(this).prop("disabled", true);
|
2017-08-13 07:24:56 +02:00
|
|
|
}
|
|
|
|
} else {
|
2020-12-28 13:44:17 +01:00
|
|
|
$(this).prop("disabled", false);
|
2017-08-13 07:24:56 +02:00
|
|
|
}
|
|
|
|
});
|
2020-12-28 13:44:17 +01:00
|
|
|
$("#include_tag option:selected").each(function () {
|
2021-03-14 16:57:33 +01:00
|
|
|
$("#exclude_tag").find("[value=" + $(this).val() + "]").prop("disabled", true);
|
2020-12-28 13:44:17 +01:00
|
|
|
});
|
2021-03-14 14:05:36 +01:00
|
|
|
$("#include_tag").selectpicker("refresh");
|
|
|
|
$("#exclude_tag").selectpicker("refresh");
|
2016-11-09 19:24:33 +01:00
|
|
|
});
|
2017-02-05 13:40:53 +01:00
|
|
|
});
|
2017-08-09 19:56:46 +02:00
|
|
|
|
2017-08-10 12:34:54 +02:00
|
|
|
$("#btn-upload-format").on("change", function () {
|
2017-08-09 19:56:46 +02:00
|
|
|
var filename = $(this).val();
|
2017-09-11 17:18:11 +02:00
|
|
|
if (filename.substring(3, 11) === "fakepath") {
|
2017-08-09 19:56:46 +02:00
|
|
|
filename = filename.substring(12);
|
|
|
|
} // Remove c:\fake at beginning from localhost chrome
|
2021-11-20 13:40:23 +01:00
|
|
|
$("#upload-format").text(filename);
|
2017-08-09 19:56:46 +02:00
|
|
|
});
|
2018-08-28 14:07:48 +02:00
|
|
|
|
|
|
|
$("#btn-upload-cover").on("change", function () {
|
|
|
|
var filename = $(this).val();
|
|
|
|
if (filename.substring(3, 11) === "fakepath") {
|
|
|
|
filename = filename.substring(12);
|
|
|
|
} // Remove c:\fake at beginning from localhost chrome
|
2021-11-20 13:40:23 +01:00
|
|
|
$("#upload-cover").text(filename);
|
2018-08-28 14:07:48 +02:00
|
|
|
});
|
2018-08-29 01:13:04 +02:00
|
|
|
|
2021-05-26 19:57:58 +02:00
|
|
|
$("#xchange").click(function () {
|
|
|
|
this.blur();
|
|
|
|
var title = $("#book_title").val();
|
|
|
|
$("#book_title").val($("#bookAuthor").val());
|
|
|
|
$("#bookAuthor").val(title);
|
|
|
|
});
|
2021-07-31 09:00:34 +02:00
|
|
|
|