diff --git a/app/scripts/locales/base.json b/app/scripts/locales/base.json index a1b8841a..ddcec1cd 100644 --- a/app/scripts/locales/base.json +++ b/app/scripts/locales/base.json @@ -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", diff --git a/app/scripts/views/generator-view.js b/app/scripts/views/generator-view.js index 3fab6867..356aff2d 100644 --- a/app/scripts/views/generator-view.js +++ b/app/scripts/views/generator-view.js @@ -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); diff --git a/app/scripts/views/open-view.js b/app/scripts/views/open-view.js index f0225474..bad3b379 100644 --- a/app/scripts/views/open-view.js +++ b/app/scripts/views/open-view.js @@ -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 }; diff --git a/app/templates/generator.hbs b/app/templates/generator.hbs index 04f58b30..c3d7e6b9 100644 --- a/app/templates/generator.hbs +++ b/app/templates/generator.hbs @@ -14,9 +14,11 @@
diff --git a/app/templates/open.hbs b/app/templates/open.hbs index be49b5b5..66e2601e 100644 --- a/app/templates/open.hbs +++ b/app/templates/open.hbs @@ -51,6 +51,10 @@
{{/if}} {{/if}} +
+ +
{{res 'openGenerate'}}
+
{{#if canOpenSettings}}
diff --git a/release-notes.md b/release-notes.md index 51ce77c2..cbf7b06a 100644 --- a/release-notes.md +++ b/release-notes.md @@ -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