From d42b8c73327b09bffb97c07ef48f2ddb47877b9d Mon Sep 17 00:00:00 2001 From: Arnau Giralt Date: Tue, 12 Sep 2023 16:43:43 +0200 Subject: [PATCH 1/3] LITE-28300 LITE-28301: Create abort and retry actions for deployment requests --- ui/src/components/RequestTasksTab.vue | 22 +++++++++-- ui/src/pages/RequestDetails.vue | 55 ++++++++++++++++++++++++++- ui/src/utils.js | 4 ++ 3 files changed, 77 insertions(+), 4 deletions(-) diff --git a/ui/src/components/RequestTasksTab.vue b/ui/src/components/RequestTasksTab.vue index 24c93ec..bef3b9a 100644 --- a/ui/src/components/RequestTasksTab.vue +++ b/ui/src/components/RequestTasksTab.vue @@ -98,8 +98,12 @@ import { readableTimeDiff, } from '~helpers'; +import sync from '~mixins/sync'; + export default { + mixins: [sync([{ prop: 'updating', local: 'localUpdating' }])], + components: { cButton, cDataTable, @@ -109,6 +113,7 @@ export default { }, props: { + updating: Boolean, requestId: { type: String, required: true, @@ -116,6 +121,7 @@ export default { }, data: () => ({ + localUpdating: false, loading: true, tasks: [], @@ -184,17 +190,27 @@ export default { this.currentError = item.errorMessage; this.isErrorDialogOpen = true; }, + + async loadTasks() { + this.loading = true; + this.tasks = await getDeploymentRequestTasks(this.requestId); + this.loading = false; + this.localUpdating = false; + }, }, watch: { isInfoDialogOpen(v) { if (!v) this.currentItem = null; }, + + localUpdating(v) { + if (v) this.loadTasks(); + }, }, - async created() { - this.tasks = await getDeploymentRequestTasks(this.requestId); - this.loading = false; + created() { + this.loadTasks(); }, }; diff --git a/ui/src/pages/RequestDetails.vue b/ui/src/pages/RequestDetails.vue index 1604d81..a8e6445 100644 --- a/ui/src/pages/RequestDetails.vue +++ b/ui/src/pages/RequestDetails.vue @@ -6,6 +6,29 @@ c-view.request-details( :current-tab.sync="currentTab", :loading="loading" ) + template( + #actions="", + v-if="isAnyActionVisible", + ) + actions-menu(outline) + c-button.list-item( + v-if="canAbort", + :icon="icons.googleCancelBaseline", + :loading="isAbortingRequest", + :upper-case="false", + color="red", + label="Abort", + @click="abortRequest", + ) + c-button.list-item( + v-if="canRetry", + :icon="icons.googleRefreshBaseline", + :loading="isRetryingRequest", + :upper-case="false", + label="Retry", + @click="retryRequest", + ) + .info-container .info-column grid-item( @@ -76,18 +99,25 @@ c-view.request-details( request-marketplaces-tab(:request-id="requestId") template(#tasks="") - request-tasks-tab(:request-id="requestId") + request-tasks-tab( + :request-id="requestId", + :updating.sync="areTasksUpdating", + ) +
diff --git a/connect_ext_ppr/static/request-details.f733e7047241083dcd7a.js b/connect_ext_ppr/static/request-details.276a29e9143237446553.js similarity index 75% rename from connect_ext_ppr/static/request-details.f733e7047241083dcd7a.js rename to connect_ext_ppr/static/request-details.276a29e9143237446553.js index b82c128..2c957c9 100644 --- a/connect_ext_ppr/static/request-details.f733e7047241083dcd7a.js +++ b/connect_ext_ppr/static/request-details.276a29e9143237446553.js @@ -59,6 +59,26 @@ eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extr /***/ }), +/***/ "./ui/src/components/ActionsMenu.vue": +/*!*******************************************!*\ + !*** ./ui/src/components/ActionsMenu.vue ***! + \*******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ActionsMenu_vue_vue_type_template_id_753b3faa_lang_pug___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ActionsMenu.vue?vue&type=template&id=753b3faa&lang=pug& */ \"./ui/src/components/ActionsMenu.vue?vue&type=template&id=753b3faa&lang=pug&\");\n/* harmony import */ var _ActionsMenu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ActionsMenu.vue?vue&type=script&lang=js& */ \"./ui/src/components/ActionsMenu.vue?vue&type=script&lang=js&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n/* normalize component */\n;\nvar component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _ActionsMenu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _ActionsMenu_vue_vue_type_template_id_753b3faa_lang_pug___WEBPACK_IMPORTED_MODULE_0__.render,\n _ActionsMenu_vue_vue_type_template_id_753b3faa_lang_pug___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"ui/src/components/ActionsMenu.vue\"\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports);\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/ActionsMenu.vue?"); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/ActionsMenu.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/ActionsMenu.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/more_vert/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/arrow_drop_down/baseline.svg\");\n/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ramda */ \"./node_modules/ramda/es/index.js\");\n/* harmony import */ var _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/cButton.vue */ \"./ui/src/components/cButton.vue\");\n/* harmony import */ var _components_cMenu_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cMenu.vue */ \"./ui/src/components/cMenu.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~utils */ \"./ui/src/tools/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n cButton: _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n cMenu: _components_cMenu_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n },\n\n props: {\n outline: Boolean,\n disabled: Boolean,\n small: Boolean,\n btnIcon: Object,\n btnText: {\n type: String,\n default: '',\n },\n\n locator: {\n type: String,\n default: 'actions_menu',\n },\n },\n\n data: () => ({\n cButtonModesDict: _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__.cButtonModesDict,\n }),\n\n computed: {\n btnMode: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.pathAlt)(['outline'], _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__.cButtonModesDict.outlined, _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__.cButtonModesDict.flat),\n icon: (0,ramda__WEBPACK_IMPORTED_MODULE_0__.cond)([\n [(0,ramda__WEBPACK_IMPORTED_MODULE_0__.prop)('btnIcon'), (0,ramda__WEBPACK_IMPORTED_MODULE_0__.prop)('btnIcon')],\n [(0,ramda__WEBPACK_IMPORTED_MODULE_0__.propEq)(_components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__.cButtonModesDict.flat, 'btnMode'), (0,ramda__WEBPACK_IMPORTED_MODULE_0__.always)(_cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_4__[\"default\"])],\n [ramda__WEBPACK_IMPORTED_MODULE_0__.T, (0,ramda__WEBPACK_IMPORTED_MODULE_0__.always)(_cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_5__[\"default\"])],\n ]),\n },\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/ActionsMenu.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); + +/***/ }), + /***/ "./ui/src/components/ErrorDialog.vue": /*!*******************************************!*\ !*** ./ui/src/components/ErrorDialog.vue ***! @@ -155,7 +175,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \***********************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-timezone */ \"./node_modules/moment-timezone/index.js\");\n/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_timezone__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/info_outline/baseline.svg\");\n/* harmony import */ var _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/cButton.vue */ \"./ui/src/components/cButton.vue\");\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cStatus.vue */ \"./ui/src/components/cStatus.vue\");\n/* harmony import */ var _components_ErrorDialog_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~components/ErrorDialog.vue */ \"./ui/src/components/ErrorDialog.vue\");\n/* harmony import */ var _components_RequestTaskInfoDialog_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~components/RequestTaskInfoDialog.vue */ \"./ui/src/components/RequestTaskInfoDialog.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ~helpers */ \"./ui/src/tools/helpers.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n cButton: _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cStatus: _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n ErrorDialog: _components_ErrorDialog_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n RequestTaskInfoDialog: _components_RequestTaskInfoDialog_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n },\n\n props: {\n requestId: {\n type: String,\n required: true,\n },\n },\n\n data: () => ({\n loading: true,\n tasks: [],\n\n icons: { googleInfoOutlineBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_8__[\"default\"] },\n\n headers: [\n {\n text: 'ID',\n value: 'id',\n width: 180,\n },\n { text: 'Event', value: 'event' },\n {\n text: 'Processed',\n value: 'processed',\n width: 140,\n },\n {\n text: 'Elapsed',\n value: 'elapsed',\n width: 105,\n },\n {\n text: 'Status',\n value: 'status',\n width: 140,\n },\n { value: 'actions', width: 28 },\n ],\n\n currentItem: null,\n isInfoDialogOpen: false,\n currentError: '',\n isErrorDialogOpen: false,\n }),\n\n methods: {\n getElapsedTime({ events }) {\n if (events.finished?.at) {\n const msDiff = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(events.finished.at).diff(moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(events.started.at));\n\n return (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.readableTimeDiff)(msDiff);\n }\n\n return '';\n },\n\n prepareRow(item) {\n return {\n id: item.id,\n event: item.title,\n status: item.status,\n processed: item.events.finished?.at,\n created: item.events.created?.at,\n elapsed: this.getElapsedTime(item),\n errorMessage: item.error_message,\n };\n },\n\n openInfoDialog(item) {\n this.currentItem = item;\n this.isInfoDialogOpen = true;\n },\n\n openErrorDetails(item) {\n this.currentError = item.errorMessage;\n this.isErrorDialogOpen = true;\n },\n },\n\n watch: {\n isInfoDialogOpen(v) {\n if (!v) this.currentItem = null;\n },\n },\n\n async created() {\n this.tasks = await (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getDeploymentRequestTasks)(this.requestId);\n this.loading = false;\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/RequestTasksTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-timezone */ \"./node_modules/moment-timezone/index.js\");\n/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_timezone__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/info_outline/baseline.svg\");\n/* harmony import */ var _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/cButton.vue */ \"./ui/src/components/cButton.vue\");\n/* harmony import */ var _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cDataTable.vue */ \"./ui/src/components/cDataTable.vue\");\n/* harmony import */ var _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cStatus.vue */ \"./ui/src/components/cStatus.vue\");\n/* harmony import */ var _components_ErrorDialog_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~components/ErrorDialog.vue */ \"./ui/src/components/ErrorDialog.vue\");\n/* harmony import */ var _components_RequestTaskInfoDialog_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~components/RequestTaskInfoDialog.vue */ \"./ui/src/components/RequestTaskInfoDialog.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ~helpers */ \"./ui/src/tools/helpers.js\");\n/* harmony import */ var _mixins_sync__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~mixins/sync */ \"./ui/src/tools/mixins/sync.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n mixins: [(0,_mixins_sync__WEBPACK_IMPORTED_MODULE_8__[\"default\"])([{ prop: 'updating', local: 'localUpdating' }])],\n\n components: {\n cButton: _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n cDataTable: _components_cDataTable_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cStatus: _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n ErrorDialog: _components_ErrorDialog_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n RequestTaskInfoDialog: _components_RequestTaskInfoDialog_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n },\n\n props: {\n updating: Boolean,\n requestId: {\n type: String,\n required: true,\n },\n },\n\n data: () => ({\n localUpdating: false,\n loading: true,\n tasks: [],\n\n icons: { googleInfoOutlineBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_9__[\"default\"] },\n\n headers: [\n {\n text: 'ID',\n value: 'id',\n width: 180,\n },\n { text: 'Event', value: 'event' },\n {\n text: 'Processed',\n value: 'processed',\n width: 140,\n },\n {\n text: 'Elapsed',\n value: 'elapsed',\n width: 105,\n },\n {\n text: 'Status',\n value: 'status',\n width: 140,\n },\n { value: 'actions', width: 28 },\n ],\n\n currentItem: null,\n isInfoDialogOpen: false,\n currentError: '',\n isErrorDialogOpen: false,\n }),\n\n methods: {\n getElapsedTime({ events }) {\n if (events.finished?.at) {\n const msDiff = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(events.finished.at).diff(moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(events.started.at));\n\n return (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.readableTimeDiff)(msDiff);\n }\n\n return '';\n },\n\n prepareRow(item) {\n return {\n id: item.id,\n event: item.title,\n status: item.status,\n processed: item.events.finished?.at,\n created: item.events.created?.at,\n elapsed: this.getElapsedTime(item),\n errorMessage: item.error_message,\n };\n },\n\n openInfoDialog(item) {\n this.currentItem = item;\n this.isInfoDialogOpen = true;\n },\n\n openErrorDetails(item) {\n this.currentError = item.errorMessage;\n this.isErrorDialogOpen = true;\n },\n\n async loadTasks() {\n this.loading = true;\n this.tasks = await (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getDeploymentRequestTasks)(this.requestId);\n this.loading = false;\n this.localUpdating = false;\n },\n },\n\n watch: {\n isInfoDialogOpen(v) {\n if (!v) this.currentItem = null;\n },\n\n localUpdating(v) {\n if (v) this.loadTasks();\n },\n },\n\n created() {\n this.loadTasks();\n },\n});\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/RequestTasksTab.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -175,7 +195,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*****************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/check_circle/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/description/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/remove_circle/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/sync/baseline.svg\");\n/* harmony import */ var _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/cIcon.vue */ \"./ui/src/components/cIcon.vue\");\n/* harmony import */ var _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/cStatus.vue */ \"./ui/src/components/cStatus.vue\");\n/* harmony import */ var _components_cTabs_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cTabs.vue */ \"./ui/src/components/cTabs.vue\");\n/* harmony import */ var _components_cView_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cView.vue */ \"./ui/src/components/cView.vue\");\n/* harmony import */ var _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~components/DetailItem.vue */ \"./ui/src/components/DetailItem.vue\");\n/* harmony import */ var _components_GridItem_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~components/GridItem.vue */ \"./ui/src/components/GridItem.vue\");\n/* harmony import */ var _components_Pic_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ~components/Pic.vue */ \"./ui/src/components/Pic.vue\");\n/* harmony import */ var _components_RequestMarketplacesTab_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ~components/RequestMarketplacesTab.vue */ \"./ui/src/components/RequestMarketplacesTab.vue\");\n/* harmony import */ var _components_RequestTasksTab_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~components/RequestTasksTab.vue */ \"./ui/src/components/RequestTasksTab.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ~helpers */ \"./ui/src/tools/helpers.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n cIcon: _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n cStatus: _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n cTabs: _components_cTabs_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cView: _components_cView_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n DetailItem: _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n GridItem: _components_GridItem_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n Pic: _components_Pic_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n RequestMarketplacesTab: _components_RequestMarketplacesTab_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n RequestTasksTab: _components_RequestTasksTab_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n },\n\n data: () => ({\n currentTab: null,\n loading: true,\n request: null,\n }),\n\n computed: {\n icons: () => ({\n googleCheckCircleBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n googleDescriptionBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n googleRemoveCircleBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n googleSyncBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n }),\n\n requestId: vm => vm.$route.params.id,\n\n tabs: () => [\n { label: 'Marketplaces', value: 'marketplaces' },\n { label: 'Tasks', value: 'tasks' },\n ],\n },\n\n methods: {\n async getRequest() {\n this.request = await (0,_utils__WEBPACK_IMPORTED_MODULE_9__.getDeploymentsRequest)(this.requestId);\n },\n\n async getPprFileUrl() {\n const ppr = await (0,_utils__WEBPACK_IMPORTED_MODULE_9__.getPPR)(this.request.deployment.id, this.request.ppr.id);\n this.pprFileUrl = ppr.file.location;\n },\n\n downloadPPR() {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_10__.downloader)({ url: this.pprFileUrl });\n },\n },\n\n async created() {\n await this.getRequest();\n await this.getPprFileUrl();\n this.loading = false;\n },\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/pages/RequestDetails.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/cancel/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/check_circle/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/description/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/refresh/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/remove_circle/baseline.svg\");\n/* harmony import */ var _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @cloudblueconnect/material-svg/baseline */ \"./node_modules/@cloudblueconnect/material-svg/icons/google/sync/baseline.svg\");\n/* harmony import */ var _components_ActionsMenu_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ~components/ActionsMenu.vue */ \"./ui/src/components/ActionsMenu.vue\");\n/* harmony import */ var _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ~components/cButton.vue */ \"./ui/src/components/cButton.vue\");\n/* harmony import */ var _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ~components/cIcon.vue */ \"./ui/src/components/cIcon.vue\");\n/* harmony import */ var _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ~components/cStatus.vue */ \"./ui/src/components/cStatus.vue\");\n/* harmony import */ var _components_cTabs_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ~components/cTabs.vue */ \"./ui/src/components/cTabs.vue\");\n/* harmony import */ var _components_cView_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ~components/cView.vue */ \"./ui/src/components/cView.vue\");\n/* harmony import */ var _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ~components/DetailItem.vue */ \"./ui/src/components/DetailItem.vue\");\n/* harmony import */ var _components_GridItem_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ~components/GridItem.vue */ \"./ui/src/components/GridItem.vue\");\n/* harmony import */ var _components_Pic_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ~components/Pic.vue */ \"./ui/src/components/Pic.vue\");\n/* harmony import */ var _components_RequestMarketplacesTab_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ~components/RequestMarketplacesTab.vue */ \"./ui/src/components/RequestMarketplacesTab.vue\");\n/* harmony import */ var _components_RequestTasksTab_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ~components/RequestTasksTab.vue */ \"./ui/src/components/RequestTasksTab.vue\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/utils */ \"./ui/src/utils.js\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ~helpers */ \"./ui/src/tools/helpers.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n components: {\n ActionsMenu: _components_ActionsMenu_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n cButton: _components_cButton_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n cIcon: _components_cIcon_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n cStatus: _components_cStatus_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n cTabs: _components_cTabs_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n cView: _components_cView_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n DetailItem: _components_DetailItem_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n GridItem: _components_GridItem_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n Pic: _components_Pic_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n RequestMarketplacesTab: _components_RequestMarketplacesTab_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n RequestTasksTab: _components_RequestTasksTab_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n },\n\n data: () => ({\n currentTab: null,\n loading: true,\n request: null,\n isAbortingRequest: false,\n isRetryingRequest: false,\n areTasksUpdating: false,\n }),\n\n computed: {\n icons: () => ({\n googleCancelBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n googleCheckCircleBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n googleDescriptionBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n googleRefreshBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n googleRemoveCircleBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n googleSyncBaseline: _cloudblueconnect_material_svg_baseline__WEBPACK_IMPORTED_MODULE_18__[\"default\"],\n }),\n\n requestId: vm => vm.$route.params.id,\n\n tabs: () => [\n { label: 'Marketplaces', value: 'marketplaces' },\n { label: 'Tasks', value: 'tasks' },\n ],\n\n canAbort: vm => ['pending', 'processing'].includes(vm.request?.status),\n canRetry: vm => vm.request?.status === 'error',\n isAnyActionVisible: vm => vm.canAbort || vm.canRetry,\n },\n\n methods: {\n async getRequest() {\n this.request = await (0,_utils__WEBPACK_IMPORTED_MODULE_11__.getDeploymentsRequest)(this.requestId);\n },\n\n async getPprFileUrl() {\n const ppr = await (0,_utils__WEBPACK_IMPORTED_MODULE_11__.getPPR)(this.request.deployment.id, this.request.ppr.id);\n this.pprFileUrl = ppr.file.location;\n },\n\n downloadPPR() {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_12__.downloader)({ url: this.pprFileUrl });\n },\n\n async abortRequest() {\n this.request = await (0,_utils__WEBPACK_IMPORTED_MODULE_11__.abortDeploymentRequest)(this.requestId);\n this.areTasksUpdating = true;\n },\n\n async retryRequest() {\n this.request = await (0,_utils__WEBPACK_IMPORTED_MODULE_11__.retryDeploymentRequest)(this.requestId);\n this.areTasksUpdating = true;\n },\n },\n\n async created() {\n await this.getRequest();\n await this.getPprFileUrl();\n this.loading = false;\n },\n});\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/pages/RequestDetails.vue?./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ }), @@ -229,6 +249,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod /***/ }), +/***/ "./ui/src/components/ActionsMenu.vue?vue&type=script&lang=js&": +/*!********************************************************************!*\ + !*** ./ui/src/components/ActionsMenu.vue?vue&type=script&lang=js& ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_vue_loader_lib_index_js_vue_loader_options_ActionsMenu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActionsMenu.vue?vue&type=script&lang=js& */ \"./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/ActionsMenu.vue?vue&type=script&lang=js&\");\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_vue_loader_lib_index_js_vue_loader_options_ActionsMenu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/ActionsMenu.vue?"); + +/***/ }), + /***/ "./ui/src/components/ErrorDialog.vue?vue&type=script&lang=js&": /*!********************************************************************!*\ !*** ./ui/src/components/ErrorDialog.vue?vue&type=script&lang=js& ***! @@ -289,6 +319,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./ui/src/components/ActionsMenu.vue?vue&type=template&id=753b3faa&lang=pug&": +/*!***********************************************************************************!*\ + !*** ./ui/src/components/ActionsMenu.vue?vue&type=template&id=753b3faa&lang=pug& ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_1_node_modules_pug_plain_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActionsMenu_vue_vue_type_template_id_753b3faa_lang_pug___WEBPACK_IMPORTED_MODULE_0__.render),\n/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_1_node_modules_pug_plain_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActionsMenu_vue_vue_type_template_id_753b3faa_lang_pug___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns)\n/* harmony export */ });\n/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_1_node_modules_pug_plain_loader_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActionsMenu_vue_vue_type_template_id_753b3faa_lang_pug___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[1]!../../../node_modules/pug-plain-loader/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActionsMenu.vue?vue&type=template&id=753b3faa&lang=pug& */ \"./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[1]!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/ActionsMenu.vue?vue&type=template&id=753b3faa&lang=pug&\");\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/ActionsMenu.vue?"); + +/***/ }), + /***/ "./ui/src/components/ErrorDialog.vue?vue&type=template&id=2aba8f9f&lang=pug&": /*!***********************************************************************************!*\ !*** ./ui/src/components/ErrorDialog.vue?vue&type=template&id=2aba8f9f&lang=pug& ***! @@ -349,6 +389,16 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[1]!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/ActionsMenu.vue?vue&type=template&id=753b3faa&lang=pug&": +/*!********************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[1]!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/ActionsMenu.vue?vue&type=template&id=753b3faa&lang=pug& ***! + \********************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"c-menu\",\n {\n attrs: { disabled: _vm.disabled, locator: _vm.locator, small: _vm.small },\n scopedSlots: _vm._u([\n {\n key: \"trigger\",\n fn: function () {\n return [\n _c(\"c-button\", {\n staticClass: \"ma-0\",\n attrs: {\n icon: _vm.icon,\n label: _vm.btnText,\n small: _vm.small,\n disabled: _vm.disabled,\n mode: _vm.btnMode,\n },\n }),\n ]\n },\n proxy: true,\n },\n ]),\n },\n [_c(\"div\", { staticClass: \"list\" }, [_vm._t(\"default\")], 2)]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/components/ActionsMenu.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); + +/***/ }), + /***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[1]!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/ErrorDialog.vue?vue&type=template&id=2aba8f9f&lang=pug&": /*!********************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[1]!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./ui/src/components/ErrorDialog.vue?vue&type=template&id=2aba8f9f&lang=pug& ***! @@ -405,7 +455,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \******************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"c-view\",\n {\n staticClass: \"request-details\",\n attrs: {\n title: _vm.requestId,\n \"assistive-title\": \"Request Details\",\n \"back-route\": { name: \"Dashboard\", params: { tab: \"requests\" } },\n \"current-tab\": _vm.currentTab,\n loading: _vm.loading,\n },\n on: {\n \"update:currentTab\": function ($event) {\n _vm.currentTab = $event\n },\n \"update:current-tab\": function ($event) {\n _vm.currentTab = $event\n },\n },\n },\n [\n _c(\"div\", { staticClass: \"info-container\" }, [\n _c(\n \"div\",\n { staticClass: \"info-column\" },\n [\n _c(\"grid-item\", {\n attrs: { \"column-width\": 50, label: \"Status\" },\n scopedSlots: _vm._u([\n {\n key: \"value\",\n fn: function () {\n return [\n _c(\"c-status\", { attrs: { status: _vm.request.status } }),\n ]\n },\n proxy: true,\n },\n ]),\n }),\n _c(\"grid-item\", {\n attrs: { \"column-width\": 50, label: \"Product\" },\n scopedSlots: _vm._u([\n {\n key: \"value\",\n fn: function () {\n return [\n _c(\"detail-item\", {\n attrs: {\n \"body-text\": _vm.request.deployment?.product?.name,\n dense: \"\",\n },\n scopedSlots: _vm._u([\n {\n key: \"image\",\n fn: function () {\n return [\n _c(\"pic\", {\n attrs: {\n src: _vm.request.deployment?.product?.icon,\n width: 16,\n height: 16,\n },\n }),\n ]\n },\n proxy: true,\n },\n ]),\n }),\n ]\n },\n proxy: true,\n },\n ]),\n }),\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"info-column\" },\n [\n _c(\"grid-item\", {\n attrs: { \"column-width\": 28, label: \"Hub\" },\n scopedSlots: _vm._u([\n {\n key: \"value\",\n fn: function () {\n return [\n _c(\"span\", [\n _vm._v(_vm._s(_vm.request.deployment?.hub?.name)),\n ]),\n ]\n },\n proxy: true,\n },\n ]),\n }),\n _c(\"grid-item\", {\n attrs: { \"column-width\": 28, label: \"PPR\" },\n scopedSlots: _vm._u([\n {\n key: \"value\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"request-details__ppr\" },\n [\n _c(\"c-icon\", {\n attrs: {\n icon: _vm.icons.googleDescriptionBaseline,\n size: \"16px\",\n },\n }),\n _c(\"span\", [\n _vm._v(\n \"Version \" + _vm._s(_vm.request.ppr?.version)\n ),\n ]),\n _c(\"span\", { staticClass: \"request-details__dot\" }, [\n _vm._v(\"•\"),\n ]),\n _c(\"a\", { on: { click: _vm.downloadPPR } }, [\n _vm._v(\"Download\"),\n ]),\n ],\n 1\n ),\n ]\n },\n proxy: true,\n },\n ]),\n }),\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"info-column\" },\n [\n _c(\"grid-item\", {\n attrs: { \"column-width\": 78, label: \"L2 Resellers\" },\n scopedSlots: _vm._u([\n {\n key: \"value\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"request-details__delegate\" },\n [\n _c(\"c-icon\", {\n attrs: {\n icon: _vm.request.delegate_l2\n ? _vm.icons.googleCheckCircleBaseline\n : _vm.icons.googleRemoveCircleBaseline,\n size: \"16px\",\n },\n }),\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.request.delegate_l2\n ? \"Delegated\"\n : \"Not delegated\"\n )\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n proxy: true,\n },\n ]),\n }),\n ],\n 1\n ),\n ]),\n _c(\"c-tabs\", {\n attrs: { \"current-tab\": _vm.currentTab, tabs: _vm.tabs },\n on: {\n \"update:currentTab\": function ($event) {\n _vm.currentTab = $event\n },\n \"update:current-tab\": function ($event) {\n _vm.currentTab = $event\n },\n },\n scopedSlots: _vm._u([\n {\n key: \"marketplaces\",\n fn: function () {\n return [\n _c(\"request-marketplaces-tab\", {\n attrs: { \"request-id\": _vm.requestId },\n }),\n ]\n },\n proxy: true,\n },\n {\n key: \"tasks\",\n fn: function () {\n return [\n _c(\"request-tasks-tab\", {\n attrs: { \"request-id\": _vm.requestId },\n }),\n ]\n },\n proxy: true,\n },\n ]),\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/pages/RequestDetails.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render),\n/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns)\n/* harmony export */ });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"c-view\",\n {\n staticClass: \"request-details\",\n attrs: {\n title: _vm.requestId,\n \"assistive-title\": \"Request Details\",\n \"back-route\": { name: \"Dashboard\", params: { tab: \"requests\" } },\n \"current-tab\": _vm.currentTab,\n loading: _vm.loading,\n },\n on: {\n \"update:currentTab\": function ($event) {\n _vm.currentTab = $event\n },\n \"update:current-tab\": function ($event) {\n _vm.currentTab = $event\n },\n },\n scopedSlots: _vm._u(\n [\n _vm.isAnyActionVisible\n ? {\n key: \"actions\",\n fn: function () {\n return [\n _c(\n \"actions-menu\",\n { attrs: { outline: \"\" } },\n [\n _vm.canAbort\n ? _c(\"c-button\", {\n staticClass: \"list-item\",\n attrs: {\n icon: _vm.icons.googleCancelBaseline,\n loading: _vm.isAbortingRequest,\n \"upper-case\": false,\n color: \"red\",\n label: \"Abort\",\n },\n on: { click: _vm.abortRequest },\n })\n : _vm._e(),\n _vm.canRetry\n ? _c(\"c-button\", {\n staticClass: \"list-item\",\n attrs: {\n icon: _vm.icons.googleRefreshBaseline,\n loading: _vm.isRetryingRequest,\n \"upper-case\": false,\n label: \"Retry\",\n },\n on: { click: _vm.retryRequest },\n })\n : _vm._e(),\n ],\n 1\n ),\n ]\n },\n proxy: true,\n }\n : null,\n ],\n null,\n true\n ),\n },\n [\n _c(\"div\", { staticClass: \"info-container\" }, [\n _c(\n \"div\",\n { staticClass: \"info-column\" },\n [\n _c(\"grid-item\", {\n attrs: { \"column-width\": 50, label: \"Status\" },\n scopedSlots: _vm._u([\n {\n key: \"value\",\n fn: function () {\n return [\n _c(\"c-status\", { attrs: { status: _vm.request.status } }),\n ]\n },\n proxy: true,\n },\n ]),\n }),\n _c(\"grid-item\", {\n attrs: { \"column-width\": 50, label: \"Product\" },\n scopedSlots: _vm._u([\n {\n key: \"value\",\n fn: function () {\n return [\n _c(\"detail-item\", {\n attrs: {\n \"body-text\": _vm.request.deployment?.product?.name,\n dense: \"\",\n },\n scopedSlots: _vm._u([\n {\n key: \"image\",\n fn: function () {\n return [\n _c(\"pic\", {\n attrs: {\n src: _vm.request.deployment?.product?.icon,\n width: 16,\n height: 16,\n },\n }),\n ]\n },\n proxy: true,\n },\n ]),\n }),\n ]\n },\n proxy: true,\n },\n ]),\n }),\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"info-column\" },\n [\n _c(\"grid-item\", {\n attrs: { \"column-width\": 28, label: \"Hub\" },\n scopedSlots: _vm._u([\n {\n key: \"value\",\n fn: function () {\n return [\n _c(\"span\", [\n _vm._v(_vm._s(_vm.request.deployment?.hub?.name)),\n ]),\n ]\n },\n proxy: true,\n },\n ]),\n }),\n _c(\"grid-item\", {\n attrs: { \"column-width\": 28, label: \"PPR\" },\n scopedSlots: _vm._u([\n {\n key: \"value\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"request-details__ppr\" },\n [\n _c(\"c-icon\", {\n attrs: {\n icon: _vm.icons.googleDescriptionBaseline,\n size: \"16px\",\n },\n }),\n _c(\"span\", [\n _vm._v(\n \"Version \" + _vm._s(_vm.request.ppr?.version)\n ),\n ]),\n _c(\"span\", { staticClass: \"request-details__dot\" }, [\n _vm._v(\"•\"),\n ]),\n _c(\"a\", { on: { click: _vm.downloadPPR } }, [\n _vm._v(\"Download\"),\n ]),\n ],\n 1\n ),\n ]\n },\n proxy: true,\n },\n ]),\n }),\n ],\n 1\n ),\n _c(\n \"div\",\n { staticClass: \"info-column\" },\n [\n _c(\"grid-item\", {\n attrs: { \"column-width\": 78, label: \"L2 Resellers\" },\n scopedSlots: _vm._u([\n {\n key: \"value\",\n fn: function () {\n return [\n _c(\n \"div\",\n { staticClass: \"request-details__delegate\" },\n [\n _c(\"c-icon\", {\n attrs: {\n icon: _vm.request.delegate_l2\n ? _vm.icons.googleCheckCircleBaseline\n : _vm.icons.googleRemoveCircleBaseline,\n size: \"16px\",\n },\n }),\n _c(\"span\", [\n _vm._v(\n _vm._s(\n _vm.request.delegate_l2\n ? \"Delegated\"\n : \"Not delegated\"\n )\n ),\n ]),\n ],\n 1\n ),\n ]\n },\n proxy: true,\n },\n ]),\n }),\n ],\n 1\n ),\n ]),\n _c(\"c-tabs\", {\n attrs: { \"current-tab\": _vm.currentTab, tabs: _vm.tabs },\n on: {\n \"update:currentTab\": function ($event) {\n _vm.currentTab = $event\n },\n \"update:current-tab\": function ($event) {\n _vm.currentTab = $event\n },\n },\n scopedSlots: _vm._u([\n {\n key: \"marketplaces\",\n fn: function () {\n return [\n _c(\"request-marketplaces-tab\", {\n attrs: { \"request-id\": _vm.requestId },\n }),\n ]\n },\n proxy: true,\n },\n {\n key: \"tasks\",\n fn: function () {\n return [\n _c(\"request-tasks-tab\", {\n attrs: {\n \"request-id\": _vm.requestId,\n updating: _vm.areTasksUpdating,\n },\n on: {\n \"update:updating\": function ($event) {\n _vm.areTasksUpdating = $event\n },\n },\n }),\n ]\n },\n proxy: true,\n },\n ]),\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack://connect-extension-xvs/./ui/src/pages/RequestDetails.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet%5B1%5D.rules%5B1%5D!./node_modules/pug-plain-loader/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options"); /***/ })