Move WorkInProgress vue component
This commit is contained in:
parent
08083f43cb
commit
f3f81c3cd2
5 changed files with 56 additions and 42 deletions
|
@ -1,25 +1,26 @@
|
|||
<script>
|
||||
import $ from 'jquery';
|
||||
import statusIcon from '../mr_widget_status_icon.vue';
|
||||
import tooltip from '../../../vue_shared/directives/tooltip';
|
||||
import eventHub from '../../event_hub';
|
||||
|
||||
export default {
|
||||
name: 'MRWidgetWIP',
|
||||
props: {
|
||||
mr: { type: Object, required: true },
|
||||
service: { type: Object, required: true },
|
||||
name: 'WorkInProgress',
|
||||
components: {
|
||||
statusIcon,
|
||||
},
|
||||
directives: {
|
||||
tooltip,
|
||||
},
|
||||
props: {
|
||||
mr: { type: Object, required: true },
|
||||
service: { type: Object, required: true },
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isMakingRequest: false,
|
||||
};
|
||||
},
|
||||
components: {
|
||||
statusIcon,
|
||||
},
|
||||
methods: {
|
||||
removeWIP() {
|
||||
this.isMakingRequest = true;
|
||||
|
@ -36,32 +37,40 @@ export default {
|
|||
});
|
||||
},
|
||||
},
|
||||
template: `
|
||||
<div class="mr-widget-body media">
|
||||
<status-icon status="warning" :show-disabled-button="Boolean(mr.removeWIPPath)" />
|
||||
<div class="media-body space-children">
|
||||
<span class="bold">
|
||||
This is a Work in Progress
|
||||
<i
|
||||
v-tooltip
|
||||
class="fa fa-question-circle"
|
||||
title="When this merge request is ready, remove the WIP: prefix from the title to allow it to be merged"
|
||||
aria-label="When this merge request is ready, remove the WIP: prefix from the title to allow it to be merged">
|
||||
</i>
|
||||
</span>
|
||||
<button
|
||||
v-if="mr.removeWIPPath"
|
||||
@click="removeWIP"
|
||||
:disabled="isMakingRequest"
|
||||
type="button"
|
||||
class="btn btn-default btn-xs js-remove-wip">
|
||||
<i
|
||||
v-if="isMakingRequest"
|
||||
class="fa fa-spinner fa-spin"
|
||||
aria-hidden="true" />
|
||||
Resolve WIP status
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
`,
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="mr-widget-body media">
|
||||
<status-icon
|
||||
status="warning"
|
||||
:show-disabled-button="Boolean(mr.removeWIPPath)"
|
||||
/>
|
||||
<div class="media-body space-children">
|
||||
<span class="bold">
|
||||
This is a Work in Progress
|
||||
<i
|
||||
v-tooltip
|
||||
class="fa fa-question-circle"
|
||||
title="When this merge request is ready,
|
||||
remove the WIP: prefix from the title to allow it to be merged"
|
||||
aria-label="When this merge request is ready,
|
||||
remove the WIP: prefix from the title to allow it to be merged">
|
||||
</i>
|
||||
</span>
|
||||
<button
|
||||
v-if="mr.removeWIPPath"
|
||||
@click="removeWIP"
|
||||
:disabled="isMakingRequest"
|
||||
type="button"
|
||||
class="btn btn-default btn-xs js-remove-wip">
|
||||
<i
|
||||
v-if="isMakingRequest"
|
||||
class="fa fa-spinner fa-spin"
|
||||
aria-hidden="true">
|
||||
</i>
|
||||
Resolve WIP status
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
|
@ -21,7 +21,7 @@ export { default as MergedState } from './components/states/mr_widget_merged.vue
|
|||
export { default as FailedToMerge } from './components/states/mr_widget_failed_to_merge.vue';
|
||||
export { default as ClosedState } from './components/states/mr_widget_closed.vue';
|
||||
export { default as MergingState } from './components/states/mr_widget_merging.vue';
|
||||
export { default as WipState } from './components/states/mr_widget_wip';
|
||||
export { default as WorkInProgressState } from './components/states/work_in_progress.vue';
|
||||
export { default as ArchivedState } from './components/states/mr_widget_archived.vue';
|
||||
export { default as ConflictsState } from './components/states/mr_widget_conflicts.vue';
|
||||
export { default as NothingToMergeState } from './components/states/nothing_to_merge.vue';
|
||||
|
|
|
@ -12,7 +12,7 @@ import {
|
|||
ClosedState,
|
||||
MergingState,
|
||||
RebaseState,
|
||||
WipState,
|
||||
WorkInProgressState,
|
||||
ArchivedState,
|
||||
ConflictsState,
|
||||
NothingToMergeState,
|
||||
|
@ -220,7 +220,7 @@ export default {
|
|||
'mr-widget-closed': ClosedState,
|
||||
'mr-widget-merging': MergingState,
|
||||
'mr-widget-failed-to-merge': FailedToMerge,
|
||||
'mr-widget-wip': WipState,
|
||||
'mr-widget-wip': WorkInProgressState,
|
||||
'mr-widget-archived': ArchivedState,
|
||||
'mr-widget-conflicts': ConflictsState,
|
||||
'mr-widget-nothing-to-merge': NothingToMergeState,
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Move WorkInProgress vue component
|
||||
merge_request: 17536
|
||||
author: George Tsiolis
|
||||
type: performance
|
|
@ -1,9 +1,9 @@
|
|||
import Vue from 'vue';
|
||||
import wipComponent from '~/vue_merge_request_widget/components/states/mr_widget_wip';
|
||||
import WorkInProgress from '~/vue_merge_request_widget/components/states/work_in_progress.vue';
|
||||
import eventHub from '~/vue_merge_request_widget/event_hub';
|
||||
|
||||
const createComponent = () => {
|
||||
const Component = Vue.extend(wipComponent);
|
||||
const Component = Vue.extend(WorkInProgress);
|
||||
const mr = {
|
||||
title: 'The best MR ever',
|
||||
removeWIPPath: '/path/to/remove/wip',
|
||||
|
@ -17,10 +17,10 @@ const createComponent = () => {
|
|||
});
|
||||
};
|
||||
|
||||
describe('MRWidgetWIP', () => {
|
||||
describe('Wip', () => {
|
||||
describe('props', () => {
|
||||
it('should have props', () => {
|
||||
const { mr, service } = wipComponent.props;
|
||||
const { mr, service } = WorkInProgress.props;
|
||||
|
||||
expect(mr.type instanceof Object).toBeTruthy();
|
||||
expect(mr.required).toBeTruthy();
|
||||
|
|
Loading…
Reference in a new issue