new.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <template>
  2. <main>
  3. <p>New :{{ file }}</p>
  4. <form @submit.prevent="" class="my-3">
  5. <input v-model="file.name" type="text" />
  6. <select v-model="file.status">
  7. <option value="PENDING">Pending</option>
  8. <option value="READY">Ready</option>
  9. <option value="DELETED">Deleted</option>
  10. <option value="ERROR">Error</option>
  11. </select>
  12. <button @click="cancelAndGoBack">Annuler</button>
  13. <button type="submit" value="Enregistrer" @click="save">Enregistrer</button>
  14. </form>
  15. </main>
  16. </template>
  17. <script setup lang="ts">
  18. import {useEntityManager} from "~/composables/data/useEntityManager";
  19. import ApiResource from "~/models/ApiResource";
  20. import File from "~/models/Core/File";
  21. const em = useEntityManager()
  22. //@ts-ignore
  23. let file: ApiResource = reactive(await em.newInstance(File))
  24. const save = async () => {
  25. //@ts-ignore
  26. await em.persist(File, file)
  27. navigateTo('/poc')
  28. }
  29. const cancelAndGoBack = async () => {
  30. await em.delete(File, file)
  31. navigateTo('/poc')
  32. }
  33. </script>
  34. <style>
  35. a {
  36. color: blue; /* !color! */
  37. cursor: pointer;
  38. }
  39. a:hover {
  40. text-decoration: underline;
  41. }
  42. button {
  43. border: grey solid 1px; /* !color! */
  44. padding: 5px;
  45. margin: 5px;
  46. cursor: pointer;
  47. }
  48. button:hover {
  49. text-decoration: underline;
  50. }
  51. button:focus {
  52. background-color: lightgrey; /* !color! */
  53. }
  54. form {
  55. display: flex;
  56. flex-direction: column;
  57. max-width: 500px;
  58. }
  59. </style>