Added ability to turn keyboard shortcuts off
This commit is contained in:
parent
8d119d2b62
commit
c569504ce7
6 changed files with 50 additions and 4 deletions
|
@ -32,6 +32,7 @@ App.BrowsingSettings = function(
|
|||
sketchy: true,
|
||||
unsafe: true,
|
||||
},
|
||||
keyboardShortcuts: true,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -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,12 +29,16 @@ App.Keyboard = function(jQuery, mousetrap) {
|
|||
|
||||
function keyup(key, callback) {
|
||||
unbind(key);
|
||||
mousetrap.bind(key, callback, 'keyup');
|
||||
if (enabled) {
|
||||
mousetrap.bind(key, callback, 'keyup');
|
||||
}
|
||||
}
|
||||
|
||||
function keydown(key, callback) {
|
||||
unbind(key);
|
||||
mousetrap.bind(key, callback);
|
||||
if (enabled) {
|
||||
mousetrap.bind(key, callback);
|
||||
}
|
||||
}
|
||||
|
||||
function 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);
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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">
|
||||
|
|
28
src/Upgrades/Upgrade37.php
Normal file
28
src/Upgrades/Upgrade37.php
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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),
|
||||
];
|
||||
}),
|
||||
|
||||
|
|
Loading…
Reference in a new issue