Added ability to turn keyboard shortcuts off

This commit is contained in:
Marcin Kurczewski 2015-05-14 23:04:30 +02:00
parent 8d119d2b62
commit c569504ce7
6 changed files with 50 additions and 4 deletions

View file

@ -32,6 +32,7 @@ App.BrowsingSettings = function(
sketchy: true,
unsafe: true,
},
keyboardShortcuts: true,
};
}

View file

@ -1,7 +1,8 @@
var App = App || {};
App.Keyboard = function(jQuery, mousetrap) {
App.Keyboard = function(jQuery, mousetrap, browsingSettings) {
var enabled = browsingSettings.getSettings().keyboardShortcuts;
var oldStopCallback = mousetrap.stopCallback;
mousetrap.stopCallback = function(e, element, combo, sequence) {
if (combo.indexOf('ctrl') === -1 && e.ctrlKey) {
@ -28,13 +29,17 @@ App.Keyboard = function(jQuery, mousetrap) {
function keyup(key, callback) {
unbind(key);
if (enabled) {
mousetrap.bind(key, callback, 'keyup');
}
}
function keydown(key, callback) {
unbind(key);
if (enabled) {
mousetrap.bind(key, callback);
}
}
function reset() {
mousetrap.reset();
@ -53,4 +58,4 @@ App.Keyboard = function(jQuery, mousetrap) {
};
};
App.DI.register('keyboard', ['jQuery', 'mousetrap'], App.Keyboard);
App.DI.register('keyboard', ['jQuery', 'mousetrap', 'browsingSettings'], App.Keyboard);

View file

@ -51,6 +51,7 @@ App.Presenters.UserBrowsingSettingsPresenter = function(
sketchy: $el.find('[name=listSketchyPosts]').is(':checked'),
unsafe: $el.find('[name=listUnsafePosts]').is(':checked'),
},
keyboardShortcuts: $el.find('[name=keyboardShortcuts]').is(':checked'),
};
promise.wait(browsingSettings.setSettings(newSettings))

View file

@ -41,6 +41,16 @@
</div>
</div>
<div class="form-row">
<label class="form-label" for="browsing-settings-keyboard-shortcuts">Keyboard shortcuts:</label>
<div class="form-input">
<input <% print(settings.keyboardShortcuts ? 'checked="checked"' : '') %> type="checkbox" id="browsing-settings-keyboard-shortcuts" name="keyboardShortcuts"/>
<label for="browsing-settings-keyboard-shortcuts">
Enabled
</label>
</div>
</div>
<div class="form-row">
<label class="form-label"></label>
<div class="form-input">

View file

@ -0,0 +1,28 @@
<?php
namespace Szurubooru\Upgrades;
use Szurubooru\Dao\UserDao;
use Szurubooru\DatabaseConnection;
class Upgrade37 implements IUpgrade
{
private $userDao;
public function __construct(UserDao $userDao)
{
$this->userDao = $userDao;
}
public function run(DatabaseConnection $databaseConnection)
{
foreach ($this->userDao->findAll() as $user)
{
echo $user->getName() . PHP_EOL;
$browsingSettings = $user->getBrowsingSettings();
if ($browsingSettings === null)
$browsingSettings = new \StdClass;
$browsingSettings->keyboardShortcuts = true;
$user->setBrowsingSettings($browsingSettings);
$this->userDao->save($user);
}
}
}

View file

@ -53,6 +53,7 @@ return [
$container->get(\Szurubooru\Upgrades\Upgrade34::class),
$container->get(\Szurubooru\Upgrades\Upgrade35::class),
$container->get(\Szurubooru\Upgrades\Upgrade36::class),
$container->get(\Szurubooru\Upgrades\Upgrade37::class),
];
}),