diff --git a/assets/js/app.js b/assets/js/app.js
index f4acdd6..d5639d0 100644
--- a/assets/js/app.js
+++ b/assets/js/app.js
@@ -23,11 +23,14 @@ import {LiveSocket} from "phoenix_live_view"
import topbar from "../vendor/topbar"
import "flowbite/dist/flowbite.phoenix.js";
+import bidSort from "./bidSort";
+import authorRoleSort from "./authorRoleSort";
let csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content")
let liveSocket = new LiveSocket("/live", Socket, {
longPollFallbackMs: 2500,
- params: {_csrf_token: csrfToken}
+ params: {_csrf_token: csrfToken},
+ hooks: { bidSort, authorRoleSort }
})
// Show progress bar on live navigation and form submits
diff --git a/assets/js/authorRoleSort.js b/assets/js/authorRoleSort.js
new file mode 100644
index 0000000..4e30d7d
--- /dev/null
+++ b/assets/js/authorRoleSort.js
@@ -0,0 +1,14 @@
+import Sortable from 'sortablejs';
+
+export default {
+ mounted() {
+ var sortable = new Sortable(this.el, {
+ handle: ".handle",
+ draggable: "tr",
+ ghostClass: "bg-gray-100",
+ onSort: (e) => {
+ this.pushEventTo(this.el, "reorder-author-role", { order: sortable.toArray(e.to) })
+ }
+ })
+ }
+}
diff --git a/assets/js/bidSort.js b/assets/js/bidSort.js
new file mode 100644
index 0000000..3b0af78
--- /dev/null
+++ b/assets/js/bidSort.js
@@ -0,0 +1,14 @@
+import Sortable from 'sortablejs';
+
+export default {
+ mounted() {
+ var sortable = new Sortable(this.el, {
+ handle: ".handle",
+ draggable: "tr",
+ ghostClass: "bg-gray-100",
+ onSort: (e) => {
+ this.pushEventTo(this.el, "reorder-bids", { order: sortable.toArray(e.to) })
+ }
+ })
+ }
+}
diff --git a/lib/decentralised_book_index_web/live/book_live/form_component.ex b/lib/decentralised_book_index_web/live/book_live/form_component.ex
index c7b5f24..b52cf04 100644
--- a/lib/decentralised_book_index_web/live/book_live/form_component.ex
+++ b/lib/decentralised_book_index_web/live/book_live/form_component.ex
@@ -85,6 +85,7 @@ defmodule DecentralisedBookIndexWeb.BookLive.FormComponent do
+ |
Type |
Id |
|
@@ -93,6 +94,11 @@ defmodule DecentralisedBookIndexWeb.BookLive.FormComponent do
<.inputs_for :let={bid_form} field={@form[:bids]}>
+
+
+ |
<.input field={bid_form[:type]} />
@@ -164,6 +170,7 @@ defmodule DecentralisedBookIndexWeb.BookLive.FormComponent do
+ |
Author |
Role |
|
@@ -172,6 +179,11 @@ defmodule DecentralisedBookIndexWeb.BookLive.FormComponent do
<.inputs_for :let={author_roles_form} field={@form[:author_roles]}>
+
+
+ |
<.input field={author_roles_form[:author_id]} />
| |