From 5a7a54d17efe2987bc512424e3979ff5086f5c15 Mon Sep 17 00:00:00 2001 From: Alex Ling Date: Sun, 16 Feb 2020 01:00:52 +0000 Subject: [PATCH] - next entry/exit reader after finishing an entry --- public/js/reader.js | 3 ++- src/library.cr | 5 +++++ src/server.cr | 5 ++++- src/views/reader.ecr | 7 ++++++- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/public/js/reader.js b/public/js/reader.js index 028b057..11c0364 100644 --- a/public/js/reader.js +++ b/public/js/reader.js @@ -36,6 +36,7 @@ $(function() { var lastURL = $('img').last().attr('id'); // load the reader URL for the last page to update reading progrss to 100% $.get(lastURL); + $('#next-btn').removeAttr('hidden'); return; } $('#hidden').load(encodeURI(nextURL) + ' .uk-container', function(res, status, xhr){ @@ -71,6 +72,6 @@ function replaceHistory(url) { history.replaceState(null, "", url); console.log('reading ' + url); } -function exit(url) { +function redirect(url) { window.location.replace(url); } diff --git a/src/library.cr b/src/library.cr index 89fa9bc..e6b3b96 100644 --- a/src/library.cr +++ b/src/library.cr @@ -106,6 +106,11 @@ class Title end read_pages / total_pages end + def next_entry(current_entry_obj) + idx = @entries.index current_entry_obj + return nil if idx.nil? || idx == @entries.size - 1 + @entries[idx + 1] + end end class TitleInfo diff --git a/src/server.cr b/src/server.cr index 0a71b70..6c83bb6 100644 --- a/src/server.cr +++ b/src/server.cr @@ -168,7 +168,7 @@ class Server title = (@library.get_title env.params.url["title"]).not_nil! entry = (title.get_entry env.params.url["entry"]).not_nil! page = env.params.url["page"].to_i - raise "" if page > entry.pages + raise "" if page > entry.pages || page <= 0 # save progress username = get_username env @@ -183,6 +183,9 @@ class Server next_url = next_page > entry.pages ? nil : "/reader/#{title.title}/#{entry.title}/#{next_page}" exit_url = "/book/#{title.title}" + next_entry = title.next_entry entry + next_entry_url = next_entry.nil? ? nil : \ + "/reader/#{title.title}/#{next_entry.title}" render "src/views/reader.ecr" rescue diff --git a/src/views/reader.ecr b/src/views/reader.ecr index 1d96c6e..c053f46 100644 --- a/src/views/reader.ecr +++ b/src/views/reader.ecr @@ -20,6 +20,11 @@ <%- end -%> + <%- if next_entry_url -%> + + <%- else -%> + + <%- end -%> @@ -43,7 +48,7 @@