Косметика

This commit is contained in:
FEARmeR 2023-05-23 19:13:24 +01:00
parent 975fbba43a
commit e745dab6cf
3 changed files with 34 additions and 28 deletions

View File

@ -99,7 +99,7 @@ border-radius: 15px;
.result-grid { .result-grid {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: left;
} }
.result-card { .result-card {

View File

@ -48,19 +48,6 @@ const onFileChange = (event) => {
const updateProject = async () => { const updateProject = async () => {
// try {
// const headers = { 'Authorization': `Bearer ${token.value}` };
// const data = {
// title: projectData.value.title,
// description: projectData.value.description,
// demo_link: projectData.value.demo_link,
// source_link: projectData.value.source_link,
// tags: projectData.value.tags,
// };
// const response = await axios.patch(`http://somebodyhire.me/api/projects/${projectId.value}/`, data, { headers });
// router.push(`/project/${response.data.id}`);
// }
try { try {
const tokenValue = token.value; const tokenValue = token.value;
const headers = { const headers = {
@ -94,6 +81,29 @@ const updateProject = async () => {
} }
}; };
const deleteProject = async () => {
try {
const tokenValue = token.value;
const headers = {
'Authorization': `Bearer ${tokenValue}`,
'Content-Type': 'multipart/form-data',
"X-CSRFToken": "{{ csrf_token }}"
};
const response = await axios.delete(`http://somebodyhire.me/api/projects/${projectId.value}/`, { headers });
router.push('/myprojects');
}
catch (error) {
debugText.value = `Error: ${JSON.stringify(error, null, 2)}`;
console.error(error);
}
};
const cancelUpdate = () => { const cancelUpdate = () => {
router.push('/myprojects'); router.push('/myprojects');
}; };
@ -107,13 +117,13 @@ onMounted(async() => {
<template> <template>
<NavbarDefault /> <NavbarDefault />
<div class="profile-container"> <div class="profile-container">
<H1> Страница Редактирования Проекта {{ projectId }}</H1>
<div v-if="!isAuthenticated"> <div v-if="!isAuthenticated">
<h1>Вы не авторизованы</h1> <h1>Вы не авторизованы</h1>
</div> </div>
<div v-else> <div v-else>
<div v-if = "userId == projectData.owner"> <div v-if = "userId == projectData.owner">
<h1>User Profile: {{ loggedUserName }}</h1> <h2>Редактирование проекта</h2>
<!-- Окно с результатами обмена для отладки <!-- Окно с результатами обмена для отладки
<textarea readonly v-model="debugText"></textarea> <textarea readonly v-model="debugText"></textarea>
@ -133,11 +143,10 @@ onMounted(async() => {
<div> <div>
<button @click="updateProject" class="btn-submit">Сохранить</button> <button @click="updateProject" class="btn-submit">Сохранить</button>
<button @click="cancelUpdate" class="btn-cancel">Отмена</button> <button @click="cancelUpdate" class="btn-cancel">Отмена</button>
<button @click="deleteProject" class="btn-cancel">Удалить</button>
</div> </div>
</div> </div>
<div v-else>
<h1>Вы не являетесь владельцем проекта</h1>
</div>
</div> </div>
</div> </div>
</template> </template>

View File

@ -38,20 +38,17 @@ const getProject = async () => {
<template> <template>
<NavbarDefault /> <NavbarDefault />
<div v-if="projectData" class="project-container"> <div v-if="projectData" class="project-container">
<h1 class="project-title">Проект номер: {{ projectData.id }}</h1> <h1 class="subtitle">{{ projectData.title }}</h1>
<h2 class="project-subtitle">{{ projectData.title }}</h2>
<div v-if = "projectData.owner == userId" class="project-owner-note"> <div v-if = "projectData.owner == userId" class="project-owner-note">
<a :href="`/editproject/${projectData.id}`">Редактирование проекта</a> <a :href="`/editproject/${projectData.id}`">Редактирование проекта</a>
</div> </div>
<p class="project-description">{{ projectData.description }}</p>
<img class="project-image" :src="projectData.featured_image" alt="Featured image"> <img class="project-image" :src="projectData.featured_image" alt="Featured image">
<p> {{ projectData.featured_image }}</p> <p class="project-description">{{ projectData.description }}</p>
<p v-if="projectData.demo_link" class="project-demo-link">Demo Link: <a :href="projectData.demo_link">{{ projectData.demo_link }}</a></p> <p v-if="projectData.demo_link" class="project-demo-link">Demo Link: <a target="_blank" :href="projectData.demo_link">{{ projectData.demo_link }}</a></p>
<p v-if="projectData.source_link" class="project-source-link">Source Link: <a :href="projectData.source_link">{{ projectData.source_link }}</a></p> <p v-if="projectData.source_link" class="project-source-link">Source Link: <a target="_blank" :href="projectData.source_link">{{ projectData.source_link }}</a></p>
<p class="project-votes">Total Votes: {{ projectData.vote_total }}</p> <!-- <p class="project-votes">Total Votes: {{ projectData.vote_total }}</p>
<p class="project-vote-ratio">Vote Ratio: {{ projectData.vote_ratio }}</p> <p class="project-vote-ratio">Vote Ratio: {{ projectData.vote_ratio }}</p>
<p class="project-created">Created On: {{ new Date(projectData.created).toLocaleDateString() }}</p> <p class="project-created">Created On: {{ new Date(projectData.created).toLocaleDateString() }}</p>
<p class="project-owner-id">Owner ID: {{ projectData.owner }}</p>
<p class="project-tags">Tags: <p class="project-tags">Tags:
<span v-for="(tag, index) in projectData.tags" :key="index" class="project-tag"> <span v-for="(tag, index) in projectData.tags" :key="index" class="project-tag">
{{ tag }}<span v-if="index < projectData.tags.length - 1">, </span> {{ tag }}<span v-if="index < projectData.tags.length - 1">, </span>
@ -66,7 +63,7 @@ const getProject = async () => {
</select> </select>
<textarea name="comment" v-model="message" placeholder="Напишите комментарий"></textarea> <textarea name="comment" v-model="message" placeholder="Напишите комментарий"></textarea>
<button>Отправить</button> <button>Отправить</button>
</div> </div> -->
</div> </div>
</template> </template>