Merge branch 'develop' into usb

# Conflicts:
#	app/scripts/models/app-settings-model.js
#	app/templates/open.hbs
This commit is contained in:
antelle 2020-04-15 18:23:52 +02:00
commit 4fad58b1e9
No known key found for this signature in database
GPG Key ID: 094A2F2D6136A4EE
11 changed files with 63 additions and 68 deletions

View File

@ -457,8 +457,8 @@
"setFileLastSyncUnknown": "unbekannt",
"setFileSyncInProgress": "Synchronisierung läuft",
"setFileSyncError": "Synchronisierungsfehler",
"setFilePass": "Master-Passwort",
"setFileConfirmPass": "Master-Passwort bestätigen",
"setFilePass": "Hauptpasswort",
"setFileConfirmPass": "Hauptpasswort bestätigen",
"setFilePassChange": "Um das Passwort zu ändern, geben Sie es im Bestätigungsfeld an",
"setFilePassChanged": "Das Passwort wurde geändert. Lassen Sie das Feld leer, um das bisherige Passwort zu behalten.",
"setFilePassNotMatch": "Die Passwörter stimmen nicht überein, bitte geben Sie sie erneut ein",

View File

@ -76,6 +76,8 @@ AppSettingsModel.defineModelProperties(
canExportXml: true,
canExportHtml: true,
canSaveTo: true,
canOpenWebdav: true,
canOpenGenerator: true,
canOpenOtpDevice: true,
dropbox: true,

View File

@ -303,27 +303,35 @@ class Plugin extends Model {
}
applyCss(name, data, theme) {
return Promise.resolve().then(() => {
const blob = new Blob([data], { type: 'text/css' });
const objectUrl = URL.createObjectURL(blob);
const id = 'plugin-css-' + name;
const el = this.createElementInHead('link', id, {
rel: 'stylesheet',
href: objectUrl
});
el.addEventListener('load', () => URL.revokeObjectURL(objectUrl));
if (theme) {
const locKey = this.getThemeLocaleKey(theme.name);
SettingsManager.allThemes[theme.name] = locKey;
BaseLocale[locKey] = theme.title;
for (const styleSheet of Array.from(document.styleSheets)) {
if (styleSheet.ownerNode.id === id) {
this.processThemeStyleSheet(styleSheet, theme);
break;
return new Promise((resolve, reject) => {
try {
const blob = new Blob([data], { type: 'text/css' });
const objectUrl = URL.createObjectURL(blob);
const id = 'plugin-css-' + name;
const el = this.createElementInHead('link', id, {
rel: 'stylesheet',
href: objectUrl
});
el.addEventListener('load', () => {
URL.revokeObjectURL(objectUrl);
if (theme) {
const locKey = this.getThemeLocaleKey(theme.name);
SettingsManager.allThemes[theme.name] = locKey;
BaseLocale[locKey] = theme.title;
for (const styleSheet of Array.from(document.styleSheets)) {
if (styleSheet.ownerNode.id === id) {
this.processThemeStyleSheet(styleSheet, theme);
break;
}
}
}
}
this.logger.debug('Plugin style installed');
resolve();
});
} catch (e) {
this.logger.error('Error installing plugin style', e);
reject(e);
}
this.logger.debug('Plugin style installed');
});
}

View File

@ -86,11 +86,17 @@ class OpenView extends View {
Object.keys(Storage).forEach(name => {
const prv = Storage[name];
if (!prv.system && prv.enabled) {
if (name === 'webdav' && !this.model.settings.canOpenWebdav) {
return;
}
storageProviders.push(prv);
}
});
storageProviders.sort((x, y) => (x.uipos || Infinity) - (y.uipos || Infinity));
const showMore = storageProviders.length || this.model.settings.canOpenSettings;
const showMore =
storageProviders.length ||
this.model.settings.canOpenSettings ||
this.model.settings.canOpenGenerator;
const showLogo =
!showMore &&
!this.model.settings.canOpen &&
@ -104,6 +110,7 @@ class OpenView extends View {
canOpen: this.model.settings.canOpen,
canOpenDemo: this.model.settings.canOpenDemo,
canOpenSettings: this.model.settings.canOpenSettings,
canOpenGenerator: this.model.settings.canOpenGenerator,
canCreate: this.model.settings.canCreate,
canRemoveLatest: this.model.settings.canRemoveLatest,
canOpenOtpDevice:

View File

@ -1,54 +1,26 @@
/* prettier-ignore */
/* This file is also parsed in JS to build theme styles, see theme-vars.js */
@function set-theme-vars($t) {
@return map-merge(
$t,
(
muted-color:
mix(
map-get($t, medium-color),
map-get($t, background-color),
map-get($t, mute-percent)
),
muted-color-border:
mix(
map-get($t, medium-color),
map-get($t, background-color),
semi-mute-percent(map-get($t, mute-percent))
),
muted-color: mix(map-get($t, medium-color), map-get($t, background-color), map-get($t, mute-percent)),
muted-color-border: mix(map-get($t, medium-color), map-get($t, background-color), semi-mute-percent(map-get($t, mute-percent))),
text-selection-bg-color: rgba(map-get($t, action-color), 0.3),
text-selection-bg-color-error: rgba(map-get($t, error-color), 0.8),
text-semi-muted-color: mix(map-get($t, action-color), map-get($t, text-color), 0.5),
text-contrast-action-color:
text-contrast-color(
map-get($t, action-color),
map-get($t, color-lightness-shift),
map-get($t, background-color),
map-get($t, text-color)
),
text-contrast-error-color:
text-contrast-color(
map-get($t, error-color),
map-get($t, color-lightness-shift),
map-get($t, background-color),
map-get($t, text-color)
),
text-contrast-action-color: text-contrast-color(map-get($t, action-color), map-get($t, color-lightness-shift), map-get($t, background-color), map-get($t, text-color)),
text-contrast-error-color: text-contrast-color(map-get($t, error-color), map-get($t, color-lightness-shift), map-get($t, background-color), map-get($t, text-color)),
base-border-color: mix(map-get($t, medium-color), map-get($t, background-color), 50%),
accent-border-color: mix(map-get($t, medium-color), map-get($t, background-color), 65%),
light-border-color:
mix(
map-get($t, medium-color),
map-get($t, background-color),
map-get($t, light-border-percent)
),
light-border-color: mix(map-get($t, medium-color), map-get($t, background-color), map-get($t, light-border-percent)),
form-box-border-focus: map-get($t, action-color),
form-box-shadow-color-focus: lightness-alpha(map-get($t, action-color), -5%, -0.3),
form-box-shadow-color-focus-error: lightness-alpha(map-get($t, error-color), -5%, -0.3),
dropdown-box-shadow-color: rgba(map-get($t, medium-color), 0.05),
secondary-background-color:
mix(map-get($t, medium-color), map-get($t, background-color), 10%),
intermediate-background-color:
mix(map-get($t, medium-color), map-get($t, background-color), 3%),
intermediate-pressed-background-color:
mix(map-get($t, medium-color), map-get($t, background-color), 2.6%),
secondary-background-color: mix(map-get($t, medium-color), map-get($t, background-color), 10%),
intermediate-background-color: mix(map-get($t, medium-color), map-get($t, background-color), 3%),
intermediate-pressed-background-color: mix(map-get($t, medium-color), map-get($t, background-color), 2.6%),
disabled-background-color: shade(map-get($t, background-color), 5%),
action-background-color-focus: shade(map-get($t, action-color), 20%),
action-background-color-focus-tr: rgba(shade(map-get($t, action-color), 20%), 0.1),

View File

@ -56,10 +56,12 @@
</div>
{{/if}}
{{/if}}
<div class="open__icon open__icon-generate" tabindex="21" id="open__icon-generate">
<i class="fa fa-bolt open__icon-i"></i>
<div class="open__icon-text">{{res 'openGenerate'}}</div>
</div>
{{#if canOpenGenerator}}
<div class="open__icon open__icon-generate" tabindex="21" id="open__icon-generate">
<i class="fa fa-bolt open__icon-i"></i>
<div class="open__icon-text">{{res 'openGenerate'}}</div>
</div>
{{/if}}
{{#if canOpenSettings}}
<div class="open__icon open__icon-settings" tabindex="22" id="open__icon-settings">
<i class="fa fa-cog open__icon-i"></i>

View File

@ -1,6 +1,6 @@
{
"name": "KeeWeb",
"version": "1.13.3",
"version": "1.13.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "KeeWeb",
"version": "1.13.3",
"version": "1.13.4",
"description": "Free cross-platform password manager compatible with KeePass",
"main": "main.js",
"homepage": "https://keeweb.info",

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "keeweb",
"version": "1.13.3",
"version": "1.13.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "keeweb",
"version": "1.13.3",
"version": "1.13.4",
"description": "Free cross-platform password manager compatible with KeePass",
"main": "Gruntfile.js",
"private": true,

View File

@ -1,5 +1,9 @@
Release notes
-------------
##### v1.13.4 (2020-04-15)
`-` fix #1457: fixed styles in theme plugins
`+` #1456: options to hide webdav and password generator
##### v1.13.3 (2020-04-11)
`-` fix #1451: fixed slow global auto-type on desktop