diff --git a/app/controllers/edge_controller.rb b/app/controllers/edge_controller.rb index 1b63d79..59f5e11 100644 --- a/app/controllers/edge_controller.rb +++ b/app/controllers/edge_controller.rb @@ -1,4 +1,7 @@ class EdgeController < ApplicationController - def index + def index; end + + def turbo_edit + render turbo_stream: turbo_stream.console_log(text: 'Hello world server-side') end end diff --git a/app/helpers/turbo_stream_actions_helper.rb b/app/helpers/turbo_stream_actions_helper.rb new file mode 100644 index 0000000..ac5c9ba --- /dev/null +++ b/app/helpers/turbo_stream_actions_helper.rb @@ -0,0 +1,7 @@ +module TurboStreamActionsHelper + def console_log(text) + turbo_stream_action_tag :console_log, text: text + end +end + +Turbo::Streams::TagBuilder.prepend(TurboStreamActionsHelper) diff --git a/app/javascript/application.js b/app/javascript/application.js index 7a0e71d..390e8db 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -1,23 +1,2 @@ -import "@hotwired/turbo-rails" -Turbo.config.drive.progressBarDelay = 300 -Turbo.config.forms.confirm = (title) => { - const dialog = document.getElementById("main-dialog") - const dialogTitle = dialog.querySelector('[data-modal=title]') - const previousTitleContent = dialogTitle.textContent - - dialogTitle.textContent = title - dialog.showModal() - - return new Promise((resolve, _) => { - dialog.addEventListener( - "close", - () => { - dialogTitle.textContent = previousTitleContent - resolve(dialog.returnValue == "confirm") - }, - { once: true }, - ); - }); -} - +import "initializers" import "controllers" \ No newline at end of file diff --git a/app/javascript/initializers/confirm.js b/app/javascript/initializers/confirm.js new file mode 100644 index 0000000..b140a01 --- /dev/null +++ b/app/javascript/initializers/confirm.js @@ -0,0 +1,19 @@ +Turbo.config.forms.confirm = (title) => { + const dialog = document.getElementById("main-dialog") + const dialogTitle = dialog.querySelector('[data-modal=title]') + const previousTitleContent = dialogTitle.textContent + + dialogTitle.textContent = title + dialog.showModal() + + return new Promise((resolve, _) => { + dialog.addEventListener( + "close", + () => { + dialogTitle.textContent = previousTitleContent + resolve(dialog.returnValue == "confirm") + }, + { once: true }, + ); + }); +} diff --git a/app/javascript/initializers/drive.js b/app/javascript/initializers/drive.js new file mode 100644 index 0000000..de75c8a --- /dev/null +++ b/app/javascript/initializers/drive.js @@ -0,0 +1 @@ +Turbo.config.drive.progressBarDelay = 300 diff --git a/app/javascript/initializers/index.js b/app/javascript/initializers/index.js new file mode 100644 index 0000000..ff8620f --- /dev/null +++ b/app/javascript/initializers/index.js @@ -0,0 +1,6 @@ +import "@hotwired/turbo-rails" + +import "initializers/drive" +import "initializers/confirm" +import "initializers/stream_actions" + diff --git a/app/javascript/initializers/stream_actions.js b/app/javascript/initializers/stream_actions.js new file mode 100644 index 0000000..929dfa7 --- /dev/null +++ b/app/javascript/initializers/stream_actions.js @@ -0,0 +1,4 @@ +Turbo.StreamActions.console_log = function () { + const text = this.getAttribute("text") + console.log(text) +} \ No newline at end of file diff --git a/app/views/edge/index.html.erb b/app/views/edge/index.html.erb index ad4b624..0f217ba 100644 --- a/app/views/edge/index.html.erb +++ b/app/views/edge/index.html.erb @@ -9,3 +9,9 @@ <%= button_to 'Delete', @meeting, method: :delete, class: "btn btn-error", data: { turbo_confirm: 'merci de confirmer'} %> + +