diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 843ef605..0ba4a117 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -13,7 +13,7 @@ class ApplicationController < ActionController::Base
before_action :maybe_redirect_to_setup, unless: :signed_in?
before_action :authenticate_user!, unless: :devise_controller?
- before_action :set_csp, if: -> { request.get? && !turbo_frame_request? && !request.headers['HTTP_VND.PREFETCH'] }
+ before_action :set_csp, if: -> { request.get? && !request.headers['HTTP_X_TURBO'] }
helper_method :button_title,
:current_account,
diff --git a/app/javascript/application.js b/app/javascript/application.js
index b9467861..1a1ee2a5 100644
--- a/app/javascript/application.js
+++ b/app/javascript/application.js
@@ -47,6 +47,7 @@ import ReviewForm from './elements/review_form'
import ShowOnValue from './elements/show_on_value'
import CustomValidation from './elements/custom_validation'
import ToggleClasses from './elements/toggle_classes'
+import AutosizeField from './elements/autosize_field'
import * as TurboInstantClick from './lib/turbo_instant_click'
@@ -63,6 +64,9 @@ document.addEventListener('keyup', (e) => {
})
document.addEventListener('turbo:before-fetch-request', encodeMethodIntoRequestBody)
+document.addEventListener('turbo:before-fetch-request', (event) => {
+ event.detail.fetchOptions.headers['X-Turbo'] = 'true'
+})
document.addEventListener('turbo:submit-end', async (event) => {
const resp = event.detail?.formSubmission?.result?.fetchResponse?.response
@@ -129,6 +133,7 @@ safeRegisterElement('review-form', ReviewForm)
safeRegisterElement('show-on-value', ShowOnValue)
safeRegisterElement('custom-validation', CustomValidation)
safeRegisterElement('toggle-classes', ToggleClasses)
+safeRegisterElement('autosize-field', AutosizeField)
safeRegisterElement('template-builder', class extends HTMLElement {
connectedCallback () {
diff --git a/app/javascript/elements/autosize_field.js b/app/javascript/elements/autosize_field.js
new file mode 100644
index 00000000..b6f56763
--- /dev/null
+++ b/app/javascript/elements/autosize_field.js
@@ -0,0 +1,21 @@
+export default class extends HTMLElement {
+ connectedCallback () {
+ const originalFontValue = this.field.style.fontSize
+
+ if (this.field.scrollHeight > this.field.clientHeight) {
+ this.field.style.fontSize = `calc(${originalFontValue} / 1.5)`
+ this.field.style.lineHeight = `calc(${this.field.style.fontSize} * 1.3)`
+
+ if (this.field.scrollHeight > this.field.clientHeight) {
+ this.field.style.fontSize = `calc(${originalFontValue} / 2.0)`
+ this.field.style.lineHeight = `calc(${this.field.style.fontSize} * 1.3)`
+ }
+ }
+
+ this.field.classList.remove('hidden')
+ }
+
+ get field () {
+ return this.closest('field-value')
+ }
+}
diff --git a/app/javascript/lib/turbo_instant_click.js b/app/javascript/lib/turbo_instant_click.js
index 01789e95..d72d4ce8 100644
--- a/app/javascript/lib/turbo_instant_click.js
+++ b/app/javascript/lib/turbo_instant_click.js
@@ -56,7 +56,7 @@ function mouseoverListener (event) {
const requestOptions = {
credentials: 'same-origin',
- headers: { Accept: 'text/html, application/xhtml+xml', 'VND.PREFETCH': 'true' },
+ headers: { Accept: 'text/html, application/xhtml+xml', 'VND.PREFETCH': 'true', 'X-Turbo': 'true' },
method: 'GET',
redirect: 'follow'
}
diff --git a/app/views/devise/shared/_select_server.html.erb b/app/views/devise/shared/_select_server.html.erb
index 58b1dbec..e69de29b 100644
--- a/app/views/devise/shared/_select_server.html.erb
+++ b/app/views/devise/shared/_select_server.html.erb
@@ -1,52 +0,0 @@
-<% eu_server = request.host == 'docuseal.eu' %>
-