accordions data linked to kirby

This commit is contained in:
isUnknown 2024-10-09 17:32:12 +02:00
parent d7c7731fe3
commit 2f96f3f901
11 changed files with 122 additions and 10 deletions

View file

@ -14,7 +14,14 @@ Description: test
---- ----
Clientbriefimages: - file://b4Ywx4ProE0Smc0Q Clientbriefimages:
- file://b4Ywx4ProE0Smc0Q
- file://aCuD18YBmLHg6YaS
- file://Ke2XIraa5jlvtOdb
- file://QBax5c69DcENi2rt
- file://nqa5cCGHGoWQXulB
- file://FWKdZwxSimGOaO2x
---- ----

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

View file

@ -0,0 +1,13 @@
Description:
----
Tags: forme & design, coloris & nuances
----
Uuid: QBax5c69DcENi2rt
----
Template: image

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

View file

@ -0,0 +1,13 @@
Description:
----
Tags:
----
Uuid: Ke2XIraa5jlvtOdb
----
Template: image

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

View file

@ -0,0 +1,13 @@
Description:
----
Tags:
----
Uuid: nqa5cCGHGoWQXulB
----
Template: image

View file

@ -1,8 +1,8 @@
Description: test de description Description: test de description mais
---- ----
Tags: forme & design, coloris & nuances, parachèvements Tags: parachèvements
---- ----

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

View file

@ -0,0 +1,13 @@
Description:
----
Tags:
----
Uuid: FWKdZwxSimGOaO2x
----
Template: image

View file

@ -29,7 +29,8 @@
placeholder="Ajoutez une description à cette image…" placeholder="Ajoutez une description à cette image…"
rows="3" rows="3"
class="border border-grey-200 | rounded-xl | p-16 | w-full" class="border border-grey-200 | rounded-xl | p-16 | w-full"
@input="saveDescription()" v-model="image.description"
@input="saveDescription(image)"
></textarea> ></textarea>
</div> </div>
<fieldset class="image-details__filters | flex-1"> <fieldset class="image-details__filters | flex-1">
@ -41,14 +42,17 @@
<input <input
class="sr-only" class="sr-only"
type="checkbox" type="checkbox"
:id="`${tag}`" :id="`${tag}-image-edit`"
:name="`${tag}`" :name="`${tag}-image-edit`"
:value="`${tag}`" :value="`${tag}`"
v-model="localSelectedTags" @change="saveTags(image)"
v-model="image.tags"
/> />
<label class="btn btn--sm btn--primary" :for="`${tag}`">{{ <label
toPascalCase(tag) class="btn btn--sm btn--primary"
}}</label> :for="`${tag}-image-edit`"
>{{ toPascalCase(tag) }}</label
>
</template> </template>
</div> </div>
</fieldset> </fieldset>
@ -104,12 +108,61 @@ import AccordionHeader from "primevue/accordionheader";
import AccordionContent from "primevue/accordioncontent"; import AccordionContent from "primevue/accordioncontent";
import { usePageStore } from "../../../stores/page"; import { usePageStore } from "../../../stores/page";
import { toPascalCase } from "../../../helpers"; import { toPascalCase } from "../../../helpers";
import debounce from "lodash/debounce";
const { images } = defineProps({ const { images } = defineProps({
images: Array, images: Array,
}); });
const { page } = usePageStore(); const { page } = usePageStore();
function saveTags(image) {
const headers = {
method: "POST",
body: JSON.stringify({
pageUri: page.uri,
fileName: image.name,
properties: [
{
name: "tags",
value: image.tags,
},
],
}),
};
fetch("/save-file.json", headers)
.then((res) => res.json())
.then((json) => {
console.log(json);
})
.catch((error) => {
console.error("Erreur lors de la sauvegarde :", error);
});
}
const saveDescription = debounce((image) => {
const headers = {
method: "POST",
body: JSON.stringify({
pageUri: page.uri,
fileName: image.name,
properties: [
{
name: "description",
value: image.description,
},
],
}),
};
fetch("/save-file.json", headers)
.then((res) => res.json())
.then((json) => {
console.log(json);
})
.catch((error) => {
console.error("Erreur lors de la sauvegarde :", error);
});
}, 1000);
</script> </script>
<style> <style>