mirror of
https://github.com/appwrite/console.git
synced 2026-06-06 19:27:48 +00:00
Merge branch '1.4.x' of https://github.com/appwrite/appwrite-console-poc into 1.4.x
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
import { browser } from '$app/environment';
|
||||
import { VARS } from '$lib/system';
|
||||
import { derived, writable } from 'svelte/store';
|
||||
import type { Feedback } from './feedback';
|
||||
|
||||
export type AppStore = {
|
||||
theme: 'light' | 'dark' | 'auto';
|
||||
@@ -19,77 +17,6 @@ export const iconPath = derived(app, ($app) => {
|
||||
};
|
||||
});
|
||||
|
||||
function createFeedbackStore() {
|
||||
const { subscribe, update } = writable<Feedback>({
|
||||
elapsed: browser ? parseInt(localStorage.getItem('feedbackElapsed')) : 0,
|
||||
visualized: browser ? parseInt(localStorage.getItem('feedbackVisualized')) : 0,
|
||||
notification: false,
|
||||
type: 'general',
|
||||
show: false
|
||||
});
|
||||
return {
|
||||
subscribe,
|
||||
update,
|
||||
toggleFeedback: () => {
|
||||
update((feedback) => {
|
||||
feedback.show = !feedback.show;
|
||||
return feedback;
|
||||
});
|
||||
},
|
||||
toggleNotification: () =>
|
||||
update((feedback) => {
|
||||
feedback.notification = !feedback.notification;
|
||||
return feedback;
|
||||
}),
|
||||
switchType: (feedType: Feedback['type']) =>
|
||||
update((feedback) => {
|
||||
feedback.type = feedType;
|
||||
return feedback;
|
||||
}),
|
||||
addVisualization: () =>
|
||||
update((feedback) => {
|
||||
feedback.visualized += 1;
|
||||
localStorage.setItem('feedbackVisualized', feedback.visualized.toString());
|
||||
return feedback;
|
||||
}),
|
||||
|
||||
increaseElapsed: (time: number) => {
|
||||
update((feedback) => {
|
||||
feedback.elapsed += time;
|
||||
localStorage.setItem('feedbackElapsed', feedback.elapsed.toString());
|
||||
return feedback;
|
||||
});
|
||||
},
|
||||
submitFeedback: async (
|
||||
subject: string,
|
||||
message: string,
|
||||
firstname?: string,
|
||||
email?: string,
|
||||
value?: number
|
||||
) => {
|
||||
if (!VARS.GROWTH_ENDPOINT) return;
|
||||
const response = await fetch(`${VARS.GROWTH_ENDPOINT}/feedback`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
subject,
|
||||
message,
|
||||
email,
|
||||
firstname: firstname ? firstname : undefined,
|
||||
customFields: value ? [{ id: '40655', value }] : undefined
|
||||
})
|
||||
});
|
||||
if (response.status >= 400) {
|
||||
throw new Error('Failed to submit feedback');
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export const feedback = createFeedbackStore();
|
||||
|
||||
if (browser) {
|
||||
app.update((n) => ({
|
||||
...n,
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
import Header from '$lib/layout/header.svelte';
|
||||
import SideNavigation from '$lib/layout/navigation.svelte';
|
||||
import Shell from '$lib/layout/shell.svelte';
|
||||
import { app, feedback } from '$lib/stores/app';
|
||||
import { app } from '$lib/stores/app';
|
||||
import { log } from '$lib/stores/logs';
|
||||
import { newOrgModal } from '$lib/stores/organization';
|
||||
import { wizard } from '$lib/stores/wizard';
|
||||
@@ -24,6 +24,7 @@
|
||||
import { openMigrationWizard } from './(migration-wizard)';
|
||||
import { project } from './project-[project]/store';
|
||||
import { sdk } from '$lib/stores/sdk';
|
||||
import { feedback } from '$lib/stores/feedback';
|
||||
|
||||
function kebabToSentenceCase(str: string) {
|
||||
return str
|
||||
|
||||
@@ -46,12 +46,12 @@
|
||||
}
|
||||
await sdk.forConsole.projects.updateEmailTemplate(
|
||||
$project.$id,
|
||||
$emailTemplate.type,
|
||||
$emailTemplate.locale,
|
||||
$emailTemplate.subject,
|
||||
$emailTemplate.message,
|
||||
$emailTemplate.senderName,
|
||||
$emailTemplate.senderEmail,
|
||||
$emailTemplate.type ? $emailTemplate.type : undefined,
|
||||
$emailTemplate.locale ? $emailTemplate.locale : undefined,
|
||||
$emailTemplate.subject ? $emailTemplate.subject : undefined,
|
||||
$emailTemplate.message ? $emailTemplate.message : undefined,
|
||||
$emailTemplate.senderName ? $emailTemplate.senderName : undefined,
|
||||
$emailTemplate.senderEmail ? $emailTemplate.senderEmail : undefined,
|
||||
$emailTemplate.replyTo ? $emailTemplate.replyTo : undefined
|
||||
);
|
||||
|
||||
@@ -76,6 +76,8 @@
|
||||
}
|
||||
|
||||
$: isButtonDisabled = deepEqual($emailTemplate, $baseEmailTemplate);
|
||||
|
||||
$: isSmtpEnabled = $project.smtpEnabled;
|
||||
</script>
|
||||
|
||||
<Box class="u-position-relative">
|
||||
@@ -96,14 +98,14 @@
|
||||
bind:value={$emailTemplate.senderName}
|
||||
tooltip="Set up an SMTP server to edit the sender name"
|
||||
placeholder={'{{project}}'}
|
||||
readonly={!$project.smtpEnabled} />
|
||||
readonly={!isSmtpEnabled} />
|
||||
<InputEmail
|
||||
bind:value={$emailTemplate.senderEmail}
|
||||
id="senderEmail"
|
||||
label="Sender email"
|
||||
tooltip="Set up an SMTP server to edit the sender email"
|
||||
placeholder="Enter sender email"
|
||||
readonly={!$project.smtpEnabled} />
|
||||
readonly={!isSmtpEnabled} />
|
||||
<InputEmail id="replyTo" label="Reply to" placeholder="noreply@appwrite.io" />
|
||||
{#if $$slots.default}
|
||||
<li style="margin-block: 1rem;">
|
||||
@@ -129,7 +131,7 @@
|
||||
label="Message"
|
||||
placeholder="Enter your message"
|
||||
tooltip="Set up an SMTP server to edit the message body"
|
||||
readonly={!$project.smtpEnabled} />
|
||||
readonly={!isSmtpEnabled} />
|
||||
</FormList>
|
||||
<div class="u-sep-block-start u-margin-block-start-24" />
|
||||
<div class="u-flex u-gap-16 u-main-end u-margin-block-start-24">
|
||||
|
||||
@@ -58,13 +58,13 @@
|
||||
await sdk.forConsole.projects.updateSmtpConfiguration(
|
||||
$project.$id,
|
||||
enabled,
|
||||
senderName ?? undefined,
|
||||
senderEmail ?? undefined,
|
||||
replyTo ?? undefined,
|
||||
host ?? undefined,
|
||||
port ?? undefined,
|
||||
username ?? undefined,
|
||||
password ?? undefined,
|
||||
senderName ? senderName : undefined,
|
||||
senderEmail ? senderEmail : undefined,
|
||||
replyTo ? replyTo : undefined,
|
||||
host ? host : undefined,
|
||||
port ? port : undefined,
|
||||
username ? username : undefined,
|
||||
password ? password : undefined,
|
||||
secure ? 'tls' : undefined
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user