mirror of
https://github.com/keepassxreboot/keepassxc-browser.git
synced 2026-03-11 08:54:43 +00:00
1092 lines
64 KiB
HTML
1092 lines
64 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title data-i18n="optionsTitle"></title>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<link rel="stylesheet" href="../css/colors.css">
|
|
<link rel="stylesheet" href="../bootstrap/bootstrap.min.css">
|
|
<link rel="stylesheet" href="../fonts/fork-awesome.min.css">
|
|
<link rel="stylesheet" href="options.css">
|
|
<link rel="icon" type="image/png" href="../icons/keepassxc_32x32.png" sizes="32x32">
|
|
<link rel="icon" type="image/png" href="../icons/keepassxc_64x64.png" sizes="64x64">
|
|
<link rel="icon" type="image/png" href="../icons/keepassxc_96x96.png" sizes="96x96">
|
|
<script src="../common/browser-polyfill.min.js"></script>
|
|
<script src="../common/global.js"></script>
|
|
<script src="../common/global_ui.js"></script>
|
|
<script src="../common/sites.js"></script>
|
|
<script src="../bootstrap/bootstrap.min.js"></script>
|
|
<script src="options.js"></script>
|
|
<script src="../common/translate.js" defer></script>
|
|
</head>
|
|
<body class="pt-3 pb-5">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<nav class="col-md-3 col-lg-2 sidebar">
|
|
<button class="navbar-dark navbar-toggler collapsed d-block d-md-none pt-2" type="button" data-bs-toggle="collapse" data-bs-target="#sidebar" aria-controls="sidebar">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
<div class="collapse d-none d-md-block" id="sidebar">
|
|
<h1 class="text-uppercase text-white d-none d-md-flex px-3 pb-4 mt-4 mb-1">KeePassXC-Browser</h1>
|
|
<ul class="nav flex-column mb-2 text-uppercase">
|
|
<li class="active nav-item">
|
|
<a class="nav-link text-light rounded-sm" href="#general-settings">
|
|
<i class="fa fa-ellipsis-h fa-lg pe-2" aria-hidden="true"></i>
|
|
<span class="menu-item" data-i18n="optionsMenuGeneral"></span>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link text-light rounded-sm" href="#connected-databases">
|
|
<i class="fa fa-link fa-lg pe-2" aria-hidden="true"></i>
|
|
<span class="menu-item" data-i18n="optionsMenuConnectedDatabases"></span>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link text-light rounded-sm" href="#custom-fields">
|
|
<i class="fa fa-sign-in fa-lg pe-2" aria-hidden="true"></i>
|
|
<span class="menu-item" data-i18n="optionsMenuCustomFields"></span>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link text-light rounded-sm" href="#site-preferences">
|
|
<i class="fa fa-wrench fa-lg pe-2" aria-hidden="true"></i>
|
|
<span class="menu-item" data-i18n="optionsMenuSitePreferences"></span>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link text-light rounded-sm" href="#about">
|
|
<i class="fa fa-info-circle fa-lg pe-2" aria-hidden="true"></i>
|
|
<span class="menu-item" data-i18n="optionsMenuAbout"></span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<footer class="px-3 mt-4 mb-1 text-uppercase position-absolute small text-muted">
|
|
© 2017-2025 - KeePassXC Team
|
|
</footer>
|
|
</nav>
|
|
|
|
<main class="col-md-9 col-lg-10 offset-md-3 offset-lg-2 px-4 mt-5 mt-md-0">
|
|
<div class="content">
|
|
|
|
<!-- General Settings -->
|
|
<div class="tab" id="tab-general-settings">
|
|
<h2 class="pb-3 mt-0" data-i18n="optionsGeneralSettingsTab"></h2>
|
|
|
|
<!-- User interface -->
|
|
<div class="card my-4 shadow">
|
|
<div class="card-header h6 rounded-0">
|
|
<i class="fa fa-television" aria-hidden="true"></i>
|
|
<span data-i18n="optionsUserInterfaceTitle"></span>
|
|
</div>
|
|
<div class="card-body">
|
|
|
|
<!-- Color theme -->
|
|
<div class="form-group col-sm-3 pb-2">
|
|
<label for="colorTheme" class="form-label" data-i18n="optionsThemeSelectionHeader"></label>
|
|
<select class="form-select form-select-sm col-md-3 col-lg-2" id="colorTheme" data-i18n="[title]optionsThemeSelection">
|
|
<option value="system" data-i18n="optionsThemeSystem"></option>
|
|
<option value="dark" data-i18n="optionsThemeDark"></option>
|
|
<option value="light" data-i18n="optionsThemeLight"></option>
|
|
</select>
|
|
</div>
|
|
|
|
<!-- Activate username icons -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="showLoginFormIcon" id="usernameIconsCheckBox" value="true">
|
|
<label class="form-check-label" for="usernameIconsCheckBox" data-i18n="optionsCheckboxUsernameIcons"></label>
|
|
<div id="passwordHelpBlock" class="form-text" data-i18n="optionsShowLoginFormIconHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Activate password icons -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="usePasswordGeneratorIcons" id="passwordIconsCheckBox" value="true">
|
|
<label class="form-check-label" for="passwordIconsCheckBox" data-i18n="optionsCheckboxUsePasswordGenerator"></label>
|
|
<div class="form-text" data-i18n="optionsUsePasswordGeneratorHelpText"></div>
|
|
<div class="form-text" data-i18n="optionsUsePasswordGeneratorHelpTextSecond"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Activate TOTP icons -->
|
|
<div class="form-group">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="showOTPIcon" id="totpIconsCheckBox" value="true">
|
|
<label class="form-check-label" for="totpIconsCheckBox" data-i18n="optionsCheckboxOTPIcons"></label>
|
|
<div class="form-text" data-i18n="optionsShowOTPIconHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="alert alert-secondary mt-3 col-lg-9" role="alert" id="iconAlert">
|
|
<i class="fa fa-exclamation-circle" aria-hidden="true"></i>
|
|
<span data-i18n="optionsHideIconsAlertText"></span>
|
|
</div>
|
|
|
|
<!-- Show notifications -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="showNotifications" id="notificationCheckBox" value="true">
|
|
<label class="form-check-label" for="notificationCheckBox" data-i18n="optionsCheckboxShowNotifications"></label>
|
|
<div class="form-text" data-i18n="optionsShowNotificationsHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Use monochrome toolbar icons -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="useMonochromeToolbarIcon" id="useMonochromeToolbarIconCheckBox" value="true">
|
|
<label class="form-check-label" for="useMonochromeToolbarIconCheckBox" data-i18n="optionsCheckboxUseMonochromeToolbarIcon"></label>
|
|
<div class="form-text" data-i18n="optionsUseMonochromeToolbarIconHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Use compact mode -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="useCompactMode" id="useCompactModeCheckBox" value="true">
|
|
<label class="form-check-label" for="useCompactModeCheckBox" data-i18n="optionsCheckboxUseCompactMode"></label>
|
|
<div class="form-text" data-i18n="optionsUseCompactModeHelpText"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Keyboard shortcuts -->
|
|
<div class="card my-4 shadow">
|
|
<div class="card-header h6 rounded-0">
|
|
<i class="fa fa-keyboard-o" aria-hidden="true"></i>
|
|
<span data-i18n="optionsKeyboardShortcutsHeader"></span>
|
|
</div>
|
|
<div class="card-body">
|
|
<p>
|
|
<span data-i18n="contextMenuFillUsernameAndPassword"></span>: <span id="fill_username_password-shortcut">error</span><br>
|
|
<span data-i18n="contextMenuFillPassword"></span>: <span id="fill_password-shortcut">error</span><br>
|
|
<span data-i18n="contextMenuFillTOTP"></span>: <span id="fill_totp-shortcut">error</span><br>
|
|
<span data-i18n="contextMenuShowPasswordGenerator"></span>: <span id="show_password_generator-shortcut">error</span>
|
|
</p>
|
|
<p>
|
|
<button class="btn btn-sm btn-success" id="configureCommands" type="button" data-i18n="[title]openNewTab">
|
|
<i class="fa fa-keyboard-o" aria-hidden="true"></i>
|
|
<span data-i18n="optionsConfigureShortcuts"></span>
|
|
</button>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Filling credentials -->
|
|
<div class="card my-4 shadow">
|
|
<div class="card-header h6 rounded-0">
|
|
<i class="fa fa-pencil" aria-hidden="true"></i>
|
|
<span data-i18n="optionsFillingCredentialsTitle"></span>
|
|
</div>
|
|
<div class="card-body">
|
|
|
|
<!-- Automatically retrieve credentials -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="autoRetrieveCredentials" id="autoRetrieveCredentials" value="true">
|
|
<label class="form-check-label" for="autoRetrieveCredentials" data-i18n="optionsCheckboxAutoRetrieveCredentials"></label>
|
|
<div class="form-text" data-i18n="optionsAutoRetrieveCredentialsHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Use Autocomplete Menu -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="autoCompleteUsernames" id="autoCompleteUsernames" value="true">
|
|
<label class="form-check-label" for="autoCompleteUsernames" data-i18n="optionsCheckboxAutoCompleteUsernames"></label>
|
|
<div class="form-text" data-i18n="optionsAutocompleteUsernamesHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Sort credentials by -->
|
|
<div class="form-group col-sm-4 pb-1">
|
|
<label for="credentialSorting" class="py-2" data-i18n="optionsCredentialSortSelectionHeader"></label>
|
|
<select class="form-select form-select-sm col-md-2" id="credentialSorting" data-i18n="[title]optionsCredentialSortSelection">
|
|
<option value="sortByTitle" data-i18n="optionsSortByTitle"></option>
|
|
<option value="sortByUsername" data-i18n="optionsSortByUsername"></option>
|
|
<option value="sortByGroupAndTitle" data-i18n="optionsSortByGroupAndTitle"></option>
|
|
<option value="sortByGroupAndUsername" data-i18n="optionsSortByGroupAndUsername"></option>
|
|
</select>
|
|
</div>
|
|
|
|
<!-- Credential sorting after fill -->
|
|
<div class="form-group col-sm-4 pb-1">
|
|
<label for="afterFillSorting" class="py-2" data-i18n="optionsFillSortPriority"></label>
|
|
<select class="form-select form-select-sm col-md-2" id="afterFillSorting" data-i18n="[title]optionsFillSortPriority">
|
|
<option value="sortByMatchingCredentials" data-i18n="optionsFillSortByMatchingCredentials"></option>
|
|
<option value="sortByRelevantEntry" data-i18n="optionsFillSortByRelevantEntry"></option>
|
|
</select>
|
|
</div>
|
|
<div class="pb-1">
|
|
<span class="form-text text-muted" data-i18n="optionsFillSortPriorityHelpText"></span>
|
|
</div>
|
|
|
|
<!-- Automatically fill in relevant credential entries -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch mt-2">
|
|
<input class="form-check-input" type="checkbox" name="autoFillRelevantCredential" id="autoFillRelevantCredential" value="true">
|
|
<label class="form-check-label" for="autoFillRelevantCredential" data-i18n="optionsCheckboxAutoFillRelevantCredential"></label>
|
|
<div class="form-text" data-i18n="optionsAutoFillRelevantCredentialHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Credential sorting after fill for TOTP -->
|
|
<div class="form-group col-sm-4 pb-1">
|
|
<label for="afterFillSortingTotp" class="py-2" data-i18n="optionsFillSortPriorityTotp"></label>
|
|
<select class="form-select form-select-sm col-md-2" id="afterFillSortingTotp" data-i18n="[title]optionsFillSortPriorityTotp">
|
|
<option value="sortByMatchingCredentials" data-i18n="optionsFillSortByMatchingCredentials"></option>
|
|
<option value="sortByRelevantEntry" data-i18n="optionsFillSortByRelevantEntry"></option>
|
|
</select>
|
|
</div>
|
|
<div class="pb-1">
|
|
<span class="form-text text-muted" data-i18n="optionsFillSortPriorityTotpHelpText"></span>
|
|
</div>
|
|
|
|
<!-- Use Auto-Submit -->
|
|
<div class="form-group py-2 pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="autoSubmit" id="autoSubmit" value="true">
|
|
<label class="form-check-label" for="autoSubmit" data-i18n="optionsCheckboxAutoSubmit"></label>
|
|
<div class="form-text" data-i18n="optionsAutoSubmitHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Automatically fill single-credential entries -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="autoFillSingleEntry" id="autoFillSingleEntry" value="true">
|
|
<label class="form-check-label" for="autoFillSingleEntry" data-i18n="optionsCheckboxAutoFillSingleEntry"></label>
|
|
<div class="form-text" data-i18n="optionsAutoFillSingleEntryHelpText"></div>
|
|
|
|
<div class="alert alert-warning mt-3 col-lg-9" role="alert">
|
|
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
|
|
<span data-i18n="optionsAutoFillSingleEntryWarning"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Automatically fill single-credential TOTP fields -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="autoFillSingleTotp" id="autoFillSingleTotp" value="true">
|
|
<label class="form-check-label" for="autoFillSingleTotp" data-i18n="optionsCheckboxAutoFillSingleTotp"></label>
|
|
<div class="form-text" data-i18n="optionsAutoFillSingleTotpHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Autofill HTTP Auth dialogs -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="autoFillAndSend" id="autoFillAndSend" value="true">
|
|
<label class="form-check-label" for="autoFillAndSend" data-i18n="optionsCheckboxAutoFillAndSend"></label>
|
|
<div class="form-text" data-i18n="optionsAutoFillAndSendHelpText"></div>
|
|
<div class="form-text" data-i18n="optionsAutoFillAndSendHelpTextSecond"></div>
|
|
<img src="/options/http-auth-dialog.png" data-i18n="[alt]httpAuthDialog" class="img-fluid mt-2">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Saving credentials -->
|
|
<div class="card my-4 shadow">
|
|
<div class="card-header h6 rounded-0">
|
|
<i class="fa fa-save" aria-hidden="true"></i>
|
|
<span data-i18n="optionsSavingCredentialsTitle"></span>
|
|
</div>
|
|
<div class="card-body">
|
|
|
|
<!-- Show Credential Banner -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="showLoginNotifications" id="showLoginNotifications" value="true">
|
|
<label class="form-check-label" for="showLoginNotifications" data-i18n="optionsCheckboxShowLoginNotifications"></label>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Ask where to save credentials -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="defaultGroupAlwaysAsk" id="defaultGroupAlwaysAsk" value="true">
|
|
<label class="form-check-label" for="defaultGroupAlwaysAsk" data-i18n="optionsLabelDefaultGroupCheckboxText"></label>
|
|
<div class="form-text" data-i18n="optionsLabelDefaultGroupCheckboxHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Default group for saving -->
|
|
<div class="form-group pb-2">
|
|
<label for="defaultGroup" class="pb-2" data-i18n="optionsLabelDefaultGroup"></label>
|
|
<div class="input-group w-75">
|
|
<input class="form-control form-control-sm" type="text" id="defaultGroup" placeholder="KeePassXC-Browser Passwords">
|
|
<button class="btn btn-sm btn-primary" type="button" id="defaultGroupButton" data-i18n="[title]optionsButtonSave">
|
|
<i class="fa fa-save" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonSave"></span>
|
|
</button>
|
|
<button class="btn btn-sm btn-danger" type="button" id="defaultGroupButtonReset" data-i18n="[title]optionsButtonReset">
|
|
<i class="fa fa-remove" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonReset"></span>
|
|
</button>
|
|
</div>
|
|
<div class="form-text help-text" data-i18n="optionsDefaultGroupHelpText"></div>
|
|
</div>
|
|
|
|
<!-- Save domain only -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="saveDomainOnlyNewCreds" id="saveDomainOnlyNewCreds" value="true">
|
|
<label class="form-check-label" for="saveDomainOnlyNewCreds" data-i18n="optionsSaveDomainOnly"></label>
|
|
<div class="form-text" data-i18n="optionsSaveDomainOnlyHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Download favicon to entry after save -->
|
|
<div class="form-group pb-1" id="downloadFaviconAfterSaveFormGroup">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="downloadFaviconAfterSave" id="downloadFaviconAfterSave" value="true">
|
|
<label class="form-check-label" for="downloadFaviconAfterSave" data-i18n="optionsDownloadFaviconAfterSave"></label>
|
|
<div class="form-text" data-i18n="optionsDownloadFaviconAfterSaveHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Number of allowed redirects -->
|
|
<div class="form-group w-50 pb-2">
|
|
<label id="redirectAllowanceLabel" class="font-weight-normal" for="redirectAllowance" data-i18n="optionsRedirectAllowance" data-i18n-placeholder="1"></label>
|
|
<input type="range" class="form-range" id="redirectAllowance" name="redirectAllowance" min="1" max="11" step="1" value="1">
|
|
<div class="form-text help-text" data-i18n="optionsRedirectAllowanceHelpText"></div>
|
|
</div>
|
|
|
|
<!-- Default password manager -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="defaultPasswordManager" id="defaultPasswordManager" value="true" />
|
|
<label class="form-check-label" for="defaultPasswordManager" data-i18n="optionsDefaultPasswordManager"></label>
|
|
<div class="form-text" data-i18n="optionsDefaultPasswordManagerHelpText"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Passkeys -->
|
|
<div class="card my-4 shadow" id="passkeysOptionsCard">
|
|
<div class="card-header h6 rounded-0">
|
|
<i class="fa fa-user-circle-o" aria-hidden="true"></i>
|
|
<span data-i18n="optionsPasskeysTitle"></span>
|
|
</div>
|
|
<div class="card-body">
|
|
<!-- Enable Passkeys -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="passkeys" id="passkeys" value="true" />
|
|
<label class="form-check-label" for="passkeys" data-i18n="optionsPasskeysEnable"></label>
|
|
<div class="form-text help-text" data-i18n="optionsPasskeysEnableHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Enable Passkeys fallback -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="passkeysFallback" id="passkeysFallback" value="true" />
|
|
<label class="form-check-label" for="passkeysFallback" data-i18n="optionsPasskeysEnableFallback"></label>
|
|
<div class="form-text help-text" data-i18n="optionsPasskeysEnableFallbackHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Default group for saving passkeys -->
|
|
<div class="form-group pb-2" id="passkeysDefaultGroup">
|
|
<label for="defaultPasskeyGroup" class="pb-2" data-i18n="optionsLabelDefaultPasskeyGroup"></label>
|
|
<div class="input-group w-75">
|
|
<input class="form-control form-control-sm" type="text" id="defaultPasskeyGroup" placeholder="KeePassXC-Browser Passkeys">
|
|
<button class="btn btn-sm btn-primary" type="button" id="defaultPasskeyGroupButton">
|
|
<i class="fa fa-save" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonSave"></span>
|
|
</button>
|
|
<button class="btn btn-sm btn-danger" type="button" id="defaultPasskeyGroupButtonReset">
|
|
<i class="fa fa-remove" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonReset"></span>
|
|
</button>
|
|
</div>
|
|
<div class="form-text help-text" data-i18n="optionsDefaultGroupHelpText"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Updates -->
|
|
<div class="card my-4 shadow">
|
|
<div class="card-header h6 rounded-0">
|
|
<i class="fa fa-clock-o" aria-hidden="true"></i>
|
|
<span data-i18n="optionsUpdatesTitle"></span>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="help-block kphVersion">
|
|
<p>
|
|
<span data-i18n="optionsVersionInfoText"></span>
|
|
<br>
|
|
<span data-i18n="optionsVersionDownload" data-i18n-placeholder="<a target='_blank' href='https://keepassxc.org/'>https://keepassxc.org/</a>"></span>
|
|
</p>
|
|
<p>
|
|
<span data-i18n="optionsVersionRunning" data-i18n-placeholder="<span class='yourVersion'></span>"></span>
|
|
</p>
|
|
<p>
|
|
<span data-i18n="optionsLatestVersion" data-i18n-placeholder="<span class='latestVersion'></span>"></span>
|
|
</p>
|
|
<button class="btn btn-sm btn-success checkUpdateKeePassXC">
|
|
<i class="fa fa-refresh" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonUpdate"></span>
|
|
</button>
|
|
<div class="mt-3">
|
|
<div class="pb-1" data-i18n="optionsRadioText"></div>
|
|
<div class="form-check form-check-inline">
|
|
<input class="form-check-input" type="radio" name="checkUpdateKeePassXC" id="checkUpdateThreeDays">
|
|
<label class="form-check-label" for="checkUpdateThreeDays"><span data-i18n="optionsRadioThreeDays"></span></label>
|
|
</div>
|
|
<div class="form-check form-check-inline">
|
|
<input class="form-check-input" type="radio" name="checkUpdateKeePassXC" id="checkUpdateOneWeek">
|
|
<label class="form-check-label" for="checkUpdateOneWeek"><span data-i18n="optionsRadioWeek"></span></label>
|
|
</div>
|
|
<div class="form-check form-check-inline">
|
|
<input class="form-check-input" type="radio" name="checkUpdateKeePassXC" id="checkUpdateOneMonth">
|
|
<label class="form-check-label" for="checkUpdateOneMonth"><span data-i18n="optionsRadioMonth"></span></label>
|
|
</div>
|
|
<div class="form-check form-check-inline">
|
|
<input class="form-check-input" type="radio" name="checkUpdateKeePassXC" id="checkUpdateNever">
|
|
<label class="form-check-label" for="checkUpdateNever"><span data-i18n="optionsRadioNever"></span></label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Advanced settings -->
|
|
<div class="card my-4 shadow">
|
|
<div class="card-header h6 rounded-0">
|
|
<i class="fa fa-pencil" aria-hidden="true"></i>
|
|
<span data-i18n="optionsAdvancedSettingsTitle"></span>
|
|
</div>
|
|
|
|
<!-- Use dynamic input field detection -->
|
|
<div class="card-body">
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="useObserver" id="useObserver" value="true">
|
|
<label class="form-check-label" for="useObserver" data-i18n="optionsUseObserver"></label>
|
|
<div class="form-text" data-i18n="optionsUseObserverHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Display group name -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="showGroupNameInAutocomplete" id="showGroupNameInAutocomplete" value="true">
|
|
<label class="form-check-label" for="showGroupNameInAutocomplete" data-i18n="optionsCheckboxShowGroupNameInAutocomplete"></label>
|
|
<div class="form-text" data-i18n="optionsShowGroupNameInAutocompleteHelpText"></div>
|
|
<div class="alert alert-info mt-3 col-lg-9" role="alert" id="versionRequiredAlert">
|
|
<i class="fa fa-exclamation-circle" aria-hidden="true"></i>
|
|
<span data-i18n="optionsKeePassXCVersionRequired" data-i18n-placeholder="2.6.0"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Automatic reconnect -->
|
|
<div class="form-group pb-1" hidden>
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="autoReconnect" id="autoReconnect" value="true">
|
|
<label class="form-check-label" for="autoReconnect" data-i18n="optionsCheckboxAutomaticReconnect"></label>
|
|
<div class="form-text" data-i18n="optionsAutomaticReconnectHelpText"></div>
|
|
<div class="alert alert-warning mt-3 col-lg-9" role="alert">
|
|
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
|
|
<span data-i18n="optionsAutomaticReconnectWarning"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Save domain only -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="saveDomainOnly" id="saveDomainOnly" value="true">
|
|
<label class="form-check-label" for="saveDomainOnly" data-i18n="optionsSaveDomainOnly"></label>
|
|
<div class="form-text" data-i18n="optionsSaveDomainOnlyCustomLoginHelpText"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Use predefined sites -->
|
|
<div class="form-group pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="usePredefinedSites" id="usePredefinedSites" value="true">
|
|
<label class="form-check-label" for="usePredefinedSites" data-i18n="optionsUsePredefinedSites"></label>
|
|
<div class="form-text" data-i18n="optionsUsePredefinedSitesHelpText"></div>
|
|
<details id="predefinedSiteList">
|
|
<summary><span data-i18n="optionsPredefinedSiteList"></span></summary>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Clear credential timeout -->
|
|
<div class="form-group mt-2 pb-1">
|
|
<label for="clearCredentialTimeout" data-i18n="optionsClearCredentialsTimeout"></label>
|
|
<div class="input-group w-25 mt-2">
|
|
<input class="form-control form-control-sm" type="number" id="clearCredentialTimeout" min="0" max="3600" required>
|
|
</div>
|
|
<div class="form-text" data-i18n="optionsClearCredentialsTimeoutHelpText"></div>
|
|
</div>
|
|
|
|
<!-- Debug logging -->
|
|
<div class="form-group mt-2 pb-1">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" name="debugLogging" id="debugLogging" value="false">
|
|
<label class="form-check-label" for="debugLogging" data-i18n="optionsDebugLogging"></label>
|
|
<div class="form-text" data-i18n="optionsDebugLoggingHelpText"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Import/Export settings -->
|
|
<div class="card my-4 shadow">
|
|
<div class="card-header h6 rounded-0">
|
|
<i class="fa fa-exchange fa-rotate-90" aria-hidden="true"></i>
|
|
<span data-i18n="optionsImportExportSettings"></span>
|
|
</div>
|
|
|
|
<div class="card-body">
|
|
<div class="form-group">
|
|
<button class="btn btn-sm btn-primary" id="importSettingsButton" data-i18n="[title]optionsButtonImport">
|
|
<i class="fa fa-arrow-down" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonImport"></span>
|
|
</button>
|
|
<button class="btn btn-sm btn-primary ms-2" id="exportSettingsButton" data-i18n="[title]optionsButtonExport">
|
|
<i class="fa fa-arrow-up" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonExport"></span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="dialogImportSettings" class="modal fade" tabindex="-1" role="dialog">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="myModalLabel" data-i18n="optionsImportSettingsDialogTitle"></h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p data-i18n="optionsImportSettingsDialogText"></p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button class="btn btn-sm btn-secondary" data-bs-dismiss="modal" aria-hidden="true">
|
|
<i class="fa fa-remove" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonCancel"></span>
|
|
</button>
|
|
<button class="btn btn-sm yes btn-success">
|
|
<i class="fa fa-check" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonImport"></span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Connected Databases -->
|
|
<div class="tab d-none" id="tab-connected-databases">
|
|
<h2 class="pb-3 mt-0" data-i18n="optionsConnectedDatabasesTab"></h2>
|
|
|
|
<div class="card my-4 shadow">
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-sm table-striped table-bordered">
|
|
<caption data-i18n="optionsConnectedDatabasesText"></caption>
|
|
<thead>
|
|
<tr>
|
|
<th scope="col"><span data-i18n="optionsDatabaseIdentifier"></span></th>
|
|
<th scope="col"><span data-i18n="optionsDatabaseKey"></span></th>
|
|
<th scope="col"><span data-i18n="optionsDatabaseLastUsed"></span></th>
|
|
<th scope="col"><span data-i18n="optionsDatabaseCreated"></span></th>
|
|
<th scope="col"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="empty">
|
|
<td colspan="5"><span data-i18n="optionsConnectedDatabasesNotFound"></span></td>
|
|
</tr>
|
|
<tr class="clone d-none">
|
|
<td class="identifier text-nowrap"></td>
|
|
<td class="key text-nowrap"></td>
|
|
<td class="last-used text-nowrap"></td>
|
|
<td class="created text-nowrap"></td>
|
|
<td class="text-nowrap">
|
|
<button class="btn btn-sm delete btn-danger" data-i18n="[title]removeConnectedDatabaseButtonTitle">
|
|
<i class="fa fa-remove" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonRemove"></span>
|
|
</button>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div>
|
|
<button id="connect-button" class="btn btn-sm btn-success" data-i18n="[title]connectButtonTitle">
|
|
<i class="fa fa-link" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonConnect"></span>
|
|
</button>
|
|
</div>
|
|
|
|
<div id="dialogDeleteConnectedDatabase" class="modal fade" tabindex="-1" role="dialog">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" data-i18n="optionsDatabasesRemoveIdentifier"></h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p><span data-i18n="optionsDatabasesRemoveIdentifierConfirmFirst" data-i18n-placeholder="<strong></strong>"></span></p>
|
|
<p class="help-block" data-i18n="optionsDatabasesRemoveIdentifierConfirmSecond"></p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button class="btn btn-sm btn-secondary" data-bs-dismiss="modal" aria-hidden="true">
|
|
<i class="fa fa-remove" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonCancel"></span>
|
|
</button>
|
|
<button class="btn btn-sm yes btn-danger">
|
|
<i class="fa fa-check" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonRemoveNow"></span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Custom login fields -->
|
|
<div class="tab d-none" id="tab-custom-fields">
|
|
<h2 class="pb-3 mt-0" data-i18n="optionsCustomFieldsTab"></h2>
|
|
|
|
<div class="card my-4 shadow">
|
|
<div class="card-body">
|
|
<p>
|
|
<span data-i18n="optionsCustomFieldsTabHelpTextFirst"></span>
|
|
<br>
|
|
<span data-i18n="optionsCustomFieldsTabHelpTextSecond"></span><em><span data-i18n="popupChooseCredentialsText"></span></em>.
|
|
</p>
|
|
<div class="table-responsive">
|
|
<table class="table table-sm table-striped table-bordered">
|
|
<caption data-i18n="optionsCustomFieldsTableCaption"></caption>
|
|
<thead>
|
|
<tr>
|
|
<th scope="col"><span data-i18n="optionsColumnPageURL"></span></th>
|
|
<th scope="col"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="empty">
|
|
<td colspan="2"><span data-i18n="optionsCustomFieldsNotFound"></span></td>
|
|
</tr>
|
|
<tr class="clone d-none">
|
|
<td></td>
|
|
<td class="text-nowrap">
|
|
<button class="btn btn-sm delete btn-danger" data-i18n="[title]removeCustomLoginFieldsButtonTitle">
|
|
<i class="fa fa-remove" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonRemove"></span>
|
|
</button>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div id="dialogDeleteCustomLoginFields" class="modal fade" tabindex="-1" role="dialog">
|
|
<div class="modal-dialog" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 data-i18n="optionsCustomFieldsRemove"></h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p><span data-i18n="optionsCustomFieldsConfirmation" data-i18n-placeholder="<strong></strong>"></span></p>
|
|
<p class="help-block" data-i18n="optionsCustomFieldsConfirmationHelpText"></p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button class="btn btn-sm btn-secondary" data-bs-dismiss="modal" aria-hidden="true">
|
|
<i class="fa fa-remove" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonCancel"></span>
|
|
</button>
|
|
<button class="btn btn-sm yes btn-danger">
|
|
<i class="fa fa-check" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonRemoveNow"></span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Site preferences -->
|
|
<div class="tab d-none" id="tab-site-preferences">
|
|
<h2 class="pb-3 mt-0" data-i18n="optionsSitePreferencesTab"></h2>
|
|
|
|
<div class="card my-4 shadow">
|
|
<div class="card-body">
|
|
<div>
|
|
<p data-i18n="optionsSitePreferencesTabHelpTextFirst"></p>
|
|
<ul>
|
|
<li><span data-i18n="optionsSitePreferencesTabHelpTextSecond"></span></li>
|
|
<li><span data-i18n="optionsSitePreferencesTabHelpTextThird"></span></li>
|
|
<li><span data-i18n="optionsSitePreferencesTabHelpTextFourth"></span></li>
|
|
<li><span data-i18n="optionsSitePreferencesImprovedInputFieldDetectionHelpText"></span></li>
|
|
<li><span data-i18n="optionsSitePreferencesAllowIframesHelpText"></span></li>
|
|
</ul>
|
|
</div>
|
|
<hr class="mt-0">
|
|
|
|
<div class="form-group was-validated pb-3">
|
|
<label for="manualUrl" data-i18n="optionsSitePreferencesManualAddText"></label>
|
|
<div class="input-group w-75" id="manualUrlGroup">
|
|
<input class="form-control form-control-sm" type="url" id="manualUrl" aria-label="Manual URL" pattern="file://.*|ftp://.*|http://.*|https://.*" minlength="5" maxlength="2000" required>
|
|
<button class="btn btn-sm btn-primary" type="button" id="sitePreferencesManualAdd" data-i18n="[title]addSitePreferenceButtonTitle">
|
|
<i class="fa fa-plus" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonAdd"></span>
|
|
</button>
|
|
</div>
|
|
<span class="invalid-feedback d-block" data-i18n="optionsSitePreferencesManualAddHelp"></span>
|
|
</div>
|
|
|
|
<div class="table-responsive">
|
|
<table class="table table-sm table-striped table-bordered">
|
|
<caption data-i18n="optionsSitePreferencesTableCaption"></caption>
|
|
<thead>
|
|
<tr>
|
|
<th scope="col"><span data-i18n="optionsColumnPageURL"></span></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"><span data-i18n="optionsColumnFeatures"></span></th>
|
|
<th scope="col"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="empty">
|
|
<td colspan="4"><span data-i18n="optionsSitePreferencesNotFound"></span></td>
|
|
</tr>
|
|
<tr class="clone d-none">
|
|
<td class="text-nowrap">
|
|
<div class="input-group was-validated" id="manualUrlGroup">
|
|
<input class="form-control form-control-sm site-preferences-input" type="url" id="editUrl" aria-label="Edit URL" pattern="file://.*|ftp://.*|http://.*|https://.*" minlength="5" maxlength="2000" required disabled>
|
|
<button class="btn btn-sm btn-primary" type="button" id="sitePreferencesEditUrl" data-i18n="[title]editSitePreferenceButtonTitle">
|
|
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonEdit"></span>
|
|
</button>
|
|
<button class="btn btn-sm btn-danger" type="button" id="sitePreferencesCancelEdit" data-i18n="[title]editSitePreferenceButtonTitle" style="display: none;">
|
|
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonCancel"></span>
|
|
</button>
|
|
<button class="btn btn-sm btn-primary" type="button" id="sitePreferencesSaveEdit" data-i18n="[title]editSitePreferenceButtonTitle" style="display: none;">
|
|
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonSave"></span>
|
|
</button>
|
|
</div>
|
|
</td>
|
|
<td class="text-nowrap">
|
|
<button type="button" class="btn btn-sm btn-primary container-fluid" id="settings-button">
|
|
<span class="non-clickable" data-i18n="optionsSitePreferencesSettings"></span>
|
|
</button>
|
|
</td>
|
|
<td>
|
|
<select class="form-select form-select-sm" id="ignore-select" name="ignore" data-i18n="[title]optionsSitePreferencesSelect">
|
|
<option value="ignoreNothing" data-i18n="optionsSelectionNothing"></option>
|
|
<option value="ignoreNormal" data-i18n="optionsSelectionNormal"></option>
|
|
<option value="ignoreAutoSubmit" data-i18n="optionsSelectionAutoSubmit"></option>
|
|
<option value="ignorePasskeys" data-i18n="optionsSelectionPasskeys"></option>
|
|
<option value="ignoreFull" data-i18n="optionsSelectionFull"></option>
|
|
</select>
|
|
</td>
|
|
<td class="text-nowrap">
|
|
<button class="btn btn-sm delete btn-danger" data-i18n="[title]removeSitePreferencesButtonTitle">
|
|
<i class="fa fa-remove" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonRemove"></span>
|
|
</button>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div id="dialogDeleteSite" class="modal fade" tabindex="-1" role="dialog">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 data-i18n="optionsSitePreferencesRemove"></h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p><span data-i18n="optionsSitePreferencesConfirmation" data-i18n-placeholder="<strong></strong>"></span></p>
|
|
<p class="help-block" data-i18n="optionsSitePreferencesConfirmationHelpText"></p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button class="btn btn-sm btn-secondary" data-bs-dismiss="modal" aria-hidden="true">
|
|
<i class="fa fa-remove" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonCancel"></span>
|
|
</button>
|
|
<button class="btn btn-sm yes btn-danger">
|
|
<i class="fa fa-check" aria-hidden="true"></i>
|
|
<span data-i18n="optionsButtonRemoveNow"></span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Settings dropdown -->
|
|
<div class="card settings-dropdown" style="display: none;">
|
|
<div class="card-body settings-dropdown-body">
|
|
<!-- Username only detection -->
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="checkbox" id="usernameOnly" name="usernameOnly" value="false" data-i18n="[title]optionsColumnUsernameOnly">
|
|
<label class="form-check-label" for="usernameOnly" data-i18n="optionsColumnUsernameOnly"></label>
|
|
</div>
|
|
|
|
<!-- Improved input field detection -->
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="checkbox" id="improvedFieldDetection" name="improvedFieldDetection" value="false" data-i18n="[title]optionsColumnImprovedInputFieldDetection">
|
|
<label class="form-check-label" for="improvedFieldDetection" data-i18n="optionsColumnImprovedInputFieldDetection"></label>
|
|
</div>
|
|
|
|
<!-- Allow iFrames -->
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="checkbox" id="allowIframes" name="allowIframes" value="false" data-i18n="[title]optionsColumnAllowIframes">
|
|
<label class="form-check-label" for="allowIframes" data-i18n="optionsColumnAllowIframes"></label>
|
|
</div>
|
|
|
|
<!-- Add new options below -->
|
|
<!--<hr class="dropdown-divider">-->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- About -->
|
|
<div class="tab d-none" id="tab-about">
|
|
<h2 class="pb-3 mt-0" data-i18n="optionsAboutTab"></h2>
|
|
|
|
<div class="card my-4 shadow">
|
|
<div class="card-header h6 rounded-0">
|
|
<i class="fa fa-desktop" aria-hidden="true"></i>
|
|
<span data-i18n="optionsExtensionTitle"></span>
|
|
</div>
|
|
<div class="card-body">
|
|
<p>
|
|
<span data-i18n="optionsAboutExtensionVersion" data-i18n-placeholder="<span class='versionCIP'></span>"></span>
|
|
<br>
|
|
<span data-i18n="optionsAboutKeePassXCVersion" data-i18n-placeholder="<span class='versionKPH'></span>"></span>
|
|
</p>
|
|
<hr class="mt-0">
|
|
<p>
|
|
<a target="_blank" href="https://chromewebstore.google.com/detail/keepassxc-browser/oboonakemofpalcgghocfoadofidjkkk" data-i18n="[title]openNewTab">
|
|
<span data-i18n="optionsAboutChrome"></span>
|
|
</a>
|
|
<br>
|
|
<a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser/" data-i18n="[title]openNewTab">
|
|
<span data-i18n="optionsAboutMozilla"></span>
|
|
</a>
|
|
<br>
|
|
<a target="_blank" href="https://microsoftedge.microsoft.com/addons/detail/keepassxcbrowser/pdffhmdngciaglkoonimfcmckehcpafo" data-i18n="[title]openNewTab">
|
|
<span data-i18n="optionsAboutEdge"></span>
|
|
</a>
|
|
<br>
|
|
<a target="_blank" href="https://github.com/keepassxreboot/keepassxc-browser" data-i18n="[title]openNewTab">
|
|
<span data-i18n="optionsAboutGitHub"></span>
|
|
</a>
|
|
</p>
|
|
<hr class="mt-0">
|
|
<p>
|
|
<span data-i18n="optionsAboutContributors"></span>:
|
|
<br><a target="_blank" href="https://github.com/varjolintu" data-i18n="[title]openNewTab">Sami Vänttinen</a>
|
|
<br><a target="_blank" href="https://github.com/smorks" data-i18n="[title]openNewTab">Andy Brandt</a>
|
|
<br><a target="_blank" href="https://github.com/pfn" data-i18n="[title]openNewTab">Perry Nguyen</a>
|
|
<br><a target="_blank" href="http://lukas-schulze.de" data-i18n="[title]openNewTab">Lukas Schulze</a>
|
|
<br><a target="_blank" href="https://github.com/stefansundin" data-i18n="[title]openNewTab">Stefan Sundin</a>
|
|
<br><a target="_blank" href="https://github.com/dynobo" data-i18n="[title]openNewTab">dynobo</a>
|
|
</p>
|
|
|
|
<details>
|
|
<summary><span data-i18n="optionsAboutSupporters"></span></summary>
|
|
<pre>
|
|
Patreon Key supporters:
|
|
|
|
Bart Libert
|
|
David Walluscheck
|
|
yuriyk
|
|
</pre>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card my-4 shadow">
|
|
<div class="card-header h6 rounded-0">
|
|
<i class="fa fa-bug" aria-hidden="true"></i>
|
|
<span data-i18n="optionsAboutReportBugs"></span>
|
|
</div>
|
|
<div class="card-body">
|
|
<p>
|
|
<a target="_blank" href="https://github.com/keepassxreboot/keepassxc-browser/issues/new"><span data-i18n="optionsAboutCreateNewIssue"></span></a>
|
|
<br><span data-i18n="optionsAboutDebugInfo"></span>:
|
|
</p>
|
|
<p id="versionInfo" class="float-left">KeePassXC - <span class="kpxcVersion"></span>
|
|
<br>KeePassXC-Browser - <span class="kpxcbrVersion"></span>
|
|
<br>Operating system: <span class="kpxcbrOS"></span>
|
|
<br>Browser: <span class="kpxcbrBrowser"></span>
|
|
</p>
|
|
<button id="copyVersionToClipboard" class="btn btn-sm btn-primary ml-3" data-i18n="[title]copyDebugInfoButtonTitle">
|
|
<i class="fa fa-clipboard"></i>
|
|
<span data-i18n="copyDebugInfoButtonTitle"></span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card my-4 shadow">
|
|
<div class="card-header h6 rounded-0">
|
|
<i class="fa fa-file-code-o" aria-hidden="true"></i>
|
|
<span data-i18n="optionsAboutLicenses"></span>
|
|
</div>
|
|
<div class="card-body">
|
|
<details>
|
|
<summary>Bootstrap</summary>
|
|
<pre>
|
|
The MIT License (MIT)
|
|
|
|
Copyright (c) 2011-2023 The Bootstrap Authors
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
in the Software without restriction, including without limitation the rights
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
THE SOFTWARE.
|
|
</pre>
|
|
</details>
|
|
|
|
<details>
|
|
<summary>Fork Awesome</summary>
|
|
<pre>
|
|
Copyright (c) 2018, Fork Awesome (https://forkawesome.github.io),
|
|
with Reserved Font Name Fork Awesome.
|
|
|
|
|
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
This license is copied below, and is also available with a FAQ at:
|
|
http://scripts.sil.org/OFL
|
|
|
|
|
|
-----------------------------------------------------------
|
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
-----------------------------------------------------------
|
|
|
|
PREAMBLE
|
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
development of collaborative font projects, to support the font creation
|
|
efforts of academic and linguistic communities, and to provide a free and
|
|
open framework in which fonts may be shared and improved in partnership
|
|
with others.
|
|
|
|
The OFL allows the licensed fonts to be used, studied, modified and
|
|
redistributed freely as long as they are not sold by themselves. The
|
|
fonts, including any derivative works, can be bundled, embedded,
|
|
redistributed and/or sold with any software provided that any reserved
|
|
names are not used by derivative works. The fonts and derivatives,
|
|
however, cannot be released under any other type of license. The
|
|
requirement for fonts to remain under this license does not apply
|
|
to any document created using the fonts or their derivatives.
|
|
|
|
DEFINITIONS
|
|
"Font Software" refers to the set of files released by the Copyright
|
|
Holder(s) under this license and clearly marked as such. This may
|
|
include source files, build scripts and documentation.
|
|
|
|
"Reserved Font Name" refers to any names specified as such after the
|
|
copyright statement(s).
|
|
|
|
"Original Version" refers to the collection of Font Software components as
|
|
distributed by the Copyright Holder(s).
|
|
|
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
or substituting -- in part or in whole -- any of the components of the
|
|
Original Version, by changing formats or by porting the Font Software to a
|
|
new environment.
|
|
|
|
"Author" refers to any designer, engineer, programmer, technical
|
|
writer or other person who contributed to the Font Software.
|
|
|
|
PERMISSION & CONDITIONS
|
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
redistribute, and sell modified and unmodified copies of the Font
|
|
Software, subject to the following conditions:
|
|
|
|
1) Neither the Font Software nor any of its individual components,
|
|
in Original or Modified Versions, may be sold by itself.
|
|
|
|
2) Original or Modified Versions of the Font Software may be bundled,
|
|
redistributed and/or sold with any software, provided that each copy
|
|
contains the above copyright notice and this license. These can be
|
|
included either as stand-alone text files, human-readable headers or
|
|
in the appropriate machine-readable metadata fields within text or
|
|
binary files as long as those fields can be easily viewed by the user.
|
|
|
|
3) No Modified Version of the Font Software may use the Reserved Font
|
|
Name(s) unless explicit written permission is granted by the corresponding
|
|
Copyright Holder. This restriction only applies to the primary font name as
|
|
presented to the users.
|
|
|
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
Software shall not be used to promote, endorse or advertise any
|
|
Modified Version, except to acknowledge the contribution(s) of the
|
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
permission.
|
|
|
|
5) The Font Software, modified or unmodified, in part or in whole,
|
|
must be distributed entirely under this license, and must not be
|
|
distributed under any other license. The requirement for fonts to
|
|
remain under this license does not apply to any document created
|
|
using the Font Software.
|
|
|
|
TERMINATION
|
|
This license becomes null and void if any of the above conditions are
|
|
not met.
|
|
|
|
DISCLAIMER
|
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
</pre>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</main>
|
|
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|