client/routes/help/index.vue (271 lines of code) (raw):
<script>
// Copyright (c) 2017-2024 Uber Technologies Inc.
//
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
import { cliCommands } from './constants';
export default {
props: ['hideDocs', 'hideSlack', 'hideStackOverflow'],
data() {
return {
cliCommands,
};
},
};
</script>
<template>
<section class="help">
<section id="getting-started">
<h1>Welcome to Cadence!</h1>
<h3>
<a href="#getting-started">
Getting started
</a>
</h3>
<p>
If you are new to Cadence, here's some resources to get you started!
</p>
<div class="video-outer-container">
<div class="video-inner-container">
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/-BuIkhlc-RM?start=3"
frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
/>
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/aLyRyNe5Ls0"
frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
/>
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/5mBLspVKOAI"
frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
/>
</div>
</div>
<slot name="getting-started" />
<div v-if="!hideDocs">
<a
href="https://cadenceworkflow.io/docs/get-started/"
target="_blank"
rel="noopener noreferrer"
>
Docs
</a>
</div>
<div>
<a
href="https://github.com/samarabbas/cadence-samples"
target="_blank"
rel="noopener noreferrer"
>
Code Samples
</a>
</div>
<div>
<a
href="https://github.com/uber/cadence"
target="_blank"
rel="noopener noreferrer"
>
Cadence source code on GitHub
</a>
</div>
<div>
<a
href="https://github.com/uber/cadence-web"
target="_blank"
rel="noopener noreferrer"
>
Cadence UI source code on GitHub
</a>
</div>
</section>
<section id="cli">
<h3>
<a href="#cli">
Common CLI commands
</a>
</h3>
<p>
Here are a some useful common CLI commands to get started with Cadence.
</p>
<section v-for="commandGroup in cliCommands" :key="commandGroup.header">
<h5>{{ commandGroup.header }}</h5>
<div
class="cli-command"
v-for="command in commandGroup.commands"
:key="command.id"
>
<label :for="command.id">{{ command.label }}</label>
<pre :id="command.id">{{ command.value }}</pre>
<p v-for="(description, index) in command.description" :key="index">
{{ description }}
</p>
</div>
</section>
<div>
<a
href="https://cadenceworkflow.io/docs/cli/"
target="_blank"
rel="noopener noreferrer"
>
See more CLI commands
</a>
</div>
</section>
<section id="release-notes">
<h3>
<a href="#release-notes">
Latest release notes
</a>
</h3>
<div>
<a
href="https://github.com/uber/cadence/releases/latest"
target="_blank"
rel="noopener noreferrer"
>
Cadence
</a>
</div>
<div>
<a
href="https://github.com/uber/cadence-web/releases/latest"
target="_blank"
rel="noopener noreferrer"
>
Cadence UI
</a>
</div>
<slot name="release-notes" />
</section>
<slot name="other" />
<section id="contact-us">
<h3>
<a href="#contact-us">
Contact us
</a>
</h3>
<p>Our office hours are 9am - 5pm PDT</p>
<div v-if="!hideStackOverflow">
<a
href="https://stackoverflow.com/questions/tagged/cadence-workflow"
target="_blank"
rel="noopener noreferrer"
>
Ask a question on Stack Overflow
</a>
</div>
<div v-if="!hideSlack">
<a
href="https://join.slack.com/t/uber-cadence/shared_invite/enQtNDczNTgxMjYxNDEzLTQyYjcxZDM2YTIxMTZkMzQ0NjgxYmI3OWY5ODhiOTliM2I5MzA4NTM4MjU4YzgzZDkwNGEzOTUzNTBlNDk3Yjc"
target="_blank"
rel="noopener noreferrer"
>
Join our slack channel
</a>
</div>
<slot name="contact-us" />
</section>
</section>
</template>
<style lang="stylus">
@require "../../styles/definitions"
iframe-height = 315px;
iframe-scrollbar-height = 15px;
iframe-margin = 20px;
iframe-width = 560px;
iframe-count = 3;
max-iframe-width = iframe-count * (iframe-width + iframe-margin) - iframe-margin;
section.help {
display: flex;
flex-direction: column;
flex: 1 1 auto;
margin: layout-spacing-large;
@media (min-width max-iframe-width) {
width: max-iframe-width;
margin: layout-spacing-large auto;
}
.cli-command {
margin-bottom: 25px;
}
.video-outer-container {
height: iframe-height + iframe-scrollbar-height;
margin: 20px 0;
overflow-x: auto;
overflow-y: hidden;
width: 100%;
.video-inner-container {
width: max-iframe-width;
}
iframe {
float: left;
margin-right: iframe-margin;
&:last-child {
margin-right: 0;
}
}
}
a {
line-height: 2em;
&:after {
content: '';
background: none;
}
&:nth-child(2n) {
background: none;
}
}
h1 {
margin-bottom: base-font-size*2;
}
h3 {
margin: 1em 0 0.5em;
> a {
color: #494949;
line-height: 24px;
}
}
h5 {
margin: 1em 0 0.5em;
}
label {
display: block;
font-weight: 500;
margin: 1em 0 0.5em;
}
p {
margin: 0.5em 0 0.5em;
}
pre {
display: inline-block;
}
}
</style>