update icon stuff

This commit is contained in:
Daniel Egger 2022-06-22 11:21:28 +02:00
parent 2c36ea9242
commit 7e5debb5ca
9 changed files with 53 additions and 32 deletions

View File

@ -13,7 +13,7 @@ const props = defineProps<{
class="w-8 h-8 absolute right-4 top-4 cursor-pointer" class="w-8 h-8 absolute right-4 top-4 cursor-pointer"
@click="$emit('close')" @click="$emit('close')"
> >
<it-icon-close class="h-8 w-8"></it-icon-close> <it-icon-close></it-icon-close>
</div> </div>

View File

@ -8,10 +8,6 @@ const props = defineProps<{
learningSequence: LearningSequence learningSequence: LearningSequence
}>() }>()
const emit = defineEmits<{
(e: 'clickContent', value: LearningContent): void
}>()
const circleStore = useCircleStore(); const circleStore = useCircleStore();
function toggleCompleted(learningContent: LearningContent) { function toggleCompleted(learningContent: LearningContent) {
@ -49,6 +45,7 @@ const someFinished = computed(() => {
> >
<div <div
v-for="learningUnit in learningSequence.learningUnits" v-for="learningUnit in learningSequence.learningUnits"
:key="learningUnit.id"
class="py-3" class="py-3"
> >
<div class="pb-3 flex gap-4" v-if="learningUnit.title"> <div class="pb-3 flex gap-4" v-if="learningUnit.title">
@ -58,6 +55,7 @@ const someFinished = computed(() => {
<div <div
v-for="learningContent in learningUnit.learningContents" v-for="learningContent in learningUnit.learningContents"
:key="learningContent.id"
class="flex items-center gap-4 pb-3" class="flex items-center gap-4 pb-3"
> >
<ItCheckbox <ItCheckbox

View File

@ -1,7 +1,7 @@
import type {CircleChild, LearningContent, LearningSequence, LearningUnit} from '@/types'; import type {CircleChild, LearningContent, LearningSequence, LearningUnit} from '@/types';
function createEmptyLearningUnit(): LearningUnit { function createEmptyLearningUnit(parentLearningSequence: LearningSequence): LearningUnit {
return { return {
id: 0, id: 0,
title: '', title: '',
@ -11,6 +11,7 @@ function createEmptyLearningUnit(): LearningUnit {
questions: [], questions: [],
learningContents: [], learningContents: [],
minutes: 0, minutes: 0,
parentLearningSequence: parentLearningSequence,
}; };
} }
@ -32,7 +33,7 @@ export function parseLearningSequences (children: CircleChild[]): LearningSequen
learningSequence = Object.assign(child, {learningUnits: []}); learningSequence = Object.assign(child, {learningUnits: []});
// initialize empty learning unit if there will not come a learning unit next // initialize empty learning unit if there will not come a learning unit next
learningUnit = createEmptyLearningUnit(); learningUnit = createEmptyLearningUnit(learningSequence);
} else if (child.type === 'learnpath.LearningUnit') { } else if (child.type === 'learnpath.LearningUnit') {
if (learningSequence === null) { if (learningSequence === null) {
throw new Error('LearningUnit found before LearningSequence'); throw new Error('LearningUnit found before LearningSequence');
@ -42,7 +43,10 @@ export function parseLearningSequences (children: CircleChild[]): LearningSequen
learningSequence.learningUnits.push(learningUnit); learningSequence.learningUnits.push(learningUnit);
} }
learningUnit = Object.assign(child, {learningContents: []}); learningUnit = Object.assign(child, {
learningContents: [],
parentLearningSequence: learningSequence,
});
} else if (child.type === 'learnpath.LearningContent') { } else if (child.type === 'learnpath.LearningContent') {
if (learningUnit === null) { if (learningUnit === null) {
throw new Error('LearningContent found before LearningUnit'); throw new Error('LearningContent found before LearningUnit');

View File

@ -68,6 +68,7 @@ export interface LearningUnit extends LearningWagtailPage {
questions: []; questions: [];
learningContents: LearningContent[]; learningContents: LearningContent[];
minutes: number; minutes: number;
parentLearningSequence?: LearningSequence;
} }
export interface LearningSequence extends LearningWagtailPage { export interface LearningSequence extends LearningWagtailPage {
@ -90,4 +91,6 @@ export interface Circle extends LearningWagtailPage {
children: CircleChild[]; children: CircleChild[];
description: string; description: string;
learningSequences: LearningSequence[]; learningSequences: LearningSequence[];
goals: CircleGoal[];
job_situations: CircleJobSituation[];
} }

View File

@ -49,106 +49,106 @@ function colorBgClass(color: string, value: number) {
<div class="mt-8 mb-8 flex flex-col gap-4 flex-wrap lg:flex-row"> <div class="mt-8 mb-8 flex flex-col gap-4 flex-wrap lg:flex-row">
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
message message
<it-icon-message class="w-8 h-8" /> <it-icon-message/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
arrow-up arrow-up
<it-icon-arrow-up class="w-8 h-8" /> <it-icon-arrow-up/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
arrow-down arrow-down
<it-icon-arrow-down class="w-8 h-8" /> <it-icon-arrow-down/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
arrow-left arrow-left
<it-icon-arrow-left class="w-8 h-8" /> <it-icon-arrow-left/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
arrow-right arrow-right
<it-icon-arrow-right class="w-8 h-8" /> <it-icon-arrow-right/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
close close
<it-icon-close class="w-8 h-8" /> <it-icon-close/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
check check
<it-icon-check class="w-8 h-8" /> <it-icon-check/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
info info
<it-icon-info class="w-8 h-8" /> <it-icon-info/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
list list
<it-icon-list class="w-8 h-8" /> <it-icon-list/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
menu menu
<it-icon-menu class="w-8 h-8" /> <it-icon-menu/>
</div> </div>
</div> </div>
<div class="mt-8 mb-8 flex flex-col gap-4 flex-wrap lg:flex-row"> <div class="mt-8 mb-8 flex flex-col gap-4 flex-wrap lg:flex-row">
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
ls-apply ls-apply
<it-icon-ls-apply class="w-8 h-8" /> <it-icon-ls-apply/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
ls-watch ls-watch
<it-icon-ls-watch class="w-8 h-8" /> <it-icon-ls-watch/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
ls-test ls-test
<it-icon-ls-test class="w-8 h-8" /> <it-icon-ls-test/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
ls-practice ls-practice
<it-icon-ls-practice class="w-8 h-8" /> <it-icon-ls-practice/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
ls-network ls-network
<it-icon-ls-network class="w-8 h-8" /> <it-icon-ls-network/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
ls-start ls-start
<it-icon-ls-start class="w-8 h-8" /> <it-icon-ls-start/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
ls-end ls-end
<it-icon-ls-end class="w-8 h-8" /> <it-icon-ls-end/>
</div> </div>
</div> </div>
<div class="mt-8 mb-8 flex flex-col gap-4 flex-wrap lg:flex-row"> <div class="mt-8 mb-8 flex flex-col gap-4 flex-wrap lg:flex-row">
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
smiley-happy smiley-happy
<it-icon-smiley-happy class="w-8 h-8" /> <it-icon-smiley-happy/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
smiley-thinking smiley-thinking
<it-icon-smiley-thinking class="w-8 h-8" /> <it-icon-smiley-thinking/>
</div> </div>
<div class="inline-flex flex-col"> <div class="inline-flex flex-col">
smiley-neutral smiley-neutral
<it-icon-smiley-neutral class="w-8 h-8" /> <it-icon-smiley-neutral/>
</div> </div>
</div> </div>

View File

@ -106,7 +106,17 @@ Fachspezialisten bei.
) )
LearningSequenceFactory(title='Beobachten', parent=circe_analyse, icon='it-icon-ls-watch') LearningSequenceFactory(title='Beobachten', parent=circe_analyse, icon='it-icon-ls-watch')
LearningUnitFactory(title='Abischerung der Familie', parent=circe_analyse) LearningUnitFactory(
title='Absicherung der Familie',
parent=circe_analyse,
questions=[{
"type": "question",
"value": "Ich bin in der Lage, mit geeigneten Fragestellungen die Deckung von Versicherungen zu erfassen."
}, {
"type": "question",
"value": "Ich weiss was meine Kunden wollen."
}]
)
LearningContentFactory( LearningContentFactory(
title='Ermittlung des Kundenbedarfs', title='Ermittlung des Kundenbedarfs',
parent=circe_analyse, parent=circe_analyse,

View File

@ -4,7 +4,7 @@ example:
class icon_arrow_up extends HTMLElement { class icon_arrow_up extends HTMLElement {
connectedCallback() { connectedCallback() {
this.innerHTML = `<svg width="30" height="30" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> this.innerHTML = `<svg fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path d="M14.9383 10L23.7001 18.9614C23.916 19.2016 23.9084 19.5731 23.6828 19.8038C23.4573 20.0344 23.0941 20.0422 22.8593 19.8214L14.9383 11.72L7.01742 19.8214C6.86685 19.9754 6.6474 20.0356 6.44173 19.9792C6.23605 19.9228 6.0754 19.7585 6.02029 19.5482C5.96518 19.3378 6.02398 19.1134 6.17455 18.9594L14.9383 10Z" <path d="M14.9383 10L23.7001 18.9614C23.916 19.2016 23.9084 19.5731 23.6828 19.8038C23.4573 20.0344 23.0941 20.0422 22.8593 19.8214L14.9383 11.72L7.01742 19.8214C6.86685 19.9754 6.6474 20.0356 6.44173 19.9792C6.23605 19.9228 6.0754 19.7585 6.02029 19.5482C5.96518 19.3378 6.02398 19.1134 6.17455 18.9594L14.9383 10Z"
/> />
</svg> </svg>
@ -20,7 +20,10 @@ customElements.define('it-icon-arrow-up', icon_arrow_up);
class {{ svg_icon.classname }} extends HTMLElement { class {{ svg_icon.classname }} extends HTMLElement {
connectedCallback() { connectedCallback() {
this.innerHTML = `{{ svg_icon.content|safe }}`; this.classList.add('it-icon');
this.innerHTML = `
{{ svg_icon.content|safe }}
`;
} }
} }

View File

@ -11,6 +11,9 @@ svg {
} }
@layer base { @layer base {
.it-icon {
@apply w-8 h-8 inline-block
}
h1 { h1 {
@apply text-4xl md:text-5xl xl:text-7xl font-bold @apply text-4xl md:text-5xl xl:text-7xl font-bold