fix #1310: password generator on the start screen

This commit is contained in:
antelle 2019-10-17 19:52:34 +02:00
parent c62193d1fe
commit b08ff12760
6 changed files with 35 additions and 3 deletions

View File

@ -184,6 +184,7 @@
"openNewFile": "New",
"openMore": "More",
"openDemo": "Demo",
"openGenerate": "Generate",
"openXml": "Import XML",
"openCaps": "Caps Lock is on",
"openClickToOpen": "Click to open a file",

View File

@ -81,7 +81,8 @@ class GeneratorView extends View {
opt: this.gen,
hide: this.hide,
presets: this.presets,
preset: this.preset
preset: this.preset,
showTemplateEditor: !this.model.noTemplateEditor
});
this.resultEl = this.$el.find('.gen__result');
this.$el.css(this.model.pos);

View File

@ -18,6 +18,7 @@ import { InputFx } from 'util/ui/input-fx';
import { OpenConfigView } from 'views/open-config-view';
import { StorageFileListView } from 'views/storage-file-list-view';
import { escape, omit } from 'util/fn';
import { GeneratorView } from 'views/generator-view';
import template from 'templates/open.hbs';
const logger = new Logger('open-view');
@ -44,6 +45,7 @@ class OpenView extends View {
'click .open__pass-enter-btn': 'openDb',
'click .open__settings-key-file': 'openKeyFile',
'click .open__last-item': 'openLast',
'click .open__icon-generate': 'toggleGenerator',
dragover: 'dragover',
dragleave: 'dragleave',
drop: 'drop'
@ -930,6 +932,27 @@ class OpenView extends View {
moveOpenFileSelectionUp() {
this.moveOpenFileSelection(-1);
}
toggleGenerator(e) {
e.stopPropagation();
if (this.views.gen) {
this.views.gen.remove();
return;
}
const el = this.$el.find('.open__icon-generate');
const rect = el[0].getBoundingClientRect();
const { left, top } = rect;
const generator = new GeneratorView({
copy: true,
noTemplateEditor: true,
pos: { top, left }
});
generator.render();
generator.once('remove', () => {
delete this.views.gen;
});
this.views.gen = generator;
}
}
export { OpenView };

View File

@ -14,9 +14,11 @@
</div>
<select class="gen__sel-tpl input-base">
{{#each presets as |ps|}}
<option value="{{ps.name}}" {{#ifeq ps.name ../preset}}selected{{/ifeq}}>{{ps.title}}</option>
<option value="{{ps.name}}" {{#ifeq ps.name ../preset}}selected{{/ifeq}}>{{ps.title}}</option>
{{/each}}
<option value="...">...</option>
{{#if showTemplateEditor}}
<option value="...">...</option>
{{/if}}
</select>
<input type="range" class="gen__length-range" value="{{opt.pseudoLength}}" min="0" max="25" />
<div>

View File

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

View File

@ -8,6 +8,7 @@ Release notes
`+` #862: downloading attachments on mobile
`+` #480: option to launch the app minimized
`+` #1307: option to disable Markdown support
`+` #1310: password generator on the start screen
`-` fix #1273: untranslated menu items
`-` fix #1311: better monospace fonts