mirror of
https://github.com/Litlyx/litlyx
synced 2025-12-10 15:58:38 +01:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f86a399840 | ||
|
|
36c4406af2 | ||
|
|
b2afd585bb | ||
|
|
24ae9d0e0d | ||
|
|
fa7880552a |
Binary file not shown.
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 123 KiB |
@@ -56,7 +56,7 @@ const { createAlert } = useAlert()
|
|||||||
async function deleteSnapshot(close: () => any) {
|
async function deleteSnapshot(close: () => any) {
|
||||||
await $fetch("/api/snapshot/delete", {
|
await $fetch("/api/snapshot/delete", {
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
...signHeaders({ 'Content-Type': 'application/json' }),
|
headers: useComputedHeaders({ useSnapshotDates: false }).value,
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
id: snapshot.value._id.toString(),
|
id: snapshot.value._id.toString(),
|
||||||
})
|
})
|
||||||
@@ -71,11 +71,7 @@ async function generatePDF() {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await $fetch<Blob>('/api/project/generate_pdf', {
|
const res = await $fetch<Blob>('/api/project/generate_pdf', {
|
||||||
...signHeaders({
|
headers: useComputedHeaders({ useSnapshotDates: false, custom: { 'x-snapshot-name': snapshot.value.name } }).value,
|
||||||
'x-snapshot-name': snapshot.value.name,
|
|
||||||
'x-from': snapshot.value.from.toISOString(),
|
|
||||||
'x-to': snapshot.value.to.toISOString(),
|
|
||||||
}),
|
|
||||||
responseType: 'blob'
|
responseType: 'blob'
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -149,8 +145,8 @@ const pricingDrawer = usePricingDrawer();
|
|||||||
</div>
|
</div>
|
||||||
</LyxUiButton>
|
</LyxUiButton>
|
||||||
|
|
||||||
<LyxUiButton v-if="projectList && (projectList.length >= (maxProjects || 1))"
|
<LyxUiButton v-if="projectList && (projectList.length >= (maxProjects || 1))" type="outlined"
|
||||||
type="outlined" class="w-full py-1 mt-2 text-[.7rem]">
|
class="w-full py-1 mt-2 text-[.7rem]">
|
||||||
<div class="flex items-center gap-2 justify-center">
|
<div class="flex items-center gap-2 justify-center">
|
||||||
<div><i class="text-lyx-text-darker far fa-lock"></i></div>
|
<div><i class="text-lyx-text-darker far fa-lock"></i></div>
|
||||||
<div class="text-lyx-text-darker"> Projects limit reached </div>
|
<div class="text-lyx-text-darker"> Projects limit reached </div>
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ const { createAlert } = useAlert()
|
|||||||
async function confirmSnapshot() {
|
async function confirmSnapshot() {
|
||||||
await $fetch("/api/snapshot/create", {
|
await $fetch("/api/snapshot/create", {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
...signHeaders({ 'Content-Type': 'application/json' }),
|
headers: useComputedHeaders({ useSnapshotDates: false }).value,
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
name: snapshotName.value,
|
name: snapshotName.value,
|
||||||
color: currentColor.value,
|
color: currentColor.value,
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ async function resetCount(project_id: string) {
|
|||||||
<div @click="onHideClicked()" v-if="!isAdminHidden"
|
<div @click="onHideClicked()" v-if="!isAdminHidden"
|
||||||
class="bg-menu hover:bg-menu/70 cursor-pointer flex gap-2 rounded-lg w-fit px-6 py-4 text-text-sub">
|
class="bg-menu hover:bg-menu/70 cursor-pointer flex gap-2 rounded-lg w-fit px-6 py-4 text-text-sub">
|
||||||
<div class="text-text-sub/90"> <i class="far fa-eye"></i> </div>
|
<div class="text-text-sub/90"> <i class="far fa-eye"></i> </div>
|
||||||
<div> Hide </div>
|
<div> Hide from the bar </div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
|
|
||||||
import { getUserProjectFromId } from "~/server/LIVE_DEMO_DATA";
|
import { getUserProjectFromId } from "~/server/LIVE_DEMO_DATA";
|
||||||
import { ApiSettingsModel, TApiSettings } from "@schema/ApiSettingsSchema";
|
import { ApiSettingsModel, TApiSettings } from "@schema/ApiSettingsSchema";
|
||||||
import { UserSettingsModel } from "@schema/UserSettings";
|
|
||||||
import { ProjectModel } from "@schema/ProjectSchema";
|
import { ProjectModel } from "@schema/ProjectSchema";
|
||||||
|
|
||||||
import crypto from 'crypto';
|
import crypto from 'crypto';
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import pdfkit from 'pdfkit';
|
|||||||
import { PassThrough } from 'node:stream';
|
import { PassThrough } from 'node:stream';
|
||||||
|
|
||||||
import { ProjectModel } from "@schema/ProjectSchema";
|
import { ProjectModel } from "@schema/ProjectSchema";
|
||||||
import { UserSettingsModel } from "@schema/UserSettings";
|
|
||||||
import { VisitModel } from '@schema/metrics/VisitSchema';
|
import { VisitModel } from '@schema/metrics/VisitSchema';
|
||||||
import { EventModel } from '@schema/metrics/EventSchema';
|
import { EventModel } from '@schema/metrics/EventSchema';
|
||||||
|
|
||||||
@@ -82,15 +81,13 @@ function createPdf(data: PDFGenerationData) {
|
|||||||
|
|
||||||
export default defineEventHandler(async event => {
|
export default defineEventHandler(async event => {
|
||||||
|
|
||||||
|
const data = await getRequestData(event, { requireSchema: false, allowGuests: true, requireRange: false });
|
||||||
|
if (!data) return;
|
||||||
|
|
||||||
const userData = getRequestUser(event);
|
const userData = getRequestUser(event);
|
||||||
if (!userData?.logged) return setResponseStatus(event, 400, 'NotLogged');
|
if (!userData?.logged) return setResponseStatus(event, 400, 'NotLogged');
|
||||||
|
|
||||||
const currentActiveProject = await UserSettingsModel.findOne({ user_id: userData.id });
|
const project = await ProjectModel.findById(data.project_id);
|
||||||
if (!currentActiveProject) return setResponseStatus(event, 400, 'You need to select a project');
|
|
||||||
|
|
||||||
const project_id = currentActiveProject.active_project_id;
|
|
||||||
|
|
||||||
const project = await ProjectModel.findById(project_id);
|
|
||||||
if (!project) return setResponseStatus(event, 400, 'Project not found');
|
if (!project) return setResponseStatus(event, 400, 'Project not found');
|
||||||
|
|
||||||
const snapshotHeader = getHeader(event, 'x-snapshot-name');
|
const snapshotHeader = getHeader(event, 'x-snapshot-name');
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
import { ProjectModel } from "@schema/ProjectSchema";
|
import { ProjectModel } from "@schema/ProjectSchema";
|
||||||
import { TeamMemberModel } from "@schema/TeamMemberSchema";
|
import { TeamMemberModel } from "@schema/TeamMemberSchema";
|
||||||
import { UserModel } from "@schema/UserSchema";
|
import { UserModel } from "@schema/UserSchema";
|
||||||
import { UserSettingsModel } from "@schema/UserSettings";
|
|
||||||
import StripeService from '~/server/services/StripeService';
|
|
||||||
|
|
||||||
export default defineEventHandler(async event => {
|
export default defineEventHandler(async event => {
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
import { ProjectModel } from "@schema/ProjectSchema";
|
import { ProjectModel } from "@schema/ProjectSchema";
|
||||||
import { ProjectSnapshotModel } from "@schema/ProjectSnapshot";
|
import { ProjectSnapshotModel } from "@schema/ProjectSnapshot";
|
||||||
import { UserSettingsModel } from "@schema/UserSettings";
|
|
||||||
|
|
||||||
|
|
||||||
export default defineEventHandler(async event => {
|
export default defineEventHandler(async event => {
|
||||||
|
|
||||||
|
const data = await getRequestData(event, { requireSchema: false, allowGuests: true, requireRange: false });
|
||||||
|
if (!data) return;
|
||||||
|
|
||||||
const body = await readBody(event);
|
const body = await readBody(event);
|
||||||
|
|
||||||
const { name: newSnapshotName, from, to, color: snapshotColor } = body;
|
const { name: newSnapshotName, from, to, color: snapshotColor } = body;
|
||||||
@@ -19,13 +21,8 @@ export default defineEventHandler(async event => {
|
|||||||
const userData = getRequestUser(event);
|
const userData = getRequestUser(event);
|
||||||
if (!userData?.logged) return setResponseStatus(event, 400, 'NotLogged');
|
if (!userData?.logged) return setResponseStatus(event, 400, 'NotLogged');
|
||||||
|
|
||||||
const userSettings = await UserSettingsModel.findOne({ user_id: userData.id }, { active_project_id: 1 });
|
|
||||||
|
|
||||||
if (!userSettings) return setResponseStatus(event, 500, 'Unkwnown error');
|
const project = await ProjectModel.findById(data.project_id);
|
||||||
|
|
||||||
const currentProjectId = userSettings.active_project_id;
|
|
||||||
|
|
||||||
const project = await ProjectModel.findById(currentProjectId);
|
|
||||||
if (!project) return setResponseStatus(event, 400, 'Project not found');
|
if (!project) return setResponseStatus(event, 400, 'Project not found');
|
||||||
|
|
||||||
|
|
||||||
@@ -34,7 +31,7 @@ export default defineEventHandler(async event => {
|
|||||||
from: new Date(from),
|
from: new Date(from),
|
||||||
to: new Date(to),
|
to: new Date(to),
|
||||||
color: snapshotColor,
|
color: snapshotColor,
|
||||||
project_id: currentProjectId
|
project_id: data.project_id
|
||||||
});
|
});
|
||||||
|
|
||||||
return newSnapshot.id;
|
return newSnapshot.id;
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
import { ProjectModel } from "@schema/ProjectSchema";
|
import { ProjectModel } from "@schema/ProjectSchema";
|
||||||
import { ProjectSnapshotModel } from "@schema/ProjectSnapshot";
|
import { ProjectSnapshotModel } from "@schema/ProjectSnapshot";
|
||||||
import { UserSettingsModel } from "@schema/UserSettings";
|
|
||||||
|
|
||||||
|
|
||||||
export default defineEventHandler(async event => {
|
export default defineEventHandler(async event => {
|
||||||
|
|
||||||
|
const data = await getRequestData(event, { requireSchema: false, allowGuests: false, requireRange: false });
|
||||||
|
if (!data) return;
|
||||||
|
|
||||||
const body = await readBody(event);
|
const body = await readBody(event);
|
||||||
|
|
||||||
const { id: snapshotId } = body;
|
const { id: snapshotId } = body;
|
||||||
@@ -14,18 +16,11 @@ export default defineEventHandler(async event => {
|
|||||||
const userData = getRequestUser(event);
|
const userData = getRequestUser(event);
|
||||||
if (!userData?.logged) return setResponseStatus(event, 400, 'NotLogged');
|
if (!userData?.logged) return setResponseStatus(event, 400, 'NotLogged');
|
||||||
|
|
||||||
const userSettings = await UserSettingsModel.findOne({ user_id: userData.id }, { active_project_id: 1 });
|
const project = await ProjectModel.findById(data.project_id);
|
||||||
|
|
||||||
if (!userSettings) return setResponseStatus(event, 500, 'Unkwnown error');
|
|
||||||
|
|
||||||
const currentProjectId = userSettings.active_project_id;
|
|
||||||
|
|
||||||
const project = await ProjectModel.findById(currentProjectId);
|
|
||||||
if (!project) return setResponseStatus(event, 400, 'Project not found');
|
if (!project) return setResponseStatus(event, 400, 'Project not found');
|
||||||
|
|
||||||
|
|
||||||
const deletation = await ProjectSnapshotModel.deleteOne({
|
const deletation = await ProjectSnapshotModel.deleteOne({
|
||||||
project_id: currentProjectId,
|
project_id: data.project_id,
|
||||||
_id: snapshotId
|
_id: snapshotId
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user