diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2018-09-27 11:08:31 +0000 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2018-09-27 11:08:31 +0000 |
commit | 90e0709dfbdf3d1e4a53fece5c4fc30a03860f10 (patch) | |
tree | 31b7567872049806782817868f6353edbb70fe8c /app/assets/javascripts/jobs | |
parent | b42e774021e5617abe6414c274763914c6b55c5b (diff) | |
download | gitlab-ce-90e0709dfbdf3d1e4a53fece5c4fc30a03860f10.tar.gz |
Updates Vue job components to match new API
Diffstat (limited to 'app/assets/javascripts/jobs')
5 files changed, 73 insertions, 66 deletions
diff --git a/app/assets/javascripts/jobs/components/empty_state.vue b/app/assets/javascripts/jobs/components/empty_state.vue index 4faf08387fb..ff45a5b05f8 100644 --- a/app/assets/javascripts/jobs/components/empty_state.vue +++ b/app/assets/javascripts/jobs/components/empty_state.vue @@ -25,7 +25,7 @@ validator(value) { return ( value === null || - (Object.prototype.hasOwnProperty.call(value, 'link') && + (Object.prototype.hasOwnProperty.call(value, 'path') && Object.prototype.hasOwnProperty.call(value, 'method') && Object.prototype.hasOwnProperty.call(value, 'title')) ); @@ -63,7 +63,7 @@ class="text-center" > <a - :href="action.link" + :href="action.path" :data-method="action.method" class="js-job-empty-state-action btn btn-primary" > diff --git a/app/assets/javascripts/jobs/components/erased_block.vue b/app/assets/javascripts/jobs/components/erased_block.vue index d688eebfa95..3d6d9ba4387 100644 --- a/app/assets/javascripts/jobs/components/erased_block.vue +++ b/app/assets/javascripts/jobs/components/erased_block.vue @@ -1,39 +1,36 @@ <script> -import TimeagoTooltip from '~/vue_shared/components/time_ago_tooltip.vue'; + import _ from 'underscore'; + import TimeagoTooltip from '~/vue_shared/components/time_ago_tooltip.vue'; -export default { - components: { - TimeagoTooltip, - }, - props: { - erasedByUser: { - type: Boolean, - required: true, + export default { + components: { + TimeagoTooltip, }, - username: { - type: String, - required: false, - default: null, + props: { + user: { + type: Object, + required: false, + default: () => ({}), + }, + erasedAt: { + type: String, + required: true, + }, }, - linkToUser: { - type: String, - required: false, - default: null, + computed: { + isErasedByUser() { + return !_.isEmpty(this.user); + }, }, - erasedAt: { - type: String, - required: true, - }, - }, -}; + }; </script> <template> <div class="prepend-top-default js-build-erased"> <div class="erased alert alert-warning"> - <template v-if="erasedByUser"> + <template v-if="isErasedByUser"> {{ s__("Job|Job has been erased by") }} - <a :href="linkToUser"> - {{ username }} + <a :href="user.web_url"> + {{ user.username }} </a> </template> <template v-else> diff --git a/app/assets/javascripts/jobs/components/job_log.vue b/app/assets/javascripts/jobs/components/job_log.vue index 3c4749d996b..b12e963b60c 100644 --- a/app/assets/javascripts/jobs/components/job_log.vue +++ b/app/assets/javascripts/jobs/components/job_log.vue @@ -6,7 +6,7 @@ type: String, required: true, }, - isReceivingBuildTrace: { + isComplete: { type: Boolean, required: true, }, @@ -22,7 +22,7 @@ </code> <div - v-if="isReceivingBuildTrace" + v-if="isComplete" class="js-log-animation build-loader-animation" > <div class="dot"></div> diff --git a/app/assets/javascripts/jobs/components/job_log_controllers.vue b/app/assets/javascripts/jobs/components/job_log_controllers.vue index 2cbf0f85266..3e62ababea3 100644 --- a/app/assets/javascripts/jobs/components/job_log_controllers.vue +++ b/app/assets/javascripts/jobs/components/job_log_controllers.vue @@ -1,8 +1,9 @@ <script> + import { polyfillSticky } from '~/lib/utils/sticky'; import Icon from '~/vue_shared/components/icon.vue'; import tooltip from '~/vue_shared/directives/tooltip'; import { numberToHumanSize } from '~/lib/utils/number_utils'; - import { s__, sprintf } from '~/locale'; + import { sprintf } from '~/locale'; export default { components: { @@ -12,44 +13,48 @@ tooltip, }, props: { - canEraseJob: { - type: Boolean, - required: true, + erasePath: { + type: String, + required: false, + default: null, }, size: { type: Number, required: true, }, - rawTracePath: { + rawPath: { type: String, required: false, default: null, }, - canScrollToTop: { + isScrollTopDisabled: { + type: Boolean, + required: true, + }, + isScrollBottomDisabled: { + type: Boolean, + required: true, + }, + isScrollingDown: { type: Boolean, required: true, }, - canScrollToBottom: { + isTraceSizeVisible: { type: Boolean, required: true, }, }, computed: { jobLogSize() { - return sprintf('Showing last %{startSpanTag} %{size} %{endSpanTag} of log -', { - startSpanTag: '<span class="s-truncated-info-size truncated-info-size">', - endSpanTag: '</span>', + return sprintf('Showing last %{size} of log -', { size: numberToHumanSize(this.size), }); }, }, + mounted() { + polyfillSticky(this.$el); + }, methods: { - handleEraseJobClick() { - // eslint-disable-next-line no-alert - if (window.confirm(s__('Job|Are you sure you want to erase this job?'))) { - this.$emit('eraseJob'); - } - }, handleScrollToTop() { this.$emit('scrollJobLogTop'); }, @@ -57,48 +62,52 @@ this.$emit('scrollJobLogBottom'); }, }, + }; </script> <template> <div class="top-bar"> <!-- truncate information --> <div class="js-truncated-info truncated-info d-none d-sm-block float-left"> - <p v-html="jobLogSize"></p> + <template v-if="isTraceSizeVisible"> + {{ jobLogSize }} - <a - v-if="rawTracePath" - :href="rawTracePath" - class="js-raw-link raw-link" - > - {{ s__("Job|Complete Raw") }} - </a> + <a + v-if="rawPath" + :href="rawPath" + class="js-raw-link raw-link" + > + {{ s__("Job|Complete Raw") }} + </a> + </template> </div> <!-- eo truncate information --> <div class="controllers float-right"> <!-- links --> <a - v-if="rawTracePath" + v-if="rawPath" v-tooltip :title="s__('Job|Show complete raw')" - :href="rawTracePath" + :href="rawPath" class="js-raw-link-controller controllers-buttons" data-container="body" > <icon name="doc-text" /> </a> - <button - v-if="canEraseJob" + <a + v-if="erasePath" v-tooltip :title="s__('Job|Erase job log')" - type="button" + :href="erasePath" + data-confirm="__('Are you sure you want to erase this build?')" class="js-erase-link controllers-buttons" data-container="body" - @click="handleEraseJobClick" + data-method="post" > <icon name="remove" /> - </button> + </a> <!-- eo links --> <!-- scroll buttons --> @@ -109,7 +118,7 @@ data-container="body" > <button - :disabled="!canScrollToTop" + :disabled="isScrollTopDisabled" type="button" class="js-scroll-top btn-scroll btn-transparent btn-blank" @click="handleScrollToTop" @@ -125,9 +134,10 @@ data-container="body" > <button - :disabled="!canScrollToBottom" + :disabled="isScrollBottomDisabled" type="button" class="js-scroll-bottom btn-scroll btn-transparent btn-blank" + :class="{ animate: isScrollingDown }" @click="handleScrollToBottom" > <icon name="scroll_down"/> diff --git a/app/assets/javascripts/jobs/components/stuck_block.vue b/app/assets/javascripts/jobs/components/stuck_block.vue index 18883fea950..a60643b2c65 100644 --- a/app/assets/javascripts/jobs/components/stuck_block.vue +++ b/app/assets/javascripts/jobs/components/stuck_block.vue @@ -24,14 +24,14 @@ export default { <div class="bs-callout bs-callout-warning"> <p v-if="hasNoRunnersForProject" - class="js-stuck-no-runners" + class="js-stuck-no-runners append-bottom-0" > {{ s__(`Job|This job is stuck, because the project doesn't have any runners online assigned to it.`) }} </p> <p v-else-if="tags.length" - class="js-stuck-with-tags" + class="js-stuck-with-tags append-bottom-0" > {{ s__(`This job is stuck, because you don't have any active runners online with any of these tags assigned to them:`) }} @@ -45,7 +45,7 @@ export default { </p> <p v-else - class="js-stuck-no-active-runner" + class="js-stuck-no-active-runner append-bottom-0" > {{ s__(`This job is stuck, because you don't have any active runners that can run this job.`) }} |