From 6d31b8f052d30b7e55128d17b66bceed8c6065a9 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 12 Nov 2019 18:06:57 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- app/assets/javascripts/api.js | 5 +- .../javascripts/frequent_items/store/mutations.js | 3 +- app/assets/javascripts/jobs/components/log/log.vue | 26 +- .../notes/components/diff_discussion_header.vue | 133 +++ .../notes/components/noteable_discussion.vue | 111 +-- .../javascripts/releases/detail/components/app.vue | 46 +- .../javascripts/releases/detail/store/state.js | 1 + app/assets/javascripts/repository/index.js | 14 - app/assets/javascripts/repository/pages/index.vue | 18 +- app/assets/javascripts/repository/pages/tree.vue | 18 + app/assets/javascripts/repository/utils/dom.js | 4 + app/assets/javascripts/repository/utils/title.js | 8 +- .../project_selector/project_selector.vue | 42 +- app/helpers/application_settings_helper.rb | 4 +- app/helpers/releases_helper.rb | 3 +- app/helpers/repository_languages_helper.rb | 2 +- app/models/application_setting.rb | 11 +- app/models/application_setting_implementation.rb | 2 - .../application_settings/integrations.html.haml | 2 +- app/views/layouts/_head.html.haml | 1 - app/views/projects/_files.html.haml | 2 +- app/views/projects/_home_panel.html.haml | 2 +- app/views/projects/tree/_readme.html.haml | 2 +- changelogs/unreleased/31912-epic-labels.yml | 5 + .../unreleased/35534-broken-scroll-to-bottom.yml | 5 + changelogs/unreleased/infinite-scroll.yml | 5 + .../unreleased/nfriend-edit-release-ux-cleanup.yml | 5 + db/migrate/20191030135044_create_plan_limits.rb | 14 + .../20191030152934_move_limits_from_plans.rb | 17 + ...93050_remove_pendo_from_application_settings.rb | 19 + .../20191031112603_remove_limits_from_plans.rb | 17 + db/schema.rb | 14 +- doc/api/graphql/reference/gitlab_schema.graphql | 45 + doc/api/graphql/reference/gitlab_schema.json | 943 ++++++++++++--------- doc/api/settings.md | 2 - doc/development/event_tracking/index.md | 4 - .../pages/img/new_project_for_pages_v12_5.png | Bin 0 -> 71618 bytes .../project/pages/img/pages_workflow_v12_5.png | Bin 0 -> 29541 bytes doc/user/project/pages/index.md | 35 +- lib/api/settings.rb | 4 - locale/gitlab.pot | 19 +- .../components/diff_discussion_header_spec.js | 141 +++ .../releases/detail/components/app_spec.js | 19 +- spec/frontend/repository/pages/index_spec.js | 42 + spec/frontend/repository/pages/tree_spec.js | 60 ++ spec/frontend/repository/utils/dom_spec.js | 20 + spec/frontend/repository/utils/title_spec.js | 4 +- spec/helpers/application_settings_helper_spec.rb | 1 - spec/helpers/releases_helper_spec.rb | 14 + .../frequent_items/components/app_spec.js | 2 +- spec/javascripts/frequent_items/mock_data.js | 4 +- .../frequent_items/store/actions_spec.js | 7 +- .../notes/components/noteable_discussion_spec.js | 114 +-- .../project_selector/project_selector_spec.js | 9 +- spec/migrations/move_limits_from_plans_spec.rb | 37 + spec/models/application_setting_spec.rb | 16 - spec/requests/api/settings_spec.rb | 48 -- spec/services/issues/update_service_spec.rb | 18 + 58 files changed, 1338 insertions(+), 831 deletions(-) create mode 100644 app/assets/javascripts/notes/components/diff_discussion_header.vue create mode 100644 app/assets/javascripts/repository/utils/dom.js create mode 100644 changelogs/unreleased/31912-epic-labels.yml create mode 100644 changelogs/unreleased/35534-broken-scroll-to-bottom.yml create mode 100644 changelogs/unreleased/infinite-scroll.yml create mode 100644 changelogs/unreleased/nfriend-edit-release-ux-cleanup.yml create mode 100644 db/migrate/20191030135044_create_plan_limits.rb create mode 100644 db/migrate/20191030152934_move_limits_from_plans.rb create mode 100644 db/post_migrate/20191030193050_remove_pendo_from_application_settings.rb create mode 100644 db/post_migrate/20191031112603_remove_limits_from_plans.rb create mode 100644 doc/user/project/pages/img/new_project_for_pages_v12_5.png create mode 100644 doc/user/project/pages/img/pages_workflow_v12_5.png create mode 100644 spec/frontend/notes/components/diff_discussion_header_spec.js create mode 100644 spec/frontend/repository/pages/index_spec.js create mode 100644 spec/frontend/repository/pages/tree_spec.js create mode 100644 spec/frontend/repository/utils/dom_spec.js create mode 100644 spec/migrations/move_limits_from_plans_spec.rb diff --git a/app/assets/javascripts/api.js b/app/assets/javascripts/api.js index 735cbb8e356..aee9990bc0b 100644 --- a/app/assets/javascripts/api.js +++ b/app/assets/javascripts/api.js @@ -113,10 +113,9 @@ const Api = { .get(url, { params: Object.assign(defaults, options), }) - .then(({ data }) => { + .then(({ data, headers }) => { callback(data); - - return data; + return { data, headers }; }); }, diff --git a/app/assets/javascripts/frequent_items/store/mutations.js b/app/assets/javascripts/frequent_items/store/mutations.js index 41b660a243f..92ac3a2c94d 100644 --- a/app/assets/javascripts/frequent_items/store/mutations.js +++ b/app/assets/javascripts/frequent_items/store/mutations.js @@ -47,7 +47,8 @@ export default { hasSearchQuery: true, }); }, - [types.RECEIVE_SEARCHED_ITEMS_SUCCESS](state, rawItems) { + [types.RECEIVE_SEARCHED_ITEMS_SUCCESS](state, results) { + const rawItems = results.data; Object.assign(state, { items: rawItems.map(rawItem => ({ id: rawItem.id, diff --git a/app/assets/javascripts/jobs/components/log/log.vue b/app/assets/javascripts/jobs/components/log/log.vue index ef126166e8b..03a697d11ed 100644 --- a/app/assets/javascripts/jobs/components/log/log.vue +++ b/app/assets/javascripts/jobs/components/log/log.vue @@ -11,11 +11,35 @@ export default { computed: { ...mapState(['traceEndpoint', 'trace', 'isTraceComplete']), }, + updated() { + this.$nextTick(() => { + this.handleScrollDown(); + }); + }, + mounted() { + this.$nextTick(() => { + this.handleScrollDown(); + }); + }, methods: { - ...mapActions(['toggleCollapsibleLine']), + ...mapActions(['toggleCollapsibleLine', 'scrollBottom']), handleOnClickCollapsibleLine(section) { this.toggleCollapsibleLine(section); }, + /** + * The job log is sent in HTML, which means we need to use `v-html` to render it + * Using the updated hook with $nextTick is not enough to wait for the DOM to be updated + * in this case because it runs before `v-html` has finished running, since there's no + * Vue binding. + * In order to scroll the page down after `v-html` has finished, we need to use setTimeout + */ + handleScrollDown() { + if (this.isScrolledToBottomBeforeReceivingTrace) { + setTimeout(() => { + this.scrollBottom(); + }, 0); + } + }, }, }; diff --git a/app/assets/javascripts/notes/components/diff_discussion_header.vue b/app/assets/javascripts/notes/components/diff_discussion_header.vue new file mode 100644 index 00000000000..4c9075912ee --- /dev/null +++ b/app/assets/javascripts/notes/components/diff_discussion_header.vue @@ -0,0 +1,133 @@ + + + diff --git a/app/assets/javascripts/notes/components/noteable_discussion.vue b/app/assets/javascripts/notes/components/noteable_discussion.vue index cb1975a8962..47ec740b63a 100644 --- a/app/assets/javascripts/notes/components/noteable_discussion.vue +++ b/app/assets/javascripts/notes/components/noteable_discussion.vue @@ -1,18 +1,15 @@ diff --git a/app/assets/javascripts/repository/pages/tree.vue b/app/assets/javascripts/repository/pages/tree.vue index 19300099449..dd4d437f4dd 100644 --- a/app/assets/javascripts/repository/pages/tree.vue +++ b/app/assets/javascripts/repository/pages/tree.vue @@ -1,5 +1,6 @@ diff --git a/app/assets/javascripts/repository/utils/dom.js b/app/assets/javascripts/repository/utils/dom.js new file mode 100644 index 00000000000..963e6fc0bc4 --- /dev/null +++ b/app/assets/javascripts/repository/utils/dom.js @@ -0,0 +1,4 @@ +// eslint-disable-next-line import/prefer-default-export +export const updateElementsVisibility = (selector, isVisible) => { + document.querySelectorAll(selector).forEach(elem => elem.classList.toggle('hidden', !isVisible)); +}; diff --git a/app/assets/javascripts/repository/utils/title.js b/app/assets/javascripts/repository/utils/title.js index 87d54c01200..ff16fbdd420 100644 --- a/app/assets/javascripts/repository/utils/title.js +++ b/app/assets/javascripts/repository/utils/title.js @@ -1,10 +1,14 @@ +const DEFAULT_TITLE = '· GitLab'; // eslint-disable-next-line import/prefer-default-export export const setTitle = (pathMatch, ref, project) => { - if (!pathMatch) return; + if (!pathMatch) { + document.title = `${project} ${DEFAULT_TITLE}`; + return; + } const path = pathMatch.replace(/^\//, ''); const isEmpty = path === ''; /* eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings */ - document.title = `${isEmpty ? 'Files' : path} · ${ref} · ${project}`; + document.title = `${isEmpty ? 'Files' : path} · ${ref} · ${project} ${DEFAULT_TITLE}`; }; diff --git a/app/assets/javascripts/vue_shared/components/project_selector/project_selector.vue b/app/assets/javascripts/vue_shared/components/project_selector/project_selector.vue index 478e44d104c..f984a0a6203 100644 --- a/app/assets/javascripts/vue_shared/components/project_selector/project_selector.vue +++ b/app/assets/javascripts/vue_shared/components/project_selector/project_selector.vue @@ -1,6 +1,6 @@