Commit 27d8a92f authored by Filipa Lacerda's avatar Filipa Lacerda Committed by Phil Hughes

Refactor deploy boards into vue files

parent 68d902bb
<script>
/* eslint-disable no-new, no-undef */ /* eslint-disable no-new, no-undef */
/* global Flash */ /* global Flash */
/** /**
...@@ -22,7 +23,7 @@ import statusCodes from '~/lib/utils/http_status'; ...@@ -22,7 +23,7 @@ import statusCodes from '~/lib/utils/http_status';
import '~/flash'; import '~/flash';
import '~/lib/utils/common_utils'; import '~/lib/utils/common_utils';
import deployBoardSvg from 'empty_states/icons/_deploy_board.svg'; import deployBoardSvg from 'empty_states/icons/_deploy_board.svg';
import instanceComponent from './deploy_board_instance_component'; import instanceComponent from './deploy_board_instance_component.vue';
export default { export default {
...@@ -160,72 +161,81 @@ export default { ...@@ -160,72 +161,81 @@ export default {
return '<projectname>'; return '<projectname>';
}, },
}, },
};
</script>
<template>
<div class="js-deploy-board deploy-board">
<div v-if="isLoading">
<i
class="fa fa-spinner fa-spin"
aria-hidden="true" />
</div>
template: ` <div v-if="canRenderDeployBoard">
<div class="js-deploy-board deploy-board">
<section class="deploy-board-information">
<div v-if="isLoading"> <span>
<i class="fa fa-spinner fa-spin" aria-hidden="true"></i> <span class="percentage">{{deployBoardData.completion}}%</span>
</div> <span class="text">Complete</span>
</span>
<div v-if="canRenderDeployBoard"> </section>
<section class="deploy-board-information"> <section class="deploy-board-instances">
<span> <p class="text">{{instanceTitle}}</p>
<span class="percentage">{{deployBoardData.completion}}%</span>
<span class="text">Complete</span> <div class="deploy-board-instances-container">
</span> <template v-for="instance in deployBoardData.instances">
</section> <instance-component
:status="instance.status"
<section class="deploy-board-instances"> :tooltip-text="instance.tooltip"
<p class="text">{{instanceTitle}}</p> :stable="instance.stable" />
</template>
<div class="deploy-board-instances-container"> </div>
<template v-for="instance in deployBoardData.instances"> </section>
<instance-component
:status="instance.status" <section
:tooltip-text="instance.tooltip" class="deploy-board-actions"
:stable="instance.stable" /> v-if="deployBoardData.rollback_url || deployBoardData.abort_url">
</template> <a
</div> class="btn"
</section> data-method="post"
rel="nofollow"
<section class="deploy-board-actions" v-if="deployBoardData.rollback_url || deployBoardData.abort_url"> v-if="deployBoardData.rollback_url"
<a class="btn" :href="deployBoardData.rollback_url">
data-method="post" Rollback
rel="nofollow" </a>
v-if="deployBoardData.rollback_url"
:href="deployBoardData.rollback_url"> <a
Rollback class="btn btn-red btn-inverted"
</a> data-method="post"
rel="nofollow"
<a class="btn btn-red btn-inverted" v-if="deployBoardData.abort_url"
data-method="post" :href="deployBoardData.abort_url">
rel="nofollow" Abort
v-if="deployBoardData.abort_url" </a>
:href="deployBoardData.abort_url"> </section>
Abort
</a>
</section>
</div>
<div v-if="canRenderEmptyState">
<section class="deploy-board-empty-state-svg">
${deployBoardSvg}
</section>
<section class="deploy-board-empty-state-text">
<span class="title">Kubernetes deployment not found</span>
<span>
To see deployment progress for your environments, make sure your deployments are in Kubernetes namespace
<code>{{projectName}}</code> and labeled with <code>app=$CI_ENVIRONMENT_SLUG</code>.
</span>
</section>
</div>
<div v-if="canRenderErrorState" class="deploy-board-error-message">
We can't fetch the data right now. Please try again later.
</div>
</div> </div>
`,
}; <div v-if="canRenderEmptyState">
<section
class="deploy-board-empty-state-svg"
v-html="deployBoardSvg">
</section>
<section class="deploy-board-empty-state-text">
<span class="title">Kubernetes deployment not found</span>
<span>
To see deployment progress for your environments, make sure your deployments are in Kubernetes namespace
<code>{{projectName}}</code> and labeled with <code>app=$CI_ENVIRONMENT_SLUG</code>.
</span>
</section>
</div>
<div
v-if="canRenderErrorState"
class="deploy-board-error-message">
We can't fetch the data right now. Please try again later.
</div>
</div>
</script>
<script>
/** /**
* An instance in deploy board is represented by a square in this mockup: * An instance in deploy board is represented by a square in this mockup:
* https://gitlab.com/gitlab-org/gitlab-ce/uploads/2f655655c0eadf655d0ae7467b53002a/environments__deploy-graphic.png * https://gitlab.com/gitlab-org/gitlab-ce/uploads/2f655655c0eadf655d0ae7467b53002a/environments__deploy-graphic.png
...@@ -50,14 +51,14 @@ export default { ...@@ -50,14 +51,14 @@ export default {
return cssClassName; return cssClassName;
}, },
}, },
template: `
<div
class="deploy-board-instance has-tooltip"
:class="cssClass"
:data-title="tooltipText"
data-toggle="tooltip"
data-placement="top">
</div>
`,
}; };
</script>
<template>
<div
class="deploy-board-instance has-tooltip"
:class="cssClass"
:data-title="tooltipText"
data-toggle="tooltip"
data-placement="top">
</div>
</template>
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* Render environments table. * Render environments table.
*/ */
import EnvironmentTableRowComponent from './environment_item.vue'; import EnvironmentTableRowComponent from './environment_item.vue';
import DeployBoard from './deploy_board_component'; import DeployBoard from './deploy_board_component.vue';
export default { export default {
components: { components: {
......
import Vue from 'vue'; import Vue from 'vue';
import DeployBoard from '~/environments/components/deploy_board_component'; import DeployBoard from '~/environments/components/deploy_board_component.vue';
import Service from '~/environments/services/environments_service'; import Service from '~/environments/services/environments_service';
const { deployBoardMockData, invalidDeployBoardMockData } = require('./mock_data'); const { deployBoardMockData, invalidDeployBoardMockData } = require('./mock_data');
......
import Vue from 'vue'; import Vue from 'vue';
import DeployBoardInstance from '~/environments/components/deploy_board_instance_component'; import DeployBoardInstance from '~/environments/components/deploy_board_instance_component.vue';
describe('Deploy Board Instance', () => { describe('Deploy Board Instance', () => {
let DeployBoardInstanceComponent; let DeployBoardInstanceComponent;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment