Implement API Key setting into admin (WIP)
parent
229f28b8af
commit
3aa384b82d
|
@ -23,8 +23,7 @@ $application->registerRoutes($this, array('routes' => array(
|
|||
array('name' => 'weather#get', 'url' => '/weather/get', 'verb' => 'GET'),
|
||||
|
||||
array('name' => 'settings#homeset', 'url' => '/settings/home/set', 'verb' => 'POST'),
|
||||
array('name' => 'settings#apikeyset', 'url' => '/settings/apikey/set','verb' => 'POST'),
|
||||
array('name' => 'settings#apikeyget', 'url' => '/settings/apikey/get','verb' => 'GET'),
|
||||
array('name' => 'settings#apikeyset', 'url' => '/settings/apikey', 'verb' => 'POST'),
|
||||
array('name' => 'settings#metricset', 'url' => '/settings/metric/set','verb' => 'POST'),
|
||||
array('name' => 'settings#metricget', 'url' => '/settings/metric/get','verb' => 'GET'),
|
||||
)));
|
||||
|
|
|
@ -24,6 +24,7 @@ class SettingsController extends Controller {
|
|||
|
||||
private $userId;
|
||||
private $mapper;
|
||||
private $cityMapper;
|
||||
|
||||
public function __construct ($appName, IRequest $request, $userId, SettingsMapper $mapper, CityMapper $cityMapper) {
|
||||
parent::__construct($appName, $request);
|
||||
|
@ -50,23 +51,13 @@ class SettingsController extends Controller {
|
|||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
public function apiKeySet ($apikey) {
|
||||
$this->mapper->setApiKey($this->userId, $apikey);
|
||||
\OC::$server->getConfig()->setAppValue('weather', 'openweathermap_api_key', $apiKey);
|
||||
return new JSONResponse(array("set" => true));
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
public function apiKeyGet () {
|
||||
return new JSONResponse(array("apikey" => $this->mapper->getApiKey($this->userId)));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
|
|
|
@ -24,7 +24,6 @@ function emptyStr (obj) {
|
|||
app.controller('WeatherController', ['$scope', '$interval', '$timeout', '$compile', '$http',
|
||||
function ($scope, $interval, $timeout, $compile, $http) {
|
||||
$scope.owncloudAppImgPath = '';
|
||||
$scope.apiKey = '';
|
||||
$scope.userId = '';
|
||||
$scope.metric = 'metric';
|
||||
$scope.metricRepresentation = '°C';
|
||||
|
@ -66,38 +65,6 @@ app.controller('WeatherController', ['$scope', '$interval', '$timeout', '$compil
|
|||
$timeout(function () { $scope.loadApiKey(); });
|
||||
$timeout(function () { $scope.loadMetric(); });
|
||||
|
||||
$scope.modifyAPIKey = function () {
|
||||
$http.post(OC.generateUrl('/apps/weather/settings/apikey/set'), {'apikey': $scope.apiKey}).
|
||||
then(function (r) {
|
||||
if (r.data != null && !undef(r.data['set'])) {
|
||||
$scope.loadCity($scope.domCity);
|
||||
}
|
||||
else {
|
||||
$scope.settingError = 'Failed to set API key. Please contact your administrator';
|
||||
}
|
||||
},
|
||||
function (r) {
|
||||
if (r.status == 403) {
|
||||
$scope.settingError = "This key doesn't work. Please provide a valid OpenWeatherMap API key";
|
||||
}
|
||||
else {
|
||||
$scope.settingError = g_error500;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$scope.loadApiKey = function () {
|
||||
$http.get(OC.generateUrl('/apps/weather/settings/apikey/get')).
|
||||
then(function (r) {
|
||||
if (!undef(r.data['apikey'])) {
|
||||
$scope.apiKey = r.data['apikey'];
|
||||
}
|
||||
},
|
||||
function (r) {
|
||||
$scope.fatalError();
|
||||
});
|
||||
};
|
||||
|
||||
$scope.mapMetric = function () {
|
||||
if ($scope.metric == 'kelvin') {
|
||||
$scope.metricRepresentation = '°K';
|
||||
|
|
|
@ -35,12 +35,11 @@ class AdminSettings implements ISettings {
|
|||
* @return TemplateResponse
|
||||
*/
|
||||
public function getForm() {
|
||||
/*$params = [
|
||||
$params = [
|
||||
"openweathermap_api_key" => $this->config->getAppValue('weather', 'openweathermap_api_key', ''),
|
||||
];
|
||||
|
||||
return new TemplateResponse('weather', 'admin', $params);
|
||||
*/ return new TemplateResponse('weather', 'admin', []);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,14 +1,19 @@
|
|||
<?php
|
||||
|
||||
\OCP\Util::addScript('weather', 'admin');
|
||||
|
||||
/** @var $l \OCP\IL10N */
|
||||
/** @var $_ array */
|
||||
|
||||
?>
|
||||
|
||||
<div id="weather" class="section">
|
||||
<h2><?php p($l->t('Weather')) ?></h2>
|
||||
<p>
|
||||
<label for="openweathermap-api-key"><?php p($l->t('OpenWeatherMap API Key')) ?></label>
|
||||
<br />
|
||||
<input id="openweathermap-api-key" type="text" value="<?php p($_['openweathermap_api_key']) ?>" />
|
||||
<input type="submit" id="submitOWMKey" value="<?php p($l->t('Save')); ?>"/>
|
||||
<input type="submit" id="submitOWMApiKey" value="<?php p($l->t('Save')); ?>"/>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -31,8 +31,6 @@
|
|||
<button name="app settings" class="settings-button" data-apps-slide-toggle="#app-settings-content">Settings</button>
|
||||
</div>
|
||||
<div style="display: none;" id="app-settings-content">
|
||||
<h2>OpenWeatherMap API Key</h2>
|
||||
<input type="text" name="apikey" ng-change="modifyAPIKey()" ng-model="apiKey" ng-model-options="{debounce:1000}" />
|
||||
<h2>Metric</h2>
|
||||
<select name="metric" ng-change="modifyMetric()" ng-model="metric">
|
||||
<option value="metric">°C</option>
|
||||
|
|
Loading…
Reference in New Issue