diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-09 12:08:20 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-09 12:08:20 +0300 |
commit | d9f331328ab89d8423cb43ee9103f2a39b473d7f (patch) | |
tree | 15133b6f3388df1df271a8c64b74d5ce53baa466 /app | |
parent | 828858774207747860f4914e523a7864b5e56ccb (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
10 files changed, 95 insertions, 5 deletions
diff --git a/app/assets/javascripts/behaviors/markdown/render_mermaid.js b/app/assets/javascripts/behaviors/markdown/render_mermaid.js index 057cdb6cc4c..e4c69a114e0 100644 --- a/app/assets/javascripts/behaviors/markdown/render_mermaid.js +++ b/app/assets/javascripts/behaviors/markdown/render_mermaid.js @@ -25,9 +25,10 @@ function importMermaidModule() { return import(/* webpackChunkName: 'mermaid' */ 'mermaid') .then(mermaid => { let theme = 'neutral'; + const ideDarkThemes = ['dark', 'solarized-dark']; if ( - window.gon?.user_color_scheme === 'dark' && + ideDarkThemes.includes(window.gon?.user_color_scheme) && // if on the Web IDE page document.querySelector('.ide') ) { diff --git a/app/assets/javascripts/clusters/components/application_row.vue b/app/assets/javascripts/clusters/components/application_row.vue index 382ff50ebee..3dcb96a6c54 100644 --- a/app/assets/javascripts/clusters/components/application_row.vue +++ b/app/assets/javascripts/clusters/components/application_row.vue @@ -282,12 +282,16 @@ export default { }, methods: { installClicked() { + if (this.disabled || this.installButtonDisabled) return; + eventHub.$emit('installApplication', { id: this.id, params: this.installApplicationRequestParams, }); }, updateConfirmed() { + if (this.isUpdating) return; + eventHub.$emit('updateApplication', { id: this.id, params: this.installApplicationRequestParams, diff --git a/app/assets/javascripts/notes/mixins/description_version_history.js b/app/assets/javascripts/notes/mixins/description_version_history.js index 66e6685cfd8..d1006e37a70 100644 --- a/app/assets/javascripts/notes/mixins/description_version_history.js +++ b/app/assets/javascripts/notes/mixins/description_version_history.js @@ -3,7 +3,7 @@ export default { computed: { canSeeDescriptionVersion() {}, - canDeleteDescriptionVersion() {}, + displayDeleteButton() {}, shouldShowDescriptionVersion() {}, descriptionVersionToggleIcon() {}, }, diff --git a/app/assets/javascripts/notes/stores/actions.js b/app/assets/javascripts/notes/stores/actions.js index e1a7fb86501..b441861b5de 100644 --- a/app/assets/javascripts/notes/stores/actions.js +++ b/app/assets/javascripts/notes/stores/actions.js @@ -630,6 +630,10 @@ export const softDeleteDescriptionVersion = ( .catch(error => { dispatch('receiveDeleteDescriptionVersionError', error); Flash(__('Something went wrong while deleting description changes. Please try again.')); + + // Throw an error here because a component like SystemNote - + // needs to know if the request failed to reset its internal state. + throw new Error(); }); }; diff --git a/app/assets/javascripts/static_site_editor/components/edit_area.vue b/app/assets/javascripts/static_site_editor/components/edit_area.vue index ca81d4891a1..33669c8faef 100644 --- a/app/assets/javascripts/static_site_editor/components/edit_area.vue +++ b/app/assets/javascripts/static_site_editor/components/edit_area.vue @@ -2,12 +2,14 @@ import RichContentEditor from '~/vue_shared/components/rich_content_editor/rich_content_editor.vue'; import PublishToolbar from './publish_toolbar.vue'; import EditHeader from './edit_header.vue'; +import UnsavedChangesConfirmDialog from './unsaved_changes_confirm_dialog.vue'; export default { components: { RichContentEditor, PublishToolbar, EditHeader, + UnsavedChangesConfirmDialog, }, props: { title: { @@ -50,6 +52,7 @@ export default { <div class="d-flex flex-grow-1 flex-column h-100"> <edit-header class="py-2" :title="title" /> <rich-content-editor v-model="editableContent" class="mb-9 h-100" /> + <unsaved-changes-confirm-dialog :modified="modified" /> <publish-toolbar class="gl-fixed gl-left-0 gl-bottom-0 gl-w-full" :return-url="returnUrl" diff --git a/app/assets/javascripts/static_site_editor/components/unsaved_changes_confirm_dialog.vue b/app/assets/javascripts/static_site_editor/components/unsaved_changes_confirm_dialog.vue new file mode 100644 index 00000000000..255f029bd27 --- /dev/null +++ b/app/assets/javascripts/static_site_editor/components/unsaved_changes_confirm_dialog.vue @@ -0,0 +1,27 @@ +<script> +export default { + props: { + modified: { + type: Boolean, + required: false, + default: false, + }, + }, + created() { + window.addEventListener('beforeunload', this.requestConfirmation); + }, + destroyed() { + window.removeEventListener('beforeunload', this.requestConfirmation); + }, + methods: { + requestConfirmation(e) { + if (this.modified) { + e.preventDefault(); + // eslint-disable-next-line no-param-reassign + e.returnValue = ''; + } + }, + }, + render: () => null, +}; +</script> diff --git a/app/assets/javascripts/vue_shared/components/notes/system_note.vue b/app/assets/javascripts/vue_shared/components/notes/system_note.vue index ec7d7e94e5c..b6271a95008 100644 --- a/app/assets/javascripts/vue_shared/components/notes/system_note.vue +++ b/app/assets/javascripts/vue_shared/components/notes/system_note.vue @@ -132,7 +132,7 @@ export default { </pre> <pre v-else class="wrapper mt-2" v-html="descriptionVersion"></pre> <gl-deprecated-button - v-if="canDeleteDescriptionVersion" + v-if="displayDeleteButton" ref="deleteDescriptionVersionButton" v-gl-tooltip :title="__('Remove description history')" diff --git a/app/assets/stylesheets/page_bundles/ide.scss b/app/assets/stylesheets/page_bundles/ide.scss index e3d23ed0cbc..e96cc9ebf93 100644 --- a/app/assets/stylesheets/page_bundles/ide.scss +++ b/app/assets/stylesheets/page_bundles/ide.scss @@ -5,6 +5,7 @@ @import './ide_theme_overrides'; @import './ide_themes/dark'; +@import './ide_themes/solarized-dark'; $search-list-icon-width: 18px; $ide-activity-bar-width: 60px; @@ -89,7 +90,7 @@ $ide-commit-header-height: 48px; &.active { background-color: var(--ide-highlight-background, $white); - border-bottom-color: var(--ide-border-color, $white); + border-bottom-color: transparent; } &:not(.disabled) { diff --git a/app/assets/stylesheets/page_bundles/ide_themes/_solarized-dark.scss b/app/assets/stylesheets/page_bundles/ide_themes/_solarized-dark.scss new file mode 100644 index 00000000000..a58a0ed9475 --- /dev/null +++ b/app/assets/stylesheets/page_bundles/ide_themes/_solarized-dark.scss @@ -0,0 +1,50 @@ +// ------- +// Please see `app/assets/stylesheets/page_bundles/ide_themes/README.md` for a guide on contributing new themes +// ------- +.ide.theme-solarized-dark { + --ide-border-color: #002c38; + --ide-border-color-alt: var(--ide-background); + --ide-highlight-accent: #fff; + --ide-text-color: #ddd; + --ide-text-color-secondary: #ddd; + --ide-background: #004152; + --ide-background-hover: #003b4d; + --ide-highlight-background: #003240; + --ide-link-color: #73b9ff; + --ide-footer-background: var(--ide-highlight-background); + + --ide-input-border: #d8d8d8; + --ide-input-background: transparent; + --ide-input-color: #fff; + + --ide-btn-default-background: transparent; + --ide-btn-default-border: var(--ide-input-border); + --ide-btn-default-hover-border: #d8d8d8; + + --ide-btn-primary-background: #1068bf; + --ide-btn-primary-border: #428fdc; + --ide-btn-primary-hover-border: #63a6e9; + + --ide-btn-success-background: #217645; + --ide-btn-success-border: #108548; + --ide-btn-success-hover-border: #2da160; + + --ide-btn-disabled-border: rgba(223, 223, 223, 0.24); + --ide-btn-disabled-color: rgba(145, 145, 145, 0.48); + + --ide-btn-hover-border-width: 2px; + + --ide-dropdown-background: #004c61; + --ide-dropdown-hover-background: #00617a; + + --ide-dropdown-btn-hover-border: #e9ecef; + --ide-dropdown-btn-hover-background: var(--ide-background-hover); + + --ide-file-row-btn-hover-background: #005a73; + + --ide-diff-insert: rgba(155, 185, 85, 0.2); + --ide-diff-remove: rgba(255, 0, 0, 0.2); + + --ide-animation-gradient-1: var(--ide-file-row-btn-hover-background); + --ide-animation-gradient-2: var(--ide-dropdown-hover-background); + } diff --git a/app/models/concerns/timebox.rb b/app/models/concerns/timebox.rb index 4c8d4b1ea59..8927e42dd97 100644 --- a/app/models/concerns/timebox.rb +++ b/app/models/concerns/timebox.rb @@ -66,7 +66,7 @@ module Timebox groups = groups.compact if groups.is_a? Array groups = [] if groups.nil? - if Feature.enabled?(:optimized_timebox_queries) + if Feature.enabled?(:optimized_timebox_queries, default_enabled: true) from_union([where(project_id: projects), where(group_id: groups)], remove_duplicates: false) else where(project_id: projects).or(where(group_id: groups)) |