Merge remote-tracking branch 'adv/eslint'
This commit is contained in:
commit
de112b0b05
9 changed files with 323 additions and 189 deletions
9
.editorconfig
Normal file
9
.editorconfig
Normal file
|
@ -0,0 +1,9 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
|
||||
[*.{js,py}]
|
||||
indent_size = 4
|
96
.eslintrc
Normal file
96
.eslintrc
Normal file
|
@ -0,0 +1,96 @@
|
|||
{
|
||||
"env": {
|
||||
"browser": true,
|
||||
"jquery": true
|
||||
},
|
||||
"globals": {
|
||||
"alert": true
|
||||
},
|
||||
"rules": {
|
||||
"arrow-parens": 2,
|
||||
"block-scoped-var": 1,
|
||||
"brace-style": 2,
|
||||
"camelcase": 1,
|
||||
"comma-spacing": 2,
|
||||
"curly": [2, "multi-line", "consistent"],
|
||||
"eqeqeq": 2,
|
||||
"indent": [
|
||||
2,
|
||||
4,
|
||||
{
|
||||
"SwitchCase": 1
|
||||
}
|
||||
],
|
||||
"keyword-spacing": 2,
|
||||
"linebreak-style": 2,
|
||||
"new-cap": 2,
|
||||
"no-dupe-args": 2,
|
||||
"no-dupe-class-members": 2,
|
||||
"no-dupe-keys": 2,
|
||||
"no-duplicate-case": 2,
|
||||
"no-caller": 2,
|
||||
"no-class-assign": 2,
|
||||
"no-cond-assign": 2,
|
||||
"no-const-assign": 2,
|
||||
"no-console": 2,
|
||||
"no-debugger": 2,
|
||||
"no-delete-var": 2,
|
||||
"no-empty": 2,
|
||||
"no-eval": 2,
|
||||
"no-extend-native": 2,
|
||||
"no-extra-boolean-cast": 2,
|
||||
"no-extra-semi": 2,
|
||||
"no-fallthrough": [
|
||||
2,
|
||||
{
|
||||
"commentPattern": "break[\\s\\w]*omitted"
|
||||
}
|
||||
],
|
||||
"no-implied-eval": 2,
|
||||
"no-invalid-regexp": 2,
|
||||
"no-irregular-whitespace": 2,
|
||||
"no-iterator": 2,
|
||||
"no-loop-func": 2,
|
||||
"no-mixed-operators": 2,
|
||||
"no-mixed-spaces-and-tabs": 2,
|
||||
"no-multi-str": 2,
|
||||
"no-new": 2,
|
||||
"no-obj-calls": 2,
|
||||
"no-octal": 2,
|
||||
"no-redeclare": 2,
|
||||
"no-regex-spaces": 2,
|
||||
"no-script-url": 2,
|
||||
"no-sparse-arrays": 2,
|
||||
"no-undef": 2,
|
||||
"no-undefined": 2,
|
||||
"no-unreachable": 2,
|
||||
"no-unsafe-negation": 2,
|
||||
"no-unused-vars": 2,
|
||||
"no-use-before-define": [
|
||||
2,
|
||||
{
|
||||
"classes": false,
|
||||
"functions": false
|
||||
}
|
||||
],
|
||||
"quotes": [
|
||||
2,
|
||||
"double"
|
||||
],
|
||||
"require-yield": 2,
|
||||
"semi": [
|
||||
2,
|
||||
"always"
|
||||
],
|
||||
"space-before-blocks": 2,
|
||||
"space-infix-ops": 2,
|
||||
"space-unary-ops": 2,
|
||||
"use-isnan": 2,
|
||||
"valid-typeof": 2,
|
||||
"wrap-iife": [
|
||||
2,
|
||||
"any"
|
||||
],
|
||||
"yield-star-spacing": 2
|
||||
}
|
||||
}
|
|
@ -1,4 +1,6 @@
|
|||
$( document ).ready(function() {
|
||||
/* global _ */
|
||||
|
||||
$(function() {
|
||||
$("#have_read_form").ajaxForm();
|
||||
});
|
||||
|
||||
|
@ -6,34 +8,51 @@ $("#have_read_cb").on("change", function() {
|
|||
$(this).closest("form").submit();
|
||||
});
|
||||
|
||||
$("#shelf-actions").on("click", "[data-shelf-action]", function (e) {
|
||||
e.preventDefault();
|
||||
(function() {
|
||||
var templates = {
|
||||
add: _.template(
|
||||
$("#template-shelf-add").html()
|
||||
),
|
||||
remove: _.template(
|
||||
$("#template-shelf-remove").html()
|
||||
)
|
||||
};
|
||||
|
||||
$.get(this.href)
|
||||
.done(() => {
|
||||
const $this = $(this);
|
||||
switch ($this.data("shelf-action")) {
|
||||
case "add":
|
||||
$("#remove-from-shelves").append(`<a href="${$this.data("remove-href")}"
|
||||
data-add-href="${this.href}"
|
||||
class="btn btn-sm btn-default" data-shelf-action="remove"
|
||||
><span class="glyphicon glyphicon-remove"></span> ${this.textContent}</a>`);
|
||||
break;
|
||||
case "remove":
|
||||
$("#add-to-shelves").append(`<li><a href="${$this.data("add-href")}"
|
||||
data-remove-href="${this.href}"
|
||||
data-shelf-action="add"
|
||||
>${this.textContent}</a></li>`);
|
||||
break;
|
||||
}
|
||||
this.parentNode.removeChild(this);
|
||||
})
|
||||
.fail((xhr) => {
|
||||
const $msg = $("<span/>", { "class": "text-danger"}).text(xhr.responseText);
|
||||
$("#shelf-action-status").html($msg);
|
||||
$("#shelf-actions").on("click", "[data-shelf-action]", function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
setTimeout(() => {
|
||||
$msg.remove();
|
||||
}, 10000);
|
||||
});
|
||||
});
|
||||
$.get(this.href)
|
||||
.done(function() {
|
||||
var $this = $(this);
|
||||
switch ($this.data("shelf-action")) {
|
||||
case "add":
|
||||
$("#remove-from-shelves").append(
|
||||
templates.remove({
|
||||
add: this.href,
|
||||
remove: $this.data("remove-href"),
|
||||
content: this.textContent
|
||||
})
|
||||
);
|
||||
break;
|
||||
case "remove":
|
||||
$("#add-to-shelves").append(
|
||||
templates.add({
|
||||
add: $this.data("add-href"),
|
||||
remove: this.href,
|
||||
content: this.textContent
|
||||
})
|
||||
);
|
||||
break;
|
||||
}
|
||||
this.parentNode.removeChild(this);
|
||||
}.bind(this))
|
||||
.fail(function(xhr) {
|
||||
var $msg = $("<span/>", { "class": "text-danger"}).text(xhr.responseText);
|
||||
$("#shelf-action-status").html($msg);
|
||||
|
||||
setTimeout(function() {
|
||||
$msg.remove();
|
||||
}, 10000);
|
||||
});
|
||||
});
|
||||
})();
|
||||
|
|
|
@ -32,7 +32,7 @@ Takes a prefix, query typeahead callback, Bloodhound typeahead adapter
|
|||
and returns the completions it gets from the bloodhound engine prefixed.
|
||||
*/
|
||||
function prefixedSource(prefix, query, cb, bhAdapter) {
|
||||
bhAdapter(query, function(retArray){
|
||||
bhAdapter(query, function(retArray) {
|
||||
var matches = [];
|
||||
for (var i = 0; i < retArray.length; i++) {
|
||||
var obj = {name : prefix + retArray[i].name};
|
||||
|
@ -41,7 +41,7 @@ function prefixedSource(prefix, query, cb, bhAdapter) {
|
|||
cb(matches);
|
||||
});
|
||||
}
|
||||
function getPath(){
|
||||
function getPath() {
|
||||
var jsFileLocation = $("script[src*=edit_books]").attr("src"); // the js file path
|
||||
jsFileLocation = jsFileLocation.replace("/static/js/edit_books.js", ""); // the js folder path
|
||||
return jsFileLocation;
|
||||
|
@ -49,7 +49,7 @@ function getPath(){
|
|||
|
||||
var authors = new Bloodhound({
|
||||
name: "authors",
|
||||
datumTokenizer(datum) {
|
||||
datumTokenizer: function datumTokenizer(datum) {
|
||||
return [datum.name];
|
||||
},
|
||||
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
||||
|
@ -60,15 +60,15 @@ var authors = new Bloodhound({
|
|||
|
||||
var series = new Bloodhound({
|
||||
name: "series",
|
||||
datumTokenizer(datum) {
|
||||
datumTokenizer: function datumTokenizer(datum) {
|
||||
return [datum.name];
|
||||
},
|
||||
queryTokenizer(query) {
|
||||
queryTokenizer: function queryTokenizer(query) {
|
||||
return [query];
|
||||
},
|
||||
remote: {
|
||||
url: getPath()+"/get_series_json?q=",
|
||||
replace(url, query) {
|
||||
replace: function replace(url, query) {
|
||||
return url+encodeURIComponent(query);
|
||||
}
|
||||
}
|
||||
|
@ -77,10 +77,10 @@ var series = new Bloodhound({
|
|||
|
||||
var tags = new Bloodhound({
|
||||
name: "tags",
|
||||
datumTokenizer(datum) {
|
||||
datumTokenizer: function datumTokenizer(datum) {
|
||||
return [datum.name];
|
||||
},
|
||||
queryTokenizer(query) {
|
||||
queryTokenizer: function queryTokenizer(query) {
|
||||
var tokens = query.split(",");
|
||||
tokens = [tokens[tokens.length-1].trim()];
|
||||
return tokens;
|
||||
|
@ -92,15 +92,15 @@ var tags = new Bloodhound({
|
|||
|
||||
var languages = new Bloodhound({
|
||||
name: "languages",
|
||||
datumTokenizer(datum) {
|
||||
datumTokenizer: function datumTokenizer(datum) {
|
||||
return [datum.name];
|
||||
},
|
||||
queryTokenizer(query) {
|
||||
queryTokenizer: function queryTokenizer(query) {
|
||||
return [query];
|
||||
},
|
||||
remote: {
|
||||
url: getPath()+"/get_languages_json?q=",
|
||||
replace(url, query) {
|
||||
replace: function replace(url, query) {
|
||||
return url+encodeURIComponent(query);
|
||||
}
|
||||
}
|
||||
|
@ -115,9 +115,9 @@ function sourceSplit(query, cb, split, source) {
|
|||
tokens.splice(tokens.length-1, 1); // remove last element
|
||||
var prefix = "";
|
||||
var newSplit;
|
||||
if (split === "&"){
|
||||
if (split === "&") {
|
||||
newSplit = " " + split + " ";
|
||||
}else{
|
||||
} else {
|
||||
newSplit = split + " ";
|
||||
}
|
||||
for (var i = 0; i < tokens.length; i++) {
|
||||
|
@ -127,76 +127,78 @@ function sourceSplit(query, cb, split, source) {
|
|||
}
|
||||
|
||||
var promiseAuthors = authors.initialize();
|
||||
promiseAuthors.done(function(){
|
||||
promiseAuthors.done(function() {
|
||||
$("#bookAuthor").typeahead(
|
||||
{
|
||||
highlight: true, minLength: 1,
|
||||
hint: true
|
||||
}, {
|
||||
name: "authors",
|
||||
displayKey: "name",
|
||||
source(query, cb){
|
||||
return sourceSplit(query, cb, "&", authors); //sourceSplit //("&")
|
||||
{
|
||||
highlight: true, minLength: 1,
|
||||
hint: true
|
||||
}, {
|
||||
name: "authors",
|
||||
displayKey: "name",
|
||||
source: function source(query, cb) {
|
||||
return sourceSplit(query, cb, "&", authors); //sourceSplit //("&")
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
var promiseSeries = series.initialize();
|
||||
promiseSeries.done(function(){
|
||||
promiseSeries.done(function() {
|
||||
$("#series").typeahead(
|
||||
{
|
||||
highlight: true, minLength: 0,
|
||||
hint: true
|
||||
}, {
|
||||
name: "series",
|
||||
displayKey: "name",
|
||||
source: series.ttAdapter()
|
||||
}
|
||||
{
|
||||
highlight: true, minLength: 0,
|
||||
hint: true
|
||||
}, {
|
||||
name: "series",
|
||||
displayKey: "name",
|
||||
source: series.ttAdapter()
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
var promiseTags = tags.initialize();
|
||||
promiseTags.done(function(){
|
||||
promiseTags.done(function() {
|
||||
$("#tags").typeahead(
|
||||
{
|
||||
highlight: true, minLength: 0,
|
||||
hint: true
|
||||
}, {
|
||||
name: "tags",
|
||||
displayKey: "name",
|
||||
source(query, cb){
|
||||
return sourceSplit(query, cb, ",", tags);
|
||||
}
|
||||
});
|
||||
});
|
||||
{
|
||||
highlight: true, minLength: 0,
|
||||
hint: true
|
||||
}, {
|
||||
name: "tags",
|
||||
displayKey: "name",
|
||||
source: function source(query, cb) {
|
||||
return sourceSplit(query, cb, ",", tags);
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
var promiseLanguages = languages.initialize();
|
||||
promiseLanguages.done(function(){
|
||||
promiseLanguages.done(function() {
|
||||
$("#languages").typeahead(
|
||||
{
|
||||
highlight: true, minLength: 0,
|
||||
hint: true
|
||||
}, {
|
||||
name: "languages",
|
||||
displayKey: "name",
|
||||
source(query, cb){
|
||||
return sourceSplit(query, cb, ",", languages); //(",")
|
||||
}
|
||||
});
|
||||
});
|
||||
{
|
||||
highlight: true, minLength: 0,
|
||||
hint: true
|
||||
}, {
|
||||
name: "languages",
|
||||
displayKey: "name",
|
||||
source: function source(query, cb) {
|
||||
return sourceSplit(query, cb, ",", languages); //(",")
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
$("#search").on("change input.typeahead:selected", function(){
|
||||
$("#search").on("change input.typeahead:selected", function() {
|
||||
var form = $("form").serialize();
|
||||
$.getJSON( getPath()+"/get_matching_tags", form, function( data ) {
|
||||
$(".tags_click").each(function() {
|
||||
if ($.inArray(parseInt($(this).children("input").first().val(), 10), data.tags) === -1 ) {
|
||||
if (!($(this).hasClass("active"))) {
|
||||
$(this).addClass("disabled");
|
||||
}
|
||||
}
|
||||
else {
|
||||
$(this).removeClass("disabled");
|
||||
}
|
||||
});
|
||||
$(".tags_click").each(function() {
|
||||
if ($.inArray(parseInt($(this).children("input").first().val(), 10), data.tags) === -1 ) {
|
||||
if (!($(this).hasClass("active"))) {
|
||||
$(this).addClass("disabled");
|
||||
}
|
||||
} else {
|
||||
$(this).removeClass("disabled");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
var dbResults = [];
|
||||
var ggResults = [];
|
||||
|
||||
$(document).ready(function () {
|
||||
$(function () {
|
||||
var msg = i18nMsg;
|
||||
var douban = "https://api.douban.com";
|
||||
var dbSearch = "/v2/book/search";
|
||||
|
@ -22,9 +22,6 @@ $(document).ready(function () {
|
|||
var ggDone = false;
|
||||
|
||||
var showFlag = 0;
|
||||
String.prototype.replaceAll = function (s1, s2) {
|
||||
return this.replace(new RegExp(s1, "gm"), s2);
|
||||
};
|
||||
|
||||
function showResult () {
|
||||
var book;
|
||||
|
@ -32,11 +29,11 @@ $(document).ready(function () {
|
|||
var bookHtml;
|
||||
showFlag++;
|
||||
if (showFlag === 1) {
|
||||
$("#metaModal #meta-info").html("<ul id=\"book-list\" class=\"media-list\"></ul>");
|
||||
$("#meta-info").html("<ul id=\"book-list\" class=\"media-list\"></ul>");
|
||||
}
|
||||
if (ggDone && dbDone) {
|
||||
if (!ggResults && !dbResults) {
|
||||
$("#metaModal #meta-info").html("<p class=\"text-danger\">"+ msg.no_result +"</p>");
|
||||
$("#meta-info").html("<p class=\"text-danger\">"+ msg.no_result +"</p>");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -62,7 +59,7 @@ $(document).ready(function () {
|
|||
"<p>"+ msg.source + ":<a href=\"https://books.google.com\" target=\"_blank\">Google Books</a></p>" +
|
||||
"</div>" +
|
||||
"</li>";
|
||||
$("#metaModal #book-list").append(bookHtml);
|
||||
$("#book-list").append(bookHtml);
|
||||
}
|
||||
ggDone = false;
|
||||
}
|
||||
|
@ -82,24 +79,22 @@ $(document).ready(function () {
|
|||
"<p>" + msg.source + ":<a href=\"https://book.douban.com\" target=\"_blank\">Douban Books</a></p>" +
|
||||
"</div>" +
|
||||
"</li>";
|
||||
$("#metaModal #book-list").append(bookHtml);
|
||||
$("#book-list").append(bookHtml);
|
||||
}
|
||||
dbDone = false;
|
||||
}
|
||||
}
|
||||
|
||||
function ggSearchBook (title) {
|
||||
title = title.replaceAll(/\s+/, "+");
|
||||
var url = google + ggSearch + "?q=" + title;
|
||||
$.ajax({
|
||||
url,
|
||||
url: google + ggSearch + "?q=" + title.replace(/\s+/gm, "+"),
|
||||
type: "GET",
|
||||
dataType: "jsonp",
|
||||
jsonp: "callback",
|
||||
success (data) {
|
||||
success: function success(data) {
|
||||
ggResults = data.items;
|
||||
},
|
||||
complete () {
|
||||
complete: function complete() {
|
||||
ggDone = true;
|
||||
showResult();
|
||||
}
|
||||
|
@ -107,19 +102,18 @@ $(document).ready(function () {
|
|||
}
|
||||
|
||||
function dbSearchBook (title) {
|
||||
var url = douban + dbSearch + "?q=" + title + "&fields=all&count=10";
|
||||
$.ajax({
|
||||
url,
|
||||
url: douban + dbSearch + "?q=" + title + "&fields=all&count=10",
|
||||
type: "GET",
|
||||
dataType: "jsonp",
|
||||
jsonp: "callback",
|
||||
success (data) {
|
||||
success: function success(data) {
|
||||
dbResults = data.books;
|
||||
},
|
||||
error () {
|
||||
$("#metaModal #meta-info").html("<p class=\"text-danger\">"+ msg.search_error+"!</p>");
|
||||
error: function error() {
|
||||
$("#meta-info").html("<p class=\"text-danger\">"+ msg.search_error+"!</p>");
|
||||
},
|
||||
complete () {
|
||||
complete: function complete() {
|
||||
dbDone = true;
|
||||
showResult();
|
||||
}
|
||||
|
@ -128,7 +122,7 @@ $(document).ready(function () {
|
|||
|
||||
function doSearch (keyword) {
|
||||
showFlag = 0;
|
||||
$("#metaModal #meta-info").text(msg.loading);
|
||||
$("#meta-info").text(msg.loading);
|
||||
// var keyword = $("#keyword").val();
|
||||
if (keyword) {
|
||||
dbSearchBook(keyword);
|
||||
|
@ -153,6 +147,7 @@ $(document).ready(function () {
|
|||
|
||||
});
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
function getMeta (source, id) {
|
||||
var meta;
|
||||
var tags;
|
||||
|
@ -181,6 +176,5 @@ function getMeta (source, id) {
|
|||
}
|
||||
$("#tags").val(tags);
|
||||
$("#rating").val(Math.round(meta.rating.average / 2));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,3 @@
|
|||
var displaytext;
|
||||
var updateTimerID;
|
||||
var updateText;
|
||||
|
||||
// Generic control/related handler to show/hide fields based on a checkbox' value
|
||||
// e.g.
|
||||
// <input type="checkbox" data-control="stuff-to-show">
|
||||
|
@ -11,16 +7,18 @@ $(document).on("change", "input[type=\"checkbox\"][data-control]", function () {
|
|||
var name = $this.data("control");
|
||||
var showOrHide = $this.prop("checked");
|
||||
|
||||
$("[data-related=\""+name+"\"]").each(function () {
|
||||
$("[data-related=\"" + name + "\"]").each(function () {
|
||||
$(this).toggle(showOrHide);
|
||||
});
|
||||
});
|
||||
|
||||
$(function() {
|
||||
var updateTimerID;
|
||||
var updateText;
|
||||
|
||||
// Allow ajax prefilters to be added/removed dynamically
|
||||
// eslint-disable-next-line new-cap
|
||||
const preFilters = $.Callbacks();
|
||||
var preFilters = $.Callbacks();
|
||||
$.ajaxPrefilter(preFilters.fire);
|
||||
|
||||
function restartTimer() {
|
||||
|
@ -30,29 +28,29 @@ $(function() {
|
|||
|
||||
function updateTimer() {
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url: window.location.pathname+"/../../get_updater_status",
|
||||
success(data) {
|
||||
// console.log(data.status);
|
||||
$("#UpdateprogressDialog #Updatecontent").html(updateText[data.status]);
|
||||
if (data.status >6){
|
||||
dataType: "json",
|
||||
url: window.location.pathname + "/../../get_updater_status",
|
||||
success: function success(data) {
|
||||
// console.log(data.status);
|
||||
$("#Updatecontent").html(updateText[data.status]);
|
||||
if (data.status > 6) {
|
||||
clearInterval(updateTimerID);
|
||||
$("#spinner2").hide();
|
||||
$("#updateFinished").removeClass("hidden");
|
||||
$("#check_for_update").removeClass("hidden");
|
||||
$("#perform_update").addClass("hidden");
|
||||
}
|
||||
},
|
||||
error: function error() {
|
||||
// console.log('Done');
|
||||
clearInterval(updateTimerID);
|
||||
$("#spinner2").hide();
|
||||
$("#UpdateprogressDialog #updateFinished").removeClass("hidden");
|
||||
$("#Updatecontent").html(updateText[7]);
|
||||
$("#updateFinished").removeClass("hidden");
|
||||
$("#check_for_update").removeClass("hidden");
|
||||
$("#perform_update").addClass("hidden");
|
||||
}
|
||||
},
|
||||
error() {
|
||||
// console.log('Done');
|
||||
clearInterval(updateTimerID);
|
||||
$("#spinner2").hide();
|
||||
$("#UpdateprogressDialog #Updatecontent").html(updateText[7]);
|
||||
$("#UpdateprogressDialog #updateFinished").removeClass("hidden");
|
||||
$("#check_for_update").removeClass("hidden");
|
||||
$("#perform_update").addClass("hidden");
|
||||
},
|
||||
timeout:2000
|
||||
timeout: 2000
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -70,13 +68,13 @@ $(function() {
|
|||
// selector for the NEXT link (to page 2)
|
||||
itemSelector : ".load-more .book",
|
||||
animate : true,
|
||||
extraScrollPx: 300,
|
||||
extraScrollPx: 300
|
||||
// selector for all items you'll retrieve
|
||||
}, function(data){
|
||||
}, function(data) {
|
||||
$(".load-more .row").isotope( "appended", $(data), null );
|
||||
});
|
||||
|
||||
$("#sendbtn").click(function(){
|
||||
$("#sendbtn").click(function() {
|
||||
var $this = $(this);
|
||||
$this.text("Please wait...");
|
||||
$this.addClass("disabled");
|
||||
|
@ -84,36 +82,39 @@ $(function() {
|
|||
$("#restart").click(function() {
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url: window.location.pathname+"/../../shutdown",
|
||||
url: window.location.pathname + "/../../shutdown",
|
||||
data: {"parameter":0},
|
||||
success(data) {
|
||||
success: function success() {
|
||||
$("#spinner").show();
|
||||
displaytext=data.text;
|
||||
setTimeout(restartTimer, 3000);}
|
||||
setTimeout(restartTimer, 3000);
|
||||
}
|
||||
});
|
||||
});
|
||||
$("#shutdown").click(function() {
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url: window.location.pathname+"/../../shutdown",
|
||||
url: window.location.pathname + "/../../shutdown",
|
||||
data: {"parameter":1},
|
||||
success(data) {
|
||||
return alert(data.text);}
|
||||
success: function success(data) {
|
||||
return alert(data.text);
|
||||
}
|
||||
});
|
||||
});
|
||||
$("#check_for_update").click(function() {
|
||||
var buttonText = $("#check_for_update").html();
|
||||
$("#check_for_update").html("...");
|
||||
var $this = $(this);
|
||||
var buttonText = $this.html();
|
||||
$this.html("...");
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url: window.location.pathname+"/../../get_update_status",
|
||||
success(data) {
|
||||
$("#check_for_update").html(buttonText);
|
||||
url: window.location.pathname + "/../../get_update_status",
|
||||
success: function success(data) {
|
||||
$this.html(buttonText);
|
||||
if (data.status === true) {
|
||||
$("#check_for_update").addClass("hidden");
|
||||
$("#perform_update").removeClass("hidden");
|
||||
$("#update_info").removeClass("hidden");
|
||||
$("#update_info").find("span").html(data.commit);
|
||||
$("#update_info")
|
||||
.removeClass("hidden")
|
||||
.find("span").html(data.commit);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -121,22 +122,23 @@ $(function() {
|
|||
$("#restart_database").click(function() {
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
url: window.location.pathname+"/../../shutdown",
|
||||
url: window.location.pathname + "/../../shutdown",
|
||||
data: {"parameter":2}
|
||||
});
|
||||
});
|
||||
$("#perform_update").click(function() {
|
||||
$("#spinner2").show();
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
data: { start: "True"},
|
||||
url: window.location.pathname+"/../../get_updater_status",
|
||||
success(data) {
|
||||
updateText=data.text;
|
||||
$("#UpdateprogressDialog #Updatecontent").html(updateText[data.status]);
|
||||
// console.log(data.status);
|
||||
updateTimerID=setInterval(updateTimer, 2000);}
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
data: { start: "True"},
|
||||
url: window.location.pathname + "/../../get_updater_status",
|
||||
success: function success(data) {
|
||||
updateText = data.text;
|
||||
$("#Updatecontent").html(updateText[data.status]);
|
||||
// console.log(data.status);
|
||||
updateTimerID = setInterval(updateTimer, 2000);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -144,10 +146,10 @@ $(function() {
|
|||
|
||||
$("#bookDetailsModal")
|
||||
.on("show.bs.modal", function(e) {
|
||||
const $modalBody = $(this).find(".modal-body");
|
||||
var $modalBody = $(this).find(".modal-body");
|
||||
|
||||
// Prevent static assets from loading multiple times
|
||||
const useCache = (options) => {
|
||||
var useCache = function(options) {
|
||||
options.async = true;
|
||||
options.cache = true;
|
||||
};
|
||||
|
@ -162,7 +164,7 @@ $(function() {
|
|||
$(this).find(".modal-body").html("...");
|
||||
});
|
||||
|
||||
$(window).resize(function(event) {
|
||||
$(window).resize(function() {
|
||||
$(".discover .row").isotope("reLayout");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,31 +1,31 @@
|
|||
/* global Sortable,sortTrue */
|
||||
|
||||
var sortable = Sortable.create(sortTrue, {
|
||||
group: "sorting",
|
||||
sort: true
|
||||
Sortable.create(sortTrue, {
|
||||
group: "sorting",
|
||||
sort: true
|
||||
});
|
||||
|
||||
function sendData(path){
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
function sendData(path) {
|
||||
var elements;
|
||||
var counter;
|
||||
var maxElements;
|
||||
var tmp=[];
|
||||
var tmp = [];
|
||||
|
||||
elements=Sortable.utils.find(sortTrue,"div");
|
||||
maxElements=elements.length;
|
||||
elements = Sortable.utils.find(sortTrue, "div");
|
||||
maxElements = elements.length;
|
||||
|
||||
var form = document.createElement("form");
|
||||
form.setAttribute("method", "post");
|
||||
form.setAttribute("action", path);
|
||||
|
||||
|
||||
for(counter=0;counter<maxElements;counter++){
|
||||
tmp[counter]=elements[counter].getAttribute("id");
|
||||
var hiddenField = document.createElement("input");
|
||||
hiddenField.setAttribute("type", "hidden");
|
||||
hiddenField.setAttribute("name", elements[counter].getAttribute("id"));
|
||||
hiddenField.setAttribute("value", counter+1);
|
||||
form.appendChild(hiddenField);
|
||||
for (counter = 0;counter < maxElements;counter++) {
|
||||
tmp[counter] = elements[counter].getAttribute("id");
|
||||
var hiddenField = document.createElement("input");
|
||||
hiddenField.setAttribute("type", "hidden");
|
||||
hiddenField.setAttribute("name", elements[counter].getAttribute("id"));
|
||||
hiddenField.setAttribute("value", String(counter + 1));
|
||||
form.appendChild(hiddenField);
|
||||
}
|
||||
document.body.appendChild(form);
|
||||
form.submit();
|
||||
|
|
|
@ -139,7 +139,7 @@
|
|||
<div class="modal-header bg-danger text-center">
|
||||
<span>{{_('Are really you sure?')}}</span>
|
||||
</div>
|
||||
<div class="modal-body text-center" id="meta-info">
|
||||
<div class="modal-body text-center">
|
||||
<span>{{_('Book will be deleted from Calibre database')}}</span>
|
||||
<span>{{_('and from hard disk')}}</span>
|
||||
</div>
|
||||
|
|
|
@ -259,5 +259,17 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
<script type="text/template" id="template-shelf-add">
|
||||
<li>
|
||||
<a href="<%= add %>" data-remove-href="<%= remove %>" data-shelf-action="add">
|
||||
<%= content %>
|
||||
</a>
|
||||
</li>
|
||||
</script>
|
||||
<script type="text/template" id="template-shelf-remove">
|
||||
<a href="<%= remove %>" data-add-href="<%= add %>" class="btn btn-sm btn-default" data-shelf-action="remove">
|
||||
<span class="glyphicon glyphicon-remove"></span> <%= content %>
|
||||
</a>
|
||||
</script>
|
||||
<script src="{{ url_for('static', filename='js/details.js') }}"></script>
|
||||
{% endblock %}
|
||||
|
|
Loading…
Reference in a new issue