Merge pull request #13 from VikingEngineers/YuryTest

Yury test
This commit is contained in:
lazyseal 2023-05-23 12:58:26 +01:00 committed by GitHub
commit 7e259a98be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 48 additions and 1598 deletions

View File

@ -1,8 +1,5 @@
import { createRouter, createWebHistory } from "vue-router";
import PresentationView from "../views/Presentation/PresentationView.vue";
import AboutView from "../views/LandingPages/AboutUs/AboutView.vue";
import ContactView from "../views/LandingPages/ContactUs/ContactView.vue";
import AuthorView from "../views/LandingPages/Author/AuthorView.vue";
import SignInBasicView from "../views/LandingPages/SignIn/BasicView.vue";
import Project from "../views/LandingPages/Project/Project.vue";
import Profile from "../views/LandingPages/Profile/Profile.vue";
@ -99,21 +96,6 @@ const router = createRouter({
component: ForgotPassword,
},
{
path: "/pages/landing-pages/about-us",
name: "about",
component: AboutView,
},
{
path: "/pages/landing-pages/contact-us",
name: "contactus",
component: ContactView,
},
{
path: "/pages/landing-pages/author",
name: "author",
component: AuthorView,
},
{
path: "/pages/landing-pages/basic",
name: "signin-basic",

View File

@ -1,104 +0,0 @@
<script setup>
import { onMounted, onUnmounted } from "vue";
//example components
import DefaultNavbar from "../../../examples/navbars/NavbarDefault.vue";
import DefaultFooter from "../../../examples/footers/FooterDefault.vue";
//image
import bg0 from "@/assets/img/bg9.jpg";
//dep
import Typed from "typed.js";
//sections
import Information from "./Sections/AboutInformation.vue";
import AboutTeam from "./Sections/AboutTeam.vue";
import Featuring from "./Sections/AboutFeaturing.vue";
import Newsletter from "./Sections/AboutNewsletter.vue";
const body = document.getElementsByTagName("body")[0];
//hooks
onMounted(() => {
body.classList.add("about-us");
body.classList.add("bg-gray-200");
if (document.getElementById("typed")) {
// eslint-disable-next-line no-unused-vars
var typed = new Typed("#typed", {
stringsElement: "#typed-strings",
typeSpeed: 90,
backSpeed: 90,
backDelay: 200,
startDelay: 500,
loop: true,
});
}
});
onUnmounted(() => {
body.classList.remove("about-us");
body.classList.remove("bg-gray-200");
});
</script>
<template>
<DefaultNavbar
:action="{
route: 'javascript:;',
label: 'Buy Now',
color: 'btn-white',
}"
transparent
/>
<header class="bg-gradient-dark">
<div
class="page-header min-vh-75"
:style="{ backgroundImage: `url(${bg0})` }"
>
<span class="mask bg-gradient-dark opacity-6"></span>
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-8 text-center mx-auto my-auto">
<h1 class="text-white">
We have no <span class="text-white" id="typed"></span>
</h1>
<div id="typed-strings">
<h1>team</h1>
<h1>design</h1>
<h1>tool</h1>
</div>
<p class="lead mb-4 text-white opacity-8">
Were constantly trying to express ourselves and actualize our
dreams. If you have the opportunity to play this game
</p>
<button type="submit" class="btn bg-white text-dark">
Create Account
</button>
<h6 class="text-white mb-2 mt-5">Find us on</h6>
<div class="d-flex justify-content-center">
<a href="javascript:;"
><i class="fab fa-facebook text-lg text-white me-4"></i
></a>
<a href="javascript:;"
><i class="fab fa-instagram text-lg text-white me-4"></i
></a>
<a href="javascript:;"
><i class="fab fa-twitter text-lg text-white me-4"></i
></a>
<a href="javascript:;"
><i class="fab fa-google-plus text-lg text-white"></i
></a>
</div>
</div>
</div>
</div>
</div>
</header>
<div class="card card-body shadow-xl mx-3 mx-md-4 mt-n6">
<Information />
<AboutTeam />
<Featuring />
<Newsletter />
</div>
<DefaultFooter />
</template>

View File

@ -1,82 +0,0 @@
<script setup>
// example component
import DefaultCounterCard from "../../../../examples/cards/counterCards/DefaultCounterCard.vue";
</script>
<template>
<section class="pt-4 pb-6" id="count-stats">
<div class="container">
<div class="row mb-7">
<div class="col-lg-2 col-md-4 col-6 mb-4">
<img
class="w-100 opacity-7"
src="@/assets/img/logos/gray-logos/logo-coinbase.svg"
alt="logo"
/>
</div>
<div class="col-lg-2 col-md-4 col-6 mb-4">
<img
class="w-100 opacity-7"
src="@/assets/img/logos/gray-logos/logo-nasa.svg"
alt="logo"
/>
</div>
<div class="col-lg-2 col-md-4 col-6 mb-4">
<img
class="w-100 opacity-7"
src="@/assets/img/logos/gray-logos/logo-netflix.svg"
alt="logo"
/>
</div>
<div class="col-lg-2 col-md-4 col-6 mb-4">
<img
class="w-100 opacity-7"
src="@/assets/img/logos/gray-logos/logo-pinterest.svg"
alt="logo"
/>
</div>
<div class="col-lg-2 col-md-4 col-6 mb-4">
<img
class="w-100 opacity-7"
src="@/assets/img/logos/gray-logos/logo-spotify.svg"
alt="logo"
/>
</div>
<div class="col-lg-2 col-md-4 col-6 mb-4">
<img
class="w-100 opacity-7"
src="@/assets/img/logos/gray-logos/logo-vodafone.svg"
alt="logo"
/>
</div>
</div>
<div class="row justify-content-center text-center">
<div class="col-md-3">
<DefaultCounterCard
title="Projects"
description="Of “high-performing” level are led by a certified project manager"
:count="5234"
:duration="3000"
/>
</div>
<div class="col-md-3">
<DefaultCounterCard
title="Hours"
description="That meets quality standards required by our users"
:count="3400"
suffix="+"
:duration="3000"
/>
</div>
<div class="col-md-3">
<DefaultCounterCard
title="Support"
description="Actively engage team members that finishes on time"
:count="24"
suffix="/7"
:duration="4000"
/>
</div>
</div>
</div>
</section>
</template>

View File

@ -1,54 +0,0 @@
<script setup>
// example components
import DefaultInfoCard from "../../../../examples/cards/infoCards/DefaultInfoCard.vue";
import CenteredBlogCard from "../../../../examples/cards/blogCards/CenteredBlogCard.vue";
</script>
<template>
<section class="py-7">
<div class="container">
<div class="row align-items-center">
<div class="col-lg-6">
<div class="row justify-content-start">
<DefaultInfoCard
color="info"
icon="public"
title="Fully integrated"
description="We get insulted by others, lose trust for those We get back
freezes"
/>
<DefaultInfoCard
color="info"
icon="payments"
title="Payments functionality"
description="We get insulted by others, lose trust for those We get back
freezes"
/>
</div>
<div class="row justify-content-start mt-4">
<DefaultInfoCard
color="info"
icon="apps"
title="Prebuilt components"
description="We get insulted by others, lose trust for those We get back
freezes"
/>
<DefaultInfoCard
color="info"
icon="3p"
title="Improved platform"
description="We get insulted by others, lose trust for those We get back
freezes"
/>
</div>
</div>
<div class="col-lg-4 ms-auto mt-lg-0 mt-6">
<CenteredBlogCard
image="https://images.unsplash.com/photo-1544717302-de2939b7ef71?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1950&q=80"
title="Get insights on Search"
description="Website visitors today demand a frictionless user expericence — especially when using search. Because of the hight standards."
/>
</div>
</div>
</div>
</section>
</template>

View File

@ -1,54 +0,0 @@
<script setup>
import { onMounted } from "vue";
//Vue Material Kit 2 components
import MaterialInput from "@/components/MaterialInput.vue";
import MaterialButton from "@/components/MaterialButton.vue";
// material-input
import setMaterialInput from "@/assets/js/material-input";
onMounted(() => {
setMaterialInput();
});
</script>
<template>
<section class="my-5 pt-5">
<div class="container">
<div class="row">
<div class="col-md-6 m-auto">
<h4>Be the first to see the news</h4>
<p class="mb-4">
Your company may not be in the software business, but eventually, a
software company will be in your business.
</p>
<div class="row">
<div class="col-8">
<MaterialInput
class="input-group-outline"
id="email"
:label="{ text: 'Email Here...', class: 'form-label' }"
type="email"
/>
</div>
<div class="col-4 ps-0">
<MaterialButton
variant="gradient"
color="success"
class="mb-0 h-100 position-relative z-index-2"
>Subscribe</MaterialButton
>
</div>
</div>
</div>
<div class="col-md-5 ms-auto mt-6 md-mt-0">
<div class="position-relative">
<img
class="max-width-50 w-100 position-relative z-index-2"
src="@/assets/img/macbook.png"
alt="image"
/>
</div>
</div>
</div>
</div>
</section>
</template>

View File

@ -1,72 +0,0 @@
<script setup>
// example component
import HorizontalTeamCard from "@/examples/cards/teamCards/HorizontalTeamCard.vue";
// images
import emma from "@/assets/img/team-5.jpg";
import william from "@/assets/img/bruce-mars.jpg";
import ivana from "@/assets/img/ivana-squares.jpg";
import marquez from "@/assets/img/ivana-square.jpg";
</script>
<template>
<section class="pb-5 position-relative bg-gradient-dark mx-n3">
<div class="container">
<div class="row">
<div class="col-md-8 text-start mb-5 mt-5">
<h3 class="text-white z-index-1 position-relative">
The Executive Team
</h3>
<p class="text-white opacity-8 mb-0">
Theres nothing I really wanted to do in life that I wasnt able to
get good at. Thats my skill.
</p>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-12">
<HorizontalTeamCard
class="mt-4"
:image="emma"
:profile="{ name: 'Emma Roberts', link: 'javascript:;' }"
:position="{ label: 'UI Designer', color: 'success' }"
description="Artist is a term applied to a person who engages in an
activity deemed to be an art."
/>
</div>
<div class="col-lg-6 col-12">
<HorizontalTeamCard
class="mt-lg-4 mt-5"
:image="william"
:profile="{ name: 'William Pearce', link: 'javascript:;' }"
:position="{ label: 'Boss', color: 'success' }"
description="Artist is a term applied to a person who engages in an
activity deemed to be an art."
/>
</div>
</div>
<div class="row mt-4">
<div class="col-lg-6 col-12">
<HorizontalTeamCard
class="mt-4 z-index-2"
:image="ivana"
:profile="{ name: 'Ivana Flow', link: 'javascript:;' }"
:position="{ label: 'Athlete', color: 'success' }"
description="Artist is a term applied to a person who engages in an
activity deemed to be an art."
/>
</div>
<div class="col-lg-6 col-12">
<HorizontalTeamCard
class="mt-lg-4 mt-5 z-index-2"
:image="marquez"
:profile="{ name: 'Marquez Garcia', link: 'javascript:;' }"
:position="{ label: 'JS Developer', color: 'success' }"
description="Artist is a term applied to a person who engages in an
activity deemed to be an art."
/>
</div>
</div>
</div>
</section>
</template>

View File

@ -1,32 +0,0 @@
<script setup>
// example components
import DefaultNavbar from "../../../examples/navbars/NavbarDefault.vue";
import Header from "../../../examples/Header.vue";
// sections
import Footer from "./Sections/AuthorFooter.vue";
import Profile from "./Sections/AuthorProfile.vue";
import Posts from "./Sections/AuthorPosts.vue";
import Contact from "./Sections/AuthorContact.vue";
// image
import image from "@/assets/img/city-profile.jpg";
</script>
<template>
<DefaultNavbar transparent />
<Header>
<div
class="page-header min-height-400"
:style="{ backgroundImage: `url(${image})` }"
loading="lazy"
>
<span class="mask bg-gradient-dark opacity-8"></span>
</div>
</Header>
<div class="card card-body blur shadow-blur mx-3 mx-md-4 mt-n6 mb-4">
<Profile />
<Posts />
</div>
<Contact />
<Footer />
</template>

View File

@ -1,172 +0,0 @@
<script setup>
import { onMounted } from "vue";
//Vue Material Kit 2 components
import MaterialButton from "@/components/MaterialButton.vue";
import MaterialInput from "@/components/MaterialInput.vue";
import MaterialTextArea from "@/components/MaterialTextArea.vue";
// image
import bgContact from "@/assets/img/examples/blog2.jpg";
// tooltip
import setTooltip from "@/assets/js/tooltip";
// store
import { useAppStore } from "@/stores";
const store = useAppStore();
onMounted(() => {
setTooltip(store.bootstrap);
});
</script>
<template>
<section class="py-lg-5">
<div class="container">
<div class="row">
<div class="col">
<div class="card box-shadow-xl overflow-hidden mb-5">
<div class="row">
<div
class="col-lg-5 position-relative bg-cover px-0"
:style="{ backgroundImage: `url(${bgContact})` }"
loading="lazy"
>
<div
class="z-index-2 text-center d-flex h-100 w-100 d-flex m-auto justify-content-center"
>
<div class="mask bg-gradient-dark opacity-8"></div>
<div
class="p-5 ps-sm-8 position-relative text-start my-auto z-index-2"
>
<h3 class="text-white">Contact Information</h3>
<p class="text-white opacity-8 mb-4">
Fill up the form and our Team will get back to you within
24 hours.
</p>
<div class="d-flex p-2 text-white">
<div>
<i class="fas fa-phone text-sm"></i>
</div>
<div class="ps-3">
<span class="text-sm opacity-8">(+40) 772 100 200</span>
</div>
</div>
<div class="d-flex p-2 text-white">
<div>
<i class="fas fa-envelope text-sm"></i>
</div>
<div class="ps-3">
<span class="text-sm opacity-8"
>hello@creative-tim.com</span
>
</div>
</div>
<div class="d-flex p-2 text-white">
<div>
<i class="fas fa-map-marker-alt text-sm"></i>
</div>
<div class="ps-3">
<span class="text-sm opacity-8"
>Dyonisie Wolf Bucharest, RO 010458</span
>
</div>
</div>
<div class="mt-4">
<MaterialButton
color="none"
size="lg"
class="btn-icon-only btn-link text-white mb-0"
data-toggle="tooltip"
data-placement="bottom"
data-original-title="Log in with Facebook"
>
<i class="fab fa-facebook"></i>
</MaterialButton>
<MaterialButton
color="none"
size="lg"
class="btn-icon-only btn-link text-white mb-0"
data-toggle="tooltip"
data-placement="bottom"
data-original-title="Log in with Twitter"
>
<i class="fab fa-twitter"></i>
</MaterialButton>
<MaterialButton
color="none"
size="lg"
class="btn-icon-only btn-link text-white mb-0"
data-toggle="tooltip"
data-placement="bottom"
data-original-title="Log in with Dribbble"
>
<i class="fab fa-dribbble"></i>
</MaterialButton>
<MaterialButton
color="none"
size="lg"
class="btn-icon-only btn-link text-white mb-0"
data-toggle="tooltip"
data-placement="bottom"
data-original-title="Log in with Instagram"
>
<i class="fab fa-instagram"></i>
</MaterialButton>
</div>
</div>
</div>
</div>
<div class="col-lg-7">
<form class="p-3" id="contact-form" method="post">
<div class="card-header px-4 py-sm-5 py-3">
<h2>Say Hi!</h2>
<p class="lead">We'd like to talk with you.</p>
</div>
<div class="card-body pt-1">
<div class="row">
<div class="col-md-12 pe-2 mb-3">
<MaterialInput
class="input-group-static mb-4"
label="My name is"
type="text"
placeholder="Full Name"
/>
</div>
<div class="col-md-12 pe-2 mb-3">
<MaterialInput
class="input-group-static mb-4"
label="I'm looking for"
type="text"
placeholder="What you love"
/>
</div>
<div class="col-md-12 pe-2 mb-3">
<MaterialTextArea
class="input-group-static mb-4"
placeholder="I want to say that..."
:rows="6"
>Your message</MaterialTextArea
>
</div>
</div>
<div class="row">
<div class="col-md-6 text-end ms-auto">
<MaterialButton
variant="gradient"
color="success"
type="submit"
class="mb-0"
>Send Message</MaterialButton
>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</template>

View File

@ -1,88 +0,0 @@
<script setup></script>
<template>
<footer class="footer py-5">
<div class="container z-index-1 position-relative">
<div class="row">
<div class="col-lg-4 me-auto mb-lg-0 mb-4 text-lg-start text-center">
<h6 class="text-dark font-weight-bolder text-uppercase mb-lg-4 mb-3">
Material Design
</h6>
<ul
class="nav flex-row ms-n3 justify-content-lg-start justify-content-center mb-4 mt-sm-0"
>
<li class="nav-item">
<a
class="nav-link text-dark opacity-8"
href="https://www.creative-tim.com"
target="_blank"
>
Home
</a>
</li>
<li class="nav-item">
<a
class="nav-link text-dark opacity-8"
href="https://www.creative-tim.com/presentation"
target="_blank"
>
About
</a>
</li>
<li class="nav-item">
<a
class="nav-link text-dark opacity-8"
href="https://www.creative-tim.com/blog"
target="_blank"
>
Blog
</a>
</li>
<li class="nav-item">
<a
class="nav-link text-dark opacity-8"
href="https://www.creative-tim.com"
target="_blank"
>
Services
</a>
</li>
</ul>
<p class="text-sm text-dark opacity-8 mb-0">
Copyright © {{ new Date().getFullYear() }} Material Design by
Creative Tim.
</p>
</div>
<div class="col-lg-6 ms-auto text-lg-end text-center">
<p class="mb-5 text-lg text-dark font-weight-bold">
The reward for getting on the stage is fame. The price of fame is
you cant get off the stage.
</p>
<a
href="javascript:;"
target="_blank"
class="text-dark me-xl-4 me-4 opacity-5"
>
<span class="fab fa-dribbble"></span>
</a>
<a
href="javascript:;"
target="_blank"
class="text-dark me-xl-4 me-4 opacity-5"
>
<span class="fab fa-twitter"></span>
</a>
<a
href="javascript:;"
target="_blank"
class="text-dark me-xl-4 me-4 opacity-5"
>
<span class="fab fa-pinterest"></span>
</a>
<a href="javascript:;" target="_blank" class="text-dark opacity-5">
<span class="fab fa-github"></span>
</a>
</div>
</div>
</div>
</footer>
</template>

View File

@ -1,52 +0,0 @@
<script setup>
// example components
import TransparentBlogCard from "../../../../examples/cards/blogCards/TransparentBlogCard.vue";
import BackgroundBlogCard from "../../../../examples/cards/blogCards/BackgroundBlogCard.vue";
//Vue Material Kit 2 components
import post1 from "@/assets/img/examples/testimonial-6-2.jpg";
import post2 from "@/assets/img/examples/testimonial-6-3.jpg";
import post3 from "@/assets/img/examples/blog-9-4.jpg";
import post4 from "@/assets/img/examples/blog2.jpg";
</script>
<template>
<section class="py-3">
<div class="container">
<div class="row">
<div class="col-lg-6">
<h3 class="mb-5">Check my latest blogposts</h3>
</div>
</div>
<div class="row">
<div class="col-lg-3 col-sm-6">
<TransparentBlogCard
:image="post1"
title="Rover raised $65 million"
description="Finding temporary housing for your dog should be as easy as renting an Airbnb. Thats the idea behind Rover ..."
/>
</div>
<div class="col-lg-3 col-sm-6">
<TransparentBlogCard
:image="post2"
title="MateLabs machine learning"
description="If youve ever wanted to train a machine learning model and integrate it with IFTTT, you now can with ..."
/>
</div>
<div class="col-lg-3 col-sm-6">
<TransparentBlogCard
:image="post3"
title="MateLabs machine learning"
description="If youve ever wanted to train a machine learning model and integrate it with IFTTT, you now can with ..."
/>
</div>
<div class="col-lg-3 col-md-12 col-12">
<BackgroundBlogCard
:image="post4"
title="Flexible work hours"
description="Rather than worrying about switching offices every couple years, you stay in the same place."
/>
</div>
</div>
</div>
</section>
</template>

View File

@ -1,82 +0,0 @@
<script setup>
import { onMounted } from "vue";
//Vue Material Kit 2 components
import MaterialAvatar from "@/components/MaterialAvatar.vue";
import MaterialButton from "@/components/MaterialButton.vue";
// image
import profilePic from "@/assets/img/bruce-mars.jpg";
// material-input
import setMaterialInput from "@/assets/js/material-input";
onMounted(() => {
setMaterialInput();
});
</script>
<template>
<section class="py-sm-7 py-5 position-relative">
<div class="container">
<div class="row">
<div class="col-12 mx-auto">
<div class="mt-n8 mt-md-n9 text-center">
<div class="blur-shadow-avatar">
<MaterialAvatar
size="xxl"
class="shadow-xl position-relative z-index-2"
:image="profilePic"
alt="Avatar"
/>
</div>
</div>
<div class="row py-7">
<div
class="col-lg-7 col-md-7 z-index-2 position-relative px-md-2 px-sm-5 mx-auto"
>
<div
class="d-flex justify-content-between align-items-center mb-2"
>
<h3 class="mb-0">Michael Roven</h3>
<div class="d-block">
<MaterialButton
class="text-nowrap mb-0"
variant="outline"
color="success"
size="sm"
>Follow</MaterialButton
>
</div>
</div>
<div class="row mb-4">
<div class="col-auto">
<span class="h6 me-1">323</span>
<span>Posts</span>
</div>
<div class="col-auto">
<span class="h6 me-1">3.5k</span>
<span>Followers</span>
</div>
<div class="col-auto">
<span class="h6 me-1">260</span>
<span>Following</span>
</div>
</div>
<p class="text-lg mb-0">
Decisions: If you cant decide, the answer is no. If two equally
difficult paths, choose the one more painful in the short term
(pain avoidance is creating an illusion of equality). Choose the
path that leaves you more equanimous.
<br /><a
href="javascript:;"
class="text-success icon-move-right"
>More about me
<i class="fas fa-arrow-right text-sm ms-1"></i>
</a>
</p>
</div>
</div>
</div>
</div>
</div>
</section>
</template>

View File

@ -1,123 +0,0 @@
<script setup>
import { onMounted } from "vue";
//example components
import DefaultNavbar from "@/examples/navbars/NavbarDefault.vue";
import DefaultFooter from "@/examples/footers/FooterDefault.vue";
//image
import image from "@/assets/img/illustrations/illustration-signin.jpg";
//material components
import MaterialInput from "@/components/MaterialInput.vue";
import MaterialTextArea from "@/components/MaterialTextArea.vue";
import MaterialButton from "@/components/MaterialButton.vue";
// material-input
import setMaterialInput from "@/assets/js/material-input";
onMounted(() => {
setMaterialInput();
});
</script>
<template>
<div class="container position-sticky z-index-sticky top-0">
<div class="row">
<div class="col-12">
<DefaultNavbar
:sticky="true"
:action="{
route: 'https://www.creative-tim.com/product/vue-material-kit-pro',
color: 'bg-gradient-success',
label: 'Buy Now',
}"
/>
</div>
</div>
</div>
<section>
<div class="page-header min-vh-100">
<div class="container">
<div class="row">
<div
class="col-6 d-lg-flex d-none h-100 my-auto pe-0 position-absolute top-0 start-0 text-center justify-content-center flex-column"
>
<div
class="position-relative h-100 m-3 px-7 border-radius-lg d-flex flex-column justify-content-center"
:style="{
backgroundImage: `url(${image})`,
backgroundSize: 'cover',
}"
loading="lazy"
></div>
</div>
<div
class="mt-8 col-xl-5 col-lg-6 col-md-7 d-flex flex-column ms-auto me-auto ms-lg-auto me-lg-5"
>
<div
class="card d-flex blur justify-content-center shadow-lg my-sm-0 my-sm-6 mt-8 mb-5"
>
<div
class="card-header p-0 position-relative mt-n4 mx-3 z-index-2 bg-transparent"
>
<div
class="bg-gradient-success shadow-success border-radius-lg p-3"
>
<h3 class="text-white text-success mb-0">Contact us</h3>
</div>
</div>
<div class="card-body">
<p class="pb-3">
For further questions, including partnership opportunities,
please email hello@creative-tim.com or contact using our
contact form.
</p>
<form id="contact-form" method="post" autocomplete="off">
<div class="card-body p-0 my-3">
<div class="row">
<div class="col-md-6">
<MaterialInput
class="input-group-static mb-4"
type="text"
label="Full Name"
placeholder="Full Name"
/>
</div>
<div class="col-md-6 ps-md-2">
<MaterialInput
class="input-group-static mb-4"
type="email"
label="Email"
placeholder="hello@creative-tim.com"
/>
</div>
</div>
<div class="form-group mb-0 mt-md-0 mt-4">
<MaterialTextArea
id="message"
class="input-group-static mb-4"
:rows="6"
placeholder="Describe your problem in at least 250 characters"
>How can we help you?</MaterialTextArea
>
</div>
<div class="row">
<div class="col-md-12 text-center">
<MaterialButton
variant="gradient"
color="success"
class="mt-3 mb-0"
>Send Message</MaterialButton
>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<DefaultFooter />
</template>

