✨ Added circle and rectangle
This commit is contained in:
@@ -119,6 +119,8 @@ class SlideElementTypes(str, Enum):
|
|||||||
TEXT = "TEXT"
|
TEXT = "TEXT"
|
||||||
HEADLINE = "HEADLINE"
|
HEADLINE = "HEADLINE"
|
||||||
IMAGE = "IMAGE"
|
IMAGE = "IMAGE"
|
||||||
|
RECTANGLE = "RECTANGLE"
|
||||||
|
CIRCLE = "CIRCLE"
|
||||||
|
|
||||||
|
|
||||||
class SlideElement(BaseModel):
|
class SlideElement(BaseModel):
|
||||||
|
|||||||
@@ -198,6 +198,7 @@ async def finish_edit(edit_id: str, quiz_input: QuizInput):
|
|||||||
quiz.description = quiz_input.description
|
quiz.description = quiz_input.description
|
||||||
quiz.updated_at = datetime.now()
|
quiz.updated_at = datetime.now()
|
||||||
quiz.questions = quiz_input.dict()["questions"]
|
quiz.questions = quiz_input.dict()["questions"]
|
||||||
|
print(quiz.questions)
|
||||||
quiz.cover_image = quiz_input.cover_image
|
quiz.cover_image = quiz_input.cover_image
|
||||||
quiz.background_color = quiz_input.background_color
|
quiz.background_color = quiz_input.background_color
|
||||||
for image in images_to_delete:
|
for image in images_to_delete:
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import TextElement from './slides/types/text.svelte';
|
import TextElement from './slides/types/text.svelte';
|
||||||
import HeadlineElement from './slides/types/headline.svelte';
|
import HeadlineElement from './slides/types/headline.svelte';
|
||||||
|
import RectangleElement from './slides/types/rectangle.svelte';
|
||||||
|
import CircleElement from './slides/types/circle.svelte';
|
||||||
import { draggable } from '@neodrag/svelte';
|
import { draggable } from '@neodrag/svelte';
|
||||||
import type { Question } from '$lib/quiz_types';
|
import type { Question } from '$lib/quiz_types';
|
||||||
import { ElementTypes, QuizQuestionType } from '$lib/quiz_types';
|
import { ElementTypes, QuizQuestionType } from '$lib/quiz_types';
|
||||||
@@ -108,7 +110,7 @@
|
|||||||
}px`;
|
}px`;
|
||||||
elements_binds[i].style.width = `${data.answers[i].width * main_el.offsetWidth}px`;
|
elements_binds[i].style.width = `${data.answers[i].width * main_el.offsetWidth}px`;
|
||||||
}
|
}
|
||||||
}, 100);
|
}, 200);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -190,6 +192,10 @@
|
|||||||
<TextElement bind:data={el.data} />
|
<TextElement bind:data={el.data} />
|
||||||
{:else if el.type === ElementTypes.Headline}
|
{:else if el.type === ElementTypes.Headline}
|
||||||
<HeadlineElement bind:data={el.data} />
|
<HeadlineElement bind:data={el.data} />
|
||||||
|
{:else if el.type === ElementTypes.Rectangle}
|
||||||
|
<RectangleElement bind:data={el.data} />
|
||||||
|
{:else if el.type === ElementTypes.Circle}
|
||||||
|
<CircleElement bind:data={el.data} />
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
|
|||||||
@@ -11,7 +11,9 @@
|
|||||||
export let selected_element;
|
export let selected_element;
|
||||||
const keybinding_list = {
|
const keybinding_list = {
|
||||||
t: ElementTypes.Text,
|
t: ElementTypes.Text,
|
||||||
h: ElementTypes.Headline
|
h: ElementTypes.Headline,
|
||||||
|
r: ElementTypes.Rectangle,
|
||||||
|
c: ElementTypes.Circle
|
||||||
// "i": ElementTypes.Image
|
// "i": ElementTypes.Image
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -50,6 +52,20 @@
|
|||||||
type: ElementTypes.Text,
|
type: ElementTypes.Text,
|
||||||
icon: undefined,
|
icon: undefined,
|
||||||
shortcut: 't'
|
shortcut: 't'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Rectangle',
|
||||||
|
description: 'Just a rectangle',
|
||||||
|
type: ElementTypes.Rectangle,
|
||||||
|
icon: undefined,
|
||||||
|
shortcut: 'r'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Circle',
|
||||||
|
description: 'Just a circle',
|
||||||
|
type: ElementTypes.Circle,
|
||||||
|
icon: undefined,
|
||||||
|
shortcut: 'c'
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<!--
|
||||||
|
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
- file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
|
-->
|
||||||
|
<script lang="ts">
|
||||||
|
export let data: string;
|
||||||
|
export let editor = true;
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = '#ed333b';
|
||||||
|
}
|
||||||
|
$: console.log(data);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="rounded-full w-full h-full flex justify-center p-2" style="background-color: {data}">
|
||||||
|
{#if editor}
|
||||||
|
<input type="color" bind:value={data} class="m-auto hover:cursor-pointer" />
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<!--
|
||||||
|
- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
- file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
|
-->
|
||||||
|
<script lang="ts">
|
||||||
|
export let data: string;
|
||||||
|
export let editor = true;
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = '#ed333b';
|
||||||
|
}
|
||||||
|
$: console.log(data);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="w-full h-full flex justify-center p-2" style="background-color: {data}">
|
||||||
|
{#if editor}
|
||||||
|
<input type="color" bind:value={data} class="m-auto hover:cursor-pointer" />
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
@@ -5,9 +5,11 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export enum ElementTypes {
|
export enum ElementTypes {
|
||||||
Text = 'TEXT',
|
Text = 'TEXT', // eslint-disable-line no-unused-vars
|
||||||
Headline = 'HEADLINE',
|
Headline = 'HEADLINE', // eslint-disable-line no-unused-vars
|
||||||
Image = 'IMAGE'
|
Image = 'IMAGE', // eslint-disable-line no-unused-vars
|
||||||
|
Rectangle = 'RECTANGLE', // eslint-disable-line no-unused-vars
|
||||||
|
Circle = 'CIRCLE' // eslint-disable-line no-unused-vars
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface QuizData {
|
export interface QuizData {
|
||||||
|
|||||||
Reference in New Issue
Block a user