From c2908ec6a0d7b62996cdb8da0350705bdad691bf Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Mon, 27 Apr 2020 15:10:16 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- app/assets/javascripts/autosave.js | 13 +++- .../snippets/components/snippet_blob_view.vue | 1 + app/assets/javascripts/static_site_editor/index.js | 6 +- app/controllers/projects/refs_controller.rb | 2 +- app/controllers/projects/tree_controller.rb | 2 +- app/models/resource_milestone_event.rb | 4 + app/services/issuable/clone/attributes_rewriter.rb | 33 +++++--- .../add-ops-strategies-user-lists-table.yml | 5 ++ .../unreleased/dmishunov-clone-btn-margin.yml | 5 ++ ...3749_create_operations_strategies_user_lists.rb | 14 ++++ db/structure.sql | 31 ++++++++ .../geo/replication/updating_the_geo_nodes.md | 1 + doc/administration/uploads.md | 18 ++--- doc/api/issues.md | 6 +- doc/install/installation.md | 26 +++++-- doc/integration/omniauth.md | 2 +- doc/user/packages/index.md | 1 - doc/user/packages/npm_registry/index.md | 8 ++ doc/user/project/file_lock.md | 3 +- doc/user/project/issues/due_dates.md | 5 ++ lib/gitlab/static_site_editor/config.rb | 2 +- locale/gitlab.pot | 14 +++- package.json | 2 +- spec/frontend/autosave_spec.js | 90 +++++++++++++++++++++- spec/lib/gitlab/static_site_editor/config_spec.rb | 12 +-- spec/models/resource_milestone_event_spec.rb | 17 ++++ spec/requests/api/terraform/state_spec.rb | 16 ++++ .../issuable/clone/attributes_rewriter_spec.rb | 6 +- spec/support/unicorn.rb | 27 +++++++ yarn.lock | 8 +- 30 files changed, 320 insertions(+), 60 deletions(-) create mode 100644 changelogs/unreleased/add-ops-strategies-user-lists-table.yml create mode 100644 changelogs/unreleased/dmishunov-clone-btn-margin.yml create mode 100644 db/migrate/20200422213749_create_operations_strategies_user_lists.rb create mode 100644 spec/support/unicorn.rb diff --git a/app/assets/javascripts/autosave.js b/app/assets/javascripts/autosave.js index 07d79ea1c70..5f50fcc112e 100644 --- a/app/assets/javascripts/autosave.js +++ b/app/assets/javascripts/autosave.js @@ -3,7 +3,7 @@ import AccessorUtilities from './lib/utils/accessor'; export default class Autosave { - constructor(field, key, fallbackKey) { + constructor(field, key, fallbackKey, lockVersion) { this.field = field; this.isLocalStorageAvailable = AccessorUtilities.isLocalStorageAccessSafe(); @@ -12,6 +12,8 @@ export default class Autosave { } this.key = `autosave/${key}`; this.fallbackKey = fallbackKey; + this.lockVersionKey = `${this.key}/lockVersion`; + this.lockVersion = lockVersion; this.field.data('autosave', this); this.restore(); this.field.on('input', () => this.save()); @@ -40,6 +42,11 @@ export default class Autosave { } } + getSavedLockVersion() { + if (!this.isLocalStorageAvailable) return; + return window.localStorage.getItem(this.lockVersionKey); + } + save() { if (!this.field.length) return; @@ -49,6 +56,9 @@ export default class Autosave { if (this.fallbackKey) { window.localStorage.setItem(this.fallbackKey, text); } + if (this.lockVersion !== undefined) { + window.localStorage.setItem(this.lockVersionKey, this.lockVersion); + } return window.localStorage.setItem(this.key, text); } @@ -58,6 +68,7 @@ export default class Autosave { reset() { if (!this.isLocalStorageAvailable) return; + window.localStorage.removeItem(this.lockVersionKey); window.localStorage.removeItem(this.fallbackKey); return window.localStorage.removeItem(this.key); } diff --git a/app/assets/javascripts/snippets/components/snippet_blob_view.vue b/app/assets/javascripts/snippets/components/snippet_blob_view.vue index 02a0fc7686d..d615eaadb78 100644 --- a/app/assets/javascripts/snippets/components/snippet_blob_view.vue +++ b/app/assets/javascripts/snippets/components/snippet_blob_view.vue @@ -75,6 +75,7 @@ export default {