View File

@ -80,11 +80,14 @@ const updateProfile = async () => {
formData.append(key, value);
});
// Append the image file
formData.append('profile_image', selectedImage.value);
if (selectedImage.value) {
formData.append('profile_image', selectedImage.value);
};
await axios.patch(`http://somebodyhire.me/api/profile/${userId.value}/`, formData, { headers });
// router.push('/ViewMyProfile');
router.push('/ViewMyProfile');
} catch (error) {
debugText.value = `Error: ${JSON.stringify(error, null, 2)}`;
console.error(error);
@ -104,20 +107,28 @@ onMounted(async() => {
<NavbarDefault />
<div class="profile-container">
<h1>User Profile: {{ loggedUserName }}</h1>
<textarea readonly v-model="debugText"></textarea>
<!--
Это поле, в которое выводится весь обмен, происходящий между клиентом и сервером. Нужно для отладки.
<textarea readonly v-model="debugText"></textarea> -->
<!-- Событие происходит в момент загрузки файла. В этот момент в переменную selectedImage записывается файл, который был выбран. -->
<input type="file" accept="image/*" @change="onFileChange">
<input type="text" v-model="profileData.username" placeholder="Username">
<input type="text" v-model="profileData.username" placeholder="Имя пользователя">
<input type="email" v-model="profileData.email" placeholder="Email">
<input type="text" v-model="profileData.name" placeholder="Name">
<input type="text" v-model="profileData.short_intro" placeholder="Short Introduction">
<textarea v-model="profileData.bio" placeholder="Biography"></textarea>
<textarea v-model="profileData.social_github" placeholder="GitHub Link"></textarea>
<textarea v-model="profileData.social_twitter" placeholder="Twitter Link"></textarea>
<textarea v-model="profileData.social_vk" placeholder="VK Link"></textarea>
<textarea v-model="profileData.social_youtube" placeholder="YouTube Link"></textarea>
<textarea v-model="profileData.social_website" placeholder="Website Link"></textarea>
<button @click="updateProfile" class="btn-submit">Submit</button>
<button @click="cancelUpdate" class="btn-cancel">Cancel</button>
<input type="text" v-model="profileData.name" placeholder="Полное имя">
<input type="text" v-model="profileData.short_intro" placeholder="Краткое описание">
<input type="text" v-model="profileData.location" placeholder="Местоположение">
<textarea v-model="profileData.bio" placeholder="Подробное описание"></textarea>
<textarea v-model="profileData.social_github" placeholder="GitHub"></textarea>
<textarea v-model="profileData.social_twitter" placeholder="Twitter"></textarea>
<textarea v-model="profileData.social_vk" placeholder="ВКонтакте"></textarea>
<textarea v-model="profileData.social_youtube" placeholder="YouTube"></textarea>
<textarea v-model="profileData.social_website" placeholder="Сайт"></textarea>
<div>
<button @click="updateProfile" class="btn-submit">Сохранить</button>
<button @click="cancelUpdate" class="btn-cancel">Отменить</button>
</div>
</div>
</template>

View File

@ -17,12 +17,6 @@ const projectId = ref(null);
const route = useRoute();
// const getProfile = async () => {
// const profileDataRecieved = await axios.get(`http://somebodyhire.me/api/profile/${userId.value}/`);
// profileData.value = processProfileData(profileDataRecieved.data);
// };
axios.interceptors.request.use((request) => {
debugText.value += '\n\nRequest:\n' + JSON.stringify(request, null, 2);
return request;
@ -45,18 +39,7 @@ const getProject = async () => {
}
};
// const updateProfile = async () => {
// try {
// const token = computed(() => sessionStorage.getItem('access_token'));
// debugText.value = `Type of token: ${typeof token.value}, Value of token: ${token.value}`;
// const headers = { 'Authorization': `Bearer ${token.value}` };
// await axios.patch(`http://somebodyhire.me/api/profile/${userId.value}/`, profileData.value, { headers });
// router.push('/ViewMyProfile');
// } catch (error) {
// debugText.value = `Error: ${JSON.stringify(error, null, 2)}`;
// console.error(error);
// }
// };
const updateProject = async () => {
try {

View File

@ -1,171 +0,0 @@
<script setup>
import { onMounted } from "vue";
// example components
import DefaultNavbar from "@/examples/navbars/NavbarDefault.vue";
import Header from "@/examples/Header.vue";
//Vue Material Kit 2 components
import MaterialInput from "@/components/MaterialInput.vue";
import MaterialSwitch from "@/components/MaterialSwitch.vue";
import MaterialButton from "@/components/MaterialButton.vue";
// material-input
import setMaterialInput from "@/assets/js/material-input";
onMounted(() => {
setMaterialInput();
});
</script>
<template>
<DefaultNavbar transparent />
<Header>
<div
class="page-header align-items-start min-vh-100"
:style="{
backgroundImage:
'url(https://images.unsplash.com/photo-1497294815431-9365093b7331?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1950&q=80)'
}"
loading="lazy"
>
<span class="mask bg-gradient-dark opacity-6"></span>
<div class="container my-auto">
<div class="row">
<div class="col-lg-4 col-md-8 col-12 mx-auto">
<div class="card z-index-0 fadeIn3 fadeInBottom">
<div
class="card-header p-0 position-relative mt-n4 mx-3 z-index-2"
>
<div
class="bg-gradient-success shadow-success border-radius-lg py-3 pe-1"
>
<h4
class="text-white font-weight-bolder text-center mt-2 mb-0"
>
Sign in
</h4>
<div class="row mt-3">
<div class="col-2 text-center ms-auto">
<a class="btn btn-link px-3" href="javascript:;">
<i class="fa fa-facebook text-white text-lg"></i>
</a>
</div>
<div class="col-2 text-center px-1">
<a class="btn btn-link px-3" href="javascript:;">
<i class="fa fa-github text-white text-lg"></i>
</a>
</div>
<div class="col-2 text-center me-auto">
<a class="btn btn-link px-3" href="javascript:;">
<i class="fa fa-google text-white text-lg"></i>
</a>
</div>
</div>
</div>
</div>
<div class="card-body">
<form role="form" class="text-start">
<MaterialInput
id="email"
class="input-group-outline my-3"
:label="{ text: 'Email', class: 'form-label' }"
type="email"
/>
<MaterialInput
id="password"
class="input-group-outline mb-3"
:label="{ text: 'Password', class: 'form-label' }"
type="password"
/>
<MaterialSwitch
class="d-flex align-items-center mb-3"
id="rememberMe"
labelClass="mb-0 ms-3"
checked
>Remember me</MaterialSwitch
>
<div class="text-center">
<MaterialButton
class="my-4 mb-2"
variant="gradient"
color="success"
fullWidth
>Sign in</MaterialButton
>
</div>
<p class="mt-4 text-sm text-center">
Don't have an account?
<a
href="#"
class="text-success text-gradient font-weight-bold"
>Sign up</a
>
</p>
</form>
</div>
</div>
</div>
</div>
</div>
<footer class="footer position-absolute bottom-2 py-2 w-100">
<div class="container">
<div class="row align-items-center justify-content-lg-between">
<div class="col-12 col-md-6 my-auto">
<div
class="copyright text-center text-sm text-white text-lg-start"
>
© {{ new Date().getFullYear() }}, made with
<i class="fa fa-heart" aria-hidden="true"></i> by
<a
href="https://www.creative-tim.com"
class="font-weight-bold text-white"
target="_blank"
>Creative Tim</a
>
for a better web.
</div>
</div>
<div class="col-12 col-md-6">
<ul
class="nav nav-footer justify-content-center justify-content-lg-end"
>
<li class="nav-item">
<a
href="https://www.creative-tim.com"
class="nav-link text-white"
target="_blank"
>Creative Tim</a
>
</li>
<li class="nav-item">
<a
href="https://www.creative-tim.com/presentation"
class="nav-link text-white"
target="_blank"
>About Us</a
>
</li>
<li class="nav-item">
<a
href="https://www.creative-tim.com/blog"
class="nav-link text-white"
target="_blank"
>Blog</a
>
</li>
<li class="nav-item">
<a
href="https://www.creative-tim.com/license"
class="nav-link pe-0 text-white"
target="_blank"
>License</a
>
</li>
</ul>
</div>
</div>
</div>
</footer>
</div>
</Header>
</template>

View File

@ -22,6 +22,13 @@ const loggedUserName = computed(() => sessionStorage.getItem('username'));
const isStaff = computed(() => sessionStorage.getItem('is_staff'));
const token = computed(() => sessionStorage.getItem('token'));
//Тут мы попробуем использовать local storage потому что оно должно работать между вкладками
const isAuthenticatedLocal = computed(() => !!localStorage.getItem('access_token'));
const userIdLocal = computed(() => localStorage.getItem('user_id'));
const loggedUserNameLocal = computed(() => localStorage.getItem('username'));
const isStaffLocal = computed(() => localStorage.getItem('is_staff'));
const tokenLocal = computed(() => localStorage.getItem('token'));
const login = async () => {
if (!username.value || !password.value) {
errorMessage.value = "Please fill in both fields.";
@ -42,6 +49,13 @@ const login = async () => {
sessionStorage.setItem('user_id', response.data.id);
sessionStorage.setItem('is_staff', response.data.is_staff);
sessionStorage.setItem('token', response.data.token);
//Дублируем всё, потому что страницы будут переползать постепенно
localStorage.setItem('access_token', response.data.access);
localStorage.setItem('username', username.value);
localStorage.setItem('user_id', response.data.id);
localStorage.setItem('is_staff', response.data.is_staff);
localStorage.setItem('token', response.data.token);
location.reload(); // Refresh page
} catch (error) {
if (error.response) {
@ -61,6 +75,13 @@ const logout = () => {
sessionStorage.removeItem('user_id');
sessionStorage.setItem('is_staff', false);
sessionStorage.removeItem('token');
//и тут тоже не забываем продублировать
localStorage.removeItem('access_token');
localStorage.removeItem('username'); // Also clear the username from sessionStorage
localStorage.removeItem('user_id');
localStorage.setItem('is_staff', false);
localStorage.removeItem('token');
location.reload(); // Refresh page after logout
};

View File

@ -1,55 +0,0 @@
<script setup>
defineProps({
variant: {
type: String,
default: "gradient",
},
color: {
type: String,
default: "success",
},
size: {
type: String,
default: "md",
},
icon: {
type: [String, Object],
required: true,
component: String,
color: String,
},
content: {
type: String,
required: true,
},
});
function backgroundColor(variant, color) {
let colorValue;
if (variant === "gradient") {
colorValue = "bg-gradient-" + color;
} else if (variant === "contained") {
colorValue = "bg-" + color;
}
return colorValue;
}
</script>
<template>
<div class="p-3 info-horizontal d-flex align-items-center">
<div
class="icon icon-shape text-center border-radius-xl"
:class="`icon-${size} ${backgroundColor(variant, color)} shadow-${color}`"
>
<i
class="material-icons opacity-10"
:class="typeof icon == 'object' ? icon.color : ''"
>{{ typeof icon == "string" ? icon : icon.component }}</i
>
</div>
<div class="description ps-3">
<p class="mb-0" v-html="content" />
</div>
</div>
</template>

View File

@ -1,35 +0,0 @@
<script setup></script>
<template>
<div class="container mt-sm-5">
<div
class="page-header py-6 py-md-5 my-sm-3 mb-3 border-radius-xl"
:style="{
backgroundImage:
'url(https://raw.githubusercontent.com/creativetimofficial/public-assets/master/soft-ui-design-system/assets/img/desktop.jpg)'
}"
loading="lazy"
>
<span class="mask bg-gradient-dark"></span>
<div class="container">
<div class="row">
<div class="col-lg-6 ms-lg-5">
<h4 class="text-white">Built by developers</h4>
<h1 class="text-white">Complex Documentation</h1>
<p class="lead text-white opacity-8">
From colors, cards, typography to complex elements, you will find
the full documentation. Play with the utility classes and you will
create unlimited combinations for our components.
</p>
<a
href="https://www.creative-tim.com/learning-lab/vue/overview/material-kit/"
class="text-white icon-move-right"
>
Read docs
<i class="fas fa-arrow-right text-sm ms-1"></i>
</a>
</div>
</div>
</div>
</div>
</div>
</template>

View File

@ -1,98 +0,0 @@
<script setup>
import { onMounted } from "vue";
// tooltip
import setTooltip from "@/assets/js/tooltip";
// store
import { useAppStore } from "@/stores";
const store = useAppStore();
defineProps({
route: {
type: String,
required: true,
},
image: {
type: String,
required: true,
},
title: {
type: String,
default: "",
},
subtitle: {
type: String,
default: "",
},
pro: {
type: Boolean,
default: false,
},
});
onMounted(() => {
setTooltip(store.bootstrap);
});
</script>
<script>
export default {
inheritAttrs: false,
};
</script>
<template>
<RouterLink :to="{ name: route }">
<div
class="card move-on-hover"
v-bind="$attrs"
:data-bs-toggle="pro ? 'tooltip' : null"
:data-bs-placement="pro ? 'top' : null"
:title="pro ? 'Pro Element' : null"
>
<img
class="w-100"
:class="pro && 'opacity-6'"
:src="image"
:alt="title"
loading="lazy"
/>
<svg
v-if="pro"
class="position-absolute"
:style="{ top: 10, right: 10 }"
width="24px"
height="24px"
viewBox="0 0 24 24"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
>
<g
id="lock-black"
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
>
<circle id="Oval" fill="#1F2937" cx="12" cy="12" r="12"></circle>
<g
id="padlock"
transform="translate(7.000000, 5.000000)"
fill="#FFFFFF"
fill-rule="nonzero"
>
<path
d="M5,0 C3.16666667,0 1.66666667,1.5 1.66666667,3.33333333 L1.66666667,4.58333333 C0.666666667,5.5 0,6.83333333 0,8.33333333 C0,11.0833333 2.25,13.3333333 5,13.3333333 C7.75,13.3333333 10,11.0833333 10,8.33333333 C10,6.83333333 9.33333333,5.5 8.33333333,4.58333333 L8.33333333,3.33333333 C8.33333333,1.5 6.83333333,0 5,0 Z M5.83333333,8.91666667 L5.83333333,10.8333333 L4.16666667,10.8333333 L4.16666667,8.91666667 C3.66666667,8.66666667 3.33333333,8.08333333 3.33333333,7.5 C3.33333333,6.58333333 4.08333333,5.83333333 5,5.83333333 C5.91666667,5.83333333 6.66666667,6.58333333 6.66666667,7.5 C6.66666667,8.08333333 6.33333333,8.66666667 5.83333333,8.91666667 Z M6.66666667,3.66666667 C6.16666667,3.41666667 5.58333333,3.33333333 5,3.33333333 C4.41666667,3.33333333 3.83333333,3.41666667 3.33333333,3.66666667 L3.33333333,3.33333333 C3.33333333,2.41666667 4.08333333,1.66666667 5,1.66666667 C5.91666667,1.66666667 6.66666667,2.41666667 6.66666667,3.33333333 L6.66666667,3.66666667 Z"
></path>
</g>
</g>
</svg>
</div>
<div class="mt-2 ms-2">
<h6 class="mb-0">{{ title }}</h6>
<p class="text-secondary text-sm font-weight-normal">
{{ subtitle }}
</p>
</div>
</RouterLink>
</template>

View File

@ -1,70 +0,0 @@
<script setup>
import RotatingCard from "../../../examples/cards/rotatingCards/RotatingCard.vue";
import RotatingCardFront from "../../../examples/cards/rotatingCards/RotatingCardFront.vue";
import RotatingCardBack from "../../../examples/cards/rotatingCards/RotatingCardBack.vue";
import DefaultInfoCard from "../../../examples/cards/infoCards/DefaultInfoCard.vue";
</script>
<template>
<section class="my-5 py-5">
<div class="container">
<div class="row align-items-center">
<div class="col-lg-4 ms-auto me-auto p-lg-4 mt-lg-0 mt-4">
<RotatingCard>
<RotatingCardFront
image="https://images.unsplash.com/photo-1569683795645-b62e50fbf103?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=987&q=80"
icon="touch_app"
title="Feel the <br /> Material Kit"
description="All the Bootstrap components that you need in a development have been
re-design with the new look."
/>
<RotatingCardBack
image="https://images.unsplash.com/photo-1498889444388-e67ea62c464b?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1365&q=80"
title="Discover More"
description="You will save a lot of time going from prototyping to full-functional
code because all elements are implemented."
:action="[
{
route: './/sections/page-sections/hero-sections.html',
label: 'Start with Headers',
},
]"
/>
</RotatingCard>
</div>
<div class="col-lg-6 ms-auto">
<div class="row justify-content-start">
<DefaultInfoCard
icon="content_copy"
title="Full Documentation"
description="Built by developers for developers. Check the foundation and
you will find everything inside our documentation."
/>
<DefaultInfoCard
icon="flip_to_front"
title="Bootstrap 5 Ready"
description="The worlds most popular front-end open source toolkit,
featuring Sass variables and mixins."
/>
</div>
<div class="row justify-content-start mt-5">
<DefaultInfoCard
class="mt-3"
icon="price_change"
title="Save Time & Money"
description="Creating your design from scratch with dedicated designers can
be very expensive. Start with our Design System."
/>
<DefaultInfoCard
class="mt-3"
icon="devices"
title="Fully Responsive"
description="Regardless of the screen size, the website content will
naturally fit the given resolution."
/>
</div>
</div>
</div>
</div>
</section>
</template>

View File

@ -1,80 +0,0 @@
<script setup>
import ExampleCard from "../Components/ExampleCard.vue";
import MaterialBadge from "../../../components/MaterialBadge.vue";
// images
import imgSigninCover from "@/assets/img/signin-cover.png";
</script>
<template>
<section class="py-5">
<div class="container">
<div class="row">
<div class="row text-center my-sm-5 mt-5">
<div class="col-lg-6 mx-auto">
<MaterialBadge color="success" class="mb-3"
>Boost creativity</MaterialBadge
>
<h2 class="">With our coded pages</h2>
<p class="lead">
The easiest way to get started is to use one of our <br />
pre-built example pages.
</p>
</div>
</div>
</div>
</div>
<div class="container mt-5">
<div class="row">
<div class="col-md-8">
<div class="row mt-4">
<div class="col-md-6 mt-md-0 mt-5">
<ExampleCard
class="shadow-lg"
title="About Us Page"
image="https://raw.githubusercontent.com/creativetimofficial/public-assets/master/material-design-system/presentation/pages/about-us.jpg"
route="about"
/>
</div>
<div class="col-md-6 mt-md-0 mt-5">
<ExampleCard
class="shadow-lg"
title="Contact Us Page"
image="https://raw.githubusercontent.com/creativetimofficial/public-assets/master/material-design-system/presentation/pages/contact.jpg"
route="contactus"
/>
</div>
</div>
<div class="row mt-4">
<div class="col-md-6 mt-md-0 mt-5">
<ExampleCard
classes="mt-5"
title="Sign In Page"
:image="imgSigninCover"
route="signin-basic"
/>
</div>
<div class="col-md-6 mt-md-0 mt-5">
<ExampleCard
classes="shadow-lg"
title="Author Page"
image="https://raw.githubusercontent.com/creativetimofficial/public-assets/master/material-design-system/presentation/pages/author.jpg"
route="author"
/>
</div>
</div>
</div>
<div class="col-md-3 mx-auto mt-md-0 mt-3">
<div class="position-sticky" style="top: 100px !important">
<h3>
Presentation Pages for Company, Landing Pages, Blogs and Support
</h3>
<h6 class="text-secondary font-weight-normal">
These is just a small selection of the multiple possibitilies you
have. Focus on the business, not on the design.
</h6>
</div>
</div>
</div>
</div>
</section>
</template>

View File

@ -1,123 +0,0 @@
<script setup>
import SimplePricingCard from "@/examples/cards/pricingCards/SimplePricingCard.vue";
</script>
<template>
<section class="py-sm-7" id="pricing-soft-ui">
<div class="bg-gradient-success position-relative mx-n3 overflow-hidden">
<img
src="@/assets/img/shapes/pattern-lines.svg"
alt="pattern-lines"
class="position-absolute start-0 top-md-0 w-100 opacity-6"
/>
<div
class="container pb-lg-8 pb-7 pt-5 postion-relative z-index-2 position-relative"
>
<div class="row">
<div class="col-md-7 mx-auto text-center">
<span class="badge bg-gradient-dark mb-2">Pricing</span>
<h3 class="text-white">Ready to get Material Kit?</h3>
<p class="text-white">
Based on the license you get, you will have direct access to our
team <br />
of developers who built the product.
</p>
</div>
</div>
</div>
</div>
<div class="mt-lg-n8 mt-n6">
<div class="container">
<div class="row mt-5">
<SimplePricingCard
title="Freelancer"
description="Good for a personal or client web/mobile app."
:price="{ currency: '$', amount: '79' }"
:action="{
route: '/',
label: 'Buy now',
color: 'bg-gradient-dark',
}"
:specifications="[
'Complete documentation',
'Full code',
'Projects - 1',
'Team size - 1',
'Support',
'Free Updates - 6 months',
]"
/>
<SimplePricingCard
title="Startup"
description="Build your startup or client web/mobile app."
:price="149"
:specifications="[
'Complete documentation',
'Full code',
'Projects - 1',
'Team size - up to 5',
'Support',
'Free Updates - 12 months',
]"
/>
<SimplePricingCard
color="bg-gradient-dark"
title="Company"
description="Perfect for web/mobile apps or SaaS projects."
:price="249"
:action="{ route: '', label: 'Buy now', color: 'btn-white' }"
:specifications="[
'Complete documentation',
'Full code',
'Use in SaaS',
'Projects - unlimited',
'Team Size - up to 20',
'Priority support',
'Free Updates - 12 months',
]"
/>
<SimplePricingCard
title="Enterprise"
description="Deploy large-scale projects which include redistribution
rights."
:price="599"
:action="{
route:
'https://secure.avangate.com/order/checkout.php?PRODS=37189144&OPTIONS37189144=ENTERPRISE&CART=1&CARD=2&CLEAN_CART=1&SHORT_FORM=1',
label: 'Buy now',
color: 'bg-gradient-dark',
}"
:specifications="[
'Complete documentation',
'Full code',
'Use in SaaS',
'Projects - unlimited',
'Team Size - more than 20',
'Priority support',
'Free Updates - 24 months',
]"
/>
</div>
<div class="row">
<div class="col-md-12">
<p class="text-center mt-5">
<i class="fa fa-lock" aria-hidden="true"></i> Secured Payment by
<b> 2Checkout </b> with: <br /><br />
<i class="fa fa-cc-paypal fa-2x me-1" aria-hidden="true"></i>
<i class="fa fa-cc-visa fa-2x" aria-hidden="true"></i>
<i class="fa fa-cc-mastercard fa-2x mx-1" aria-hidden="true"></i>
<i class="fa fa-cc-amex fa-2x" aria-hidden="true"></i>
</p>
<p class="text-center max-width-500 mx-auto">
<b>Info:</b> If you are a Registered Company inside the European
Union you will be able to add your VAT ID after your Press "Buy
Now"
</p>
</div>
</div>
</div>
</div>
</section>
</template>