diff --git a/files_reader/CHANGELOG.md b/files_reader/CHANGELOG.md
index ec1893c..2ec3aaf 100644
--- a/files_reader/CHANGELOG.md
+++ b/files_reader/CHANGELOG.md
@@ -1,8 +1,27 @@
-## Unreleased
+## UNRELEASED
+###
+
+## 1.0.0 - 2017-03-15
### Added
- Reader now supports CBR/CBZ ('comics') files
- - Book position is saved on server and restored on next invocation
+ - Book position ('cursor') is saved on server and restored on next invocation
+ - Default settings (independent of fileid) and file-specific settings are saved and restored
+ - Bookmarks and annotations (notes) are saved and restored (bookmarks are a type of annotation).
+ - Full-text search implemented.
- Framework to support more file format renderers
+ - hooks added to remove defaults, settings and annotations/bookmarks for deleted files or users
+ - epubreader
+ * night mode now works more reliably
+ * new 'day mode', ie. user-defined colours
+ * new font settings: font weight
+ * column width user-configurable
+ * new mode: maximize reader area, for small-screen devices
+ * page turn arrows optional, hidden by default
+ - cbreader
+ * supports CBR (rar) and CBZ (zip) archives
+ * single and double page (spread) mode, auto-adjusts to screen geometry
+ * optional image enhancement filters
+ * seamless full screen mode (where browser allows user full control of experience, ie. not on apple)
## 0.8.3 - 2017-02-02
### Fixed
diff --git a/files_reader/TODO b/files_reader/TODO
new file mode 100644
index 0000000..7de9cf5
--- /dev/null
+++ b/files_reader/TODO
@@ -0,0 +1,6 @@
+ - add hook to delete book info when books are deleted
+ - do this for files_opds as well
+ - for maximize page area, disable two-column when in portrait mode
+ - maybe always disable two-column in portrait mode
+ - swipe gestures for open/close sidebar, page turn
+ - disable wide page turn when placing markers
diff --git a/files_reader/appinfo/.info.xml.swp b/files_reader/appinfo/.info.xml.swp
new file mode 100644
index 0000000..f424b9d
Binary files /dev/null and b/files_reader/appinfo/.info.xml.swp differ
diff --git a/files_reader/appinfo/app.php b/files_reader/appinfo/app.php
index d28cac0..05dcc5c 100644
--- a/files_reader/appinfo/app.php
+++ b/files_reader/appinfo/app.php
@@ -4,7 +4,7 @@
* ownCloud - Files_Reader App
*
* @author Frank de Lange
- * @copyright 2015 Frank de Lange
+ * @copyright 2015 - 2017 Frank de Lange
*
* This file is licensed under the Affero General Public License version 3 or
* later.
@@ -12,9 +12,11 @@
namespace OCA\Files_Reader\AppInfo;
+use OCP\AppFramework\App;
use OCP\Util;
-Util::addscript( 'files_reader', 'plugin');
+\OCA\Files_Reader\Hooks::register();
+Util::addscript('files_reader', 'plugin');
if(class_exists('\\OCP\\AppFramework\\Http\\EmptyContentSecurityPolicy')) {
$manager = \OC::$server->getContentSecurityPolicyManager();
@@ -24,7 +26,7 @@ if(class_exists('\\OCP\\AppFramework\\Http\\EmptyContentSecurityPolicy')) {
$csp->addAllowedScriptDomain('\'self\'');
$csp->addAllowedFrameDomain('\'self\'');
$csp->addAllowedChildSrcDomain('\'self\'');
+ $csp->addAllowedFontDomain('\'self\'');
$csp->addAllowedImageDomain('blob:');
$manager->addDefaultPolicy($csp);
}
-
diff --git a/files_reader/appinfo/database.xml b/files_reader/appinfo/database.xml
new file mode 100644
index 0000000..562acb3
--- /dev/null
+++ b/files_reader/appinfo/database.xml
@@ -0,0 +1,203 @@
+
+
+ *dbname*
+ true
+ false
+ utf8
+
+
"
+ ].join(''),
+ markup = (function () {
+
+ // IE does not support gradients with multiple stops, so we need to simulate
+ // that for the rainbow slider with 8 divs that each have a single gradient
+ var gradientFix = "";
+ if (IE) {
+ for (var i = 1; i <= 6; i++) {
+ gradientFix += "";
+ }
+ }
+
+ return [
+ "
",
+ "
",
+ "",
+ "
",
+ "",
+ "
",
+ "
",
+ "
",
+ "
",
+ "",
+ "
",
+ "
",
+ "
",
+ "
",
+ "",
+ "
",
+ "
",
+ "
",
+ "
",
+ "
",
+ "
",
+ "",
+ gradientFix,
+ "
",
+ "
",
+ "
",
+ "
",
+ "
",
+ "",
+ "
",
+ "",
+ "
",
+ "",
+ "",
+ "
",
+ "
",
+ "
"
+ ].join("");
+ })();
+
+ function paletteTemplate (p, color, className, opts) {
+ var html = [];
+ for (var i = 0; i < p.length; i++) {
+ var current = p[i];
+ if(current) {
+ var tiny = tinycolor(current);
+ var c = tiny.toHsl().l < 0.5 ? "sp-thumb-el sp-thumb-dark" : "sp-thumb-el sp-thumb-light";
+ c += (tinycolor.equals(color, current)) ? " sp-thumb-active" : "";
+ var formattedString = tiny.toString(opts.preferredFormat || "rgb");
+ var swatchStyle = rgbaSupport ? ("background-color:" + tiny.toRgbString()) : "filter:" + tiny.toFilter();
+ html.push('');
+ } else {
+ var cls = 'sp-clear-display';
+ html.push($('')
+ .append($('')
+ .attr('title', opts.noColorSelectedText)
+ )
+ .html()
+ );
+ }
+ }
+ return "