diff --git a/src/components/ADCE/Onboarding/FAQs/GeneralInfo.js b/src/components/ADCE/Onboarding/FAQs/GeneralInfo.js index c8509889fa66fb3239a571dbc9204dc8e0dc0151..61f84bd5031a24b6ae012c33633ff2dc03f14942 100644 --- a/src/components/ADCE/Onboarding/FAQs/GeneralInfo.js +++ b/src/components/ADCE/Onboarding/FAQs/GeneralInfo.js @@ -99,7 +99,7 @@ const GeneralInfo = [ else offered by the DoD and we are working to make it better every day, from experience, if you choose to launch a full platform and pipeline by yourself, you will likely incur costs - on the order of $10-20M & significant hurdles in ATO that we + on the order of $10-$20M & significant hurdles in ATO that we will not be able to assist in removing. </TextHighlight> </p> @@ -121,12 +121,12 @@ const GeneralInfo = [ else offered by the DoD and we are working to make it better every day, from experience, if you choose to launch a full platform and pipeline by yourself, you will likely incur costs on the order of - $10-20M & significant hurdles in ATO that we will not be able to + $10-$20M & significant hurdles in ATO that we will not be able to assist in removing. ` }, { - header: `If dev1 takes the onboarding cohort, but then hands off to dev2, does dev2 need to have taken the onboarding cohort training prior to touching the system?`, + header: `If Dev1 takes the onboarding cohort, but then hands off to Dev2, does Dev2 need to have taken the onboarding cohort training prior to touching the system?`, display: true, component: { props: { @@ -154,12 +154,23 @@ const GeneralInfo = [ provided in the Platform One model. </TextHighlight> </p> + <p> + <i> + *{" "} + <TextHighlight queries={this.queries}> + Dev1 and Dev2 are references to developer "bodies". If Joe + (Dev1) goes through Onboarding, but needs to go do something + else with John (Dev2) taking his place on the team, does John + need to go through Onboarding before touching the system. + </TextHighlight> + </i> + </p> </div> ); } }, raw: ` - If dev1 takes the onboarding cohort, but then hands off to dev2, does dev2 + If Dev1 takes the onboarding cohort, but then hands off to Dev2, does Dev2 need to have taken the onboarding cohort training prior to touching the system? Not necessarily, however, the Platform One cost is the same either way (price includes cloud costs, DevSecOps support, and resources to @@ -172,6 +183,10 @@ const GeneralInfo = [ get a feel for the pace/rigor, then make a decision as to whether you would want to bear the burden of on-the-job training or use a service already provided in the Platform One model. + Dev1 and Dev2 are references to developer "bodies". If Joe + (Dev1) goes through Onboarding, but needs to go do something + else with John (Dev2) taking his place on the team, does John + need to go through Onboarding before touching the system. ` }, { @@ -237,37 +252,6 @@ const GeneralInfo = [ Alternatively, you could leave the course, but it is recommended that you practice what was learned. ` - }, - { - header: `What about embedded systems?`, - display: true, - component: { - props: { - queries: { - type: Array, - default: [] - } - }, - render() { - return ( - <div> - <p> - <TextHighlight queries={this.queries}> - The curriculum is currently being developed to go over the - nuances of TDD using C++ for embedded programming. We expect - this content to roll out in June or July 2020. - </TextHighlight> - </p> - </div> - ); - } - }, - raw: ` - What about embedded systems? - The curriculum is currently being developed to go over the nuances - of TDD using C++ for embedded programming. We expect this content to - roll out in June or July 2020. - ` } ]; diff --git a/src/components/ADCE/Onboarding/FAQs/Logistics.js b/src/components/ADCE/Onboarding/FAQs/Logistics.js index dbc993c66b5289e6d601b7328fba64ae9676dc47..664fb27ac24b7a44985112354d9390876f54c0d8 100644 --- a/src/components/ADCE/Onboarding/FAQs/Logistics.js +++ b/src/components/ADCE/Onboarding/FAQs/Logistics.js @@ -137,9 +137,9 @@ const Logistics = [ <div> <p> <TextHighlight queries={this.queries}> - No, the process is that when a new container needs to be harder, - the vendor will need to provide the container image directly to - the IronBank team. They will then to harden it and provide + No, the process is that when a new container needs to be + hardened, the vendor will need to provide the container image + directly to the IronBank team. Iron Bank hardens it and provide access to the DoD community once completed </TextHighlight> </p> @@ -149,9 +149,9 @@ const Logistics = [ }, raw: ` Can we provide our own hardened container images? - No, the process is that when a new container needs to be harder, the + No, the process is that when a new container needs to be hardened, the vendor will need to provide the container image directly to the - IronBank team. They will then to harden it and provide access to the + IronBank team. Iron Bank hardens it and provide access to the DoD community once completed ` }, @@ -171,10 +171,25 @@ const Logistics = [ <p> <TextHighlight queries={this.queries}> The container image will be prioritized for use based on - community needs. You can see the list of completed containers at - the link below with the priority level for what's on the - horizon. Container Hardening Priority. + community needs. You can see the list of completed containers in + the Iron Bank: </TextHighlight> + <a href="https://ironbank.dsop.io/ironbank/repomap"> + <TextHighlight queries={this.queries}> + {" "} + https://ironbank.dsop.io/ironbank/repomap{" "} + </TextHighlight> + </a> + </p> + <p> + <TextHighlight queries={this.queries}>Contact </TextHighlight> + <a href="mailto:af.cso@mail.mil"> + <TextHighlight queries={this.queries}> + {" "} + af.cso@mail.mil{" "} + </TextHighlight> + </a> + for Container Hardening Priorities. </p> </div> ); @@ -183,9 +198,9 @@ const Logistics = [ raw: ` How long will we need to wait for our container to be hardened? The container image will be prioritized for use based on community - needs. You can see the list of completed containers at the link - below with the priority level for what's on the horizon. Container - Hardening Priority. + needs. You can see the list of completed containers in the Iron Bank: + https://ironbank.dsop.io/ironbank/repomap + Contact af.cso@mail.mil for Container Hardening Priorities. ` }, { @@ -203,20 +218,28 @@ const Logistics = [ <div> <p> <TextHighlight queries={this.queries}> - Josh Eason says no, see above. Matt Hudson says, Yes you can get - the baseline approved, but you will be responsible for managing - and patching the image moving forward. + "Yes you can get the baseline approved by the Chief Software + Officer of the Air Force - Nic Chaillan, but you will be + responsible for managing and patching the image moving forward. + For more information please contact: </TextHighlight> + <a href="mailto:af.cso@us.af.mil"> + <TextHighlight queries={this.queries}> + {" "} + af.cso@us.af.mil{" "} + </TextHighlight> + </a> + " </p> </div> ); } }, raw: ` - Can we harden our own image? - Josh Eason says no, see above. Matt Hudson says, Yes you can get the - baseline approved, but you will be responsible for managing and - patching the image moving forward. + "Yes you can get the baseline approved by the Chief Software Officer of + the Air Force - Nic Chaillan, but you will be responsible for managing + and patching the image moving forward. For more information please + contact: af.cso@us.af.mil" ` }, { @@ -235,7 +258,7 @@ const Logistics = [ <p> <TextHighlight queries={this.queries}> RHEL container needs no additional licensing if it is run on an - RHEL compute node. Right now, all "Party Bus" and managed nodes + RHEL compute node. Right now, all Party Bus and managed nodes use RHEL; if you are launching your own clusters, be sure to take this into consideration. </TextHighlight> @@ -247,7 +270,7 @@ const Logistics = [ raw: ` Is RHEL's container licensed by DoD Platform One? RHEL container needs no additional licensing if it is run on an RHEL - compute node. Right now, all "Party Bus" and managed nodes use RHEL; + compute node. Right now, all Party Bus and managed nodes use RHEL; if you are launching your own clusters, be sure to take this into consideration. ` diff --git a/src/components/PageHeader.vue b/src/components/PageHeader.vue index b8572fa6bd94bf816dd1839fd293169185147400..c185c1314eb744183494a35498643bd688908216 100644 --- a/src/components/PageHeader.vue +++ b/src/components/PageHeader.vue @@ -5,8 +5,8 @@ <h1 class="px-4"> {{ title }} </h1> - <h1 v-if="title2" class="px-4"> - {{ title2 }} + <h1 v-for="line in titleWithBreaks" class="px-4" :key="line"> + {{ line }} </h1> <h2 v-if="subtext" class="subtext mx-lg-auto mx-5"> {{ subtext }} @@ -42,15 +42,15 @@ </template> <script> -import Breadcrumb from '@/components/Breadcrumb.vue'; +import Breadcrumb from "@/components/Breadcrumb.vue"; export default { props: { title: String, - title2: String, + titleWithBreaks: Array, subtext: String, description: String, displaySearch: Boolean, - onChangeSearch: Function, + onChangeSearch: Function }, components: { Breadcrumb }, methods: { @@ -58,8 +58,8 @@ export default { if (this.onChangeSearch) { this.onChangeSearch(value); } - }, - }, + } + } }; </script> <style lang="scss" scoped> diff --git a/src/views/3DayWorkshop.vue b/src/views/3DayWorkshop.vue index b372059771363820288bbdb6ad8753591db054a1..bf0a480238cb95ed29da1372264b673caf51b1a0 100644 --- a/src/views/3DayWorkshop.vue +++ b/src/views/3DayWorkshop.vue @@ -1,6 +1,6 @@ <template> <div class="3-day-workshop-page"> - <PageHeader title="Party Bus - ABMS ADCE" title2="3 DAY WORKSHOP" /> + <PageHeader :titleWithBreaks="titleWithBreaks" /> <div class="col-lg-12 px-4"> <div class="px-4 pb-4"> <h2 class="mx-0 pa-0"> @@ -25,16 +25,16 @@ <v-card class="mt-6" outlined width="400"> <v-list-item-content> <v-list-item-title class="headline mb-1">{{ - course['course name'] + course["course name"] }}</v-list-item-title> <v-list-item-subtitle class="pb-1"> - {{ course['start readable'] }} - - {{ course['end readable'] }} + {{ course["start readable"] }} - + {{ course["end readable"] }} </v-list-item-subtitle> </v-list-item-content> <v-card-text class="px-6"> <div class="text--primary px-0 py-2 text-left"> - {{ course['course description'] }} + {{ course["course description"] }} </div> <div> <v-progress-linear @@ -49,9 +49,9 @@ <div class="d-flex pt-2 justify-space-between"> <div> Seats remaining: - {{ course['max seats'] - course['reserved seats'] }} + {{ course["max seats"] - course["reserved seats"] }} </div> - <div>Total Seats: {{ course['max seats'] }}</div> + <div>Total Seats: {{ course["max seats"] }}</div> </div> </v-card-text> <v-card-actions class="flex justify-content-center mb-2"> @@ -128,87 +128,87 @@ </div> </template> <script> -import PageHeader from '@/components/PageHeader'; -import CoursesService from '@/api/courses'; +import PageHeader from "@/components/PageHeader"; +import CoursesService from "@/api/courses"; export default { - name: '3DayWorkshop', + name: "3DayWorkshop", components: { PageHeader }, data: function() { return { + titleWithBreaks: ["Party Bus - ABMS ADCE", "3 DAY WORKSHOP"], day1: [ { id: 1, text: - 'Deploy a Java API with a canary endpoint and verify it in Platform One.', + "Deploy a Java API with a canary endpoint and verify it in Platform One." }, { id: 2, text: - 'Review gitlab.yml and associate stages with IAAC for deploying on Party Bus', + "Review gitlab.yml and associate stages with IAAC for deploying on Party Bus" }, { id: 3, - text: 'Review docker file and add dependencies from Iron Bank', + text: "Review docker file and add dependencies from Iron Bank" }, { id: 4, - text: 'Review the build.gradle and update dependencies/tasks', + text: "Review the build.gradle and update dependencies/tasks" }, { id: 5, - text: 'Pair Programming and P1', + text: "Pair Programming and P1" }, { id: 6, text: - 'Add a test to verify the newly created endpoint and deploy to P1 dev', + "Add a test to verify the newly created endpoint and deploy to P1 dev" }, { id: 7, text: - 'Write a test for a new feature based on a story, fulfill the test, and deploy to P1', - }, + "Write a test for a new feature based on a story, fulfill the test, and deploy to P1" + } ], day2: [ { id: 1, - text: 'Leveraging P1 and built-in quality to continuously release', + text: "Leveraging P1 and built-in quality to continuously release" }, { id: 2, - text: - 'Writing user stories to leverage P1 continuous release ability', + text: "Writing user stories to leverage P1 continuous release ability" }, { id: 3, text: - 'Write a test for a new feature with underlying permutations and fulfill pipeline requirements', + "Write a test for a new feature with underlying permutations and fulfill pipeline requirements" }, { id: 4, - text: 'Paired code reviews as a P1 alternative to Pair Programming', - }, + text: "Paired code reviews as a P1 alternative to Pair Programming" + } ], day3: [ { id: 1, - text: 'Understanding how P1 prioritizes the customer', + text: "Understanding how P1 prioritizes the customer" }, { id: 2, - text: 'P1 recommended ceremonies', + text: "P1 recommended ceremonies" }, { id: 3, - text: 'Run a micro iteration on your P1 application', + text: "Run a micro iteration on your P1 application" }, { id: 4, - text: 'Retrospective', - }, + text: "Retrospective" + } ], - courses: [], + courses: [] }; }, async mounted() { @@ -216,7 +216,7 @@ export default { try { this.courses = await CoursesService.getCourses({ gbsd: false }); } catch (e) { - console.error('error getting courses', e); + console.error("error getting courses", e); } finally { this.loadingCourses = false; } @@ -225,23 +225,23 @@ export default { getUrl(course) { return encodeURI( `https://docs.google.com/forms/d/e/1FAIpQLScdVm3uZo_8PAt2aGivbj621DU02RROGGr8DsVb0QgRNLiDLw/viewform?entry.1531415298=${course[ - 'start date' + "start date" ] + - '+-+' + - course['course name'].replace(/ /g, '+')}` + "+-+" + + course["course name"].replace(/ /g, "+")}` ); }, is3DayWorkshop(courseName) { return courseName.match(/3-day Workshop/i); - }, + } }, computed: { filteredCourses() { - return this.courses.filter((course) => - this.is3DayWorkshop(course['course name']) + return this.courses.filter(course => + this.is3DayWorkshop(course["course name"]) ); - }, - }, + } + } }; </script> <style lang="scss"> diff --git a/src/views/ADCEOnboarding.vue b/src/views/ADCEOnboarding.vue index f1d91cfa197fd353bbcb501844c988ce5ebfa960..6765911b27319c0d0e087d9d04aaf4e58dc70b93 100644 --- a/src/views/ADCEOnboarding.vue +++ b/src/views/ADCEOnboarding.vue @@ -1,14 +1,6 @@ <template> <div class="adce-onboarding"> - <PageHeader - :title=" - $vuetify.breakpoint.xs - ? 'Party Bus - ABMS ADCE On-boarding' - : 'Party Bus - ABMS ADCE Onboarding' - " - subtext - description - /> + <PageHeader :titleWithBreaks="titleWithBreaks" subtext description /> <v-container class="px-8" fluid> <h2> Register for an onboarding session now @@ -343,6 +335,11 @@ export default { PageHeader, Wave, Tooltip + }, + data() { + return { + titleWithBreaks: ["Party Bus - ABMS ADCE", "Onboarding"] + }; } }; </script> diff --git a/src/views/ADCEOnboardingFAQs.vue b/src/views/ADCEOnboardingFAQs.vue index ea2170de5a500589179466d61ac227251ccc4ecb..8c7b771725ab04c2a0a48602cc7ac3e95907d7e2 100644 --- a/src/views/ADCEOnboardingFAQs.vue +++ b/src/views/ADCEOnboardingFAQs.vue @@ -1,7 +1,7 @@ <template> <div class="adce-onboarding-faqs"> <PageHeader - title="Onboarding FAQs" + :titleWithBreaks="titleWithBreaks" subtext description displaySearch @@ -28,7 +28,8 @@ export default { }, data() { return { - searchText: "" + searchText: "", + titleWithBreaks: ["PARTY BUS - ABMS ADCE", "Onboarding FAQs"] }; }, methods: {