Add Vue app; migrate layout / static pages
This commit is contained in:
parent
0f63a673f4
commit
3927a4cb22
3
src/JobsJobsJobs/App/.browserslistrc
Normal file
3
src/JobsJobsJobs/App/.browserslistrc
Normal file
@ -0,0 +1,3 @@
|
||||
> 1%
|
||||
last 2 versions
|
||||
not dead
|
5
src/JobsJobsJobs/App/.editorconfig
Normal file
5
src/JobsJobsJobs/App/.editorconfig
Normal file
@ -0,0 +1,5 @@
|
||||
[*.{js,jsx,ts,tsx,vue}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
19
src/JobsJobsJobs/App/.eslintrc.js
Normal file
19
src/JobsJobsJobs/App/.eslintrc.js
Normal file
@ -0,0 +1,19 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
env: {
|
||||
node: true
|
||||
},
|
||||
extends: [
|
||||
'plugin:vue/vue3-essential',
|
||||
'@vue/standard',
|
||||
'@vue/typescript/recommended'
|
||||
],
|
||||
parserOptions: {
|
||||
ecmaVersion: 2020
|
||||
},
|
||||
rules: {
|
||||
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
|
||||
'vue/no-multiple-template-root': 'off'
|
||||
}
|
||||
}
|
23
src/JobsJobsJobs/App/.gitignore
vendored
Normal file
23
src/JobsJobsJobs/App/.gitignore
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
.DS_Store
|
||||
node_modules
|
||||
/dist
|
||||
|
||||
|
||||
# local env files
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# Log files
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
# Editor directories and files
|
||||
.idea
|
||||
.vscode
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
5
src/JobsJobsJobs/App/babel.config.js
Normal file
5
src/JobsJobsJobs/App/babel.config.js
Normal file
@ -0,0 +1,5 @@
|
||||
module.exports = {
|
||||
presets: [
|
||||
'@vue/cli-plugin-babel/preset'
|
||||
]
|
||||
}
|
13896
src/JobsJobsJobs/App/package-lock.json
generated
Normal file
13896
src/JobsJobsJobs/App/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
42
src/JobsJobsJobs/App/package.json
Normal file
42
src/JobsJobsJobs/App/package.json
Normal file
@ -0,0 +1,42 @@
|
||||
{
|
||||
"name": "jobs-jobs-jobs",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"serve": "vue-cli-service serve",
|
||||
"build": "vue-cli-service build",
|
||||
"lint": "vue-cli-service lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@mdi/font": "5.9.55",
|
||||
"core-js": "^3.6.5",
|
||||
"roboto-fontface": "*",
|
||||
"vue": "^3.0.0",
|
||||
"vue-router": "^4.0.0-0",
|
||||
"vuetify": "^3.0.0-alpha.0",
|
||||
"vuex": "^4.0.0-0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@typescript-eslint/eslint-plugin": "^4.18.0",
|
||||
"@typescript-eslint/parser": "^4.18.0",
|
||||
"@vue/cli-plugin-babel": "~4.5.0",
|
||||
"@vue/cli-plugin-eslint": "~4.5.0",
|
||||
"@vue/cli-plugin-router": "~4.5.0",
|
||||
"@vue/cli-plugin-typescript": "~4.5.0",
|
||||
"@vue/cli-plugin-vuex": "~4.5.0",
|
||||
"@vue/cli-service": "~4.5.0",
|
||||
"@vue/compiler-sfc": "^3.0.0",
|
||||
"@vue/eslint-config-standard": "^5.1.2",
|
||||
"@vue/eslint-config-typescript": "^7.0.0",
|
||||
"eslint": "^6.7.2",
|
||||
"eslint-plugin-import": "^2.20.2",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-promise": "^4.2.1",
|
||||
"eslint-plugin-standard": "^4.0.0",
|
||||
"eslint-plugin-vue": "^7.0.0",
|
||||
"sass": "~1.32.0",
|
||||
"sass-loader": "^10.0.0",
|
||||
"typescript": "~4.1.5",
|
||||
"vue-cli-plugin-vuetify": "~2.4.1"
|
||||
}
|
||||
}
|
BIN
src/JobsJobsJobs/App/public/audio/pelosi-jobs.mp3
Normal file
BIN
src/JobsJobsJobs/App/public/audio/pelosi-jobs.mp3
Normal file
Binary file not shown.
BIN
src/JobsJobsJobs/App/public/audio/thats-true.mp3
Normal file
BIN
src/JobsJobsJobs/App/public/audio/thats-true.mp3
Normal file
Binary file not shown.
BIN
src/JobsJobsJobs/App/public/favicon.ico
Normal file
BIN
src/JobsJobsJobs/App/public/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
18
src/JobsJobsJobs/App/public/index.html
Normal file
18
src/JobsJobsJobs/App/public/index.html
Normal file
@ -0,0 +1,18 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||
<link rel="stylesheet" href="https://necolas.github.io/normalize.css/latest/normalize.css">
|
||||
<title><%= htmlWebpackPlugin.options.title %></title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
||||
</noscript>
|
||||
<div id="app"></div>
|
||||
<!-- built files will be auto injected -->
|
||||
</body>
|
||||
</html>
|
69
src/JobsJobsJobs/App/src/App.vue
Normal file
69
src/JobsJobsJobs/App/src/App.vue
Normal file
@ -0,0 +1,69 @@
|
||||
<template>
|
||||
<v-app>
|
||||
<v-navigation-drawer app>
|
||||
<app-nav />
|
||||
</v-navigation-drawer>
|
||||
<v-app-bar color="secondary" app>
|
||||
<title-bar />
|
||||
</v-app-bar>
|
||||
<v-main>
|
||||
<v-container fluid>
|
||||
<router-view></router-view>
|
||||
</v-container>
|
||||
</v-main>
|
||||
<v-footer app>
|
||||
<app-footer />
|
||||
</v-footer>
|
||||
</v-app>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
import AppFooter from './components/shared/AppFooter.vue'
|
||||
import AppNav from './components/shared/AppNav.vue'
|
||||
import TitleBar from './components/shared/TitleBar.vue'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'App',
|
||||
components: {
|
||||
AppFooter,
|
||||
AppNav,
|
||||
TitleBar
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
//
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="sass">
|
||||
// Overall app styles
|
||||
h3
|
||||
font-size: 1.75rem
|
||||
h4
|
||||
font-size: 1.5rem
|
||||
h1, h2, h3, h4, h5
|
||||
margin-bottom: .5rem
|
||||
font-weight: 500
|
||||
line-height: 1.2
|
||||
p
|
||||
padding-bottom: 1rem
|
||||
ul
|
||||
padding-bottom: 1rem
|
||||
margin-left: 1.5rem
|
||||
li
|
||||
list-style-type: disc
|
||||
// Styles for this component
|
||||
.v-navigation-drawer
|
||||
background-image: linear-gradient(180deg, darkgreen 0%, green 70%)
|
||||
height: 100vh
|
||||
.v-app-bar
|
||||
height: 3.5rem !important
|
||||
display: flex
|
||||
align-items: center
|
||||
justify-content: center
|
||||
.v-footer
|
||||
flex-direction: row-reverse
|
||||
</style>
|
0
src/JobsJobsJobs/App/src/assets/.gitkeep
Normal file
0
src/JobsJobsJobs/App/src/assets/.gitkeep
Normal file
33
src/JobsJobsJobs/App/src/components/shared/AppFooter.vue
Normal file
33
src/JobsJobsJobs/App/src/components/shared/AppFooter.vue
Normal file
@ -0,0 +1,33 @@
|
||||
<template>
|
||||
<p>Jobs, Jobs, Jobs [version] • <router-link to="/privacy-policy">Privacy Policy</router-link>
|
||||
• <router-link to="/terms-of-service">Terms of Service</router-link>
|
||||
</p>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'AppFooter',
|
||||
|
||||
data () {
|
||||
return {
|
||||
//
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="sass" scoped>
|
||||
p
|
||||
padding-top: 2rem
|
||||
color: rgba(0, 0, 0, .4)
|
||||
font-style: italic
|
||||
font-size: .8rem
|
||||
a:link,
|
||||
a:visited
|
||||
color: rgba(0, 0, 0, .4)
|
||||
text-decoration: none
|
||||
a:hover
|
||||
text-decoration: underline
|
||||
</style>
|
65
src/JobsJobsJobs/App/src/components/shared/AppNav.vue
Normal file
65
src/JobsJobsJobs/App/src/components/shared/AppNav.vue
Normal file
@ -0,0 +1,65 @@
|
||||
<template>
|
||||
<aside>
|
||||
<p class="home-link"><router-link to="/">Jobs, Jobs, Jobs</router-link></p>
|
||||
<p> </p>
|
||||
<nav>
|
||||
<router-link to="/"><v-icon icon="mdi-home" /> Home</router-link>
|
||||
<!-- If not logged in -->
|
||||
<router-link to="/profile/seeking"><v-icon icon="mdi-view-list-outline" /> Job Seekers</router-link>
|
||||
<router-link to="/log-on"><v-icon icon="mdi-login-variant" /> Log On</router-link>
|
||||
<!-- If logged in -->
|
||||
<router-link to="/citizen/profile"><v-icon icon="mdi-pencil" /> Edit Your Profile</router-link>
|
||||
<router-link to="/profile/search"><v-icon icon="mdi-view-list-outline" /> View Profiles</router-link>
|
||||
<router-link to="/success-story/list"><v-icon icon="mdi-thumb-up" /> Success Stories</router-link>
|
||||
<router-link to="/citizen/log-off"><v-icon icon="mdi-logout-variant" /> Log Off</router-link>
|
||||
<!-- everyone -->
|
||||
<router-link to="/how-it-works"><v-icon icon="mdi-help-circle-outline" /> How It Works</router-link>
|
||||
</nav>
|
||||
</aside>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'AppNav',
|
||||
|
||||
data () {
|
||||
return {
|
||||
//
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="sass" scoped>
|
||||
aside
|
||||
color: white
|
||||
margin: 1rem
|
||||
font-size: 1.2rem
|
||||
a:link, a:visited
|
||||
text-decoration: none
|
||||
color: white
|
||||
font-weight: bold
|
||||
.home-link
|
||||
font-size: 1.2rem
|
||||
text-align: center
|
||||
background-color: rgba(0, 0, 0, .4)
|
||||
margin: -1rem
|
||||
padding: 1rem
|
||||
nav > a
|
||||
display: block
|
||||
width: 100%
|
||||
border-radius: .25rem
|
||||
padding: .5rem
|
||||
margin-bottom: 1rem
|
||||
font-size: 1rem
|
||||
> i
|
||||
vertical-align: top
|
||||
margin-right: 1rem
|
||||
&.router-link-exact-active
|
||||
background-color: rgba(255, 255, 255, .2)
|
||||
&:hover
|
||||
background-color: rgba(255, 255, 255, .5)
|
||||
color: black
|
||||
</style>
|
37
src/JobsJobsJobs/App/src/components/shared/AudioClip.vue
Normal file
37
src/JobsJobsJobs/App/src/components/shared/AudioClip.vue
Normal file
@ -0,0 +1,37 @@
|
||||
<template>
|
||||
<span @click.prevent="playFile"><slot></slot></span><audio :id="clip"><source :src="clipSource"></audio>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'AudioClip',
|
||||
props: {
|
||||
clip: {
|
||||
type: String,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
clipSource () : string {
|
||||
return `/audio/${this.clip}.mp3`
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
playFile () {
|
||||
const audio = document.getElementById(this.clip) as HTMLAudioElement
|
||||
audio.play()
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="sass" scoped>
|
||||
audio
|
||||
display: none
|
||||
span
|
||||
border-bottom: dotted 1px lightgray
|
||||
&:hover
|
||||
cursor: pointer
|
||||
</style>
|
23
src/JobsJobsJobs/App/src/components/shared/TitleBar.vue
Normal file
23
src/JobsJobsJobs/App/src/components/shared/TitleBar.vue
Normal file
@ -0,0 +1,23 @@
|
||||
<template>
|
||||
<p>(...and Jobs – <audio-clip clip="pelosi-jobs">Let's Vote for Jobs!</audio-clip>)</p>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
import AudioClip from './AudioClip.vue'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'TitleBar',
|
||||
components: {
|
||||
AudioClip
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="sass" scoped>
|
||||
p
|
||||
width: 100%
|
||||
text-align: right
|
||||
font-style: italic
|
||||
padding: 0 .5rem 0 0
|
||||
</style>
|
11
src/JobsJobsJobs/App/src/main.ts
Normal file
11
src/JobsJobsJobs/App/src/main.ts
Normal file
@ -0,0 +1,11 @@
|
||||
import { createApp } from 'vue'
|
||||
import vuetify from './plugins/vuetify'
|
||||
import App from './App.vue'
|
||||
import router from './router'
|
||||
import store from './store'
|
||||
|
||||
createApp(App)
|
||||
.use(router)
|
||||
.use(store)
|
||||
.use(vuetify)
|
||||
.mount('#app')
|
48
src/JobsJobsJobs/App/src/plugins/vuetify.ts
Normal file
48
src/JobsJobsJobs/App/src/plugins/vuetify.ts
Normal file
@ -0,0 +1,48 @@
|
||||
import '@mdi/font/css/materialdesignicons.css'
|
||||
import 'vuetify/lib/styles/main.sass'
|
||||
import { createVuetify } from 'vuetify'
|
||||
import * as components from 'vuetify/lib/components'
|
||||
import * as directives from 'vuetify/lib/directives'
|
||||
|
||||
const jjjTheme = {
|
||||
dark: false,
|
||||
colors: {
|
||||
background: '#ffffff',
|
||||
surface: '#ffffff',
|
||||
primary: '#007bff',
|
||||
'primary-darken-1': '#3700b3',
|
||||
secondary: '#f7f7f7',
|
||||
'secondary-darken-1': '#018786',
|
||||
error: '#b00020',
|
||||
info: '#2196f3',
|
||||
success: '#4caf50',
|
||||
warning: '#fb8c00'
|
||||
},
|
||||
variables: {
|
||||
'border-color': '#000000',
|
||||
'border-opacity': 0.12,
|
||||
'high-emphasis-opacity': 0.87,
|
||||
'medium-emphasis-opacity': 0.60,
|
||||
'disabled-opacity': 0.38,
|
||||
'activated-opacity': 0.12,
|
||||
'hover-opacity': 0.04,
|
||||
'focus-opacity': 0.12,
|
||||
'selected-opacity': 0.08,
|
||||
'dragged-opacity': 0.08,
|
||||
'pressed-opacity': 0.16,
|
||||
'kbd-background-color': '#212529',
|
||||
'kbd-color': '#FFFFFF',
|
||||
'code-background-color': '#C2C2C2'
|
||||
}
|
||||
}
|
||||
|
||||
export default createVuetify({
|
||||
components,
|
||||
directives,
|
||||
theme: {
|
||||
defaultTheme: 'jjjTheme',
|
||||
themes: {
|
||||
jjjTheme
|
||||
}
|
||||
}
|
||||
})
|
35
src/JobsJobsJobs/App/src/router/index.ts
Normal file
35
src/JobsJobsJobs/App/src/router/index.ts
Normal file
@ -0,0 +1,35 @@
|
||||
import { createRouter, createWebHistory, RouteLocationNormalized, RouteLocationNormalizedLoaded, RouteRecordRaw } from 'vue-router'
|
||||
import Home from '../views/Home.vue'
|
||||
|
||||
const routes: Array<RouteRecordRaw> = [
|
||||
{
|
||||
path: '/',
|
||||
name: 'Home',
|
||||
component: Home
|
||||
},
|
||||
{
|
||||
path: '/how-it-works',
|
||||
name: 'HowItWorks',
|
||||
component: () => import(/* webpackChunkName: "help" */ '../views/HowItWorks.vue')
|
||||
},
|
||||
{
|
||||
path: '/privacy-policy',
|
||||
name: 'PrivacyPolicy',
|
||||
component: () => import(/* webpackChunkName: "privacy" */ '../views/PrivacyPolicy.vue')
|
||||
},
|
||||
{
|
||||
path: '/terms-of-service',
|
||||
name: 'TermsOfService',
|
||||
component: () => import(/* webpackChunkName: "terms" */ '../views/TermsOfService.vue')
|
||||
}
|
||||
]
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(process.env.BASE_URL),
|
||||
scrollBehavior (to: RouteLocationNormalized, from: RouteLocationNormalizedLoaded, savedPosition: any) {
|
||||
return savedPosition ?? { top: 0, left: 0 }
|
||||
},
|
||||
routes
|
||||
})
|
||||
|
||||
export default router
|
6
src/JobsJobsJobs/App/src/shims-vue.d.ts
vendored
Normal file
6
src/JobsJobsJobs/App/src/shims-vue.d.ts
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
/* eslint-disable */
|
||||
declare module '*.vue' {
|
||||
import type { DefineComponent } from 'vue'
|
||||
const component: DefineComponent<{}, {}, any>
|
||||
export default component
|
||||
}
|
3
src/JobsJobsJobs/App/src/shims-vuetify.d.ts
vendored
Normal file
3
src/JobsJobsJobs/App/src/shims-vuetify.d.ts
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
declare module 'vuetify'
|
||||
declare module 'vuetify/lib/components'
|
||||
declare module 'vuetify/lib/directives'
|
12
src/JobsJobsJobs/App/src/store/index.ts
Normal file
12
src/JobsJobsJobs/App/src/store/index.ts
Normal file
@ -0,0 +1,12 @@
|
||||
import { createStore } from 'vuex'
|
||||
|
||||
export default createStore({
|
||||
state: {
|
||||
},
|
||||
mutations: {
|
||||
},
|
||||
actions: {
|
||||
},
|
||||
modules: {
|
||||
}
|
||||
})
|
24
src/JobsJobsJobs/App/src/views/Home.vue
Normal file
24
src/JobsJobsJobs/App/src/views/Home.vue
Normal file
@ -0,0 +1,24 @@
|
||||
<template>
|
||||
<p>
|
||||
Welcome to Jobs, Jobs, Jobs (AKA No Agenda Careers), where citizens of Gitmo Nation can assist one another in
|
||||
finding employment. This will enable them to continue providing value-for-value to Adam and John, as they continue
|
||||
their work deconstructing the misinformation that passes for news on a day-to-day basis.
|
||||
</p>
|
||||
<p>
|
||||
Do you not understand the terms in the paragraph above? No worries; just head over to
|
||||
<a href="https://noagendashow.net" target="_blank">The Best Podcast in the Universe</a>
|
||||
<em><audio-clip clip="thats-true"> (that’s true!)</audio-clip></em> and find out what you’re missing.
|
||||
</p>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
import AudioClip from '../components/shared/AudioClip.vue'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Home',
|
||||
components: {
|
||||
AudioClip
|
||||
}
|
||||
})
|
||||
</script>
|
79
src/JobsJobsJobs/App/src/views/HowItWorks.vue
Normal file
79
src/JobsJobsJobs/App/src/views/HowItWorks.vue
Normal file
@ -0,0 +1,79 @@
|
||||
<template>
|
||||
<h3>How It Works</h3>
|
||||
|
||||
<h4>Completing Your Profile</h4>
|
||||
<ul>
|
||||
<li>
|
||||
The “View Your Employment Profile” link (which you”ll see on this page, once your profile is
|
||||
established) shows your profile the way all other validated users will be able to see it. While this site does not
|
||||
perform communication with others over No Agenda Social, the name on employment profiles is a link to that
|
||||
user’s profile; from there, others can communicate further with you using the tools Mastodon provides.
|
||||
</li>
|
||||
<li>
|
||||
The “Professional Biography” and “Experience” sections support Markdown, a plain-text way
|
||||
to specify formatting quite similar to that provided by word processors. The
|
||||
<a href="https://daringfireball.net/projects/markdown/" target="_blank">original page</a> for the project is a
|
||||
good overview of its capabilities, and the pages at
|
||||
<a href="https://www.markdownguide.org/" target="_blank">Markdown Guide</a> give in-depth lessons to make the most
|
||||
of this language. The version of Markdown employed here supports many popular extensions, include smart quotes
|
||||
(turning "a quote" into “a quote”), tables, super/subscripts, and more.
|
||||
</li>
|
||||
<li>
|
||||
Skills are optional, but they are the place to record skills you have. Along with the skill, there is a
|
||||
“Notes” section, which can be used to indicate the time you’ve practiced a particular skill, the
|
||||
mastery you have of that skill, etc. It is free-form text, so it is all up to you how you utilize the field.
|
||||
</li>
|
||||
<li>
|
||||
The “Experience” field is intended to capture a chronological or topical employment history; with this
|
||||
“quick-n-dirty” implementation, this Markdown box can be used to capture that information however you
|
||||
would like it presented to fellow citizens.
|
||||
</li>
|
||||
<li>
|
||||
If you check the “Allow my profile to be searched publicly” checkbox, <strong>and</strong> you are
|
||||
seeking employment, your continent, region, and skills fields will be searchable and displayed to public users of
|
||||
the site. They will not be tied to your No Agenda Social handle or real name; they are there to let people peek
|
||||
behind the curtain a bit, and hopefully inspire them to join us.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Searching Profiles</h4>
|
||||
<p>
|
||||
The “View Profiles” link at the side allows you to search for profiles by continent, the citizen’s
|
||||
desire for remote work, a skill, or any text in their professional biography and experience. If you find someone
|
||||
with whom you’d like to discuss potential opportunities, the name at the top of the profile links to their No
|
||||
Agenda Social account, where you can use its features to get in touch.
|
||||
</p>
|
||||
|
||||
<h4>Finding Employment</h4>
|
||||
<p>
|
||||
If your profile indicates that you are seeking employment, and you secure employment, that is something you will
|
||||
want to update (and – congratulations!). From both the Dashboard and the Edit Profile pages, you will see a
|
||||
link that encourages you to tell us about it. Click either of those links, and you will be brought to a page that
|
||||
allows you to indicate whether your employment actually came from someone finding your profile on Jobs, Jobs, Jobs,
|
||||
and gives you a place to write about the experience. These stories are only viewable by validated users, so feel
|
||||
free to use as much (or as little) identifying information as you’d like. You can also submit this page with
|
||||
all the fields blank; in that case, your “Seeking Employment” flag is cleared, and the
|
||||
“story” is recorded.
|
||||
</p>
|
||||
<p>
|
||||
As a validated user, you can also view others success stories. Clicking “Success Stories” in the sidebar
|
||||
will display a list of all the stories that have been recorded. If there is a story to be read, there will be a link
|
||||
to read it; if you submitted the story, there will also be an “Edit” link.
|
||||
</p>
|
||||
|
||||
<h4>Publicly Available Information</h4>
|
||||
<p>
|
||||
The “Job Seekers” page for profile information will allow users to search for and display the continent,
|
||||
region, skills, and notes of users who are seeking employment <strong>and</strong> have opted in to their
|
||||
information being publicly searchable. If you are a public user, this information is always the latest we have;
|
||||
check out the link at the top of the search results for how you can learn more about these fine human resources!
|
||||
</p>
|
||||
|
||||
<h4>Help / Suggestions</h4>
|
||||
<p>
|
||||
This is open-source software
|
||||
<a href="https://github.com/bit-badger/jobs-jobs-jobs" _target="_blank">developed on Github</a>; feel free to
|
||||
<a href="https://github.com/bit-badger/jobs-jobs-jobs/issues" target="_blank">create an issue there</a>, or look up
|
||||
@danieljsummers on No Agenda Social.
|
||||
</p>
|
||||
</template>
|
422
src/JobsJobsJobs/App/src/views/PrivacyPolicy.vue
Normal file
422
src/JobsJobsJobs/App/src/views/PrivacyPolicy.vue
Normal file
@ -0,0 +1,422 @@
|
||||
<template>
|
||||
|
||||
<h3>Privacy Policy</h3>
|
||||
<p><em>(as of February 6<sup>th</sup>, 2021)</em></p>
|
||||
|
||||
<p>
|
||||
{{name}} (“we,” “our,” or “us”) is committed to protecting your privacy. This Privacy Policy explains how your
|
||||
personal information is collected, used, and disclosed by {{name}}.
|
||||
</p>
|
||||
<p>
|
||||
This Privacy Policy applies to our website, and its associated subdomains (collectively, our “Service”) alongside
|
||||
our application, {{name}}. By accessing or using our Service, you signify that you have read, understood, and agree
|
||||
to our collection, storage, use, and disclosure of your personal information as described in this Privacy Policy and
|
||||
our Terms of Service.
|
||||
</p>
|
||||
|
||||
<h4>Definitions and key terms</h4>
|
||||
<p>
|
||||
To help explain things as clearly as possible in this Privacy Policy, every time any of these terms are referenced,
|
||||
are strictly defined as:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
Cookie: small amount of data generated by a website and saved by your web browser. It is used to identify your
|
||||
browser, provide analytics, remember information about you such as your language preference or login information.
|
||||
</li>
|
||||
<li>
|
||||
Company: when this policy mentions “Company,” “we,” “us,” or “our,” it refers to {{name}}, that is responsible for
|
||||
your information under this Privacy Policy.
|
||||
</li>
|
||||
<li>Country: where {{name}} or the owners/founders of {{name}} are based, in this case is US.</li>
|
||||
<li>
|
||||
Customer: refers to the company, organization or person that signs up to use the {{name}} Service to manage the
|
||||
relationships with your consumers or service users.
|
||||
</li>
|
||||
<li>
|
||||
Device: any internet connected device such as a phone, tablet, computer or any other device that can be used to
|
||||
visit {{name}} and use the services.
|
||||
</li>
|
||||
<li>
|
||||
IP address: Every device connected to the Internet is assigned a number known as an Internet protocol (IP)
|
||||
address. These numbers are usually assigned in geographic blocks. An IP address can often be used to identify the
|
||||
location from which a device is connecting to the Internet.
|
||||
</li>
|
||||
<li>
|
||||
Personnel: refers to those individuals who are employed by {{name}} or are under contract to perform a service on
|
||||
behalf of one of the parties.
|
||||
</li>
|
||||
<li>
|
||||
Personal Data: any information that directly, indirectly, or in connection with other information — including a
|
||||
personal identification number — allows for the identification or identifiability of a natural person.
|
||||
</li>
|
||||
<li>
|
||||
Service: refers to the service provided by {{name}} as described in the relative terms (if available) and on this
|
||||
platform.
|
||||
</li>
|
||||
<li>
|
||||
Third-party service: refers to advertisers, contest sponsors, promotional and marketing partners, and others who
|
||||
provide our content or whose products or services we think may interest you.
|
||||
</li>
|
||||
<li>
|
||||
Website: {{name}}’s site, which can be accessed via this URL:
|
||||
<router-link to="/">https://noagendacareers.com/</router-link>
|
||||
</li>
|
||||
<li>You: a person or entity that is registered with {{name}} to use the Services.</li>
|
||||
</ul>
|
||||
|
||||
<h4>What Information Do We Collect?</h4>
|
||||
<p>
|
||||
We collect information from you when you visit our website, register on our site, or fill out a form.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>Name / Username</li>
|
||||
<li>Coarse Geographic Location</li>
|
||||
<li>Employment History</li>
|
||||
<li>No Agenda Social Account Name / Profile</li>
|
||||
</ul>
|
||||
|
||||
<h4>How Do We Use The Information We Collect?</h4>
|
||||
<p>
|
||||
Any of the information we collect from you may be used in one of the following ways:
|
||||
</p>
|
||||
<ul>
|
||||
<li>To personalize your experience (your information helps us to better respond to your individual needs)</li>
|
||||
<li>
|
||||
To improve our website (we continually strive to improve our website offerings based on the information and
|
||||
feedback we receive from you)
|
||||
</li>
|
||||
<li>
|
||||
To improve customer service (your information helps us to more effectively respond to your customer service
|
||||
requests and support needs)
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>When does {{name}} use end user information from third parties?</h4>
|
||||
<p>{{name}} will collect End User Data necessary to provide the {{name}} services to our customers.</p>
|
||||
<p>
|
||||
End users may voluntarily provide us with information they have made available on social media websites
|
||||
(specifically No Agenda Social). If you provide us with any such information, we may collect publicly available
|
||||
information from the social media websites you have indicated. You can control how much of your information social
|
||||
media websites make public by visiting these websites and changing your privacy settings.
|
||||
</p>
|
||||
|
||||
<h4>When does {{name}} use customer information from third parties?</h4>
|
||||
<p>We do not utilize third party information apart from the end-user data described above.</p>
|
||||
|
||||
<h4>Do we share the information we collect with third parties?</h4>
|
||||
<p>
|
||||
We may disclose personal and non-personal information about you to government or law enforcement officials or
|
||||
private parties as we, in our sole discretion, believe necessary or appropriate in order to respond to claims, legal
|
||||
process (including subpoenas), to protect our rights and interests or those of a third party, the safety of the
|
||||
public or any person, to prevent or stop any illegal, unethical, or legally actionable activity, or to otherwise
|
||||
comply with applicable court orders, laws, rules and regulations.
|
||||
</p>
|
||||
|
||||
<h4>Where and when is information collected from customers and end users?</h4>
|
||||
<p>
|
||||
{{name}} will collect personal information that you submit to us. We may also receive personal information about you
|
||||
from third parties as described above.
|
||||
</p>
|
||||
|
||||
<h4>How Do We Use Your E-mail Address?</h4>
|
||||
<p>
|
||||
We do not collect nor use an e-mail address. If you have provided it in the free text areas of the site, other
|
||||
validated users may be able to view it, but {{name}} does not search for nor utilize e-mail addresses from those
|
||||
areas.
|
||||
</p>
|
||||
|
||||
<h4>How Long Do We Keep Your Information?</h4>
|
||||
<p>
|
||||
We keep your information only so long as we need it to provide {{name}} to you and fulfill the purposes described in
|
||||
this policy. When we no longer need to use your information and there is no need for us to keep it to comply with
|
||||
our legal or regulatory obligations, we’ll either remove it from our systems or depersonalize it so that we
|
||||
can’t identify you.
|
||||
</p>
|
||||
|
||||
<h4>How Do We Protect Your Information?</h4>
|
||||
<p>
|
||||
We implement a variety of security measures to maintain the safety of your personal information when you enter,
|
||||
submit, or access your personal information. We mandate the use of a secure server. We cannot, however, ensure or
|
||||
warrant the absolute security of any information you transmit to {{name}} or guarantee that your information on the
|
||||
Service may not be accessed, disclosed, altered, or destroyed by a breach of any of our physical, technical, or
|
||||
managerial safeguards.
|
||||
</p>
|
||||
|
||||
<h4>Could my information be transferred to other countries?</h4>
|
||||
<p>
|
||||
{{name}} is hosted in the US. Information collected via our website may be viewed and hosted anywhere in the world,
|
||||
including countries that may not have laws of general applicability regulating the use and transfer of such data. To
|
||||
the fullest extent allowed by applicable law, by using any of the above, you voluntarily consent to the trans-border
|
||||
transfer and hosting of such information.
|
||||
</p>
|
||||
|
||||
<h4>Is the information collected through the {{name}} Service secure?</h4>
|
||||
<p>
|
||||
We take precautions to protect the security of your information. We have physical, electronic, and managerial
|
||||
procedures to help safeguard, prevent unauthorized access, maintain data security, and correctly use your
|
||||
information. However, neither people nor security systems are foolproof, including encryption systems. In addition,
|
||||
people can commit intentional crimes, make mistakes, or fail to follow policies. Therefore, while we use reasonable
|
||||
efforts to protect your personal information, we cannot guarantee its absolute security. If applicable law imposes
|
||||
any non-disclaimable duty to protect your personal information, you agree that intentional misconduct will be the
|
||||
standards used to measure our compliance with that duty.
|
||||
</p>
|
||||
|
||||
<h4>Can I update or correct my information?</h4>
|
||||
<p>
|
||||
The rights you have to request updates or corrections to the information {{name}} collects depend on your
|
||||
relationship with {{name}}.
|
||||
</p>
|
||||
<p>
|
||||
Customers have the right to request the restriction of certain uses and disclosures of personally identifiable
|
||||
information as follows. You can contact us in order to (1) update or correct your personally identifiable
|
||||
information, or (3) delete the personally identifiable information maintained about you on our systems (subject to
|
||||
the following paragraph), by cancelling your account. Such updates, corrections, changes and deletions will have no
|
||||
effect on other information that we maintain in accordance with this Privacy Policy prior to such update,
|
||||
correction, change, or deletion. You are responsible for maintaining the secrecy of your unique password and account
|
||||
information at all times.
|
||||
</p>
|
||||
<p>
|
||||
{{name}} also provides ways for users to modify or remove the information we have collected from them from the
|
||||
application; these actions will have the same effect as contacting us to modify or remove data.
|
||||
</p>
|
||||
<p>
|
||||
You should be aware that it is not technologically possible to remove each and every record of the information you
|
||||
have provided to us from our system. The need to back up our systems to protect information from inadvertent loss
|
||||
means that a copy of your information may exist in a non-erasable form that will be difficult or impossible for us
|
||||
to locate. Promptly after receiving your request, all personal information stored in databases we actively use, and
|
||||
other readily searchable media will be updated, corrected, changed, or deleted, as appropriate, as soon as and to
|
||||
the extent reasonably and technically practicable.
|
||||
</p>
|
||||
<p>
|
||||
If you are an end user and wish to update, delete, or receive any information we have about you, you may do so by
|
||||
contacting the organization of which you are a customer.
|
||||
</p>
|
||||
|
||||
<h4>Governing Law</h4>
|
||||
<p>
|
||||
This Privacy Policy is governed by the laws of US without regard to its conflict of laws provision. You consent to
|
||||
the exclusive jurisdiction of the courts in connection with any action or dispute arising between the parties under
|
||||
or in connection with this Privacy Policy except for those individuals who may have rights to make claims under
|
||||
Privacy Shield, or the Swiss-US framework.
|
||||
</p>
|
||||
<p>
|
||||
The laws of US, excluding its conflicts of law rules, shall govern this Agreement and your use of the website. Your
|
||||
use of the website may also be subject to other local, state, national, or international laws.
|
||||
</p>
|
||||
<p>
|
||||
By using {{name}} or contacting us directly, you signify your acceptance of this Privacy Policy. If you do not agree
|
||||
to this Privacy Policy, you should not engage with our website, or use our services. Continued use of the website,
|
||||
direct engagement with us, or following the posting of changes to this Privacy Policy that do not significantly
|
||||
affect the use or disclosure of your personal information will mean that you accept those changes.
|
||||
</p>
|
||||
|
||||
<h4>Your Consent</h4>
|
||||
<p>
|
||||
We’ve updated our Privacy Policy to provide you with complete transparency into what is being set when you
|
||||
visit our site and how it’s being used. By using our website, registering an account, or making a purchase,
|
||||
you hereby consent to our Privacy Policy and agree to its terms.
|
||||
</p>
|
||||
|
||||
<h4>Links to Other Websites</h4>
|
||||
<p>
|
||||
This Privacy Policy applies only to the Services. The Services may contain links to other websites not operated or
|
||||
controlled by {{name}}. We are not responsible for the content, accuracy or opinions expressed in such websites, and
|
||||
such websites are not investigated, monitored or checked for accuracy or completeness by us. Please remember that
|
||||
when you use a link to go from the Services to another website, our Privacy Policy is no longer in effect. Your
|
||||
browsing and interaction on any other website, including those that have a link on our platform, is subject to that
|
||||
website’s own rules and policies. Such third parties may use their own cookies or other methods to collect
|
||||
information about you.
|
||||
</p>
|
||||
|
||||
<h4>Cookies</h4>
|
||||
<p>{{name}} does not use Cookies.</p>
|
||||
|
||||
<h4>Kids' Privacy</h4>
|
||||
<p>
|
||||
We do not address anyone under the age of 13. We do not knowingly collect personally identifiable information from
|
||||
anyone under the age of 13. If You are a parent or guardian and You are aware that Your child has provided Us with
|
||||
Personal Data, please contact Us. If We become aware that We have collected Personal Data from anyone under the age
|
||||
of 13 without verification of parental consent, We take steps to remove that information from Our servers.
|
||||
</p>
|
||||
|
||||
<h4>Changes To Our Privacy Policy</h4>
|
||||
<p>
|
||||
We may change our Service and policies, and we may need to make changes to this Privacy Policy so that they
|
||||
accurately reflect our Service and policies. Unless otherwise required by law, we will notify you (for example,
|
||||
through our Service) before we make changes to this Privacy Policy and give you an opportunity to review them before
|
||||
they go into effect. Then, if you continue to use the Service, you will be bound by the updated Privacy Policy. If
|
||||
you do not want to agree to this or any updated Privacy Policy, you can delete your account.
|
||||
</p>
|
||||
|
||||
<h4>Third-Party Services</h4>
|
||||
<p>
|
||||
We may display, include or make available third-party content (including data, information, applications and other
|
||||
products services) or provide links to third-party websites or services (“Third-Party Services”).
|
||||
</p>
|
||||
<p>
|
||||
You acknowledge and agree that {{name}} shall not be responsible for any Third-Party Services, including their
|
||||
accuracy, completeness, timeliness, validity, copyright compliance, legality, decency, quality or any other aspect
|
||||
thereof. {{name}} does not assume and shall not have any liability or responsibility to you or any other person or
|
||||
entity for any Third-Party Services.
|
||||
</p>
|
||||
<p>
|
||||
Third-Party Services and links thereto are provided solely as a convenience to you and you access and use them
|
||||
entirely at your own risk and subject to such third parties' terms and conditions.
|
||||
</p>
|
||||
|
||||
<h4>Tracking Technologies</h4>
|
||||
<p>
|
||||
{{name}} does not use any tracking technologies. When an authorization code is received from No Agenda Social, that
|
||||
token is stored in the browser’s memory, and the Service uses tokens on each request for data. If the page is
|
||||
refreshed or the browser window/tab is closed, this token disappears, and a new one must be generated before the
|
||||
application can be used again.
|
||||
</p>
|
||||
|
||||
<h4>Information about General Data Protection Regulation (GDPR)</h4>
|
||||
<p>
|
||||
We may be collecting and using information from you if you are from the European Economic Area (EEA), and in this
|
||||
section of our Privacy Policy we are going to explain exactly how and why is this data collected, and how we maintain
|
||||
this data under protection from being replicated or used in the wrong way.
|
||||
</p>
|
||||
|
||||
<h4>What is GDPR?</h4>
|
||||
<p>
|
||||
GDPR is an EU-wide privacy and data protection law that regulates how EU residents’ data is protected by
|
||||
companies and enhances the control the EU residents have, over their personal data.
|
||||
</p>
|
||||
<p>
|
||||
The GDPR is relevant to any globally operating company and not just the EU-based businesses and EU residents. Our
|
||||
customers’ data is important irrespective of where they are located, which is why we have implemented GDPR controls
|
||||
as our baseline standard for all our operations worldwide.
|
||||
</p>
|
||||
|
||||
<h4>What is personal data?</h4>
|
||||
<p>
|
||||
Any data that relates to an identifiable or identified individual. GDPR covers a broad spectrum of information that
|
||||
could be used on its own, or in combination with other pieces of information, to identify a person. Personal data
|
||||
extends beyond a person’s name or email address. Some examples include financial information, political opinions,
|
||||
genetic data, biometric data, IP addresses, physical address, sexual orientation, and ethnicity.
|
||||
</p>
|
||||
<p>The Data Protection Principles include requirements such as:</p>
|
||||
<ul>
|
||||
<li>
|
||||
Personal data collected must be processed in a fair, legal, and transparent way and should only be used in a way
|
||||
that a person would reasonably expect.
|
||||
</li>
|
||||
<li>
|
||||
Personal data should only be collected to fulfil a specific purpose and it should only be used for that purpose.
|
||||
Organizations must specify why they need the personal data when they collect it.
|
||||
</li>
|
||||
<li>Personal data should be held no longer than necessary to fulfil its purpose.</li>
|
||||
<li>
|
||||
People covered by the GDPR have the right to access their own personal data. They can also request a copy of their
|
||||
data, and that their data be updated, deleted, restricted, or moved to another organization.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Why is GDPR important?</h4>
|
||||
<p>
|
||||
GDPR adds some new requirements regarding how companies should protect individuals’ personal data that they
|
||||
collect and process. It also raises the stakes for compliance by increasing enforcement and imposing greater fines
|
||||
for breach. Beyond these facts, it’s simply the right thing to do. At {{name}} we strongly believe that your
|
||||
data privacy is very important and we already have solid security and privacy practices in place that go beyond the
|
||||
requirements of this regulation.
|
||||
</p>
|
||||
|
||||
<h4>Individual Data Subject’s Rights - Data Access, Portability, and Deletion</h4>
|
||||
<p>
|
||||
We are committed to helping our customers meet the data subject rights requirements of GDPR. {{name}} processes or
|
||||
stores all personal data in fully vetted, DPA compliant vendors. We do store all conversation and personal data for
|
||||
up to 6 years unless your account is deleted. In which case, we dispose of all data in accordance with our Terms of
|
||||
Service and Privacy Policy, but we will not hold it longer than 60 days.
|
||||
</p>
|
||||
<p>
|
||||
We are aware that if you are working with EU customers, you need to be able to provide them with the ability to
|
||||
access, update, retrieve and remove personal data. We got you! We've been set up as self service from the start and
|
||||
have always given you access to your data. Our customer support team is here for you to answer any questions you
|
||||
might have about working with the API.
|
||||
</p>
|
||||
|
||||
<h4>California Residents</h4>
|
||||
<p>
|
||||
The California Consumer Privacy Act (CCPA) requires us to disclose categories of Personal Information we collect and
|
||||
how we use it, the categories of sources from whom we collect Personal Information, and the third parties with whom
|
||||
we share it, which we have explained above.
|
||||
</p>
|
||||
<p>
|
||||
We are also required to communicate information about rights California residents have under California law. You may
|
||||
exercise the following rights:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
Right to Know and Access. You may submit a verifiable request for information regarding the: (1) categories of
|
||||
Personal Information we collect, use, or share; (2) purposes for which categories of Personal Information are
|
||||
collected or used by us; (3) categories of sources from which we collect Personal Information; and (4) specific
|
||||
pieces of Personal Information we have collected about you.
|
||||
</li>
|
||||
<li>Right to Equal Service. We will not discriminate against you if you exercise your privacy rights.</li>
|
||||
<li>
|
||||
Right to Delete. You may submit a verifiable request to close your account and we will delete Personal Information
|
||||
about you that we have collected.
|
||||
</li>
|
||||
<li>Request that a business that sells a consumer's personal data, not sell the consumer's personal data.</li>
|
||||
</ul>
|
||||
<p>
|
||||
If you make a request, we have one month to respond to you. If you would like to exercise any of these rights,
|
||||
please contact us.
|
||||
</p>
|
||||
<p>We do not sell the Personal Information of our users.</p>
|
||||
<p>For more information about these rights, please contact us.</p>
|
||||
|
||||
<h4>California Online Privacy Protection Act (CalOPPA)</h4>
|
||||
<p>
|
||||
CalOPPA requires us to disclose categories of Personal Information we collect and how we use it, the categories of
|
||||
sources from whom we collect Personal Information, and the third parties with whom we share it, which we have
|
||||
explained above.
|
||||
</p>
|
||||
<p>CalOPPA users have the following rights:</p>
|
||||
<ul>
|
||||
<li>
|
||||
Right to Know and Access. You may submit a verifiable request for information regarding the: (1) categories of
|
||||
Personal Information we collect, use, or share; (2) purposes for which categories of Personal Information are
|
||||
collected or used by us; (3) categories of sources from which we collect Personal Information; and (4) specific
|
||||
pieces of Personal Information we have collected about you.
|
||||
</li>
|
||||
<li>Right to Equal Service. We will not discriminate against you if you exercise your privacy rights.</li>
|
||||
<li>
|
||||
Right to Delete. You may submit a verifiable request to close your account and we will delete Personal Information
|
||||
about you that we have collected.
|
||||
</li>
|
||||
<li>
|
||||
Right to request that a business that sells a consumer's personal data, not sell the consumer's personal data.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
If you make a request, we have one month to respond to you. If you would like to exercise any of these rights,
|
||||
please contact us.
|
||||
</p>
|
||||
<p>We do not sell the Personal Information of our users.</p>
|
||||
<p>For more information about these rights, please contact us.</p>
|
||||
|
||||
<h4>Contact Us</h4>
|
||||
<p>Don't hesitate to contact us if you have any questions.</p>
|
||||
<ul>
|
||||
<li>Via this Link: <router-link to="/how-it-works">https://noagendacareers.com/how-it-works</router-link></li>
|
||||
</ul>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'PrivacyPolicy',
|
||||
setup () {
|
||||
return {
|
||||
name: 'Jobs, Jobs, Jobs'
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
40
src/JobsJobsJobs/App/src/views/TermsOfService.vue
Normal file
40
src/JobsJobsJobs/App/src/views/TermsOfService.vue
Normal file
@ -0,0 +1,40 @@
|
||||
<template>
|
||||
<h3>Terms of Service</h3>
|
||||
<p><em>(as of February 6<sup>th</sup>, 2021)</em></p>
|
||||
|
||||
<h4>Acceptance of Terms</h4>
|
||||
<p>
|
||||
By accessing this web site, you are agreeing to be bound by these Terms and Conditions, and that you are responsible
|
||||
to ensure that your use of this site complies with all applicable laws. Your continued use of this site implies your
|
||||
acceptance of these terms.
|
||||
</p>
|
||||
|
||||
<h4>Description of Service and Registration</h4>
|
||||
<p>
|
||||
Jobs, Jobs, Jobs is a service that allows individuals to enter and amend employment profiles, restricting access to
|
||||
the details of these profiles to other users of <a href="https://noagendasocial.com" target="_blank">No Agenda
|
||||
Social</a>. Registration is accomplished by allowing Jobs, Jobs, Jobs to read one’s No Agenda Social profile.
|
||||
See our <router-link to="/privacy-policy">privacy policy</router-link> for details on the personal (user)
|
||||
information we maintain.
|
||||
</p>
|
||||
|
||||
<h4>Liability</h4>
|
||||
<p>
|
||||
This service is provided “as is”, and no warranty (express or implied) exists. The service and its
|
||||
developers may not be held liable for any damages that may arise through the use of this service.
|
||||
</p>
|
||||
|
||||
<h4>Updates to Terms</h4>
|
||||
<p>
|
||||
These terms and conditions may be updated at any time. When these terms are updated, users will be notified via a
|
||||
notice on the dashboard page. Additionally, the date at the top of this page will be updated, and any substantive
|
||||
updates will also be accompanied by a summary of those changes.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<p>
|
||||
You may also wish to review our <router-link to="/privacy-policy">privacy policy</router-link> to learn how we
|
||||
handle your data.
|
||||
</p>
|
||||
</template>
|
39
src/JobsJobsJobs/App/tsconfig.json
Normal file
39
src/JobsJobsJobs/App/tsconfig.json
Normal file
@ -0,0 +1,39 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "esnext",
|
||||
"module": "esnext",
|
||||
"strict": true,
|
||||
"jsx": "preserve",
|
||||
"importHelpers": true,
|
||||
"moduleResolution": "node",
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"sourceMap": true,
|
||||
"baseUrl": ".",
|
||||
"types": [
|
||||
"webpack-env"
|
||||
],
|
||||
"paths": {
|
||||
"@/*": [
|
||||
"src/*"
|
||||
]
|
||||
},
|
||||
"lib": [
|
||||
"esnext",
|
||||
"dom",
|
||||
"dom.iterable",
|
||||
"scripthost"
|
||||
]
|
||||
},
|
||||
"include": [
|
||||
"src/**/*.ts",
|
||||
"src/**/*.tsx",
|
||||
"src/**/*.vue",
|
||||
"tests/**/*.ts",
|
||||
"tests/**/*.tsx"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules"
|
||||
]
|
||||
}
|
5
src/JobsJobsJobs/App/vue.config.js
Normal file
5
src/JobsJobsJobs/App/vue.config.js
Normal file
@ -0,0 +1,5 @@
|
||||
module.exports = {
|
||||
transpileDependencies: [
|
||||
'vuetify'
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue
Block a user