Create :edit file handler and move form into plaintext form view

component
This commit is contained in:
James Smith committed 2026-10-14 16:54:46 +01:00
1 parent e6fb40bc16
commit e82e862237
5 files changed
+38 -8

No files matched your search

+23
View File
@@ -0,0 +1,23 @@
# frozen_string_literal: true
class Components::Editors::PlaintextForm < Components::Base
include Phlex::Rails::Helpers::FormTag
include Phlex::Rails::Helpers::TextAreaTag
include Phlex::Rails::Helpers::SubmitTag
def initialize(file:)
@file = file
end
def view_template
form_tag model_model_file_raw_path(@file.model, @file.filename), method: :put, class: "container-md" do
div class: "mb-3" do
text_area_tag :body, @file.attachment.read, class: "form-control", rows: "20"
end
div class: "form-save-button" do
submit_tag
end
end
end
end
+2 -1
View File
@@ -110,7 +110,8 @@ class ModelFilesController < ApplicationController
end
def edit_content
raise ActionController::BadRequest unless @file.mime_type.to_sym.in? [:html, :text, :js, :md]
@editor = FileHandlers.handlers_for(environment: :edit, mime_type: @file.mime_type).first
raise ActionController::BadRequest unless @editor
end
def extract
+1
View File
@@ -2,6 +2,7 @@ module FileHandlers
# i18n-tasks-use t("file_handlers.environments.browser")
# i18n-tasks-use t("file_handlers.environments.client")
# i18n-tasks-use t("file_handlers.environments.preview_frame")
# i18n-tasks-use t("file_handlers.environments.edit")
# i18n-tasks-use t("file_handlers.environments.convert")
# i18n-tasks-use t("file_handlers.environments.thumbnail")
+11
View File
@@ -0,0 +1,11 @@
class FileHandlers::PlaintextForm < FileHandlers::Base
# i18n-tasks-use t("file_handlers.handlers.plaintext_form")
ENVIRONMENTS = [:edit].freeze
INPUT_TYPES = Mime::EXTENSION_LOOKUP.slice("html", "js", "txt", "md").values.freeze
def self.component
Components::Editors::PlaintextForm
end
end
+1 -7
View File
@@ -4,10 +4,4 @@
@file.name => model_model_file_path(@file.model, @file)
} %>
<%= form_tag model_model_file_raw_path(@file.model, @file.filename), method: :put, class: "container-md" do %>
<%= text_area_tag :body, @file.attachment.read, class: "form-control", rows: "20" %>
<div class="form-save-button">
<%= submit_tag %>
</div>
<% end %>
<%= render @editor.component.new(file: @file) %>