Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix settings #41

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 0 additions & 35 deletions ajax/personal.php

This file was deleted.

1 change: 0 additions & 1 deletion appinfo/app.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,3 @@

\OCA\Epubreader\Hooks::register();
Util::addscript('epubreader', 'plugin');
\OCP\App::registerPersonal('epubreader', 'personal');
4 changes: 4 additions & 0 deletions appinfo/info.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,8 @@ See [README] for more exhaustive information on features and potential misfeatur
<dependencies>
<nextcloud min-version="21" max-version="23"/>
</dependencies>
<settings>
<personal>OCA\Epubreader\Settings\Personal</personal>
<personal-section>OCA\Epubreader\Settings\PersonalSection</personal-section>
</settings>
</info>
5 changes: 3 additions & 2 deletions appinfo/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@
* later.
*/

$this->create('reader_personal_settings', 'ajax/personal.php')->actionInclude('epubreader/ajax/personal.php');

return ['routes' => [
// Page
['name' => 'page#showReader', 'url' => '/', 'verb' => 'GET'],
Expand All @@ -36,5 +34,8 @@
['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'],

// User Settings
['name' => 'settings#setPreference', 'url' => '/settings/set', 'verb' => 'POST'],
]];

2 changes: 1 addition & 1 deletion js/personal.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ window.addEventListener('DOMContentLoaded', function () {
};

OC.msg.startSaving('#reader-personal .msg');
$.post(OC.filePath('epubreader', 'lib', 'personal-back.php'), data, readerSettings.afterSave);
$.post(OC.generateUrl('apps/epubreader/settings/set'), data, readerSettings.afterSave);
},
afterSave : function(data){
OC.msg.finishedSaving('#reader-personal .msg', data);
Expand Down
2 changes: 1 addition & 1 deletion js/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -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/settings/set'), data, readerSettings.afterSave);
},
afterSave : function(data){
OC.msg.finishedSaving('#reader-personal .msg', data);
Expand Down
69 changes: 69 additions & 0 deletions lib/Controller/SettingsController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
<?php

/**
* ownCloud - Epubreader App
*
* @author Frank de Lange
* @copyright 2014,2018 Frank de Lange
*
* This file is licensed under the Affero General Public License version 3 or
* later.
*/

namespace OCA\Epubreader\Controller;
use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\AppFramework\Http;
use OCP\AppFramework\Controller;
use OCA\Epubreader\Service\PreferenceService;
use OCA\Epubreader\Config;
use OCP\AppFramework\Http\JSONResponse;

class SettingsController extends Controller {

private $urlGenerator;
private $preferenceService;

/**
* @param string $AppName
* @param IRequest $request
* @param IURLGenerator $urlGenerator
* @param PreferenceService $preferenceService
*/
public function __construct($AppName,
IRequest $request,
IURLGenerator $urlGenerator,
PreferenceService $preferenceService ) {

parent::__construct($AppName, $request);
$this->urlGenerator = $urlGenerator;
$this->preferenceService = $preferenceService;
}

/**
* @brief set preference for file type association
*
* @NoAdminRequired
*
* @param int $EpubEnable
* @param int $EpubEnable
* @param int $CbxEnable
*
* @return array|\OCP\AppFramework\Http\JSONResponse
*/
public function setPreference(string $EpubEnable, string $PdfEnable, string $CbxEnable) {

$l = \OC::$server->getL10N('epubreader');

Config::set('epub_enable', $EpubEnable);
Config::set('pdf_enable', $PdfEnable);
Config::set('cbx_enable', $CbxEnable);

$response = array(
'data' => array('message'=> $l->t('Settings updated successfully.')),
'status' => 'success'
);

return new JSONResponse($response);
}
}
89 changes: 89 additions & 0 deletions lib/Settings/Personal.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<?php
/**
* ownCloud - Epubreader App
*
* @author Frank de Lange
* @copyright 2014,2018 Frank de Lange
*
* This file is licensed under the Affero General Public License version 3 or
* later.
*/

namespace OCA\Epubreader\Settings;

use OCP\AppFramework\Http\TemplateResponse;
use OCP\Settings\ISettings;
use OCP\IConfig;

class Personal implements ISettings
{

private $userId;
private $configManager;

public function __construct(
$userId,
IConfig $configManager
)
{
$this->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;
}
}
70 changes: 70 additions & 0 deletions lib/Settings/PersonalSection.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<?php
/**
* ownCloud - Epubreader App
*
* @author Frank de Lange
* @copyright 2014,2018 Frank de Lange
*
* This file is licensed under the Affero General Public License version 3 or
* later.
*/

namespace OCA\Epubreader\Settings;

use OCP\IL10N;
use OCP\IURLGenerator;
use OCP\Settings\IIconSection;

class PersonalSection implements IIconSection
{
/** @var IURLGenerator */
private $urlGenerator;
/** @var IL10N */
private $l;

public function __construct(IURLGenerator $urlGenerator, IL10N $l)
{
$this->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 20;
}
}
25 changes: 0 additions & 25 deletions personal.php

This file was deleted.