add some visual feedback if the operation was succesful or not

This commit is contained in:
Bjoern Schiessle 2016-06-16 17:30:18 +02:00 committed by Lukas Reschke
parent 10f6ca20bc
commit cc321bc140
4 changed files with 82 additions and 16 deletions

View File

@ -22,3 +22,7 @@
#theming .icon-upload { #theming .icon-upload {
display: inline-flex; display: inline-flex;
} }
div#theming_settings_msg {
margin-left: 10px;
}

View File

@ -20,9 +20,14 @@
*/ */
function setThemingValue(setting, value) { function setThemingValue(setting, value) {
OC.msg.startSaving('#theming_settings_msg');
$.post( $.post(
OC.generateUrl('/apps/theming/ajax/updateStylesheet'), {'setting' : setting, 'value' : value} OC.generateUrl('/apps/theming/ajax/updateStylesheet'), {'setting' : setting, 'value' : value}
); ).done(function(response) {
OC.msg.finishedSaving('#theming_settings_msg', response);
}).fail(function(response) {
OC.msg.finishedSaving('#theming_settings_msg', response);
});
preview(setting, value); preview(setting, value);
} }
@ -45,12 +50,15 @@ $(document).ready(function () {
var uploadparms = { var uploadparms = {
pasteZone: null, pasteZone: null,
done: function (e, data) { done: function (e, response) {
preview('logoName', data.result.name); preview('logoName', response.result.data.name);
OC.msg.finishedSaving('#theming_settings_msg', response.result);
}, },
submit: function(e, data) { submit: function(e, response) {
OC.msg.startSaving('#theming_settings_msg');
}, },
fail: function (e, data){ fail: function (e, data){
OC.msg.finishedSaving('#theming_settings_msg', response);
} }
}; };
@ -86,18 +94,20 @@ $(document).ready(function () {
$('.theme-undo').click(function (e) { $('.theme-undo').click(function (e) {
var setting = $(this).data('setting'); var setting = $(this).data('setting');
OC.msg.startSaving('#theming_settings_msg');
$.post( $.post(
OC.generateUrl('/apps/theming/ajax/undoChanges'), {'setting' : setting} OC.generateUrl('/apps/theming/ajax/undoChanges'), {'setting' : setting}
).done(function(data) { ).done(function(response) {
if (setting === 'color') { if (setting === 'color') {
var colorPicker = document.getElementById('theming-color'); var colorPicker = document.getElementById('theming-color');
colorPicker.style.backgroundColor = data.value; colorPicker.style.backgroundColor = response.data.value;
colorPicker.value = data.value.slice(1); colorPicker.value = response.data.value.slice(1);
} else if (setting !== 'logoName') { } else if (setting !== 'logoName') {
var input = document.getElementById('theming-'+setting); var input = document.getElementById('theming-'+setting);
input.value = data.value; input.value = response.data.value;
} }
preview(setting, data.value); preview(setting, response.data.value);
OC.msg.finishedSaving('#theming_settings_msg', response);
}); });
}); });
}); });

View File

@ -25,7 +25,9 @@ namespace OCA\Theming\Controller;
use OCA\Theming\Template; use OCA\Theming\Template;
use OCP\AppFramework\Controller; use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\DataResponse;
use OCP\IL10N;
use OCP\IRequest; use OCP\IRequest;
/** /**
@ -40,10 +42,27 @@ class ThemingController extends Controller {
/** @var Template */ /** @var Template */
private $template; private $template;
public function __construct($appName, IRequest $request, Template $template) { /** @var IL10N */
private $l;
/**
* ThemingController constructor.
*
* @param string $appName
* @param IRequest $request
* @param Template $template
* @param IL10N $l
*/
public function __construct(
$appName,
IRequest $request,
Template $template,
IL10N $l
) {
parent::__construct($appName, $request); parent::__construct($appName, $request);
$this->template = $template; $this->template = $template;
$this->l = $l;
} }
/** /**
@ -54,7 +73,15 @@ class ThemingController extends Controller {
*/ */
public function updateStylesheet($setting, $value) { public function updateStylesheet($setting, $value) {
$this->template->set($setting, $value); $this->template->set($setting, $value);
return new DataResponse(); return new DataResponse(
[
'data' =>
[
'message' => $this->l->t('Saved')
],
'status' => 'success'
]
);
} }
/** /**
@ -65,12 +92,27 @@ class ThemingController extends Controller {
public function updateLogo() { public function updateLogo() {
$newLogo = $this->request->getUploadedFile('uploadlogo'); $newLogo = $this->request->getUploadedFile('uploadlogo');
if (empty($newLogo)) { if (empty($newLogo)) {
return new DataResponse(['message' => 'No logo uploaded'], Http::STATUS_UNPROCESSABLE_ENTITY); return new DataResponse(
[
'data' => [
'message' => $this->l->t('No logo uploaded')
]
],
Http::STATUS_UNPROCESSABLE_ENTITY);
} }
$this->template->set('logoName', $newLogo['name']); $this->template->set('logoName', $newLogo['name']);
rename($newLogo['tmp_name'], \OC::$SERVERROOT . '/themes/theming-app/core/img/' . $newLogo['name']); rename($newLogo['tmp_name'], \OC::$SERVERROOT . '/themes/theming-app/core/img/' . $newLogo['name']);
return new DataResponse(['name' => $newLogo['name']]); return new DataResponse(
[
'data' =>
[
'name' => $newLogo['name'],
'message' => $this->l->t('Saved')
],
'status' => 'success'
]
);
} }
/** /**
@ -81,6 +123,15 @@ class ThemingController extends Controller {
*/ */
public function undo($setting) { public function undo($setting) {
$value = $this->template->undo($setting); $value = $this->template->undo($setting);
return new DataResponse(['value' => $value]); return new DataResponse(
[
'data' =>
[
'value' => $value,
'message' => $this->l->t('Saved')
],
'status' => 'success'
]
);
} }
} }

View File

@ -6,7 +6,8 @@ script('theming', '3rdparty/jscolor/jscolor');
style('theming', 'settings-admin'); style('theming', 'settings-admin');
?> ?>
<div id="theming" class="section"> <div id="theming" class="section">
<h2><?php p($l->t('Theming')); ?></h2> <h2 class="inlineblock"><?php p($l->t('Theming')); ?></h2>
<div id="theming_settings_msg" class="msg success inlineblock" style="display: none;">Saved</div>
<?php if ($_['themable'] === false) { ?> <?php if ($_['themable'] === false) { ?>
<p> <p>
<?php p($_['errorMessage']) ?> <?php p($_['errorMessage']) ?>