mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-03-01 04:49:36 +00:00
add option to disable keybindings
This commit is contained in:
parent
70cde4c3a8
commit
87cd78abfb
6 changed files with 92 additions and 2 deletions
|
|
@ -27,7 +27,12 @@ class RegisterEventHelper {
|
|||
constructor() {
|
||||
this.registerTooltips();
|
||||
this.configureDropdowns();
|
||||
this.registerSpecialCharInput();
|
||||
|
||||
// Only register special character input if enabled in configuration
|
||||
const keybindingsEnabled = document.body.dataset.keybindingsSpecialCharacters !== 'false';
|
||||
if (keybindingsEnabled) {
|
||||
this.registerSpecialCharInput();
|
||||
}
|
||||
|
||||
//Initialize ClipboardJS
|
||||
this.registerLoadHandler(() => {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,21 @@ parent: Usage
|
|||
|
||||
This page lists all the keybindings of Part-DB. Currently, there are only the special character keybindings.
|
||||
|
||||
## Disabling keybindings
|
||||
|
||||
If you want to disable the special character keybindings (for example, because they conflict with your keyboard layout or system shortcuts), you can do so in two ways:
|
||||
|
||||
### Via the System Settings UI (recommended)
|
||||
|
||||
1. Navigate to **System Settings** (Tools → System Settings)
|
||||
2. Go to **Behavior** → **Keybindings**
|
||||
3. Uncheck **Enable special character keybindings**
|
||||
4. Save the settings
|
||||
|
||||
### Via Environment Variable
|
||||
|
||||
Alternatively, you can set the environment variable `KEYBINDINGS_SPECIAL_CHARS_ENABLED=0` in your `.env.local` file or your server environment configuration.
|
||||
|
||||
## Special characters
|
||||
|
||||
Using the keybindings below (Alt + key) you can insert special characters into the text fields of Part-DB. This works on
|
||||
|
|
|
|||
|
|
@ -41,4 +41,7 @@ class BehaviorSettings
|
|||
|
||||
#[EmbeddedSettings]
|
||||
public ?PartInfoSettings $partInfo = null;
|
||||
|
||||
#[EmbeddedSettings]
|
||||
public ?KeybindingsSettings $keybindings = null;
|
||||
}
|
||||
|
|
|
|||
47
src/Settings/BehaviorSettings/KeybindingsSettings.php
Normal file
47
src/Settings/BehaviorSettings/KeybindingsSettings.php
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
/*
|
||||
* This file is part of Part-DB (https://github.com/Part-DB/Part-DB-symfony).
|
||||
*
|
||||
* Copyright (C) 2019 - 2025 Jan Böhmer (https://github.com/jbtronics)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published
|
||||
* by the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
|
||||
namespace App\Settings\BehaviorSettings;
|
||||
|
||||
use App\Settings\SettingsIcon;
|
||||
use Jbtronics\SettingsBundle\Metadata\EnvVarMode;
|
||||
use Jbtronics\SettingsBundle\Settings\Settings;
|
||||
use Jbtronics\SettingsBundle\Settings\SettingsParameter;
|
||||
use Symfony\Component\Translation\TranslatableMessage as TM;
|
||||
|
||||
#[Settings(name: "keybindings", label: new TM("settings.behavior.keybindings"))]
|
||||
#[SettingsIcon('fa-keyboard')]
|
||||
class KeybindingsSettings
|
||||
{
|
||||
/**
|
||||
* Whether to enable special character keybindings (Alt+key) in text input fields
|
||||
* @var bool
|
||||
*/
|
||||
#[SettingsParameter(
|
||||
label: new TM("settings.behavior.keybindings.enable_special_characters"),
|
||||
description: new TM("settings.behavior.keybindings.enable_special_characters.help"),
|
||||
envVar: "bool:KEYBINDINGS_SPECIAL_CHARS_ENABLED",
|
||||
envVarMode: EnvVarMode::OVERWRITE
|
||||
)]
|
||||
public bool $enableSpecialCharacters = true;
|
||||
}
|
||||
|
|
@ -68,7 +68,9 @@
|
|||
{{ encore_entry_script_tags('webauthn_tfa') }}
|
||||
{% endblock %}
|
||||
</head>
|
||||
<body data-base-url="{{ path('homepage', {'_locale': app.request.locale}) }}" data-locale="{{ app.request.locale|default("en")|slice(0,2) }}">
|
||||
<body data-base-url="{{ path('homepage', {'_locale': app.request.locale}) }}"
|
||||
data-locale="{{ app.request.locale|default("en")|slice(0,2) }}"
|
||||
data-keybindings-special-characters="{{ settings_instance('keybindings').enableSpecialCharacters ? 'true' : 'false' }}">
|
||||
{% block body %}
|
||||
<header>
|
||||
<turbo-frame id="navbar-frame" target="content" data-turbo-action="advance">
|
||||
|
|
|
|||
|
|
@ -10287,6 +10287,24 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<target>Show the image overlay with attachment details on hovering over the part image gallery.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="keybind1" name="settings.behavior.keybindings">
|
||||
<segment state="translated">
|
||||
<source>settings.behavior.keybindings</source>
|
||||
<target>Keybindings</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="keybind2" name="settings.behavior.keybindings.enable_special_characters">
|
||||
<segment state="translated">
|
||||
<source>settings.behavior.keybindings.enable_special_characters</source>
|
||||
<target>Enable special character keybindings</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="keybind3" name="settings.behavior.keybindings.enable_special_characters.help">
|
||||
<segment state="translated">
|
||||
<source>settings.behavior.keybindings.enable_special_characters.help</source>
|
||||
<target>Enable Alt+key shortcuts to insert special characters (Greek letters, mathematical symbols, etc.) in text input fields. Disable this if the shortcuts conflict with your keyboard layout or system shortcuts.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="ALfPkeR" name="perm.config.change_system_settings">
|
||||
<segment state="translated">
|
||||
<source>perm.config.change_system_settings</source>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue