diff --git a/appinfo/info.xml b/appinfo/info.xml
index 3cfe617..bffaa21 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -48,4 +48,8 @@ See [README] for more exhaustive information on features and potential misfeatur
+
+ OCA\Epubreader\Settings\Personal
+ OCA\Epubreader\Settings\PersonalSection
+
diff --git a/appinfo/routes.php b/appinfo/routes.php
index b3fde19..eda152f 100644
--- a/appinfo/routes.php
+++ b/appinfo/routes.php
@@ -10,7 +10,7 @@
* later.
*/
-$this->create('reader_personal_settings', 'ajax/personal.php')->actionInclude('epubreader/ajax/personal.php');
+//$this->create('reader_personal_settings', 'ajax/personal.php')->actionInclude('epubreader/ajax/personal.php');
return ['routes' => [
// Page
@@ -36,5 +36,6 @@ return ['routes' => [
['name' => 'preference#get', 'url' => '/preference/{fileId}/{scope}/{name}', 'verb' => 'GET', 'defaults' => ['name' => '']],
['name' => 'preference#set', 'url' => '/preference', 'verb' => 'POST'],
['name' => 'preference#delete', 'url' => '/preference/{fileId}/{scope}/{name}', 'verb' => 'DELETE'],
+ ['name' => 'settings#setPreference', 'url' => '/ajax/personal.php', 'verb' => 'POST'],
]];
diff --git a/js/settings.js b/js/settings.js
index 92f0a82..c296899 100644
--- a/js/settings.js
+++ b/js/settings.js
@@ -9,7 +9,7 @@ window.addEventListener('DOMContentLoaded', function () {
};
OC.msg.startSaving('#reader-personal .msg');
- $.post(OC.filePath('epubreader', 'ajax', 'personal.php'), data, readerSettings.afterSave);
+ $.post(OC.generateUrl('apps/epubreader/ajax/personal.php'), data, readerSettings.afterSave);
},
afterSave : function(data){
OC.msg.finishedSaving('#reader-personal .msg', data);
diff --git a/lib/Controller/SettingsController.php b/lib/Controller/SettingsController.php
new file mode 100644
index 0000000..9564d3f
--- /dev/null
+++ b/lib/Controller/SettingsController.php
@@ -0,0 +1,74 @@
+urlGenerator = $urlGenerator;
+ $this->preferenceService = $preferenceService;
+ }
+
+ /**
+ * @brief return preference for $fileId
+ *
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ *
+ * @param string $scope
+ * @param int $fileId
+ * @param string $name if null, return all preferences for $scope + $fileId
+ *
+ * @return array|\OCP\AppFramework\Http\JSONResponse
+ */
+ public function setPreference($scope, $fileId, $name) {
+ /*\OC_JSON::callCheck();
+ \OC_JSON::checkLoggedIn();*/
+
+ $l = \OC::$server->getL10N('epubreader');
+
+ $EpubEnable = isset($_POST['EpubEnable']) ? $_POST['EpubEnable'] : 'false';
+ $PdfEnable = isset($_POST['PdfEnable']) ? $_POST['PdfEnable'] : 'false';
+ $CbxEnable = isset($_POST['CbxEnable']) ? $_POST['CbxEnable'] : 'false';
+
+ Config::set('epub_enable', $EpubEnable);
+ Config::set('pdf_enable', $PdfEnable);
+ Config::set('cbx_enable', $CbxEnable);
+
+ \OC_JSON::success(
+ array(
+ 'data' => array('message'=> $l->t('Settings updated successfully.'))
+ )
+ );
+ }
+}
\ No newline at end of file
diff --git a/lib/Settings/Personal.php b/lib/Settings/Personal.php
new file mode 100644
index 0000000..dbfccb1
--- /dev/null
+++ b/lib/Settings/Personal.php
@@ -0,0 +1,89 @@
+userId = $userId;
+ $this->configManager = $configManager;
+ }
+
+ /**
+ * @return TemplateResponse returns the instance with all parameters set, ready to be rendered
+ * @since 9.1
+ */
+ public function getForm()
+ {
+
+ $parameters = [
+ 'EpubEnable' => $this->configManager->getUserValue($this->userId, 'epubreader', 'epub_enable'),
+ 'PdfEnable' => $this->configManager->getUserValue($this->userId, 'epubreader', 'pdf_enable'),
+ 'CbxEnable' => $this->configManager->getUserValue($this->userId, 'epubreader', 'cbx_enable'),
+ ];
+ return new TemplateResponse('epubreader', 'settings-personal', $parameters, '');
+ }
+
+ /**
+ * Print config section (ownCloud 10)
+ *
+ * @return TemplateResponse
+ */
+ public function getPanel()
+ {
+ return $this->getForm();
+ }
+
+ /**
+ * @return string the section ID, e.g. 'sharing'
+ * @since 9.1
+ */
+ public function getSection()
+ {
+ return 'epubreader';
+ }
+
+ /**
+ * Get section ID (ownCloud 10)
+ *
+ * @return string
+ */
+ public function getSectionID()
+ {
+ return 'epubreader';
+ }
+
+ /**
+ * @return int whether the form should be rather on the top or bottom of
+ * the admin section. The forms are arranged in ascending order of the
+ * priority values. It is required to return a value between 0 and 100.
+ *
+ * E.g.: 70
+ * @since 9.1
+ */
+ public function getPriority()
+ {
+ return 10;
+ }
+}
diff --git a/lib/Settings/PersonalSection.php b/lib/Settings/PersonalSection.php
new file mode 100644
index 0000000..0ce26e9
--- /dev/null
+++ b/lib/Settings/PersonalSection.php
@@ -0,0 +1,70 @@
+urlGenerator = $urlGenerator;
+ $this->l = $l;
+ }
+
+ /**
+ * returns the relative path to an 16*16 icon describing the section.
+ *
+ * @returns string
+ */
+ public function getIcon()
+ {
+ return $this->urlGenerator->imagePath('epubreader', 'app.svg');
+ }
+
+ /**
+ * returns the ID of the section. It is supposed to be a lower case string,
+ *
+ * @returns string
+ */
+ public function getID()
+ {
+ return 'epubreader';
+ }
+
+ /**
+ * returns the translated name as it should be displayed
+ *
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->l->t('EPUB/CBZ/PDF ebook reader');
+ }
+
+ /**
+ * returns priority for positioning
+ *
+ * @return int
+ */
+ public function getPriority()
+ {
+ return 100;
+ }
+}
\ No newline at end of file